- 艾宝物联IOBOV® ─ 工业无线测控专家
高速计数器指令的初始化的步骤如下:
(1)用首次扫描时接通一个扫描周期的特殊内部存储器SM0.1去调用一个子程序,完成初始化操作。因为采用了子程序,在随后的扫描中,不必再调用这个子程序,以减少扫描时间,使程序结构更好。
(2) 在初始化的子程序中,根据希望的控制设置控制字(SMB37、SMB47、SMB137、SMB147、SMB157),如设置SMB47=16#F8,则为:允许计数,写入新当前值,写入新预置值,更新计数方向为加计数,若为正交计数设为4×,复位和起动设置为高电平有效。
(3)执行HDEF指令,设置HSC的编号(0-5),设置工作模式(0-11)。如HSC的编号设置为1,工作模式输入设置为11,则为既有复位又有起动的正交计数工作模式。
(4)用新的当前值写入32位当前值寄存器(SMD38,SMD48,SMD58 ,SMD138, SMD148, SMD158)。如写入0,则清除当前值,用指令MOVD 0,SMD48实现。
(5)用新的预置值写入32位预置值寄存器(SMD42 ,SMD52, SMD62, SMD142 ,SMD152, SMD162)。如执行指令MOVD 1000,SMD52,则设置预置值为1000。若写入预置值为16#00,则高速计数器处于不工作状态。
(6)为了捕捉当前值等于预置值的事件,将条件CV=PV中断事件(事件13)与一个中断程序相联系。
(7)为了捕捉计数方向的改变,将方向改变的中断事件(事件14)与一个中断程序相联系。
(8)为了捕捉外部复位,将外部复位中断事件(事件15)与一个中断程序相联系。
(9)执行全局中断允许指令(ENI)允许HSC中断。
(10)执行HSC指令使S7-200对高速计数器进行编程。
(11)结束子程序。