1. 程式人生 > >西門子plc s7-200寫的先進先出範例 用fifo

西門子plc s7-200寫的先進先出範例 用fifo

本人最近寫了一個五臺鍋爐共用一個冷卻水泵的程式,開始打算用時間戳來記錄每臺鍋爐需要冷卻的時間,然後用時間進行排序,但是後來無意中發現fifo可以實現表的先進先出的功能,就抱著學習的目的,用fifo寫了本程式。

第一步,先要建立一個表如下圖,上電初始化建立一個具有5個值的表,從VW200開始,VW200存放的是表的容量,VW202仿的是當表內的實際個數,然後給vw100-vw108(每臺鍋爐在表裡的id)賦值。

第二部,5個i口作為5臺鍋爐發來的請求冷卻訊號,這5個訊號必須用上升沿P或者下降沿N來觸發


第三步,當表內有資料,且水泵處於休眠狀態下,執行先進先出程式,vw300就是目前出去的值(鍋爐序號)


第四步,檢測當前的先進先出執行到哪臺鍋爐,對應鍋爐就執行輸出,這裡的q0.1-q0.5就是5臺鍋爐,vw202和vw300只是方便測試用的,可以刪除,m0.1-m0.5都是是同一個水泵的工作訊號,為了防止雙線圈,才命名不一樣


第五步,雙線圈的解決辦法,q1.0就是水泵電機


fifo這個函式在很多地方都可以用到,排隊程式在工業自動化中佔比也算大的,但是網路上都找不到詳細的說明,希望我這個教程能幫助到大家,給個回覆就算謝謝了。日行一善!