

|
1.概述 zaimouxieshebeikongzhichengxuzhongkenengyaoqiudingshiqizaijishideguochengzhongjubeizantingjishidegongneng,zaijishiqijian,ruguozantingxinhaoweigaodianping,jishiqitingzhigongzuo,danqidangqianjishizhixuyaobaoliu,當暫停信號為低電平時,定時器在暫停前的計時值基礎上繼續計時。 大部分PLC沒有提供具備暫停功能的定時器,這就需要編程者自己通過程序來實現這一功能。當然,PLCbenshendelinghuodekebianchengxingnengweishixianzheyigongnengtigonglehenduojiejuefangan,lirukeyiyongdingshiqiyujishuqipeihe,jiangzantingxinhaochuanzaijishuqidejishuduan,jiunengwanchengdaizantinggongnengdejishiqigongneng。 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 如果需要,在周期中斷程序中可以做出多個類似的定時器。
|