搞工控的老司机们看过来!手把手教你用S7-200 SMART玩转四台台达变频器
西门子smart200plc与4台台达变频器modbus轮询通讯 VFD-EL小型矢量变频器 1读写变频器的内部参数 2控制变频器启停读频率电流 3设置变频器输出频率 4有彩色接线图和参数设置说明 有详细注释简单易懂可以学习可用项目最近在车间折腾西门子smart200PLC和台达VFD-EL变频器的Modbus通讯发现这玩意儿的坑比想象中多。今天直接上干货从接线到代码实现咱们用最土味的语言讲明白怎么让PLC同时撸四台变频器。一、硬件接线别翻车附手绘灵魂接线图![接线图示意]西门子smart200plc与4台台达变频器modbus轮询通讯 VFD-EL小型矢量变频器 1读写变频器的内部参数 2控制变频器启停读频率电流 3设置变频器输出频率 4有彩色接线图和参数设置说明 有详细注释简单易懂可以学习可用项目红黑配线是永恒经典PLC的485端口3、8-怼到第一个变频器的RS485口四台变频器手拉手菊花链走起DA/DB端子依次并联终端电阻记得给最后一台挂上开关拨到ON重点参数设置台达变频器必改参数 P00.045频率指令来源选通讯 P01.015运转指令来源选通讯 P03.001通讯地址1~4分别对应四台 P03.0139600bps P03.0238N1二、PLC程序核心套路先整初始化程序这步错了全白搭//Modbus主站初始化 LD SM0.1 MOVB 9, SMB30 //波特率96008N1 MOVB 16#0D, SMB87 //启用接收 MOVB 16#0B, SMB88 //消息开始条件 MOVB 16#0D, SMB89 //消息结束条件 MOVB 100, SMW90 //超时时间轮询才是灵魂用定时中断搞个队列//每500ms轮换设备 LDN T37 TON T37, 50 LD T37 EU INCB VB100 //设备地址寄存器1 MOVB VB100, VB101 ANDB 16#03, VB101 //保持地址在1~4循环三、读写频率骚操作写频率要记得转成十六进制整数//设置第1台频率为30Hz MOVW 3000, VW200 //30.00Hz转成3000 AENO MOVB 1, VB300 //从站地址 MOVB 6, VB301 //功能码06写寄存器 MOVW 16#2000, VW302 //频率地址2000H MOVW VW200, VW304 //频率值 XMT VB300, 0 //发送指令读电流更刺激得处理返回数据//读第2台输出电流 MOVB 2, VB310 //设备地址 MOVB 3, VB311 //功能码03读寄存器 MOVW 16#2003, VW312 //电流地址2003H MOVW 2, VW314 //读取长度 XMT VB310, 0 //收到数据后处理 LD SM0.0 MOVB VB320, AC0 //数据长度 ITD AC0, AC1 RRD VB321, VB400 //原始数据存入VB400开始 MOVW VW401, VW410 //实际电流值读取值/100四、避坑指南血泪教训轮询间隔别抠搜建议300ms起跳写参数时变频器可能抽风加个确认重发机制电流值突然变65535检查变频器是否在运行状态通讯断断续续终端电阻和屏蔽层必须安排上五、项目实战经验包实际项目里建议搞个状态机初始态→发送态等待应答→超时重试数据解析→异常处理最后上个完整程序结构主程序 |- 初始化 |- 轮询触发 |- 异常计数清零 中断0 |- 当前设备发送指令 |- 启动接收定时 中断1 |- 解析返回数据 |- 错误码处理 |- 跳转下一设备搞完这套车间主任看你的眼神都不一样了。实测四台设备轮询稳定如狗频率控制误差±0.5Hz内。代码拿去直接用注释都写好了改改地址就能跑。下次有空再唠唠怎么用这个套路搞其他牌子的变频器