程序圖片不好看,我弄在PDF了,h t t p://pan.baidu.com/s/1qWtIVwS
求大師解答!!主程序調(diào)用子程序的一個(gè)問(wèn)題,由于是新手,困擾了好幾天了。我的思路是這樣的,子程序里用定時(shí)器不太好用,我是用了一個(gè)字遞增指令,加一個(gè)SM0.5來(lái)定時(shí),用來(lái)給LW9遞增。因?yàn)槭菐讉(gè)閥門的狀態(tài)切換,三次一個(gè)循環(huán),間隔時(shí)間是一樣的,所以LW0是輸入的是一個(gè)表示時(shí)間周期的整數(shù),LW11是LW0乘2得來(lái)的,LW13是LW0乘3得來(lái)的。
閥門第一次狀態(tài),當(dāng)LW9小于等于預(yù)定周期LW0時(shí),一個(gè)狀態(tài)。
閥門第二次狀態(tài):當(dāng)LW9小于LW11,大于LW0,第二個(gè)狀態(tài);
閥門第三次狀態(tài):當(dāng)LW9小于LW13,大于LW11,第三個(gè)狀態(tài);
當(dāng)LW9等于LW13時(shí),給LW9賦值0,讓其回到第一個(gè)狀態(tài)。
......依次循環(huán),三個(gè)狀態(tài)。
問(wèn)題1困擾:我現(xiàn)在是想每次執(zhí)行這個(gè)子程序時(shí),從第一個(gè)狀態(tài)執(zhí)行,按說(shuō)我子程序的第一個(gè)網(wǎng)絡(luò)通過(guò)SM0.1給LW9賦值了0,根據(jù)條件它就會(huì)執(zhí)行第一個(gè)狀態(tài),可是實(shí)際情況不是,當(dāng)執(zhí)行到第二個(gè)狀態(tài),我斷開(kāi)主程序的M0.2(就是子程序‘逆洗切換’使能端斷電),在合上M0.2后,還是繼續(xù)從第二個(gè)狀態(tài)執(zhí)行,這是為什么呢???百思不得其解!!
還有就是B,I,D,W,用的可能不對(duì),大家看看還有什么不妥嗎?我用PLC調(diào)試,子程序監(jiān)控不到局部變量的變化過(guò)程,所以不知道哪出問(wèn)題了。
問(wèn)題2還有就是子程序中SM0.1的使用,本意:掃描第一個(gè)周期執(zhí)行一次。子程序中是每次調(diào)用子程序時(shí)執(zhí)行一次?
問(wèn)題3同時(shí)調(diào)用兩個(gè)子程序,例如第一個(gè)我要實(shí)時(shí)顯示一堆溫度啊壓力的值,通過(guò)參數(shù)轉(zhuǎn)換子程序的計(jì)算,這個(gè)子程序一直是調(diào)用的狀態(tài)。就像剛才調(diào)用這個(gè)的同時(shí),我又調(diào)用了‘逆洗切換’這個(gè)子程序,這樣可以嗎?實(shí)際運(yùn)行中是,第一個(gè)調(diào)用的子程序沒(méi)問(wèn)題,各參數(shù)正常顯示。逆洗切換這個(gè)程序的那幾個(gè)閥門狀態(tài)就不變,我懷疑是局部變量的值沖突,求大師解答?或者就我這個(gè)狀況有什么更好的解決方法?比如把參數(shù)轉(zhuǎn)換的子程序直接輸入子程序還是?