flexium
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 9 個
工控威望: 53 點
下載積分: 282 分
在線時間: 12(小時)
注冊時間: 2021-07-25
最后登錄: 2024-08-29
查看flexium的 主題 / 回貼
樓主  發(fā)表于: 2021-08-04 00:20
我是新人小白,請大神幫忙我一下啊,看看我哪里寫錯了呀,
三菱ST中DDRVA執(zhí)行后,DZRN無法回歸原點的問題,單獨回原點正常,執(zhí)行
DDRVA移動后,再執(zhí)行DZRN就無動作 詳細請幫忙看看下面的程序

(*校準螺距*)
Current_Distance := Pulse_Current_Distance / ONE_Pulse_Feed;
IF Calibration THEN(*如果校準按鈕被按下*)
    ONE_Pulse_Feed := Calibration_Distance / Pitch_Setting * K100;(*計算1mm所用脈沖值*)
    DDRVA ( Calibration,Calibration_Distance,Feeding_Distance,Pulse_Output,Y001);
    Direction_Output :=TRUE;(*正轉(zhuǎn)方向啟動*)
    IF M8029=TRUE THEN
        Direction_Output := FALSE;
        Calibration := FALSE;(*否則RST校準按鈕*)    
    END_IF;
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;


最后在論壇的好心大哥幫助下,完美解決,提供修改的程序,幫忙大家避坑!!

IF Calibration THEN
    IF LDF(TRUE ,OUT_Puls_Monitor) THEN
        M340:=1;
    END_IF;
    OUT_T(M340=1,TC3,K100);
    IF TC3=1 THEN
        Calibration := FALSE;
        M340:=0;
    END_IF;
END_IF;
[ 此帖被flexium在2021-08-17 19:11重新編輯 ]
工控吳彥祖
級別: 實習(xí)會員
精華主題: 0
發(fā)帖數(shù)量: 3 個
工控威望: 26 點
下載積分: 502 分
在線時間: 2(小時)
注冊時間: 2021-05-03
最后登錄: 2024-11-05
查看工控吳彥祖的 主題 / 回貼
1樓  發(fā)表于: 2021-08-04 16:27
這是c 單片機