引用
引用第4樓seafar于2021-08-04 17:07發(fā)表的 :
加個延時再觸發(fā)回原點
加了延時還是不行,不能回原點,如下紅色字體部分

(*校準(zhǔn)螺距*)
Current_Distance := Pulse_Current_Distance / ONE_Pulse_Feed;
IF Calibration THEN(*如果校準(zhǔn)按鈕被按下*)
ONE_Pulse_Feed := Calibration_Distance / Pitch_Setting * K100;(*計算1mm所用脈沖值*)
DDRVA ( Calibration,Calibration_Distance,Feeding_Distance,Pulse_Output,Y001);
Direction_Output :=TRUE;(*正轉(zhuǎn)方向啟動*)
IF Relay_1 = TRUE THEN
Direction_Output := FALSE;
Calibration := FALSE;(*否則RST校準(zhǔn)按鈕*)
END_IF;
END_IF;
OUT_T (M8029,TC3,K10);
IF TC3 =TRUE THEN
Relay_1:= TRUE;
ELSE
Relay_1:= FALSE;
END_IF;(*回原點*)
IF NOT Backward_Limit AND NOT Enclosure_Not_Closed AND NOT Backward_Limit THEN
DZRN (Back_Servo_Origin,K2000,K1000,Servo_Origin,Pulse_Output);
IF Back_Servo_Origin THEN
OUT_T(Scintillation=1,TC2,K10);
OUT_T(Servo_Origin_Lamp =TRUE,TC1,K10);
IF TC2 =TRUE THEN
Servo_Origin_Lamp :=TRUE;
IF TC1 =TRUE THEN
Scintillation :=0;
END_IF;
ELSIF TC2 =FALSE THEN
Servo_Origin_Lamp :=FALSE;
Scintillation :=1;
END_IF;
END_IF;
END_IF;
IF Back_Servo_Origin THEN
IF Pulse_Current_Distance =K0 THEN
Back_Servo_Origin :=FALSE;
Servo_Origin_Lamp :=TRUE;
END_IF;
ELSIF Pulse_Current_Distance <>K0 THEN
Servo_Origin_Lamp :=FALSE;
END_IF;