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