<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. 三人行必有我師焉,擇其善者而從之 ,學而不思則罔,思而不學則殆

        主站蜘蛛池模板: 欧美亚洲h在线一区二区| 国产成人综合95精品视频| 深夜av在线免费观看| 国外欧美一区另类中文字幕| 久久国产精品二国产人妻| 国产精品久久人人做人人爽| 三叶草欧洲码在线| 综合色一色综合久久网| 成人国产一区二区精品| 精品久久丝袜熟女一二三| 国产在线啪| 亚洲一本大道在线| 人妻丝袜无码专区视频网站| 天天摸日日添狠狠添婷婷| 久久亚洲精品中文字幕波多野结衣| 视频一区二区三区刚刚碰| 精品一卡2卡三卡4卡乱码精品视频 | 女同在线观看亚洲国产精品| 免费吃奶摸下激烈视频| 日韩一区在线中文字幕| 99九九视频高清在线| 日韩内射美女人妻一区二区三区 | 欧美高清一区三区在线专区| 国产很色很黄很大爽的视频| √天堂资源在线中文8在线最新版 亚洲午夜成人精品电影在线观看 日本高清视频网站www | 亚洲高清免费在线观看| 中文字幕在线永久免费视频| 无码国产精品免费看| 国产在线不卡精品网站| 中文字幕欧美日韩| av一区二区中文字幕| 性xxxx视频播放| 激情综合色综合啪啪开心| 亚洲精品国产字幕久久不卡| 国内精品免费久久久久电影院97| 日产乱码卡一卡2卡三卡四| 中文字幕自拍偷拍福利视频| 国产亚洲精品成人aa片新蒲金| 一本大道av人久久综合| 97久久精品人人做人人爽| 18禁免费无码无遮挡网站 |