5层电梯MCGS7.7独立仿真程序3,带西门子S7-200PLC配套程序3,带注释,带数码管,开门延时8秒,带运行效果视频
最近在搞一个 5 层电梯的项目,使用 MCGS7.7 做独立仿真程序,并且搭配西门子 S7 - 200PLC 程序,弄完了还带注释,同时加上数码管显示,开门延时设置为 8 秒,最后还录制了运行效果视频,现在来和大家分享分享。
MCGS7.7 仿真程序部分
MCGS7.7 作为一款优秀的组态软件,在这个项目里负责构建电梯运行的可视化界面。打开 MCGS,首先新建一个工程,然后在用户窗口中开始设计电梯的操作面板和运行状态显示区域。
比如说,我们要绘制一个电梯轿厢的动态显示,就可以通过 MCGS 的动画连接功能。假设轿厢的位置变量名为 “CarPosition”,我们在轿厢图形的属性设置中,找到 “水平移动”(假设电梯是垂直运行,这里为了简单举例选水平移动类似概念)动画连接,将其与 “CarPosition” 变量关联,设定移动范围和比例,这样轿厢就能随着变量值的变化而移动了。
'这里简单写一个 MCGS 脚本示例,实现电梯到达目标楼层后的提示 Sub OnCarArrive If CarPosition = TargetFloor Then !SetDeviceValue("提示灯", 1) '点亮提示灯,假设提示灯连接变量为 "提示灯" End If End Sub这段脚本很简单,就是判断轿厢当前位置是否等于目标楼层,如果相等,就点亮提示灯,给用户一个到达提示。
西门子 S7 - 200PLC 配套程序
PLC 程序是控制电梯实际运行逻辑的核心。以下是部分关键代码及分析。
NETWORK 1 // 初始化部分 LD SM0.1 MOVW 0, VW0 // 初始化楼层变量,VW0 存储当前楼层,初始设为 0 层在这段代码中,利用 PLC 的特殊继电器 SM0.1,它在 PLC 首次扫描时接通一个扫描周期。这里就利用这个特性对存储当前楼层的变量 VW0 进行初始化,设为 0 层。
NETWORK 2 // 上升逻辑 LD I0.0 // I0.0 假设为上升按钮输入 A VW0 < 5 // 当前楼层小于 5 层 EU INCW VW0 // 当前楼层变量加 1当上升按钮 I0.0 按下,并且当前楼层小于 5 层时,利用 EU 指令(上升沿检测),让当前楼层变量 VW0 加 1,实现楼层上升计数。
NETWORK 3 // 开门逻辑及延时 LD I0.2 // I0.2 假设为到达目标楼层信号 O M0.0 // M0.0 假设为开门保持标志 AN T37 // T37 为 8 秒定时器 = Q0.0 // Q0.0 假设为开门输出 LD I0.2 EU TON T37, 800 // 启动 8 秒定时器 LD T37 R M0.0, 1 // 8 秒后复位开门保持标志当到达目标楼层信号 I0.2 触发,或者开门保持标志 M0.0 已经置位,并且 8 秒定时器 T37 未计时完成时,开门输出 Q0.0 置 1,电梯门打开。同时,当 I0.2 上升沿到来,启动 8 秒定时器 T37。8 秒计时完成后,复位开门保持标志 M0.0,实现开门延时 8 秒的功能。
数码管显示
数码管显示主要是为了更直观地展示电梯所在楼层。通过 PLC 输出控制数码管的段选和位选信号。
假设使用共阴极数码管,我们需要将楼层数字转换成对应的段码。比如对于数字 0,段码为十六进制的 0x3F(对应数码管 a - g 段点亮)。
NETWORK 4 // 数码管段码转换 LD SM0.0 MOVW VW0, AC0 // 将当前楼层变量存入累加器 AC0 CALL SEG, AC0, VW20 // 调用 SEG 功能块,将楼层数字转换为段码存入 VW20这里利用 PLC 的 SM0.0 始终接通的特性,将当前楼层变量 VW0 存入累加器 AC0,然后调用 SEG 功能块(不同 PLC 可能实现方式不同,这里假设已有该功能块),将转换后的段码存入 VW20,后续通过 VW20 输出到数码管的段选引脚,实现楼层数字显示。
运行效果视频
最后,为了更好地展示整个项目成果,我录制了运行效果视频。在视频里,可以清晰看到电梯根据输入指令上下运行,数码管实时显示当前楼层,到达目标楼层后电梯门打开,8 秒后自动关闭。整个过程非常流畅,完美实现了设计需求。
这个项目从软件到硬件的逻辑设计,再到实际的运行展示,每一步都充满挑战与乐趣。希望我的分享能给大家带来一些启发,一起探索更多自动化控制项目的可能性。
以上就是本次博文的全部内容啦,大家要是有什么问题或者建议,欢迎在评论区留言交流。