需求分析
设计一个阀门控制子程序,包含以下功能:
1.手动和自动模式。
2.手动开关阀门。
3.自动开关阀门。
4.设定阀门开关报警延时时间。
5.阀门报警复位。
功能设计
将以上需求划分为如下功能:
1.阀门开关功能:阀门的打开和关闭,包括手动和自动模式。
2.计时功能:记录阀门打开和关闭过程是否超时并记录阀门打开和关闭的用时时间。
3.报警功能:阀门打开或关闭超时报警,即给出打开或关闭信号后,没有在规定时间内到位。
开发环境
硬件:SR20,6ES7 288-1SR20-0AA0。
软件:STEP 7-Micro/WIN SMART,V2.5。
程序设计
局部变量定义:
编写代码(LAD):
以上子程序中调用了延时子程序Delay,该子程序设计如下:
局部变量定义:
编写代码(LAD):
技巧:在子程序中不能使用普通定时器,一般用以下三种方法实现:
1.使用脉冲信号,将计时转换为计数。
2.使用优化定时器指令BGN_ITIME和CAL_TIME。
3.使用扫描时间进行累加。
以上代码采用了第三种方法。
全局变量和IO定义:
子程序调用:
指针VB8开始的12个字节中的前4个字节用来保存和延时相关的中间变量,后8个字节用来保存开阀和关阀的用时时间。
注意:以上实参中的VW2和VW4是通过数据块赋值的。
程序测试
在MAIN中调用以上子程序并分配实参。
右键快捷菜单选择写入给手动打开变量赋值,右键快捷菜单选择强制给阀门打开反馈信号赋值,阀门打开变量输出。