楼宇监控系统MCGS6.2仿真程序,带西门子200PLC程序,io表和接线图,设计要求
最近在折腾楼宇自动化项目,发现MCGS6.2和西门子S7-200这对组合真是绝配。今天咱们就撸个电梯监控系统的仿真方案,手把手实现从PLC程序到上位机联动的完整流程。(别急着关页面,代码都在后头呢)

先甩张IO表镇楼:
python
I0.0 电梯门开到位
I0.1 电梯门关到位
I0.2 1楼呼叫按钮
I0.3 2楼呼叫按钮
# 输出信号
Q0.0 电梯上行
Q0.1 电梯下行
Q0.2 开门电机
Q0.3 关门电机
搞工控的都知道,接线这事儿马虎不得。DI点记得加24V中间继电器隔离,DO点控制接触器时别忘了反向二极管保护。见过新手直接拿PLC输出端怼电磁阀,结果烧了整块板子------血泪教训啊!
来看段核心的PLC梯形图:
ladder
Network1
LDN SM0.1
MOVB 16#00, VB100 // 初始化楼层状态
Network2
LD I0.2 // 1楼呼叫
O V100.0
AN V100.1
= V100.0 // 保持1楼呼叫状态
Network3
LD I0.3 // 2楼呼叫
O V100.1
AN V100.0
= V100.1 // 保持2楼呼叫状态
这段骚操作实现了楼层呼叫的互锁逻辑。用VB100做状态寄存器的妙处在于,既能单独控制各楼层信号,又方便通过MOV指令一键清零。注意看AN指令的运用------保证上下楼层请求不会同时生效。

MCGS那边得搞个动态楼层显示:
vbscript
Sub OnLoop()
If ReadPLC("V100.0") Then
SetPic("floor1_led",1)
Else
SetPic("floor1_led",0)
End If
If ReadPLC("Q0.0") Then
SetPosition("elevator",0,50)
ElseIf ReadPLC("Q0.1") Then
SetPosition("elevator",0,-50)
End If
End Sub
这个脚本每200ms轮询一次PLC状态,电梯图标会根据Q0.0/Q0.1的输出上下移动。实测发现通讯周期设太短会丢包,建议新手把MCGS的采集周期调到500ms以上。
仿真中最坑的是门机控制逻辑,搞不好电梯就变成夹人凶器。来看这个安全互锁:
ladder
Network4
LD T37 // 开门计时
A I0.0 // 门开到位
= Q0.3 // 停止关门
Network5
LD I0.1 // 门关到位
TON T37, 100 // 10秒后强制关门
当有人按着开门按钮不放时,T37定时器开始倒计时。时间一到,管你愿不愿意,电梯门都得给我关上。这种设计既符合安全规范,又能防止SB乘客长时间挡门。

最后说个调试技巧:用S7-200的Modbus库跟MCGS对接时,记得把PLC的站地址设为1,波特率调成9600。碰上通讯失败先查接线------RS485的A/B线接反这种低级错误,老司机也栽过跟头。
完整工程文件已打包,包含PLC程序、MCGS组态和接线示意图。需要源码的兄弟评论区留邮箱,半夜三点秒回那种。下期预告:《如何用PID控制让电梯停车稳如老狗》------保证比女朋友还准时!