智趣黃sir
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 62 個(gè)
工控威望: 95 點(diǎn)
下載積分: 1762 分
在線(xiàn)時(shí)間: 29(小時(shí))
注冊(cè)時(shí)間: 2023-07-06
最后登錄: 2025-02-23
查看智趣黃sir的 主題 / 回貼
樓主  發(fā)表于: 72天前
1,采用匯川的EASy521,程序想實(shí)現(xiàn)自動(dòng)切手動(dòng),只動(dòng)氣缸,怕操作者移動(dòng)軸,因?yàn)檩S如果移動(dòng)的話(huà),沒(méi)法監(jiān)測(cè)到是否移動(dòng),再切回自動(dòng)的話(huà),會(huì)導(dǎo)致撞車(chē)。
本人的思路是如以下程序,切到手動(dòng)的M3下降沿,記錄當(dāng)前位置,再切回自動(dòng),進(jìn)行差值計(jì)算,只能實(shí)現(xiàn)部分,還請(qǐng)各位大神指點(diǎn)。M3是自動(dòng)模式,M4是自動(dòng)運(yùn)行中�,F(xiàn)在的問(wèn)題是可以實(shí)現(xiàn)部分功能,但是拍急停的話(huà),就會(huì)出現(xiàn)報(bào)警,因?yàn)榧蓖E南潞螅鱾€(gè)軸就立即停止。


自動(dòng)模式下降沿(CLK := M3,Q => );
IF 自動(dòng)模式下降沿.Q THEN
    X自動(dòng)前位置old:=X_Axis.fActPosition;
    Y自動(dòng)前位置old:=Y_Axis.fActPosition;
    Z自動(dòng)前位置old:=Z_Axis.fActPosition;
    L自動(dòng)前位置old:=Lift_Axis.fActPosition;
END_IF;

自動(dòng)模式上升沿(CLK := M4 ,Q => );
IF 自動(dòng)模式上升沿.Q then
    X自動(dòng)前位置new:=X_Axis.fActPosition;
    Y自動(dòng)前位置new:=Y_Axis.fActPosition;
    Z自動(dòng)前位置new:=Z_Axis.fActPosition;
    L自動(dòng)前位置new:=Lift_Axis.fActPosition;

    X自動(dòng)前位置差值:=X自動(dòng)前位置new-X自動(dòng)前位置old;
    X自動(dòng)前位置點(diǎn)位差值:=X自動(dòng)前位置new-POSTION_X[X_Axis_AutoAbNum];
    X自動(dòng)前位置差值絕對(duì)值:=ABS(X自動(dòng)前位置差值);
    X自動(dòng)前位置點(diǎn)位差值絕對(duì)值:=ABS(X自動(dòng)前位置點(diǎn)位差值);

    Y自動(dòng)前位置差值:=Y自動(dòng)前位置new-Y自動(dòng)前位置old;
    Y自動(dòng)前位置點(diǎn)位差值:=Y自動(dòng)前位置new-POSTION_Y[Y_Axis_AutoAbNum];
    Y自動(dòng)前位置差值絕對(duì)值:=ABS(Y自動(dòng)前位置差值);
    Y自動(dòng)前位置點(diǎn)位差值絕對(duì)值:=ABS(Y自動(dòng)前位置點(diǎn)位差值);
    
        Z自動(dòng)前位置差值:=Z自動(dòng)前位置new-Z自動(dòng)前位置old;
    Z自動(dòng)前位置點(diǎn)位差值:=Z自動(dòng)前位置new-POSTION_Z[Z_Axis_AutoAbNum];
    Z自動(dòng)前位置差值絕對(duì)值:=ABS(Z自動(dòng)前位置差值);
    Z自動(dòng)前位置點(diǎn)位差值絕對(duì)值:=ABS(Z自動(dòng)前位置點(diǎn)位差值);
    
        L自動(dòng)前位置差值:=L自動(dòng)前位置new-L自動(dòng)前位置old;
    L自動(dòng)前位置差值絕對(duì)值:=ABS(L自動(dòng)前位置差值);

END_IF;

IF M4=true AND X自動(dòng)前位置差值絕對(duì)值>E0.5  AND X自動(dòng)前位置點(diǎn)位差值絕對(duì)值>E0.5 THEN
           Alarm[86]:=TRUE;
END_IF;
IF M4=true AND Y自動(dòng)前位置差值絕對(duì)值>E0.5  AND Y自動(dòng)前位置點(diǎn)位差值絕對(duì)值>E0.5 THEN
           Alarm[87]:=TRUE;
END_IF;
IF M4=true AND Z自動(dòng)前位置差值絕對(duì)值>E0.5  AND Z自動(dòng)前位置點(diǎn)位差值絕對(duì)值>E0.5 THEN
           Alarm[88]:=TRUE;
END_IF;
IF M4=true AND L自動(dòng)前位置差值絕對(duì)值>E0.5  THEN
           Alarm[89]:=TRUE;
END_IF;
智趣黃sir
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 62 個(gè)
工控威望: 95 點(diǎn)
下載積分: 1762 分
在線(xiàn)時(shí)間: 29(小時(shí))
注冊(cè)時(shí)間: 2023-07-06
最后登錄: 2025-02-23
查看智趣黃sir的 主題 / 回貼
1樓  發(fā)表于: 41天前
payfsl這位大佬思路清晰,正解!
智趣黃sir
級(jí)別: 正式會(huì)員
精華主題: 0
發(fā)帖數(shù)量: 62 個(gè)
工控威望: 95 點(diǎn)
下載積分: 1762 分
在線(xiàn)時(shí)間: 29(小時(shí))
注冊(cè)時(shí)間: 2023-07-06
最后登錄: 2025-02-23
查看智趣黃sir的 主題 / 回貼
2樓  發(fā)表于: 40天前
圖片:
引用
引用第13樓hezhen880924于2025-01-17 08:47發(fā)表的  :
自動(dòng)運(yùn)行按停止,自動(dòng)打成手動(dòng),手動(dòng)操作完,再打自動(dòng)改下步號(hào)再啟動(dòng),軸會(huì)重新定位到目標(biāo)坐標(biāo)。
也可以比較之前坐標(biāo)狀態(tài)做提示,真的很簡(jiǎn)單,不知道你是不是遇到了特殊情況。
程序按數(shù)字步號(hào)比較運(yùn)行,很清晰,哪步有問(wèn)題就在觸摸屏把流程步號(hào)改成前一步號(hào)運(yùn)行。
步號(hào)運(yùn)行全是數(shù)字,流程好管理,數(shù)字可以定義動(dòng)作注釋?zhuān)胁⑿卸伎梢赃\(yùn)行。



我的步號(hào)沒(méi)有開(kāi)放出來(lái)可以修改,拍下急停,觸發(fā)STOP指令,同時(shí)報(bào)警也會(huì)把自動(dòng)運(yùn)行中M4這個(gè)復(fù)位掉,軸立刻停止,松開(kāi)急停,按下復(fù)位和啟發(fā),繼續(xù)自動(dòng)運(yùn)行�,F(xiàn)在的問(wèn)題是如果連續(xù)觸發(fā)急停,就會(huì)出現(xiàn)問(wèn)題,觸發(fā)一次沒(méi)關(guān)系。