主題:smart帶參子程序的注意
關鍵詞:smart 子程序 多次調用(yòng)
詳情:
前些(xiē)時(shí)候有個客戶使用(yòng)smart系列PLC,現(xiàn)場的模拟量值有些(xiē)不穩定,想增加計(jì)算(suàn)下(xià)平均值在輸出。編寫的程序如下(xià):
本來(lái)期望每個模拟量增加一次調用(yòng)就可以。實際運行來(lái)看(kàn),并不能(néng)實現(xiàn)。
具體現(xiàn)象如下(xià):
新做測試程序,單次調用(yòng)這(zhè)個子程序結果正常。
放(fàng)到(dào)原有程序,單次調用(yòng)這(zhè)個子程序結果不對(duì)。
新做測試程序,多次調用(yòng)這(zhè)個子程序結果不對(duì)。
出現(xiàn)這(zhè)個結果的原因:L區(qū)的地址區(qū)域是共享的。L區(qū)的變量的結果是不能(néng)保留的,上(shàng)面程序的SUM和(hé)NUM都需要保留之前的結果才能(néng)正确計(jì)算(suàn)。
所以,以上(shàng)現(xiàn)象的原因:
放(fàng)到(dào)原有程序,單次調用(yòng)這(zhè)個子程序結果不對(duì)。
是因爲原有程序也(yě)有其他(tā)程序使用(yòng)了(le)L區(qū)的地址。
新做測試程序,多次調用(yòng)這(zhè)個子程序結果不對(duì)。
同上(shàng)面原因,兩個以上(shàng)的程序都對(duì)L區(qū)的地址計(jì)算(suàn)了(le)計(jì)算(suàn)。
把SUM和(hé)NUM兩個變量用(yòng)作(zuò)INOUT變量,每個程序執行的時(shí)候分配V區(qū)變量後,就可正常運行。
系統手冊的提示: