国产CHINESE男男GAYGAY免费网站_日本在线一区二区三区_欧美大屁股xxxx_国产xxx精品视频大全_一区二区视频国产_人人爱国产

jony7788
級別: 工控俠客
精華主題: 0
發帖數量: 50 個
工控威望: 2003 點
下載積分: 2113 分
在線時間: 240(小時)
注冊時間: 2023-02-25
最后登錄: 2025-05-29
查看jony7788的 主題 / 回貼
樓主  發表于: 2024-12-22 20:41
圖片:
一圈360度,分為12個段點,每個段點30度,每個段點都有一個開關。
當開關打開的區間,步進電機以正常速度旋轉,并在段點停留0.5秒,沒有打開段點的區間,以快于正常速度進行旋轉,且不做停留。

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

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

jony7788
級別: 工控俠客
精華主題: 0
發帖數量: 50 個
工控威望: 2003 點
下載積分: 2113 分
在線時間: 240(小時)
注冊時間: 2023-02-25
最后登錄: 2025-05-29
查看jony7788的 主題 / 回貼
1樓  發表于: 2024-12-23 20:56
引用
引用第3樓木林森于2024-12-23 09:03發表的  :
軸旋轉前檢查開關狀態,ON 則直接旋轉 30° 后停留 0.5S,OFF 則繼續檢查下一個節點開關狀態并進行角度累加直到開關為 ON 后進行旋轉停留


先用你的思路試一下,感謝。
jony7788
級別: 工控俠客
精華主題: 0
發帖數量: 50 個
工控威望: 2003 點
下載積分: 2113 分
在線時間: 240(小時)
注冊時間: 2023-02-25
最后登錄: 2025-05-29
查看jony7788的 主題 / 回貼
2樓  發表于: 2024-12-23 21:05
引用
引用第2樓二手工控電器于2024-12-23 08:58發表的  :
重賞之下必有勇夫!!!這個看似邏輯簡單,實則梯形圖有些復雜!!!


有興趣和上班有空閑的朋友可以償試下,開關用中間繼電器代替,成功了的話個人發紅包200感謝,重賞談不上,只是一個為知識付費的態度。
jony7788
級別: 工控俠客
精華主題: 0
發帖數量: 50 個
工控威望: 2003 點
下載積分: 2113 分
在線時間: 240(小時)
注冊時間: 2023-02-25
最后登錄: 2025-05-29
查看jony7788的 主題 / 回貼
3樓  發表于: 2024-12-24 07:55
引用
引用第10樓dingzyi于2024-12-23 21:32發表的  :
步進電機速度能快多少。步進速度快了容易丟步。。停頓也要有時間的,為啥不用伺服。       

這個轉速不高,其實在快速通過的點位,按三樓說的,增加轉動的脈沖數,就可以了,最后一個點位是原點,每個循環的最后動作是回原點。
電機驅動前有個點動開關,點動一次,電機就一個循環動作,沒什么丟步的問題。
jony7788
級別: 工控俠客
精華主題: 0
發帖數量: 50 個
工控威望: 2003 點
下載積分: 2113 分
在線時間: 240(小時)
注冊時間: 2023-02-25
最后登錄: 2025-05-29
查看jony7788的 主題 / 回貼
4樓  發表于: 2024-12-24 21:05
引用
引用第14樓夢雨天涯于2024-12-24 15:07發表的  :
大概這個樣子,你覺得呢??


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


我目前的方法同你的方法有點類似,用電機的脈沖數來判斷區間,效果不是很好,如果前面全部是開,后面全部是斷,還可以,間隔開斷的反應不過來。
jony7788
級別: 工控俠客
精華主題: 0
發帖數量: 50 個
工控威望: 2003 點
下載積分: 2113 分
在線時間: 240(小時)
注冊時間: 2023-02-25
最后登錄: 2025-05-29
查看jony7788的 主題 / 回貼
6樓  發表于: 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);
}

主站蜘蛛池模板: 久久精品国产自在天天线 | 久久久精品国产免大香伊 | 妖精视频一区二区免费 | 麻豆视频观看免费视频观看 | 又大又粗又爽又黄的少妇毛片 | 91综合久久婷婷久久 | 亚洲精品一区二区三区 | 91爱色| 一区二区美女视频 | 国产一级色片 | 亚洲日本欧美综合在线一 | 色欲色香天天天综合网WWW | 毛茸茸xxxx | 一区二区日韩精品 | 久久一区福利视频国 | 中文字幕精品久久久久人妻 | 亚洲日本青草视频在线怡红院 | 亚洲精品国产摄像头 | 日韩一区二区成人 | 欧美一区二区三区精品免费 | 久草免费在线播放 | 国产免费黄网站 | 亚洲av永久无码精品网站在线观看 | 国产日本在线播放va | 精品久久亚洲中文字幕 | 色爱综合| 欧美又黄又嫩大片a级 | 海角在线观看91一区二区 | 国产小视频免费在线网址 | 亚洲国产精品无码专区影院 | wwwcom黄色| 亚洲人www| 久99久人碰人视频在线 | 成人国产午夜在线观看 | 亚?不卡av不卡一区二区 | 九九在线视频免费观看 | 久久国产系列 | 18处破外女出血在线 | 成人无码A区在线观看视频 国产不卡在线观看 | 最近中文字幕高清mv在线视频 | 波多野结衣永久免费视频 |