需求分析
设计一个交通灯控制子程序,包含以下功能:
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,所有输出复位,系统运行标志位复位。
- 国产IO德克威尔测试 2024-11-22
- 西门子 TIA Portal WinCC 通过 VB 脚本从 Excel 文件中读取数据的方法 2024-11-22
- WinCC Professional Runtime / Simulation V19 下载与安装 2024-11-22
- 西门子 TIA Portal WinCC 中实现水流动画的方法和步骤 2024-11-22
- 西门子 TIA Portal WinCC 通过 VB 脚本实现设备启停操作弹窗确认 2024-11-22
- 西门子 TIA Portal WinCC 通过 VB 脚本制作一个调色板实现动态背景色 2024-11-22
- 西门子 TIA Portal Modbus RTU 轮询读写多个从站设备的实用例程与仿真测试 2024-11-22
- 如何在西门子 TIA Portal WinCC 中实现雷达旋转扫描动画 2024-11-22
- 如何在西门子 TIA Portal WinCC 中实现机械手臂动画 2024-11-22
- 西门子 TIA Portal HMI 动画之圆周移动 2024-11-22