From ccf81e1bffca6b93dbd6da3529321aa562803b2a Mon Sep 17 00:00:00 2001 From: "HJB\\13752" <13752551070@163.com> Date: Mon, 30 Mar 2026 12:30:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BC=BA=E7=A3=A8=E6=9C=BA?= =?UTF-8?q?=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.settings/language.settings.xml | 4 +- .../BHBF_Robot_Lifting_Lug/Core/Inc/FSM.h | 7 ++ .../Core/Inc/robot_state.h | 4 ++ .../BHBF_Robot_Lifting_Lug/Core/Src/FSM.c | 72 ++++++++++++++++++- .../BHBF_Robot_Lifting_Lug/Core/Src/main.c | 8 ++- .../Core/Src/robot_state.c | 10 +++ 6 files changed, 101 insertions(+), 4 deletions(-) diff --git a/diaoerqiege/BHBF_Robot_Lifting_Lug/.settings/language.settings.xml b/diaoerqiege/BHBF_Robot_Lifting_Lug/.settings/language.settings.xml index e5e306c..3f35568 100644 --- a/diaoerqiege/BHBF_Robot_Lifting_Lug/.settings/language.settings.xml +++ b/diaoerqiege/BHBF_Robot_Lifting_Lug/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/FSM.h b/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/FSM.h index 88bcd89..236032f 100644 --- a/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/FSM.h +++ b/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/FSM.h @@ -26,6 +26,13 @@ typedef enum _Front_MoveSTATE_t } Front_MoveSTATE_t; +typedef enum _Strong_Grinding_Machine_MoveSTATE_t +{ + STRONG_GRINDING_MACHINE_HALT_STATE = 0, + STRONG_GRINDING_MACHINE_MOTION_STATE, + +} Strong_Grinding_Machine_MoveSTATE_t; + typedef struct _transition_t { int State; //状态 diff --git a/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/robot_state.h b/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/robot_state.h index c1f7158..1eb7640 100644 --- a/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/robot_state.h +++ b/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Inc/robot_state.h @@ -25,4 +25,8 @@ extern void Manual_Up_State_Do(void); extern void Manual_Down_State_Do(void); extern void FrontEnd_Halt_State_Do(void); +// ********强磨机运动控制*********** +extern void Strong_Grinding_Machine_Halt_State_Do(void); +extern void Strong_Grinding_Machine_Motion_State_Do(void); + #endif /* INC_ROBOT_STATE_H_ */ diff --git a/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/FSM.c b/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/FSM.c index 687a545..d0ffd51 100644 --- a/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/FSM.c +++ b/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/FSM.c @@ -12,6 +12,7 @@ #include "msp_TL720D.h" #include "robot_state.h" #include "bsp_TIMER.h" +#include "msp_Strong_grinding_machine.h" void action_perfrom(transition_t transitions[], int length, int state); @@ -24,6 +25,8 @@ static void Frontend_Control(); MoveSTATE_t CurrentMoveState; Front_MoveSTATE_t CurrentFrontEndState; +Strong_Grinding_Machine_MoveSTATE_t StrongGrindingMachineCurrentState; + static int index_counter = 0; @@ -34,7 +37,6 @@ transition_t MoveTransitions[] = { Move_HALT, HALT_State_Do }, }; - transition_t FrontendMoveTransitions[] = { { HALT_STATE, FrontEnd_Halt_State_Do}, @@ -43,6 +45,16 @@ transition_t FrontendMoveTransitions[] = }; +transition_t StrongGrindingMachineTransitions[] = +{ + { STRONG_GRINDING_MACHINE_HALT_STATE, Strong_Grinding_Machine_Halt_State_Do}, + { STRONG_GRINDING_MACHINE_MOTION_STATE, Strong_Grinding_Machine_Motion_State_Do}, + +}; + + + + void Fsm_Init() { GF_BSP_Interrupt_Add_CallBack( @@ -60,9 +72,67 @@ void GF_Dispatch() // 前端控制 Frontend_Control(); + //强磨机控制 + Strong_Grinding_Machine_Control(); + + + action_perfrom(MoveTransitions,sizeof(MoveTransitions) / sizeof(transition_t), CurrentMoveState); action_perfrom(FrontendMoveTransitions, sizeof(FrontendMoveTransitions) / sizeof(transition_t), CurrentFrontEndState); + action_perfrom(StrongGrindingMachineTransitions, + sizeof(StrongGrindingMachineTransitions) / sizeof(transition_t), StrongGrindingMachineCurrentState); +} + + +uint8_t IsAllowRotation = 0; +void Strong_Grinding_Machine_Control() +{ + GF_BSP_GPIO_SetIO(4, 1); + IsAllowRotation = Knife_Detection(); + if(IsAllowRotation == 1) + { + if(GV.MK32_Key.CH7_SD == -1000) + { + StrongGrindingMachineCurrentState = STRONG_GRINDING_MACHINE_MOTION_STATE; + } + else{ + StrongGrindingMachineCurrentState = STRONG_GRINDING_MACHINE_HALT_STATE; + } + + } + else{ + StrongGrindingMachineCurrentState = STRONG_GRINDING_MACHINE_HALT_STATE; + } + +} + + +uint8_t loosening_knife_signal = 0; +uint8_t clamping_knife_signal = 0; + +int Knife_Detection(void) +{ +// uint8_t loosening_knife_signal = 1; +// uint8_t clamping_knife_signal = 1; + + // 夹刀信号检测 + clamping_knife_signal = GF_BSP_GPIO_ReadIO(0); + // 松刀信号检测 + loosening_knife_signal = GF_BSP_GPIO_ReadIO(1); + + if(loosening_knife_signal == 0) + { + return 0; + } + else if(clamping_knife_signal == 0) + { + return 1; + } + else{ + return 0; + } + } void Frontend_Control() diff --git a/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/main.c b/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/main.c index 8f09a5e..c264eb7 100644 --- a/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/main.c +++ b/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/main.c @@ -35,6 +35,7 @@ #include "motors.h" #include "SliderControl.h" #include "msp_zhr29_laser_sensor.h" +#include "msp_Strong_grinding_machine.h" /* USER CODE END Includes */ @@ -168,7 +169,6 @@ int main(void) while (1) { - //MX_LWIP_Process(); /* USER CODE END WHILE */ @@ -272,6 +272,9 @@ void CV_GV_Init() P_MK32 = &GV.MK32_Key; + // 强磨机默认发送停止命令 + strong_grinding_machine_cmd = 0; + // �?光测距传感器指针同步 g_zhr29_200_laser_sensor_1 = &GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance; g_zhr29_200_laser_sensor_2 = &GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance; @@ -340,6 +343,9 @@ void GF_Robot_Init() // �?光测距传感器�?115200 zhr29_200_laser_sensor_intialize(&RS_485_3_UART_Handler); + // 强磨机 + strong_grinding_machine_intialize(&RS_485_2_UART_Handler); + Fsm_Init(); uint8_t _state = 1; diff --git a/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/robot_state.c b/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/robot_state.c index 1d20fdd..f86c9dd 100644 --- a/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/robot_state.c +++ b/diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/robot_state.c @@ -6,6 +6,7 @@ */ #include "robot_state.h" #include "bsp_GPIO.h" +#include "msp_Strong_grinding_machine.h" #define PI 3.1415926 @@ -259,6 +260,15 @@ void FrontEnd_Halt_State_Do(void) GV.LS_FrontEnd_Motor.Target_Velcity = 0; } +void Strong_Grinding_Machine_Halt_State_Do(void) +{ + strong_grinding_machine_cmd = 0; +} + +void Strong_Grinding_Machine_Motion_State_Do(void) +{ + strong_grinding_machine_cmd = 1; +} //void Manual_Up_Down_State_Do()