sxbug
級別: 略有小成
|
把4個工位的執行程序,分別做成4個FB,想實現靈活的執行次序修改,請指教。我的想法: 1 用D0 D1 D2 D3 D4存放FB塊的優先級,數字小的先執行,大的后執行。排序后將D對應的序號,放在一個數組中,如果D0=7 D1=6 D2=11 D3=9 D4=0,排序后的數組就是:4,1,0,3,2 2 有辦法能讓M4 啟動FB4 ,接著 M1 ,M0, M3 ,M2 都依次對應啟動FB嗎?對ST和FB不熟,望指教 3 還請問一下,在FB中 TON 里面的Q 和 ET 都是什么啊? 謝謝 |
---|---|
|
不小心遇見你
自動項目、PLC、視覺、通訊等工控軟件開發QQ3515716
級別: 工控俠客
|
圖片:
圖片:
參照此圖代碼 定義結構體 用ST語音試試 |
|
---|---|---|
|
sxbug
級別: 略有小成
|
感謝。我感受到了C的味道 我先考慮一下,但將編號與M?對應起來 這個功能不知道 PLC有不? 謝謝 |
---|---|
|
gxtmdb82164
級別: 論壇先鋒
|
不懂搞那么麻煩干啥... 主調度程序直接按照固定的D0,D1,D2,D3的順序去執行不行嗎?調度只管按順序執行調用,至于調用的是哪個完全可以通過工序編號去指定 這里還進行一次排序還是啥的,看不懂有啥必要性. D0~D3里面填各工序的序號,另外開辟一個空間存儲當前的步號,每個任務結束以后都將步號+1,執行下一個D里面存儲的工序編號,整個系統不就串聯起來了 |
---|---|
|
sxbug
級別: 略有小成
|
根據高人們的建議做了一個多工位的程序,step1 step2 step3 就是隨便做了3個工位的動作,all_run就是處理一下各工位的優先級(包括對各工位的優先級單元賦值、根據優先級確定執行那個工位),主程序就負責初始化,循環執行工位,在主程序POU_01中采用while的方式循環執行,在循環體內根據每個工位執行完后觸發的ENO信號,啟動下一個工位的動作。現在的問題是:程序無法仿真,有錯誤。請高人指點。謝謝 |
---|---|
|
sxbug
級別: 略有小成
|
圖片:
@dgamen,step2就是幾個延時,我怕延時有問題,我都改成非零的數了,還是有問題 |
---|---|
|