|
|
@ -46,7 +46,8 @@ transition_t FrontendMoveTransitions[] = |
|
|
{ Manual_DOWN_STATE, Manual_Down_State_Do}, |
|
|
{ Manual_DOWN_STATE, Manual_Down_State_Do}, |
|
|
{ MANUAL_LOW_SPEED_UP_STATE, Manual_Low_Speed_Up_State_Do}, |
|
|
{ MANUAL_LOW_SPEED_UP_STATE, Manual_Low_Speed_Up_State_Do}, |
|
|
{ MANUAL_LOW_SPEED_DOWN_STATE, Manual_low_speed_Down_State_Do}, |
|
|
{ MANUAL_LOW_SPEED_DOWN_STATE, Manual_low_speed_Down_State_Do}, |
|
|
|
|
|
{ MANUAL_STEP_UP_STATE, Manual_step_Up_State_Do}, |
|
|
|
|
|
{ MANUAL_STEP_DOWN_STATE, Manual_step_Down_State_Do} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
transition_t StrongGrindingMachineTransitions[] = |
|
|
transition_t StrongGrindingMachineTransitions[] = |
|
|
@ -164,15 +165,16 @@ void IO_Control() |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
uint8_t IsAllowRotation_AutoMode = 0; // 是否允许转刀
|
|
|
#define knife_rising_height 500 // 自动作业停止后默认上升高度为5mm
|
|
|
int32_t knife_descent_height = 0; // 屏幕配置值转换后
|
|
|
|
|
|
int32_t knife_rising_height = 500; // 自动作业停止后默认上升高度为5mm
|
|
|
|
|
|
int32_t knife_current_altitude = 0; // 激光1读数
|
|
|
|
|
|
uint8_t auto_work_mode_states = 5; |
|
|
uint8_t auto_work_mode_states = 5; |
|
|
uint8_t auto_work_halt_states = 10; |
|
|
uint8_t auto_work_halt_states = 10; |
|
|
|
|
|
|
|
|
void Automatic_Operation() |
|
|
void Automatic_Operation() |
|
|
{ |
|
|
{ |
|
|
|
|
|
int32_t knife_descent_height = 0; // 屏幕配置值转换后
|
|
|
|
|
|
int32_t knife_current_altitude = 0; // 激光1读数
|
|
|
|
|
|
uint8_t IsAllowRotation_AutoMode = 0; // 是否允许转刀
|
|
|
|
|
|
|
|
|
knife_descent_height = GV.PV.knife_descending_height * 100; |
|
|
knife_descent_height = GV.PV.knife_descending_height * 100; |
|
|
|
|
|
|
|
|
if(GV.MK32_Key.CH7_SD == -1000) |
|
|
if(GV.MK32_Key.CH7_SD == -1000) |
|
|
@ -291,8 +293,11 @@ int Knife_Detection(void) |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
extern int32_t KinfePosition; |
|
|
|
|
|
|
|
|
void Frontend_Control() |
|
|
void Frontend_Control() |
|
|
{ |
|
|
{ |
|
|
|
|
|
static int SingleShotFlag = 0; |
|
|
int angle; |
|
|
int angle; |
|
|
angle = atan2(GV.MK32_Key.CH1_RY_V, GV.MK32_Key.CH0_RY_H) * 180 / M_PI; |
|
|
angle = atan2(GV.MK32_Key.CH1_RY_V, GV.MK32_Key.CH0_RY_H) * 180 / M_PI; |
|
|
|
|
|
|
|
|
@ -366,7 +371,47 @@ void Frontend_Control() |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
else{ |
|
|
else{ |
|
|
|
|
|
// 前进
|
|
|
|
|
|
if((angle >= 45) && (angle <= 135)) |
|
|
|
|
|
{ |
|
|
|
|
|
if (SingleShotFlag == 0) |
|
|
|
|
|
{ |
|
|
|
|
|
CurrentFrontEndState = MANUAL_STEP_UP_STATE; |
|
|
|
|
|
KinfePosition -= GV.PV.step_len; |
|
|
|
|
|
SingleShotFlag = 1; |
|
|
|
|
|
} |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
else if(P_MK32->CH3_LY_H > 100) |
|
|
|
|
|
{ |
|
|
|
|
|
// 右转
|
|
|
|
|
|
if((angle >= -45) && (angle <=45)) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
// 后退
|
|
|
|
|
|
else if((angle >= -135) && (angle < -45)) |
|
|
|
|
|
{ |
|
|
|
|
|
if (SingleShotFlag == 0) |
|
|
|
|
|
{ |
|
|
|
|
|
CurrentFrontEndState = MANUAL_STEP_DOWN_STATE; |
|
|
|
|
|
KinfePosition += GV.PV.step_len; |
|
|
|
|
|
SingleShotFlag = 1; |
|
|
|
|
|
} |
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
// 左转
|
|
|
|
|
|
else if(((angle > 135) && (angle <= 180)) || (angle < -135) && (angle >= -179)) |
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
return; |
|
|
|
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
CurrentFrontEndState = HALT_STATE; |
|
|
|
|
|
SingleShotFlag = 0; |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -375,6 +420,7 @@ void Frontend_Control() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double real_speed; |
|
|
double real_speed; |
|
|
|
|
|
|
|
|
void IV_Control() |
|
|
void IV_Control() |
|
|
{ |
|
|
{ |
|
|
real_speed = (Act_Speed*360/100/101/6*3.1415926*0.325); |
|
|
real_speed = (Act_Speed*360/100/101/6*3.1415926*0.325); |
|
|
@ -385,6 +431,7 @@ void IV_Control() |
|
|
IV.laser_sensor_2_measure_distance = GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance; |
|
|
IV.laser_sensor_2_measure_distance = GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance; |
|
|
IV.laser_sensor_3_measure_distance = GV.ZHR29_200_measure_results.laser_sensor_3_measure_distance; |
|
|
IV.laser_sensor_3_measure_distance = GV.ZHR29_200_measure_results.laser_sensor_3_measure_distance; |
|
|
IV.kinfe_complete_signal = IsAllowRotation; |
|
|
IV.kinfe_complete_signal = IsAllowRotation; |
|
|
|
|
|
IV.kinfe_position = KinfePosition; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void Robot_Control() |
|
|
void Robot_Control() |
|
|
|