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