sxbug
級(jí)別: 略有小成
![]() |
把4個(gè)工位的執(zhí)行程序,分別做成4個(gè)FB,想實(shí)現(xiàn)靈活的執(zhí)行次序修改,請(qǐng)指教。我的想法: 1 用D0 D1 D2 D3 D4存放FB塊的優(yōu)先級(jí),數(shù)字小的先執(zhí)行,大的后執(zhí)行。排序后將D對(duì)應(yīng)的序號(hào),放在一個(gè)數(shù)組中,如果D0=7 D1=6 D2=11 D3=9 D4=0,排序后的數(shù)組就是:4,1,0,3,2 2 有辦法能讓M4 啟動(dòng)FB4 ,接著 M1 ,M0, M3 ,M2 都依次對(duì)應(yīng)啟動(dòng)FB嗎?對(duì)ST和FB不熟,望指教 3 還請(qǐng)問一下,在FB中 TON 里面的Q 和 ET 都是什么? 謝謝 |
---|---|
|
不小心遇見你
自動(dòng)項(xiàng)目、PLC、視覺、通訊等工控軟件開發(fā)QQ3515716
級(jí)別: 工控俠客
![]() ![]() |
圖片:
![]()
圖片:
![]() 參照此圖代碼 定義結(jié)構(gòu)體 用ST語音試試 |
|
---|---|---|
|
sxbug
級(jí)別: 略有小成
![]() |
感謝。我感受到了C的味道 我先考慮一下,但將編號(hào)與M?對(duì)應(yīng)起來 這個(gè)功能不知道 PLC有不? 謝謝 |
---|---|
|
gxtmdb82164
級(jí)別: 論壇先鋒
![]() |
不懂搞那么麻煩干啥... 主調(diào)度程序直接按照固定的D0,D1,D2,D3的順序去執(zhí)行不行嗎?調(diào)度只管按順序執(zhí)行調(diào)用,至于調(diào)用的是哪個(gè)完全可以通過工序編號(hào)去指定 這里還進(jìn)行一次排序還是啥的,看不懂有啥必要性. D0~D3里面填各工序的序號(hào),另外開辟一個(gè)空間存儲(chǔ)當(dāng)前的步號(hào),每個(gè)任務(wù)結(jié)束以后都將步號(hào)+1,執(zhí)行下一個(gè)D里面存儲(chǔ)的工序編號(hào),整個(gè)系統(tǒng)不就串聯(lián)起來了 |
---|---|
|
payfsl
級(jí)別: 工控俠客
![]() |
學(xué)習(xí)了 |
|
---|---|---|
|
sxbug
級(jí)別: 略有小成
![]() |
根據(jù)高人們的建議做了一個(gè)多工位的程序,step1 step2 step3 就是隨便做了3個(gè)工位的動(dòng)作,all_run就是處理一下各工位的優(yōu)先級(jí)(包括對(duì)各工位的優(yōu)先級(jí)單元賦值、根據(jù)優(yōu)先級(jí)確定執(zhí)行那個(gè)工位),主程序就負(fù)責(zé)初始化,循環(huán)執(zhí)行工位,在主程序POU_01中采用while的方式循環(huán)執(zhí)行,在循環(huán)體內(nèi)根據(jù)每個(gè)工位執(zhí)行完后觸發(fā)的ENO信號(hào),啟動(dòng)下一個(gè)工位的動(dòng)作,F(xiàn)在的問題是:程序無法仿真,有錯(cuò)誤。請(qǐng)高人指點(diǎn)。謝謝 |
---|---|
|
sxbug
級(jí)別: 略有小成
![]() |
圖片:
![]() 仿真的時(shí)候 總使能 一接通,plc就顯示錯(cuò)誤,也不知道哪里有問題 |
---|---|
|
dgamen
歲月不饒人
級(jí)別: 略有小成
![]() |
step2功能塊里面源代碼程序運(yùn)算出錯(cuò)。例如:執(zhí)行了被除數(shù)為0的運(yùn)算 |
---|---|
|
木林森
級(jí)別: 工控俠客
![]() |
用數(shù)組綁定功能塊的使能,用冒泡算法排序,再之后就按數(shù)組順序使能功能塊 |
---|---|
|
sxbug
級(jí)別: 略有小成
![]() |
圖片:
![]() @dgamen,step2就是幾個(gè)延時(shí),我怕延時(shí)有問題,我都改成非零的數(shù)了,還是有問題 |
---|---|
|