西门子S7-200高速计数器程序设计与解释

作者:老电工时间:2015-09-19 01:27:17

西门子S7-200高速计数器的程序设计

程序通过先设定计数器的值,本例中设定值为13;按设备启动按钮I0.1启动设备,运行后通过信号输入点I0.0进行计数,当计数当前值等于设定值13时,输出点断开,设备运行停止。I0.2为设备停止按钮。

程序代码:
 

LD     SM0.1
MOVB   16#C8, SMB37
HDEF   0, 0
MOVD   +0, SMD38
HSC    0

程序注解:
1)对高数记数器HSC0初始化,写入控制字节(16#C8含义为:要求进行初始值设定;不装入预设值;运  行中不要求更改计数方向;计数器类型为增。)
2)执行HDEF指令,进行高速计数器工作模式的选定设置(计数器为HSC0;模式为0)
3)初始值设定:装载高数记数器初始值为0
4)执行HSC指令,写入HSC0设置。
 

LDN    M14.0
EU
MOVB   16#C8, SMB37
MOVD   +0, SMD38
HSC    0
 

上述程序注解:当记速值达到要求值时,M14.0复位,高速计数器计数将复位为初始值,以备下次计数使用。
 

LDD<   HC0, +13
=      M14.0
 

上述程序注解:当计数器值小于13 时,M14.0始终处于置位状态。
 

LD     I0.1
O      Q0.0
AN     I0.2
A      M14.0
=      Q0.0
 

上述程序注解:I0.1为设备启动信号;I0.1为设备停止信号。高速计数器累计值达到13 时,设备运行停止。
 S      Q0.1, 1               中断执行,压板控制得电工作开始。
本例程序设计的背景:(中断单点控制)
    程序是通过一个板材自动定长剪切设备工作程序简单设计进行高数计数器和中断指令的使用。
    工作要求为:启动设备,料滚电机工作带动板材进行送料,同时由计数器记录长度脉冲信号,当达到脉                 冲预设值时,即板材设定长度时,中断指令发信号,停止料滚电机工作,执行压料、裁                   剪,裁剪完成后,压料阀和料剪同时复位,料滚电机工作,进行下一次裁剪,周而复始。
    程序拓展:可根据实际需要设计成钢板的定长裁剪;或流量的控制。
通过本程序学习,可加深高数计数器指令和中断指令的使用了解。I0.0为计数脉冲输入点。
 
主程序:
 

Network 1 // 开机调用子程序,进行高数记速器的参数设定
LD     SM0.0
CALL   SBR0
Network 2 // 送料电机启动控制
LD     I1.1
O      T39
S      Q0.0, 1
Network 3 // 送料电机停止控制
LD     I1.0
R      Q0.0, 3
Network 4 // 压紧时间设置
LD     Q0.1
TON    T37, 15
Network 5
LD     T37
S      Q0.2, 1
Network 6 // 剪裁时间设置
LD     Q0.2
TON    T38, 10
Network 7 // 压板、裁刀复位时间设定
LD     T38
LD     M0.0
AN     T39
OLD
R      Q0.1, 1
TON    T39, 20
=      M0.0
R      Q0.2, 1
Network 8 // 程序调试计数器运行检测;实际中可删除。
LD     SM0.0
MOVD   HC0, VD30
 

 
子例行程序及注解:           
第一条为设定高数计数器参数:16#E8=11101000。含义是:启用计数器;可更新当前值即SMD38;允许更新设定值即SMD42;不更改计数方向。
 

LD     SM0.1
MOVB   16#E8, SMB37     设定高数计数器参数;
MOVD   +0, SMD38        设定当前值SMD38=0
MOVD   +20, SMD42       设定预装值SMD42=20;
HDEF   0, 0               选用0#记速器连接12号中断事件
ATCH   INT0, 12        
ENI                       开中断;
HSC    0                 开启0#计速器


 
中断例行程序注解:
 

LD     SM0.0
R      Q0.0, 1               中断执行,Q0.0失电料滚停转
MOVB   16#E8, SMB37       重新设置高数计数器控制参数SMB37
MOVD   0, SMD38           清空高数计数器当前值SMD38。
HSC    0                   执行高数计数器指令HSC0。

本站仅提供信息发布平台,文章仅代表作者个人观点。

猜你喜欢

首页 > plc > 西门子plc