玖玖玖视频-亚洲精品1卡2卡3卡-操欧美美女-真实国产乱子伦对白视频不卡-国产乱在线-大胸美女被吃奶爽死视频-久久亚洲美女精品国产精品-天堂在线www天堂在线-久久在精品线影院精品国产-国产又粗又长又大-欧美三级一区二区-超碰在线亚洲-天天cao在线-国产偷倩视频-亚洲啪

雪山飛狐
級別: 網絡英雄

精華主題: 0
發帖數量: 16097 個
工控威望: 17186 點
下載積分: 56487 分
在線時間: 1140(小時)
注冊時間: 2019-06-05
最后登錄: 2026-01-05
查看雪山飛狐的 主題 / 回貼
12樓  發表于: 2024-12-24 08:09
這個要采用中斷的方式去做。
本帖最近評分記錄:
  • 下載積分:+5(jony7788) 感謝分享!
    xy8896
    級別: 正式會員
    精華主題: 0
    發帖數量: 42 個
    工控威望: 92 點
    下載積分: 9761 分
    在線時間: 52(小時)
    注冊時間: 2023-06-23
    最后登錄: 2026-01-05
    查看xy8896的 主題 / 回貼
    13樓  發表于: 2024-12-24 08:19
    看是何時檢查開關信號,如起點檢查就簡單,運行中檢查后一個肯定會有加減速的,感應器用變址寫法,程序比較簡短
    夢雨天涯
    微信hui530527   &
    級別: 網絡英雄
    精華主題: 0
    發帖數量: 5041 個
    工控威望: 9988 點
    下載積分: 4304 分
    在線時間: 3564(小時)
    注冊時間: 2016-10-31
    最后登錄: 2026-01-05
    查看夢雨天涯的 主題 / 回貼
    14樓  發表于: 2024-12-24 15:07
    圖片:
    大概這個樣子,你覺得呢??
    本帖最近評分記錄:
  • 下載積分:+5(jony7788) 感謝分享!
  • 微信hui530527      b站賬號,夢雨天涯1991
    請不要隨意加我,不會隨便通過。
    工控技術交流QQ群942493953
    工控小c
    級別: 工控俠客
    精華主題: 0
    發帖數量: 614 個
    工控威望: 2425 點
    下載積分: 12402 分
    在線時間: 581(小時)
    注冊時間: 2022-10-14
    最后登錄: 2026-01-05
    查看工控小c的 主題 / 回貼
    15樓  發表于: 2024-12-24 16:14
    圖片:
    圖片:
    圖片:
    圖片:
    圖片:
    我也來湊湊熱鬧,偷個懶就不寫自動程序了,問題的關鍵就在于計算下一個首先為ON的開關距離本次停留的位置間距而已。如上圖1234,開關號和位置號從0開始。開關1.4.10為ON,在1號開始時2.3.不停留下次定位到4、增量為3份間距,4號開始時5.6.7.8.9.不停留下次定位到10、增量為6份間距,10號開始時11.0.不停留下次定位到1,增量為3份間距。如上圖5,僅有1號開關ON,則下次定位12份間距既一整圈重新定位到1號開關處。
    本帖最近評分記錄:
  • 下載積分:+2(nightblueblu) 好貼好貼!
  • 下載積分:+5(jony7788) 熱心助人!
    紅云123
    級別: 略有小成
    精華主題: 0
    發帖數量: 311 個
    工控威望: 381 點
    下載積分: 2894 分
    在線時間: 166(小時)
    注冊時間: 2020-09-22
    最后登錄: 2025-11-28
    查看紅云123的 主題 / 回貼
    16樓  發表于: 2024-12-24 17:05
    這個能不能實現
    附件: 0000.zip (182 K) 下載次數:26
    本帖最近評分記錄:
  • 下載積分:+5(jony7788) 熱心助人!
    jony7788
    級別: 工控俠客
    精華主題: 0
    發帖數量: 51 個
    工控威望: 2005 點
    下載積分: 4978 分
    在線時間: 256(小時)
    注冊時間: 2023-02-25
    最后登錄: 2026-01-04
    查看jony7788的 主題 / 回貼
    17樓  發表于: 2024-12-24 21:05
    引用
    引用第14樓夢雨天涯于2024-12-24 15:07發表的  :
    大概這個樣子,你覺得呢??


    有點這個意思。
    jony7788
    級別: 工控俠客
    精華主題: 0
    發帖數量: 51 個
    工控威望: 2005 點
    下載積分: 4978 分
    在線時間: 256(小時)
    注冊時間: 2023-02-25
    最后登錄: 2026-01-04
    查看jony7788的 主題 / 回貼
    18樓  發表于: 2024-12-24 21:15
    引用
    引用第16樓紅云123于2024-12-24 17:05發表的  :
    這個能不能實現


    我目前的方法同你的方法有點類似,用電機的脈沖數來判斷區間,效果不是很好,如果前面全部是開,后面全部是斷,還可以,間隔開斷的反應不過來。
    工控小c
    級別: 工控俠客
    精華主題: 0
    發帖數量: 614 個
    工控威望: 2425 點
    下載積分: 12402 分
    在線時間: 581(小時)
    注冊時間: 2022-10-14
    最后登錄: 2026-01-05
    查看工控小c的 主題 / 回貼
    19樓  發表于: 2024-12-24 21:24
    引用
    引用第18樓jony7788于2024-12-24 21:15發表的  :


    我目前的方法同你的方法有點類似,用電機的脈沖數來判斷區間,效果不是很好,如果前面全部是開,后面全部是斷,還可以,間隔開斷的反應不過來。

    可以試試我的那個,當前點位停留0.5秒的時候直接判斷下個點去哪里
    nightblueblu
    道阻且長,窮且益堅。
    級別: 論壇先鋒
    精華主題: 0
    發帖數量: 1050 個
    工控威望: 1871 點
    下載積分: 309 分
    在線時間: 1166(小時)
    注冊時間: 2017-02-09
    最后登錄: 2025-12-23
    查看nightblueblu的 主題 / 回貼
    20樓  發表于: 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
    本帖最近評分記錄:
  • 下載積分:+5(jony7788) 熱心助人!
  • Your happiness is everything.
    jony7788
    級別: 工控俠客
    精華主題: 0
    發帖數量: 51 個
    工控威望: 2005 點
    下載積分: 4978 分
    在線時間: 256(小時)
    注冊時間: 2023-02-25
    最后登錄: 2026-01-04
    查看jony7788的 主題 / 回貼
    21樓  發表于: 2025-02-23 15:12
    請豆包幫忙寫的,調整幾次之后,可以正常運行,用的是Arduino板子,豆包寫梯形圖的能力還不強,寫這種編程語言厲害些。
    // 定義步進電機控制引腳
    const int stepPin = 2;
    const int dirPin = 3;

    // 定義啟動按鍵引腳
    const int startButtonPin = 4;

    // 定義 12 個開關引腳
    const int switchPins[12] = {5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1, A2};

    // 定義原點感應點位引腳
    const int originPin = A3;

    // 定義料件感應點位引腳
    const int materialSensorPin = A4;

    // 定義振動盤點位引腳
    const int vibrationDiskPin = A5;

    // 定義步進電機參數
    const int stepsPerRevolution = 1000;  // 步進電機每轉脈沖數

    // 定義速度參數(毫秒)
    const unsigned long normalSpeedDelay = 1;  // 正常速度延遲
    const unsigned long fastSpeedDelay = 0.2;  // 快速速度延遲
    const unsigned long returnSpeedDelay = 0.5; // 返回原點速度延遲

    // 定義停留時間(毫秒)
    const unsigned long pauseTime = 500;

    // 定義變量
    bool startButtonState = false;
    bool lastStartButtonState = false;
    bool isRunning = false;
    bool isReturning = false;
    int currentSegment = 0;
    int remainingSteps = stepsPerRevolution;
    unsigned long lastStepTime = 0;
    unsigned long lastPauseTime = 0;
    bool isPausing = false;

    void setup() {
      // 初始化步進電機控制引腳為輸出模式
      pinMode(stepPin, OUTPUT);
      pinMode(dirPin, OUTPUT);

      // 初始化啟動按鍵引腳為輸入模式,并啟用上拉電阻
      pinMode(startButtonPin, INPUT_PULLUP);

      // 初始化 12 個開關引腳為輸入模式,并啟用上拉電阻
      for (int i = 0; i < 12; i++) {
        pinMode(switchPins, INPUT_PULLUP);
      }

      // 初始化原點感應點位引腳為輸入模式,并啟用上拉電阻
      pinMode(originPin, INPUT_PULLUP);

      // 初始化料件感應點位引腳為輸入模式,并啟用上拉電阻
      pinMode(materialSensorPin, INPUT_PULLUP);

      // 初始化振動盤點位引腳為輸出模式
      pinMode(vibrationDiskPin, OUTPUT);

      // 設置初始方向
      digitalWrite(dirPin, HIGH);
    }

    void loop() {
      // 讀取啟動按鍵狀態
      startButtonState = digitalRead(startButtonPin);

      // 檢測啟動按鍵按下事件
      if (startButtonState == LOW && lastStartButtonState == HIGH) {
        isRunning = true;
        currentSegment = 0;
        remainingSteps = stepsPerRevolution;
        isReturning = false;
      }

      // 保存上一次啟動按鍵狀態
      lastStartButtonState = startButtonState;

      // 控制振動盤
      bool materialDetected = digitalRead(materialSensorPin) == LOW;
      digitalWrite(vibrationDiskPin, !materialDetected);

      // 如果電機正在運行
      if (isRunning) {
        if (isReturning) {
          unsigned long currentTime = millis();
          if (currentTime - lastStepTime >= returnSpeedDelay) {
            digitalWrite(dirPin, LOW); // 設置返回方向
            digitalWrite(stepPin, HIGH);
            delayMicroseconds(10);  // 確保脈沖寬度
            digitalWrite(stepPin, LOW);
            lastStepTime = currentTime;

            if (digitalRead(originPin) == LOW) {
              isRunning = false;
              isReturning = false;
              digitalWrite(dirPin, HIGH); // 恢復正向
            }
          }
        } else {
          if (isPausing) {
            if (millis() - lastPauseTime >= pauseTime) {
              isPausing = false;
            }
          } else {
            unsigned long currentTime = millis();
            bool switchState = digitalRead(switchPins[currentSegment]);
            unsigned long speedDelay = switchState ? normalSpeedDelay : fastSpeedDelay;

            if (currentTime - lastStepTime >= speedDelay) {
              if (remainingSteps > 0) {
                digitalWrite(stepPin, HIGH);
                delayMicroseconds(10);  // 確保脈沖寬度
                digitalWrite(stepPin, LOW);
                remainingSteps--;
                lastStepTime = currentTime;
              }
              if (remainingSteps * 12 <= (11 - currentSegment) * stepsPerRevolution) {
                if (switchState) {
                  isPausing = true;
                  lastPauseTime = currentTime;
                }
                currentSegment++;
              }
              if (currentSegment >= 12) {
                isReturning = true;
              }
            }
          }
        }
      }

      // 短暫延遲以減少 CPU 負載
      delay(1);
    }
    wujie2163
    級別: 探索解密
    精華主題: 0
    發帖數量: 96 個
    工控威望: 129 點
    下載積分: 630 分
    在線時間: 28(小時)
    注冊時間: 2020-11-10
    最后登錄: 2025-11-20
    查看wujie2163的 主題 / 回貼
    22樓  發表于: 2025-03-03 11:19
    速度快了步進電機停有辦法這么精準的停下來么??不需要用剎車么??

    主站蜘蛛池模板: 日韩视频一区二区 | 国产亚洲精品久久久久久移动网络 | 女人的天堂网站 | 亚洲欧美一区二区成人片 | 欧洲无线码免费一区 | 香蕉性视频 | 亚洲最大激情网 | 欧美日韩免费一区中文 | 91极品身材尤物theporn | 亚洲精品一区二区三区在线观看 | 少妇被躁爽到高潮 | 永久精品动漫网站入口大全 | 久久精品高清 | 成人综合色站 | 国产www免费观看 | 午夜福利18以下勿进免费 | 欧美成人综合 | 日韩av有码 | 欧美一道本一区二区三区 | 亚洲国产日韩成人a在线欧美 | 亚洲免费视频免在线观看 | 欧美1234区| 国产精品伦子伦 | 台湾佬在线 | 爆操91| 欧美最猛黑人xxxx | 色狠狠久久av大岛优香 | 欧美最骚最疯日b视频观看 尤物影院在线观看 | 日日碰狠狠添天天爽五月婷 | 日韩资源在线观看 | 在线观看免费高清在线观看 | 日韩精品视频一区二区三区 | 国产精品aⅴ视频在线播放 好男人社区神马在线观看www | 久久国产精品一国产精品 | 精品伊人久久久大香线蕉天堂 | 一区二区三区少妇 | 国产亚洲欧美在线精品 | 国内精品久久久久久tv | 欧美亚洲日韩不卡在线在线观看 | 国产区av| 伊人春色在线观看 | 久久不见久久见免费影院3 亚洲中文久久精品无码照片 | 四虎国产精品一区二区 | 在线观看欧美日韩 | 国产乡下妇女做爰视频 | 国产在视频精品线观看 | 国产精品18久久久久久麻辣 | 亚洲香蕉在线视频 | 国产女人18毛片水真多18精品 | 国产自美女在线精品尤物 | 国产免费av片在线 | 国产热视频 | 好看的国产精品 | 2022av在线 | 中文成人无码精品久久久不卡 | 亚洲卡一 | 国内精品卡一卡二卡三 | 999在线视频精品免费播放观看 | 日韩国产成人无码av毛片蜜柚 | 国内精品自国内精品自线 | 99这里有精品热视频 | 国产探花在线精品一区二区 | 欧美性色黄| 男男做爰猛烈啪啪高 | 精品视频一区二区在线观看 | 日本少妇寂寞少妇aaa | 无遮挡边吃摸边吃奶边做 | 高清熟女国产一区二区三区 | 久久图库 | 狠狠狠狠干 | 亚洲精品色午夜无码专区日韩 | 国模无码一区二区三区 | 久久综合色一综合色88欧美 | 麻豆国产人妻欲求不满谁演的 | 熟妇女人妻丰满少妇中文字幕 | 无码区国产区在线播放 | 天堂av无码av在线a√ | 少妇特黄a一区二区三区 | 国产午夜片无码区在线播放 | 亚洲天堂网址 | 精品www日韩熟女人妻 | 2014av天堂无码一区 | 国产一国产二国产三 | 黄视频免费看在线 | 一区二区人妻无码欧美 | 日本不卡一区二区三区视频 | 一区二区三区午夜 | 国产第3页 | 不卡无码av一区二区三区 | 青青操视频在线播放 | www.97cao.com| www.九九热 | 日韩在线一 | 情人伊人久久综合亚洲 | 午夜理论片yy8860y影院 | 91精彩视频 | 国产亚洲精品久久久久久久久 | 巨爆乳无码视频在线观看 | 免费无码又爽又刺激软件下载 |