子程序中可以添加定時么?
劉玉蓉
發(fā)布于2014-11-25 17:49
75
0
標簽:
子程序中定時器是只在子程序被調(diào)用的時候計時,還是只要被調(diào)用過,而且定時器線圈能流一直保持的話就不停計時?
例如一個溫度處理的子程序:
LD SM0.0
CALL 溫度液位報警判斷:SBR1
在SBR1的內(nèi)容如下:
LD SM0.0
LPS
AN T7_2_F:V501.2
AR>= T7:VD558, T7_2:VD634
TON T123, 50
LPP
A T123
S T7_2_F:V501.2, 1
其功能是實際采集到的溫度T7高于高溫報警設定值T7_2時開始計時,如果連續(xù)5秒鐘一直保持高于設定值則將T7的超溫報警標志T7_2_F置位。
這樣的功能可以實現(xiàn)么?
佳答案
在條件調(diào)用子程序的主程序中,當停止子程序調(diào)用時,如果定時器已經(jīng)激活正在計時,停止調(diào)用這個子程序會造成定時器的失控。不管此時定時器前面的激活條件如何變化,定時器(1ms、10ms 時基的)會一直走到大值,定時器輸出也會在達到設定值時接通;(100ms 時基的定時器會在上述情況下停止計時,但在邏輯上處于失控狀態(tài))。
如果用 SM0.0 調(diào)用子程序;或者在控制邏輯的時序上做到能夠保證定時功能完整執(zhí)行,定時器會正常運行。使用條件調(diào)用含有定時器的子程序時,一定要注意時序邏輯,以免造成程序運行錯誤。
參考資料:西門子 S7-200 · LOGO! · SITOP 參考 Beta Version 1.1