参考一下:
程序通过先设定计数器的值,本例中设定值为10;按设备启动按钮i0.1启动设备,运行后通过信号输入点i0.0进行计数,当计数当前值等于设定值10时,输出点断开,设备运行停止。i0.2为设备停止按钮。程序如下:
ldsm0.1
movb16#c8,smb37
hdef0,0
movd+0,smd38
hsc0
上述程序注解:(1)对高数记数器hsc0初始化,写入控制字节(16#c8含义为:要求进行初始值设定;不装入预设值;运行中不要求更改计数方向;计数器类型为增。)(2)执行hdef指令,进行高速计数器工作模式的选定设置(计数器为hsc0;模式为0)(3)初始值设定:装载高数记数器初始值为0(4)执行hsc指令,写入hsc0设置。ldnm14.0
eumovb
16#c8,smb37
movd+0,smd38
hsc0
上述程序注解:当记速值达到要求值时,m14.0复位,高速计数器计数将复位为初始值,以备下次计数使用。
ldd<hc0,+10
=m14.0
上述程序注解:当计数器值小于10时,m14.0始终处于置位状态。
ldi0.1
oq0.0
ani0.2
am14.0
=q0.0
上述程序注解:i0.1为设备启动信号;i0.2为设备停止信号。高速计数器累计值达到10时,设备运行停止。