
西门子S7-200Smart与施耐德ATV71变频器通讯程序
凌晨三点半的车间里,PLC信号灯还在规律闪烁。三台施耐德ATV71变频器刚经历完第17次暴力断电
测试,操作屏上的运行数据依然稳如老狗。这波Drivecom流程自动恢复算是成了!
搞工控的都懂,施耐德这货断电后就跟失忆似的,非得人肉按准备键才能干活。这次用200smart调
教三台ATV71,核心就两件事:让设备自己撸完启动流程,还要保证三台机器别在总线上打架。
先看硬件怎么接(随手抓过控制柜里的接线图):200smart自带RS485口直接怼到第一台ATV71的CH2
通讯口,后面两台菊花链手拉手。重点注意终端电阻——首尾两台必须拨码到"ON",中间那台乖乖关掉。实测
漏接这个,485总线分分钟给你表演数据鬼畜。
程序里藏着个状态机轮询机制,直接上硬核代码:
```cpp
// 主程序片段
VW1000 := 轮询状态标记; //0-空闲 1-正在操作1# 2-正在操作2# 3-正在操作3#
IF SM0.1 THEN
MBUS_CTRL(EN:=1, Baud:=19200, Parity:=2, Port:=0, Timeout:=1000, Done=>M10.0, Er
ror=>MW12);
T37(IN:=NOT T37.Q, PT:=200);
END_IF;
IF T37.Q THEN
CASE 轮询状态标记 OF
0:
启动1号机指令();
轮询状态标记 := 1;
1:
IF 1号机操作完成 THEN
启动2号机指令();
轮询状态标记 := 2;
END_IF;
2:
IF 2号机操作完成 THEN
启动3号机指令();