广东湘恒智能科技有限公司
主营产品: 西门子PLC,西门子模块,西门子触摸屏,西门子变频器,西门子伺服电机驱动,电缆,西门子全系列
S7-200SMART实例之交通灯控制子程序
发布时间:2024-11-22

需求分析

设计一个交通灯控制子程序,包含以下功能:

1.系统启动,绿、黄、红灯循环输出并置位系统运行标志位。

2.系统停止,复位所有输出和系统运行标志位。

3.绿、黄、红灯输出时间可以通过变量自定义设置。

4.要求子程序中不能使用标准指令库中的定时器和上升沿。

功能设计

根据以上需求进行如下设计:

1.系统启动按钮按下,置位绿灯输出,并置位系统运行标志位。

2.利用绿灯输出启动自定义的延时子程序,到达预设时间后,延时子程序置位输出变量,通过该变量复位绿灯输出并置位黄灯输出。

3.利用黄灯输出启动自定义的延时子程序,到达预设时间后,延时子程序置位输出变量,通过该变量复位黄灯输出并置位红灯输出。

4.利用红灯输出启动自定义的延时子程序,到达预设时间后,延时子程序置位输出变量,通过该变量复位红灯输出并置位绿灯输出。

5.系统停止按钮按下,复位所有输出,并复位系统运行标志位。

6.利用扫描时间设计一个延时子程序替代标准指令库里的定时器,从而确保子程序的可移植性。

开发环境

硬件:SR20,6ES7 288-1SR20-0AA0。

软件:STEP 7-Micro/WIN SMART,V2.5。

程序设计

局部变量定义:

图片

编写代码(LAD):

图片

以上子程序中调用了延时子程序Delay,该子程序设计如下:

局部变量定义:

图片

编写代码(LAD):

图片

技巧:在子程序中不能使用普通定时器,一般用以下三种方法实现:

1.使用脉冲信号,将计时转换为计数。

2.使用优化定时器指令BGN_ITIME和CAL_TIME。

3.使用扫描时间进行累加。

以上代码采用了第三种方法。

全局变量和IO定义:

图片

图片

子程序调用:

图片

数据块定义:

图片

绿、黄、红灯分别定义了6秒钟点亮时间。

程序测试

在MAIN中调用以上子程序并分配实参。

图片

在线状态图标,并为系统启动变量写入1,系统启动后为其写入0,系统进入运行状态,系统运行标志位置位,绿、黄、红灯按6秒的间隔交替点亮;为系统停止变量写入1,所有输出复位,系统运行标志位复位。


展开全文
拨打电话 微信咨询 发送询价