• <cite id="uwv89"></cite>
      1. 亚洲综合小综合中文字幕,国产久爱免费精品视频,精品国产品香蕉在线,国产午夜精品在人线播放,精品一二三四区在线观看,国产成人无码免费看视频软件 ,色欲久久人妻内射,午夜在线观看成人av
        jony7788
        級別: 工控俠客
        精華主題: 0
        發帖數量: 51 個
        工控威望: 2005 點
        下載積分: 3278 分
        在線時間: 250(小時)
        注冊時間: 2023-02-25
        最后登錄: 2025-08-31
        查看jony7788的 主題 / 回貼
        樓主  發表于: 2024-12-22 20:41
        圖片:
        一圈360度,分為12個段點,每個段點30度,每個段點都有一個開關。
        當開關打開的區間,步進電機以正常速度旋轉,并在段點停留0.5秒,沒有打開段點的區間,以快于正常速度進行旋轉,且不做停留。

        以下例,1、2,5、6,9,10這幾個區間是正常速度,其它區間是快速通過。
        償了下幾種方式,效果都不好,大多都是快速時跑過了頭,把正常區間都越過了。
        PLC是三菱FX3U

        希望老師們能指點下思路,感謝。

        nightblueblu
        道阻且長,窮且益堅。
        級別: 論壇先鋒
        精華主題: 0
        發帖數量: 1044 個
        工控威望: 1867 點
        下載積分: 301 分
        在線時間: 1162(小時)
        注冊時間: 2017-02-09
        最后登錄: 2025-08-30
        查看nightblueblu的 主題 / 回貼
        1樓  發表于: 2024-12-26 17:46
        寫了一個,沒有測試,實現方式和15樓基本一致,上代碼
        ----------------------------------------------------------------------------分割線-------------------------------------------------------------
        FUNCTION_BLOCK FB_啟動定位
        (*一圈360度,分為12個段點,每個段點30度,每個段點都有一個開關,每個開關可以任意設置ON和OFF狀態。
          當開關打開的區間,步進電機以正常速度旋轉,并在段點停留0.5秒,
          沒有打開段點的區間,以快于正常速度進行旋轉,且不做停留*)
        VAR_INPUT      
            Sen1  :BOOL;//位置狀態設置1
            Sen2  :BOOL;
            Sen3  :BOOL;
            Sen4  :BOOL;
            Sen5  :BOOL;
            Sen6  :BOOL;
            Sen7  :BOOL;
            Sen8  :BOOL;
            Sen9  :BOOL;
            Sen10:BOOL;
            Sen11:BOOL;
            Sen12:BOOL;//位置狀態設置12

            Start          :BOOL;//啟動
                Stop          :BOOL;//停止
            Auto          :BOOL;//手自,TRUE:自動;FALSE:手動
            Done         :BOOL;//定位完成信號
            Now_Ang  :REAL;//當前角度
            Tim            :REAL;//TRUE位停頓時間,單位:s
        END_VAR
        VAR_OUTPUT
            rRun_F    :REAL;//快速運行距離(FALSE段角度)
            bRun_F   :BOOL;//快速定位啟動(FALSE段)
            rRun_T    :REAL;//正常速度運行距離(TRUE段角度)
            bRun_T   :BOOL;//正常速定位啟動(TRUE段)        
        END_VAR
        VAR    
                Pto                  :BOOL;//定位啟動信號
            nums:INT        :=12;//位置個數
            Now_posi        :INT;//轉盤當前位置
            StatsAry          :ARRAY[1..12]OF BOOL;//各位置檢測傳感器狀態存儲數組
            rtri                   :BOOL;//位置計算觸發
            i,j                     :INT;//循環變量
            False_Gap      :INT;//距離下一個FALSE信號需要轉動的位置個數
            num                     :INT;//定位中的段記錄
            rstr,rsto,rdon    :R_TRIG;//啟動,停止,轉動一個角度的觸發沿
            rton                  :TON;//間隔定時
        END_VAR
        ----------------------------------------------------------------------------分割線-------------------------------------------------------------
        (*==============================參數初始化==============================*)
        StatsAry[1]:=Sen1;StatsAry[2]:=Sen2;StatsAry[3]:=Sen3;StatsAry[4]:=Sen4;StatsAry[5]:=Sen5;StatsAry[6]:=Sen6;
        StatsAry[7]:=Sen7;StatsAry[8]:=Sen8;StatsAry[9]:=Sen9;StatsAry[10]:=Sen10;StatsAry[11]:=Sen11;StatsAry[12]:=Sen12;

        rRun_T:=(2*3.14159265)/nums;
        Now_posi:=REAL_TO_INT((Now_Ang*nums)/(2*3.14159265))+1;
        (*==============================觸發沿==============================*)
        rstr(CLK:=Start);//啟動沿
        rsto(CLK:=Stop);//停止沿
        rdon(CLK:=Done);//定位完成沿
        rton(IN:=num=2,PT:=REAL_TO_TIME(Tim*1000.0));//間隔定時

        IF rsto.Q OR (rton.Q AND NOT Auto) THEN//停止或者在手動狀態下單次定位結束
            bRun_F:=FALSE;
            bRun_T:=FALSE;
            num:=0;
        END_IF
        IF rdon.Q THEN//對定位次數進行計數
            num:=num+1;
        END_IF
        (*==============================尋找下一次轉動的TRUE信號的位置==============================*)
        IF rstr.Q OR (rton.Q AND Auto)THEN//啟動計算
            num:=0;
            rtri:=TRUE;
        END_IF
        IF rtri THEN
            IF Now_posi<>nums THEN//TRUE位置在當前位置前方
                FOR i:=Now_posi+1 TO nums BY 1 DO
                    IF StatsAry THEN
                        False_Gap:=i-Now_posi-1;//TRUE位置在當前位置前方
                        rRun_F:=rRun_T*False_Gap;    
                        Pto:=TRUE;
                        rtri:=FALSE;
                        EXIT;
                    END_IF
                END_FOR
            END_IF
            IF Now_posi<>1 THEN//TRUE位置在當前位置后方
                FOR j:=1 TO Now_posi BY 1 DO
                    IF StatsAry[j] THEN
                        False_Gap:=nums-j+Now_posi-1;//TRUE位置在當前位置后方
                        rRun_F:=rRun_T*False_Gap;
                        Pto:=TRUE;
                        rtri:=FALSE;
                        EXIT;
                    END_IF
                END_FOR
            END_IF
        END_IF

        (*==============================執行邏輯==============================*)
        IF Pto THEN//啟動定位,或自動狀態下定時器達到計時
            bRun_T:=FALSE;
            bRun_F:=TRUE;
        END_IF
        IF num=1 THEN//完成FALSE段的定位,進行TRUE段定位
            bRun_F:=FALSE;
            bRun_T:=TRUE;
        END_IF
        本帖最近評分記錄:
      2. 下載積分:+5(jony7788) 熱心助人!
      3. Your happiness is everything.

        主站蜘蛛池模板: 久久午夜无码鲁丝片直播午夜精品| 欧美精品在线观看视频 | 少妇高潮尖叫黑人激情在线| 亚欧洲乱码视频一二三区| 毛片无遮挡高清免费| 亚洲av午夜成人片| 久久这里只精品热免费99| 福利一区二区1000| 伊人久久大香线蕉aⅴ色| 一区二区三区在线色视频| 韩国精品久久久久久无码| 色久综合色久综合色久综合| 曰韩亚洲AV人人夜夜澡人人爽| 亚洲中文字幕成人综合网| 久久久久久久波多野结衣高潮| 成人乱码一区二区三区四区| 人妻av无码系列一区二区三区| 亚洲色最新高清AV网站| jizzjizz日本高潮喷水| 男人添女人下部高潮视频| 国产日韩综合av在线| 色老99久久精品偷偷鲁| 精品日本乱一区二区三区| 99在线小视频| 国产一区二区日韩在线| 久久亚洲精品天天综合网| 日韩av综合中文字幕| 麻豆蜜桃伦理一区二区三区| 乱码中字在线观看一二区| 国产高在线精品亚洲三区| 亚洲成a人无码av波多野| 妖精视频亚州无吗高清版| 日韩精品 在线 国产 丝袜| 人成午夜免费大片| 亚洲精品国产综合麻豆久久99| 日本高清中文字幕免费一区二区| 91人妻熟妇在线视频| 日韩有码中文字幕国产| 成人自拍短视频午夜福利| 2020国产欧洲精品网站| 国产蜜臀在线一区二区三区|