信捷XD与3台英威腾GD变频器通讯程序(XJXD-15) 可直接用于实际的程序带注释,并附送触摸屏有接线方式和设置,通讯地址说明等。 程序采用轮询,可靠稳定 器件:信捷XD5的PLC,3台英威腾GD系列变频器,昆仑通态7022Ni 功能:实现频率设定,启停控制,实际频率读取。 资料:带注释触摸屏接线和设置说明
最近在工控项目里碰上个典型需求——用信捷XD5 PLC带三台英威腾GD变频器,顺手把通讯程序整理出来。这种一拖三的Modbus RTU通讯配置在产线上挺常见,重点在于轮询节奏的把控。直接上干货,先说硬件怎么接。
RS485接线要注意终端电阻。PLC的COM2口(A+接蓝线,B-接黄线)分别接到三台变频器的485端子。重点:最后一台变频器的终端电阻拨码要打到ON,之前两台保持OFF。遇到过信号反射导致通讯丢包的兄弟应该懂这个痛,实测不加终端电阻的话第三台设备数据老抽风。
//信捷PLC通讯参数设置 MOV H03, D8120 //波特率9600/8N1 MOV K1, D8121 //站号1(主站) MOV K3, D8129 //响应超时300ms这段初始化代码放程序开头。特别提醒D8129这个超时寄存器,实测英威腾GD2000系列响应速度在150ms左右,设300ms比较稳妥。之前试过设200ms,设备偶尔会超时断连。
轮询逻辑用定时器加计数器实现:
T0 K50 //50ms间隔触发 C0 K3 //3台设备计数 LD T0 INC C0 MOV C0, D100 //当前轮询站号 CMP D100, K1 = CALL P1 CMP D100, K2 = CALL P2 CMP D100, K3 = CALL P3 //示范读取第一台运行频率 P1: MOV K1, D112 //目标站号 MOV H0003, D114 //功能码03 MOV H0064, D116 //起始地址3100(实际40064) MOV K1, D118 //读取长度 RS D114 K8 //发送指令 END这里有个坑要注意:英威腾的保持寄存器地址需要+40000转换。比如频率设定地址3100对应Modbus地址其实是40064(16进制转换时容易犯迷糊)。曾经因为地址换算错调了一下午,最后发现是十六进制和十进制没转明白。
触摸屏配置关键点:在昆仑通态7022Ni里新建三个设备,对应三个变频器站号。数值输入框绑定PLC的D寄存器时,记得做量程转换。比如频率设定0-50Hz对应0-5000(因变频器参数通常用0.01Hz为单位)。
!接线示意图
常见故障排查:
- 通讯灯不闪:查A/B线是否接反,终端电阻是否到位
- 数据跳动:降低波特率到4800试试,或检查接地
- 单台无响应:单独接该设备测试,可能是站号冲突
这套框架经过三年产线验证,经历过电压波动、电机干扰等恶劣环境考验。核心就两点:严控轮询间隔(每台间隔≥100ms),做好异常处理(超时自动重试三次)。源码里其实还藏着个彩蛋——当连续五次通讯失败会自动切到应急模式,这个设计曾经在雷雨天救过整条生产线。
完整代码包评论区自取,包含变频器参数设置截图和触摸屏元件地址对照表。下期准备聊聊怎么用这个架构实现变频器故障队列管理,想看的老铁扣个1。