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

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

        
        

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


        自動模式下降沿(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自動前位置點位差值:=X自動前位置new-POSTION_X[X_Axis_AutoAbNum];
            X自動前位置差值絕對值:=ABS(X自動前位置差值);
            X自動前位置點位差值絕對值:=ABS(X自動前位置點位差值);

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

        END_IF;

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

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

        1. **增加急停狀態檢測**:在您的程序中增加一個變量來檢測急停狀態,當急停按鈕被按下時,這個變量會被設置為真。

        2. **在急停狀態下跳過位置差值計算**:在您的程序中,當檢測到急停狀態時,跳過位置差值的計算和報警觸發。

        3. **急;謴秃笾刂梦恢**:當急停狀態被解除后,重置軸的位置記錄,以便下一次從手動切換到自動時能夠正確計算位置差值。

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

        ```pascal
        VAR
            急停狀態: BOOL; (* 急停狀態標志 *)
            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自動前位置點位差值: REAL;
            Y自動前位置點位差值: REAL;
            Z自動前位置點位差值: REAL;
            X自動前位置差值絕對值: REAL;
            Y自動前位置差值絕對值: REAL;
            Z自動前位置差值絕對值: REAL;
            L自動前位置差值絕對值: REAL;
            X自動前位置點位差值絕對值: REAL;
            Y自動前位置點位差值絕對值: REAL;
            Z自動前位置點位差值絕對值: REAL;
        END_VAR

        自動模式下降沿(CLK := M3, Q => );
        IF 自動模式下降沿.Q THEN
            IF NOT 急停狀態 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 急停狀態 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自動前位置點位差值 := X自動前位置new - POSTION_X[X_Axis_AutoAbNum];
                X自動前位置差值絕對值 := ABS(X自動前位置差值);
                X自動前位置點位差值絕對值 := ABS(X自動前位置點位差值);

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

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

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

                IF M4 = TRUE AND X自動前位置差值絕對值 > E0.5 AND X自動前位置點位差值絕對值 > E0.5 THEN
                    Alarm[86] := TRUE;
                END_IF;
                IF M4 = TRUE AND Y自動前位置差值絕對值 > E0.5 AND Y自動前位置點位差值絕對值 > E0.5 THEN
                    Alarm[87] := TRUE;
                END_IF;
                IF M4 = TRUE AND Z自動前位置差值絕對值 > E0.5 AND Z自動前位置點位差值絕對值 > 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;

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

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

        請注意,您需要根據您的實際硬件和軟件環境調整上述代碼。希望這些修改能夠幫助您解決問題。
        本帖最近評分記錄:
      2. 下載積分:+1(一輪明月) X動前位置點位差值這個的 ..
      3. 下載積分:+2(智趣黃sir) 謝謝大佬,思路清晰
      4. 三人行必有我師焉,擇其善者而從之 ,學而不思則罔,思而不學則殆

        主站蜘蛛池模板: 青青青久热国产精品视频| www.一区二区三区在线 | 中国 | 国产普通话对白刺激| 2019香蕉在线观看直播视频| av在线播放日韩亚洲欧我不卡| 亚洲日本中文字幕区| 色悠悠国产精品免费观看| 日韩av裸体在线播放| 成人无码区在线观看| 激情人妻中出中文字幕一区| 国产成人精选在线观看不卡| 少妇上班人妻精品偷人| 狠狠久久五月综合色和啪| 日韩不卡一区二区三区四区| 全免费A级毛片免费看无码| 99热成人精品热久久66| 黑人巨大videos极度另类| 被黑人玩得站不起来| 日韩深夜免费在线观看| 免费人成视频x8x8日本| 日本区二区三区不卡视频| 无码国产精品一区二区免费式直播| 国内熟妇人妻色在线三级| 欧美三级不卡在线观线看高清| 最近中文国语字幕在线播放| 国产最新进精品视频| 中文亚洲爆乳av无码专区| 94人妻少妇偷人精品| 亚洲综合中文字幕久久| 精品亚洲精品日韩精品| 欧美日韩人成综合在线播放| 99麻豆久久精品一区二区 | 边吃奶边摸下我好爽视频免费| 国产精品三级中文字幕| 亚洲国产精品电影人久久网站| 九九热在线精品视频免费| jizzjizz欧美69巨大| 好吊视频一区二区三区人妖| 午夜综合网| 久久国产精品乱子乱精品| 激情在线网|