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

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

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

第一步要設(shè)置  D0 D1 D2 D3的值。   比如2341;  /  1234 /  3412/      step的轉(zhuǎn)換條件 就是 時(shí)間到  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è)備專家