
1.概述 在某些設備控制程序中可能要求定時器在計時的過程中具備暫停計時的功能,在計時期間,如果暫停信號為高電平,計時器停止工作,但其當前計時值需要保留,當暫停信號為低電平時,定時器在暫停前的計時值基礎上繼續計時。 大部分PLC沒有提供具備暫停功能的定時器,這就需要編程者自己通過程序來實現這一功能。當然,PLC本身的靈活的可編程性能為實現這一功能提供了很多解決方案,例如可以用定時器與計數器配合,將暫停信號串在計數器的計數端,就能完成帶暫停功能的計時器功能。 2 在Twido系列PLC中的實現方法 在Twido PLC中可以使用周期事件來實現具備暫停功能的定時/計時器。Twido具有一路周期可在5~255ms間調整的周期事件功能,也就是時間在5~255ms之間的一個定時中斷。首先看一下周期事件的設置: 上面配置了一個100ms的周期事件(定時中斷),在此事件/中斷中調用0號子程序,超級定時器的實現程序就放在這個子程序中。 上面程序段中使用的變量: %M0 超級定時器使能 %M1 超級定時器暫停 %M2 超級定時器復位 %M3 超級定時器輸出 %MW10 超級定時器計時值 %MW11 超級定時器設置值 在程序使用這個自制的超級定時器: 需要注意之處(如果在程序使用了子程序,必須在主程序結束處加END指令): 程序的指令表源碼: (* 設置超級定時器定時時間值 *) LD 1 [ %MW11 := 100 ] (* 超級定時器時間到后輸出 *) LD %M3 ST %Q0.0.0 (* 超級定時器的便能、暫停及復位 *) LD 1 MPS AND %I0.0.0 ST %M0 MRD AND %I0.0.1 ST %M1 MPP AND %I0.0.2 ST %M2 (* 如果在程序使用了子程序,必須在主程序結束處加END指令 *) END (* 一個時基為100MS的超級定時器 *) SR0: LD 1 MPS AND %M0 MPS ANDN %M1 AND [ %MW10 < %MW11 ] [ INC %MW10 ] MPP AND [ %MW10 >= %MW11 ] ST %M3 MPP AND %M2 [ %MW10 := 0 ] RET 如果需要,在周期中斷程序中可以做出多個類似的定時器。
|