Browse Source

【调通打标】解决步进时单步标志位失效问题。

master
Lizongdi 1 month ago
parent
commit
f38b9ec106
  1. 4
      diaoerqiege/BHBF_Robot_Lifting_Lug/.settings/language.settings.xml
  2. 14
      diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/FSM.c
  3. 11
      diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/robot_state.c

4
diaoerqiege/BHBF_Robot_Lifting_Lug/.settings/language.settings.xml

@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-63235014752314356" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true"> <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1256539702914033922" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>
@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/> <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/> <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-63235014752314356" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true"> <provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1256539702914033922" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/> <language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/> <language-scope id="org.eclipse.cdt.core.g++"/>
</provider> </provider>

14
diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/FSM.c

@ -340,10 +340,10 @@ int Knife_Detection(void)
} }
extern int32_t KinfePosition; extern int32_t KinfePosition;
extern int StrongSingleShotFlag;
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;
@ -419,13 +419,8 @@ void Frontend_Control()
else{ else{
// 前进 // 前进
if((angle >= 45) && (angle <= 135)) if((angle >= 45) && (angle <= 135))
{
if (SingleShotFlag == 0)
{ {
CurrentFrontEndState = MANUAL_STEP_UP_STATE; CurrentFrontEndState = MANUAL_STEP_UP_STATE;
KinfePosition -= GV.PV.step_len;
SingleShotFlag = 1;
}
return; return;
} }
else if(P_MK32->CH3_LY_H > 100) else if(P_MK32->CH3_LY_H > 100)
@ -439,13 +434,8 @@ void Frontend_Control()
} }
// 后退 // 后退
else if((angle >= -135) && (angle < -45)) else if((angle >= -135) && (angle < -45))
{
if (SingleShotFlag == 0)
{ {
CurrentFrontEndState = MANUAL_STEP_DOWN_STATE; CurrentFrontEndState = MANUAL_STEP_DOWN_STATE;
KinfePosition += GV.PV.step_len;
SingleShotFlag = 1;
}
return; return;
} }
// 左转 // 左转
@ -456,7 +446,7 @@ void Frontend_Control()
} }
else { else {
CurrentFrontEndState = HALT_STATE; CurrentFrontEndState = HALT_STATE;
SingleShotFlag = 0; StrongSingleShotFlag = 0;
} }
} }

11
diaoerqiege/BHBF_Robot_Lifting_Lug/Core/Src/robot_state.c

@ -232,6 +232,7 @@ uint8_t Pin2 = -1; //上限位,为0表示限位触发
uint8_t Pin3 = -1; //下限位,为0表示限位触发 uint8_t Pin3 = -1; //下限位,为0表示限位触发
int32_t KinfePosition = 1000; // 初始化为一个不合理的大值,等于1000时显示为未标定 int32_t KinfePosition = 1000; // 初始化为一个不合理的大值,等于1000时显示为未标定
int StrongSingleShotFlag = 0;
void Manual_Up_State_Do(void) void Manual_Up_State_Do(void)
{ {
@ -333,10 +334,15 @@ void Manual_low_speed_Down_State_Do(void)
#define STEP_LEN_COUNT 18000 // 位置环每18000个count对应1mm #define STEP_LEN_COUNT 18000 // 位置环每18000个count对应1mm
void Manual_step_Up_State_Do(void) void Manual_step_Up_State_Do(void)
{
if (StrongSingleShotFlag == 0)
{ {
int32_t SliderSpeed_PPS = SliderSpeed_mmps_2_pps(leisai_low_speed); int32_t SliderSpeed_PPS = SliderSpeed_mmps_2_pps(leisai_low_speed);
GV.LS_FrontEnd_Motor.Target_Position = GV.LS_FrontEnd_Motor.Real_Position - (GV.PV.step_len * STEP_LEN_COUNT); GV.LS_FrontEnd_Motor.Target_Position = GV.LS_FrontEnd_Motor.Real_Position - (GV.PV.step_len * STEP_LEN_COUNT);
GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS; GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS;
KinfePosition -= GV.PV.step_len;
StrongSingleShotFlag = 1;
}
/*if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance >= up_limit) /*if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance >= up_limit)
|| (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance >= up_limit) || (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance >= up_limit)
@ -353,10 +359,15 @@ void Manual_step_Up_State_Do(void)
} }
void Manual_step_Down_State_Do(void) void Manual_step_Down_State_Do(void)
{
if (StrongSingleShotFlag == 0)
{ {
int32_t SliderSpeed_PPS = SliderSpeed_mmps_2_pps(leisai_low_speed); int32_t SliderSpeed_PPS = SliderSpeed_mmps_2_pps(leisai_low_speed);
GV.LS_FrontEnd_Motor.Target_Position = GV.LS_FrontEnd_Motor.Real_Position + (GV.PV.step_len * STEP_LEN_COUNT); GV.LS_FrontEnd_Motor.Target_Position = GV.LS_FrontEnd_Motor.Real_Position + (GV.PV.step_len * STEP_LEN_COUNT);
GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS; GV.LS_FrontEnd_Motor.Target_Velcity = SliderSpeed_PPS;
KinfePosition += GV.PV.step_len;
StrongSingleShotFlag = 1;
}
/*if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance <= down_limit) /*if((GV.ZHR29_200_measure_results.laser_sensor_1_measure_distance <= down_limit)
|| (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance <= down_limit) || (GV.ZHR29_200_measure_results.laser_sensor_2_measure_distance <= down_limit)

Loading…
Cancel
Save