前几天我在某浪法国,但一直在审核,为了避免意外,在这里也发一次。
STEP7V5.6SP2计数器和系统时钟存储器+WINCCV7.5SP2做模拟交通灯练习_来自金沙江的小鱼_新浪博客 (sina.com.cn)
前两天在一个QQ群上,有人问了一个模拟交通信号灯怎么实现的问题,大概的要求是这样子:
模拟交通信号灯控制,东西向绿灯亮10s,闪3秒,黄灯闪3秒;同时南北向红灯亮10秒,闪3秒。东西向红灯亮10秒,闪3秒,同时南北向绿灯亮10秒,闪3秒,黄灯闪3秒。 今天周末有点时间,做了一下测试。有段时间没有做练习了,生疏了,好在最后还是做出了效果。把实现方法记录一下。 一 下位机编程 1. 新建一个S7 300项目,硬件组态。仅作练习,没有组态其他的IO模板,仅仅做了一个DO模板。IP地址使用默认的192.168.0.1
2. 编辑符号表在CPU属性中启用始终存储器MB0
3. 新建一个功能FC1000,在OB1里面调用这个FC1000
4. 在FC1000的程序段1做计数器,每秒叠加1,根据这个计数器,就可以判断什么时间控制什么交通灯。由于后面的程序要计算余数,所以需要转换为双整型。
5. 由于计数器最大值999,这个练习中所有灯动作一周期耗时32秒,一个计数器做多可以运转31个控制周期,共计992秒,到了003秒时就应该清零。在FC1000的程序段2做轻灵的逻辑
6. 画面上有启动和停止两个按钮,每个按钮发出脉冲。在下位机FC1000的程序段3和程序段4做脉冲的逻辑.
7. 前面说过,一个周期32秒,每个周期之内需要根据当前描述控制相应的信号灯。在FC的程序段5计算当前周期运行到第几秒。
8. 每个周期内0-10秒,东西向绿灯亮,南北向红灯亮。11秒到13秒,东西向绿灯闪烁,南北向红灯闪烁。在FC1000的程序段6做这个控制逻辑。
9. 在每个周期的14至16秒,也就是东西向绿灯闪烁结束(南北向红灯闪所结束),在每个周期的30至32秒,也就是东西向红灯闪烁结束(南北向绿灯闪烁结束),东西向和南北向黄灯闪烁。在FC1000的程序段7做这个控制逻辑。
10. 在每个周期的17到26秒,也就是东西向黄灯闪烁结束(南北向黄灯闪烁结束),东西向红灯常亮(南北向绿灯常亮)。在每个周期的27至29秒,也就是东西向红灯常亮结束(南北向绿灯常亮结束),东西向红灯闪烁,南北向绿灯闪烁。在FC1000的程序段8做这个控制逻辑。
11. 修改PG/PC接口为PLC模拟器
12. 点击工具上的模拟器,将项目程序下载到模拟器。
二 做WINCC程序 1. 新建一个WINCC项目程序,打开变量管理器,插入S7通讯协议组2. 在S7通讯协议组的TCP/IP通讯协议处点击鼠标右键,插入一个新的连接,使用默认的连接名称。在TCP/IP通讯协议处点击鼠标右键,哦欸之通讯参数,选择与模拟器通讯,因为没有实际的硬件。
3. 在newconnection_1连接处点击鼠标游右键,选择设置连接参数.IP地址与前面下位机硬件设置时的IP地址一致,机架号0,槽号2。
4. 在newconnection_1连接下面配置变量,地址与下位机变量地址一致。
5. 新建一个画面,画面明知修改为模拟交通信号灯,并设置为默认打开画面。
6. 设置计算机属性,让画面全屏运行。
7. 打开刚才运行的画面,添加画面元素,所有的控件设置全局颜色方案为否,静态文字设置背景颜色与画面一致(通过颜色设置出的取色器点击画面来快捷实现)。
8. 启动按钮的鼠标点击事件设置直接连接,将常数1赋值给变量“启动”(前面在WINCC建立的变量)
9. 停止按钮类似操作,将常熟1赋值给变量“停止”
10.每一个信号灯的颜色动态配置,用西向绿灯为例子,其他信号灯以此类推。图中1处为刷新频率,默认是2秒,对于有闪烁效果的可以把频率设置高一点。此外需要注意的是,如果设置完一个信号灯之后。复制粘贴设置其他信号灯,刷新频率需要重新设置,不能想当然认为和最初那个信号灯的刷新频率一致。
11. 保存页面。
做完这些之后,整个交通信号灯的模拟练习就完了。运行PLC模拟器,运行WINCC,点击WINCC上的运行按钮,可以看到信号灯按照要求逐个运行。点击停止按钮,所有灯灭掉,进行回到最初的状态。 我把这个练习上传到了我的网盘,下载地址 https://pan.baidu.com/s/1h3nlzXRPiqe5D4COwz0tcQ 提取码1234 标签:FC1000,绿灯,WINCCV7.5,南北向,SP2,交通灯,信号灯,东西向,程序段 From: https://www.cnblogs.com/fishingsriver/p/16817146.html