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

        主站蜘蛛池模板: 办公室强奷漂亮少妇视频| 伊人色综合久久天天小片| 精品国产小视频在线观看| 国产成人精品一区二区三| 日夜啪啪一区二区三区| 亚洲高潮喷水无码AV电影| 国产迷姦播放在线观看| 小泽玛利亚一区二区在线观看| 亚洲第一无码xxxxxx| 色吊丝二区三区中文字幕| 国产69堂免费视频| 综合图区亚洲另类偷窥| 亚洲偷自拍国综合| 亚洲精品色午夜无码专区日韩| 91色老久久精品偷偷性色| 在线 欧美 中文 亚洲 精品| 久久婷婷综合色丁香五月| 无码视频伊人| 女同亚洲精品一区二区三| 丰满少妇高潮无套内谢| 国产成人AV在线播放不卡| 蜜臀av午夜精品福利| 国内精品久久久久影院薰衣草| 国产精品一区二区久久精品| 亚洲AV无码久久精品成人| 国产99在线 | 免费| 人人超人人超碰超国产| 亚洲熟妇自偷自拍另欧美| 亚州中文字幕一区二区| 亚洲日韩精品欧美一区二区| 国内精品免费久久久久电影院97| 午夜男女爽爽影院在线| 亚洲天堂一区二区三区四区| 国产偷自视频区视频| 三级4级全黄60分钟| 男人j进入女人j内部免费网站| 无码AV中文字幕久久专区| 久久精品国产99麻豆蜜月| 波多野结衣久久一区二区| 亚洲中文字幕在线二页| 欧美www在线观看|