您现在的位置是:首页 > PLC技术 > PLC技术
S7-200 PLC的高速计数器的应用举例
来源:艾特贸易2017-06-04
简介(1) 主程序。如图 3-124 上部的 MAIN OB1 所示,用首次扫描时接通一个扫描周期的特殊内部存储器 SM0.1 去调用一个子程序,完成初始化操作。 LD SM0.1 // 首次扫描时, CALL SBR_0 // 调用子程序
(1)主程序。如图3-124上部的MAIN OB1所示,用首次扫描时接通一个扫描周期的特殊内部存储器SM0.1去调用一个子程序,完成初始化操作。 LD SM0.1 //首次扫描时, CALL SBR_0 //调用子程序SBR_0 (2)初始化的子程序。如图3-124中部的SUBROUTIME 0所示,第一条指令设置为SMB47=16#F8,设定高速计数器为允许计数、更新当前值、更新预置值、更新计数方向为加计数、设定启动输入和复位输入为高电平有效、正交计数设为4×模式;第二条指令是定义HSC1的工作模式为模式11(两路脉冲输入的双相正交计数,具有复位和启动输入功能);第三条指令是对SMD48清0,这是清除HSC1的当前值;第四条指令是设定HSC1的预置值SMD52=50;第五条指令是当前值等于预设值时产生中断(中断事件13),中断事件13连接中断程序INT_0;第六条指令是设定全局开中断;第七条指令是对HSC1编程。 LD SM0.1 //首次扫描时 MOVB 16#F8 SMB47 /,设置HSC1控制字 HDEF 1,11 /,将HSC1设置为模式11 MOVD +0,SMD48 //HSC1的当前值清0 MOVD +50,SMD52 //将HSC1预设值设为50 ATCH INT_0,13 //CV=PV(中断事件13),调用中断程序INT_0 ENI //允许全局中断 HSC 1 //执行HSC1指令 (3)中断程序INT_0。如图3-125下部的INTERRUPT 0所示,第一条指令是把0送到SMD48中,对HSC1当前值清0;第二条指令把16#CO送入SMB47,设定HSC1允许更新当前值;第三条指令是对HSC1编程。后面还可以增加指令用以记录中断次数,或者说记录HSC1从0计数到50的次数。 LD SM0.0 MOVD +0,SMD48 //HSC1的当前值清0 MOVB 16#C0,SMB47 //只写入一个新当前值,预置值不变,计数方向不变,HSC1允许计数 HSC 1 //执行HSC1指令 图3-124 高速计数器的应用
点击排行
