張國良
級別: 探索解密
|
有ABCD三個風機,觸摸屏上可以任意排序,比如A可以是一號可以是二號也可以是三號也可以是四號,BCD同理,現在要求一號風機開10秒停5秒,然后二三四號依次運行,如果是A是一號B是二號,C是三號,D是四號這樣固定好了可以寫出來,但是ABCD是任意排序的,如果下一次ABCD排序成2341,這樣應該怎么寫,plc是三菱的 |
---|---|
|
flyfeky
bilibili 工控貴族
級別: 論壇先鋒
|
按道理, 這里有個數據結構 , 叫做隊列, 也就是先進先出 。 可以自己實現隊列算法,如果有現成的也可以。 簡單的可以如下,不算隊列算法,具體的啟停邏輯,我下面是不對的啊. 把 A/B/C/D 用數字1/2/3/4 分別放到存儲器 D1,D2,D3,D4 中,標識這四個風機。 多的話用數組和循環,比如100個風機。 Y1 Y2 Y3 Y4 表示輸出。 第一步要設置 D0 D1 D2 D3的值。 比如2341; / 1234 / 3412/ step的轉換條件 就是 時間到 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重新編輯 ] |
|
---|---|---|
本帖最近評分記錄:
|