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