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

精華主題: 0
發(fā)帖數(shù)量: 3393 個
工控威望: 3189 點
下載積分: 70297 分
在線時間: 1602(小時)
注冊時間: 2008-04-20
最后登錄: 2024-09-21
查看wwcwwc的 主題 / 回貼
1樓  發(fā)表于: 2015-10-28 15:48
你看看幫助中的SM0.1含義。