網(wǎng)友秀全說:“我編寫的功能fc1里邊有一個sr置位復位塊,在ob1調(diào)用4次fc1,怎么搞也不行,后來我把它改為分開的置位、復位指令就好了。我怎么也想不明白怎么回事?!?/p>
下圖是他的fc的局部程序。

首先要注意sr觸發(fā)器用來對圖中的m0.0置位和復位,同時也對q輸出端可選的bool變量置位和復位。程序中的m0.0和局部變量#zuudianyuan(主)的作用是重復的,可以只用其中之一。
sr觸發(fā)器有記憶和保持的功能。調(diào)用一次fc1,m0.0用來記憶一臺設(shè)備的啟動、停止命令。調(diào)用兩次fc1,能用m0.0同時記憶兩臺設(shè)備的啟動、停止命令嗎?當然不行。
要想多次調(diào)用fc,其中有記憶功能的變量不能使用絕對地址,也不能使用局部變量中的臨時變量。
最簡單的解決方法是刪除圖中的線圈,將m0.0改為要控制的#zuudianyuan。
對于s7-300來說,sr方框上的地址可以使用輸出參數(shù)。但是對于s7-200的子程序(相當于s7-300的fc),如果使用輸出參數(shù),多次調(diào)用該子程序時就會出錯。應(yīng)改為in_out參數(shù)。










