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重新編輯 ]
flexium
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 9 個
工控威望: 53 點
下載積分: 282 分
在線時間: 12(小時)
注冊時間: 2021-07-25
最后登錄: 2024-08-29
查看flexium的 主題 / 回貼
1樓  發(fā)表于: 2021-08-04 15:41
我自己頂一下,希望大神幫忙解決一下
flexium
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 9 個
工控威望: 53 點
下載積分: 282 分
在線時間: 12(小時)
注冊時間: 2021-07-25
最后登錄: 2024-08-29
查看flexium的 主題 / 回貼
2樓  發(fā)表于: 2021-08-04 21:00
圖片:
引用
引用第3樓工控吳彥祖于2021-08-04 16:27發(fā)表的  :
這是c 單片機

這個的確是三菱PLC的ST語言編程;如圖
flexium
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 9 個
工控威望: 53 點
下載積分: 282 分
在線時間: 12(小時)
注冊時間: 2021-07-25
最后登錄: 2024-08-29
查看flexium的 主題 / 回貼
3樓  發(fā)表于: 2021-08-04 21:05
引用
引用第4樓seafar于2021-08-04 17:07發(fā)表的  :
加個延時再觸發(fā)回原點


加了延時還是不行,不能回原點,如下紅色字體部分

(*校準螺距*)
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 Relay_1 = TRUE THEN
        Direction_Output := FALSE;
        Calibration := FALSE;(*否則RST校準按鈕*)    
    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;
flexium
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 9 個
工控威望: 53 點
下載積分: 282 分
在線時間: 12(小時)
注冊時間: 2021-07-25
最后登錄: 2024-08-29
查看flexium的 主題 / 回貼
4樓  發(fā)表于: 2021-08-04 21:08
引用
引用第2樓我飛二天于2021-08-04 15:47發(fā)表的  :
為什么不用梯形圖搞?


上一任程序工程師用ST寫的,我只能繼續(xù)用了,不然我要從頭寫,那頭發(fā)不保呀
flexium
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 9 個
工控威望: 53 點
下載積分: 282 分
在線時間: 12(小時)
注冊時間: 2021-07-25
最后登錄: 2024-08-29
查看flexium的 主題 / 回貼
5樓  發(fā)表于: 2021-08-04 23:15
引用
引用第9樓hefq于2021-08-04 21:19發(fā)表的  :
M8029只接通到下一個功能指令就關掉了,你拿他來開定時器是沒用的

感謝提醒,已做修改.
問題還是無法解決,我明天對這段定位重寫試試