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
我自己頂一下,希望大神幫忙解決一下
我飛二天
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 158 個
工控威望: 248 點
下載積分: 654 分
在線時間: 22(小時)
注冊時間: 2019-11-22
最后登錄: 2024-02-20
查看我飛二天的 主題 / 回貼
2樓  發(fā)表于: 2021-08-04 15:47
為什么不用梯形圖搞?
工控吳彥祖
級別: 實習(xí)會員
精華主題: 0
發(fā)帖數(shù)量: 3 個
工控威望: 26 點
下載積分: 502 分
在線時間: 2(小時)
注冊時間: 2021-05-03
最后登錄: 2024-09-19
查看工控吳彥祖的 主題 / 回貼
3樓  發(fā)表于: 2021-08-04 16:27
這是c 單片機
seafar
目前C#
級別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 619 個
工控威望: 764 點
下載積分: 1909 分
在線時間: 594(小時)
注冊時間: 2018-03-23
最后登錄: 2023-10-27
查看seafar的 主題 / 回貼
4樓  發(fā)表于: 2021-08-04 17:07
加個延時再觸發(fā)回原點
枕星河之倒影兮與星光同流,望群星之包覆兮隨繁星同輝。
B站資源分享鏈接https://space.bilibili.com/39855180
akesur
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 30 個
工控威望: 317 點
下載積分: 286 分
在線時間: 24(小時)
注冊時間: 2021-02-22
最后登錄: 2022-10-24
查看akesur的 主題 / 回貼
5樓  發(fā)表于: 2021-08-04 17:29
      
flexium
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 9 個
工控威望: 53 點
下載積分: 282 分
在線時間: 12(小時)
注冊時間: 2021-07-25
最后登錄: 2024-08-29
查看flexium的 主題 / 回貼
6樓  發(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的 主題 / 回貼
7樓  發(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的 主題 / 回貼
8樓  發(fā)表于: 2021-08-04 21:08
引用
引用第2樓我飛二天于2021-08-04 15:47發(fā)表的  :
為什么不用梯形圖搞?


上一任程序工程師用ST寫的,我只能繼續(xù)用了,不然我要從頭寫,那頭發(fā)不保呀
hefq
級別: 家園常客
精華主題: 0
發(fā)帖數(shù)量: 613 個
工控威望: 807 點
下載積分: 1928 分
在線時間: 1520(小時)
注冊時間: 2008-07-03
最后登錄: 2024-09-18
查看hefq的 主題 / 回貼
9樓  發(fā)表于: 2021-08-04 21:19
M8029只接通到下一個功能指令就關(guān)掉了,你拿他來開定時器是沒用的
情深深雨蒙蒙
If you don't forget your o
級別: 家園?
精華主題: 0
發(fā)帖數(shù)量: 870 個
工控威望: 928 點
下載積分: 14943 分
在線時間: 252(小時)
注冊時間: 2019-04-14
最后登錄: 2024-09-10
查看情深深雨蒙蒙的 主題 / 回貼
10樓  發(fā)表于: 2021-08-04 22:20
M8029貌似一般都用上升沿
不忘初心,方得始終;初心易得,始終難守。三更莫貪色;半夜不戀食。
flexium
級別: 正式會員
精華主題: 0
發(fā)帖數(shù)量: 9 個
工控威望: 53 點
下載積分: 282 分
在線時間: 12(小時)
注冊時間: 2021-07-25
最后登錄: 2024-08-29
查看flexium的 主題 / 回貼
11樓  發(fā)表于: 2021-08-04 23:15
引用
引用第9樓hefq于2021-08-04 21:19發(fā)表的  :
M8029只接通到下一個功能指令就關(guān)掉了,你拿他來開定時器是沒用的

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