<big id="a5mua"></big>

      <tt id="a5mua"><dfn id="a5mua"></dfn></tt>
      <wbr id="a5mua"><sup id="a5mua"></sup></wbr>

        
        

      1. 亚洲综合小综合中文字幕,国产久爱免费精品视频,精品国产品香蕉在线,国产午夜精品在人线播放,精品一二三四区在线观看,国产成人无码免费看视频软件 ,色欲久久人妻内射,午夜在线观看成人av
        智趣黃sir
        級別: 探索解密
        精華主題: 0
        發(fā)帖數(shù)量: 76 個(gè)
        工控威望: 112 點(diǎn)
        下載積分: 1809 分
        在線時(shí)間: 38(小時(shí))
        注冊時(shí)間: 2023-07-06
        最后登錄: 2025-10-25
        查看智趣黃sir的 主題 / 回貼
        樓主  發(fā)表于: 2024-12-16 14:22
        1,采用匯川的EASy521,程序想實(shí)現(xiàn)自動切手動,只動氣缸,怕操作者移動軸,因?yàn)檩S如果移動的話,沒法監(jiān)測到是否移動,再切回自動的話,會導(dǎo)致撞車。
        本人的思路是如以下程序,切到手動的M3下降沿,記錄當(dāng)前位置,再切回自動,進(jìn)行差值計(jì)算,只能實(shí)現(xiàn)部分,還請各位大神指點(diǎn)。M3是自動模式,M4是自動運(yùn)行中。現(xiàn)在的問題是可以實(shí)現(xiàn)部分功能,但是拍急停的話,就會出現(xiàn)報(bào)警,因?yàn)榧蓖E南潞螅鱾(gè)軸就立即停止。


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

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

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

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

        END_IF;

        IF M4=true AND X自動前位置差值絕對值>E0.5  AND X自動前位置點(diǎn)位差值絕對值>E0.5 THEN
                   Alarm[86]:=TRUE;
        END_IF;
        IF M4=true AND Y自動前位置差值絕對值>E0.5  AND Y自動前位置點(diǎn)位差值絕對值>E0.5 THEN
                   Alarm[87]:=TRUE;
        END_IF;
        IF M4=true AND Z自動前位置差值絕對值>E0.5  AND Z自動前位置點(diǎn)位差值絕對值>E0.5 THEN
                   Alarm[88]:=TRUE;
        END_IF;
        IF M4=true AND L自動前位置差值絕對值>E0.5  THEN
                   Alarm[89]:=TRUE;
        END_IF;
        payfsl
        級別: 工控俠客
        精華主題: 2 篇
        發(fā)帖數(shù)量: 2629 個(gè)
        工控威望: 2913 點(diǎn)
        下載積分: 40148 分
        在線時(shí)間: 490(小時(shí))
        注冊時(shí)間: 2010-08-03
        最后登錄: 2025-11-28
        查看payfsl的 主題 / 回貼
        1樓  發(fā)表于: 2024-12-30 19:49
        您的程序邏輯是在自動模式切換到手動模式時(shí)記錄軸的位置,然后從手動模式切換回自動模式時(shí)計(jì)算位置差值,如果差值超過設(shè)定的閾值,則觸發(fā)報(bào)警。這個(gè)邏輯是合理的,但是您提到的問題是在急停情況下會出現(xiàn)報(bào)警,因?yàn)榧蓖䦟?dǎo)致軸立即停止,這可能會導(dǎo)致位置差值計(jì)算出現(xiàn)異常。

        為了解決這個(gè)問題,您可以考慮以下幾個(gè)步驟:

        1. **增加急停狀態(tài)檢測**:在您的程序中增加一個(gè)變量來檢測急停狀態(tài),當(dāng)急停按鈕被按下時(shí),這個(gè)變量會被設(shè)置為真。

        2. **在急停狀態(tài)下跳過位置差值計(jì)算**:在您的程序中,當(dāng)檢測到急停狀態(tài)時(shí),跳過位置差值的計(jì)算和報(bào)警觸發(fā)。

        3. **急停恢復(fù)后重置位置**:當(dāng)急停狀態(tài)被解除后,重置軸的位置記錄,以便下一次從手動切換到自動時(shí)能夠正確計(jì)算位置差值。

        以下是修改后的程序示例:

        ```pascal
        VAR
            急停狀態(tài): BOOL; (* 急停狀態(tài)標(biāo)志 *)
            X自動前位置old: REAL;
            Y自動前位置old: REAL;
            Z自動前位置old: REAL;
            L自動前位置old: REAL;
            X自動前位置new: REAL;
            Y自動前位置new: REAL;
            Z自動前位置new: REAL;
            L自動前位置new: REAL;
            X自動前位置差值: REAL;
            Y自動前位置差值: REAL;
            Z自動前位置差值: REAL;
            L自動前位置差值: REAL;
            X自動前位置點(diǎn)位差值: REAL;
            Y自動前位置點(diǎn)位差值: REAL;
            Z自動前位置點(diǎn)位差值: REAL;
            X自動前位置差值絕對值: REAL;
            Y自動前位置差值絕對值: REAL;
            Z自動前位置差值絕對值: REAL;
            L自動前位置差值絕對值: REAL;
            X自動前位置點(diǎn)位差值絕對值: REAL;
            Y自動前位置點(diǎn)位差值絕對值: REAL;
            Z自動前位置點(diǎn)位差值絕對值: REAL;
        END_VAR

        自動模式下降沿(CLK := M3, Q => );
        IF 自動模式下降沿.Q THEN
            IF NOT 急停狀態(tài) THEN
                X自動前位置old := X_Axis.fActPosition;
                Y自動前位置old := Y_Axis.fActPosition;
                Z自動前位置old := Z_Axis.fActPosition;
                L自動前位置old := Lift_Axis.fActPosition;
            END_IF;
        END_IF;

        自動模式上升沿(CLK := M4, Q => );
        IF 自動模式上升沿.Q THEN
            IF NOT 急停狀態(tài) THEN
                X自動前位置new := X_Axis.fActPosition;
                Y自動前位置new := Y_Axis.fActPosition;
                Z自動前位置new := Z_Axis.fActPosition;
                L自動前位置new := Lift_Axis.fActPosition;

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

                Y自動前位置差值 := Y自動前位置new - Y自動前位置old;
                Y自動前位置點(diǎn)位差值 := Y自動前位置new - POSTION_Y[Y_Axis_AutoAbNum];
                Y自動前位置差值絕對值 := ABS(Y自動前位置差值);
                Y自動前位置點(diǎn)位差值絕對值 := ABS(Y自動前位置點(diǎn)位差值);

                Z自動前位置差值 := Z自動前位置new - Z自動前位置old;
                Z自動前位置點(diǎn)位差值 := Z自動前位置new - POSTION_Z[Z_Axis_AutoAbNum];
                Z自動前位置差值絕對值 := ABS(Z自動前位置差值);
                Z自動前位置點(diǎn)位差值絕對值 := ABS(Z自動前位置點(diǎn)位差值);

                L自動前位置差值 := L自動前位置new - L自動前位置old;
                L自動前位置差值絕對值 := ABS(L自動前位置差值);

                IF M4 = TRUE AND X自動前位置差值絕對值 > E0.5 AND X自動前位置點(diǎn)位差值絕對值 > E0.5 THEN
                    Alarm[86] := TRUE;
                END_IF;
                IF M4 = TRUE AND Y自動前位置差值絕對值 > E0.5 AND Y自動前位置點(diǎn)位差值絕對值 > E0.5 THEN
                    Alarm[87] := TRUE;
                END_IF;
                IF M4 = TRUE AND Z自動前位置差值絕對值 > E0.5 AND Z自動前位置點(diǎn)位差值絕對值 > E0.5 THEN
                    Alarm[88] := TRUE;
                END_IF;
                IF M4 = TRUE AND L自動前位置差值絕對值 > E0.5 THEN
                    Alarm[89] := TRUE;
                END_IF;
            END_IF;
        END_IF;

        (* 急停按鈕被按下時(shí)設(shè)置急停狀態(tài) *)
        急停按鈕按下(CLK := E-Stop, Q => );
        IF 急停按鈕按下.Q THEN
            急停狀態(tài) := TRUE;
        END_IF;

        (* 急停按鈕釋放后重置急停狀態(tài)和軸位置 *)
        急停按鈕釋放(CLK := E-Stop, Q => );
        IF 急停按鈕釋放.Q THEN
            急停狀態(tài) := FALSE;
            X自動前位置old := X_Axis.fActPosition;
            Y自動前位置old := Y_Axis.fActPosition;
            Z自動前位置old := Z_Axis.fActPosition;
            L自動前位置old := Lift_Axis.fActPosition;
        END_IF;
        ```

        請注意,您需要根據(jù)您的實(shí)際硬件和軟件環(huán)境調(diào)整上述代碼。希望這些修改能夠幫助您解決問題。
        本帖最近評分記錄:
      2. 下載積分:+1(一輪明月) X動前位置點(diǎn)位差值這個(gè)的 ..
      3. 下載積分:+2(智趣黃sir) 謝謝大佬,思路清晰
      4. 三人行必有我?guī)熝桑瑩衿渖普叨鴱闹?,學(xué)而不思則罔,思而不學(xué)則殆

        主站蜘蛛池模板: 国产女人18毛片水真多1| 国产肥臀视频一区二区三区 | 亚洲无码精品视频| 最新国产麻豆aⅴ精品无| 好男人社区资源| 依依成人精品视频在线观看 | 噜噜噜噜私人影院| 国产成人AV性色在线影院| 无码国产成人午夜电影在线观看| 国产精品无码在线看| 一本伊大人香蕉久久网手机| 国产精品毛片av999999| 亚洲a免费| 日本久久一区二区三区高清 | 天堂va欧美ⅴa亚洲va在线| 亚洲精品码中文在线观看| 国产中文字幕精品视频| 国产精品自在线拍国产| 国产主播一区二区三区| 婷婷五月综合丁香在线| 男女肉粗暴进入120秒视频| 国产精品色呦呦在线观看| 人妻中文字幕亚洲精品| 色悠悠国产精品免费在线| 亚洲综合精品中文字幕| 中文字幕va一区二区三区| 韩国精品一区二区三区| 狠狠躁天天躁中文字幕无码| 777米奇色狠狠俺去啦| 亚洲人成无码网站18禁| 福利一区二区不卡国产| 亚洲AV无码一二区三区在线播放| 国产精品亚洲一区二区在| 国产成人一区二区三区视频免费| 99久久机热/这里只有精品| 日日噜噜夜夜狠狠视频| 日本黄网站三级三级三级| 日韩有码中文在线观看| 中文字幕无码白丝袜| 精品中文人妻中文字幕| 精品欧美成人高清在线观看|