張國良
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 68 個
工控威望: 138 點
下載積分: 707 分
在線時間: 64(小時)
注冊時間: 2020-02-06
最后登錄: 2024-11-10
查看張國良的 主題 / 回貼
樓主  發(fā)表于: 2024-03-24 12:05
有ABCD三個風(fēng)機(jī),觸摸屏上可以任意排序,比如A可以是一號可以是二號也可以是三號也可以是四號,BCD同理,現(xiàn)在要求一號風(fēng)機(jī)開10秒停5秒,然后二三四號依次運行,如果是A是一號B是二號,C是三號,D是四號這樣固定好了可以寫出來,但是ABCD是任意排序的,如果下一次ABCD排序成2341,這樣應(yīng)該怎么寫,plc是三菱的
flyfeky
bilibili 工控貴族
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 889 個
工控威望: 1040 點
下載積分: 2000 分
在線時間: 688(小時)
注冊時間: 2012-05-09
最后登錄: 2024-12-13
查看flyfeky的 主題 / 回貼
1樓  發(fā)表于: 2024-03-25 21:31
按道理, 這里有個數(shù)據(jù)結(jié)構(gòu) , 叫做隊列, 也就是先進(jìn)先出 。   可以自己實現(xiàn)隊列算法,如果有現(xiàn)成的也可以。

簡單的可以如下,不算隊列算法,具體的啟停邏輯,我下面是不對的啊.

把 A/B/C/D 用數(shù)字1/2/3/4  分別放到存儲器   D1,D2,D3,D4 中,標(biāo)識這四個風(fēng)機(jī)。  多的話用數(shù)組和循環(huán),比如100個風(fēng)機(jī)。    Y1 Y2 Y3 Y4 表示輸出。

第一步要設(shè)置  D0 D1 D2 D3的值。   比如2341;  /  1234 /  3412/      step的轉(zhuǎn)換條件 就是 時間到  step:=step+1;
case  step of  
1 :

IF  D1=1  THEN
Y1:=TRUE;  //  Y1通10S 停2s
ELSE IF D1=2 THEN
Y2:=TRUE; //  Y2通10S 停2s
ELSE IF D1=3 THEN
Y3:=TRUE; //  Y3通10S 停2s
ELSE IF D1=4 THEN
Y4:=TRUE; //  Y4通10S 停2s
END IF;

2 :

IF  D2=1  THEN
Y1:=TRUE;
ELSE IF D2=2 THEN
Y2:=TRUE;
ELSE IF D2=3 THEN
Y3:=TRUE;
ELSE IF D2=4 THEN
Y4:=TRUE;
END IF;


3:

4:

end case;
[ 此帖被flyfeky在2024-03-25 22:00重新編輯 ]
本帖最近評分記錄:
  • 下載積分:+1(libin520) 真誠感謝!
  • 西門子倍福WPF+C#數(shù)據(jù)庫,槽式設(shè)備專家