定時器不工作
有些用戶在使用定時器編程后,發現定時器并沒有按照自己的意圖去計時工作,出現了不計是錯誤,進而去懷疑硬件是否故障,CPU是否工作正常等等,浪費了大量的時間和精力.實際上這是由于用戶對定時器特性不了解所造成的誤解.下面的例子將說明這個問題.
例如:
程序原目的:
I4.2 的上升沿觸發T50,T60的定時,并在T60定時結束后,復位M12.0.
故障現象:
I4.2可以觸發T50,T60的定時,但有時即使I4.2 再次將M12.0置位為1,T50不計時
定時器錯誤:
故障分析:
首先要明確這個故障現象既不是硬件故障,也不是語句錯誤所引起的,而是對定時器使用不正確引起的故障.
現在我們分析此故障是如何產生的:
1.某個掃描周期,a.I4.2 的上升沿位置位M12.0 ,I4.2恢復為0。
2.數個掃描周期后,掃描周期N
a.當T60計時到時,Network2中M12.0被復位(注意是 在SD T50語句的后面),此掃描周期末M12.0由1變為了0。
b.Network3 中T50,T60被復位。
3.掃描周期N+1
a.如果此時I4.2 恰恰出現上升沿置,盡管M12.0在上個掃描周期曾經變為0,但在本掃面周期開始就變為了1,定時器T50在上個掃描周期接受到的M12.0狀態為1,定時器T50在本掃描周期接受到的M12.0狀態也為1所以T50將不會工作
定時器正確使用示意:
定時器在掃描周期N與掃描周期N+ 1之間正確地接收到了上升沿的變化,所以能夠常工作。
故障總結:
定時器計時需要正確地接收到輸入端上升沿的變化,如果沒有嚴格遵守這一邏輯順序,常見的故障現象為定時器不計時工作。這種故障現象可能很隱蔽,本例的原始程序在實際工作中幾天才會出現一次故障現象。由于原始程序包括大量的附加邏輯,子程序,語句位置也比較分散,所以排除此故障現象所用的時間超過了3天。
此程序改正的方法非常多,例如在位置M12.0指令前增加一些限制條件,用戶可以自己嘗試。
大家注意,這里t的時間是8S,我們知道,一個程序的掃描周期很短,可能才十幾-----幾十毫秒,在線時候可以監控到Scan Cycle Time 。
那這個時間不是遠遠超過了掃描周期么?
我們又知道,如果程序掃描周期大于最大掃描周期監控時間Scan Cycle Monitoring time,那么將會觸發中斷,甚至造成CPU進入STOP狀態。
其實,計時器的執行是異步于OB1 循環掃描,只要計時器運行后,在每一周期掃描到計時器的觸發端S信號如果為1,那么計時器就將在此周期繼續計時。因此,它對于最大周期監控時間并沒有太大的影響,只是調用語句時占用了少許US的時間。
責任編輯:xj
文章出處:【微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
-
plc
+關注
關注
5010文章
13275瀏覽量
463085 -
計時器
+關注
關注
1文章
420瀏覽量
32690
原文標題:西門子PLC之 計時器故障分析
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論