施耐德M241 plc与IAI伺服电缸通过ethernet/ Ip通讯,plc与伺服套装,送软件和资料,协助远程调试,plc带以太网口支持ethernet ip,canopen.modbus通讯,codesys编程
最近在自动化项目里折腾施耐德M241 PLC和IAI电缸的Ethernet/IP通讯,这组合调试起来有点意思。先说硬件配置,M241自带以太网口是真香,省了扩展模块的钱。IAI电缸的伺服控制器RCP2系列原生支持Ethernet/IP,硬件接线就是网线直连PLC的网口,物理层基本没啥坑。

Codesys里配置Ethernet/IP节点时得注意IO连接方式。这里用显式报文和隐式通讯混合着搞更灵活。先上段设备声明代码:
iecst
PROGRAM Main
VAR
iaiController : EIP_Adapter; //Ethernet/IP适配器对象
axis1: AXIS_REF; //轴对象
END_VAR
设备树里添加Ethernet/IP扫描器,填IAI控制器的IP地址(比如192.168.1.100)和厂商ID。关键是要把IAI的EDS文件导入到Codesys库,不然参数映射会报错。导入后能看到伺服的全套参数列表,比如控制字、状态字、位置反馈这些。
控制逻辑里最常用的是点动模式。写个简单的位置触发:
iecst
IF startMove THEN
axis1.MoveAbsolute(500.0, 100.0, 10); //目标位置500mm,速度100mm/s
END_IF
这里要注意单位换算,IAI电缸的脉冲当量得在伺服参数里设对。有一次调试时发现移动距离总差个十倍,查了半天原来是伺服端把1个脉冲设成了0.1mm。

施耐德M241 plc与IAI伺服电缸通过ethernet/ Ip通讯,plc与伺服套装,送软件和资料,协助远程调试,plc带以太网口支持ethernet ip,canopen.modbus通讯,codesys编程
远程调试时用自带VPN连现场PLC,施耐德的EcoStruxure Machine Expert有个坑------在线修改程序后必须重新下载EDS配置。建议改完程序先导出硬件配置备份,避免通讯中断后要重新绑定设备。

Modbus TCP和Ethernet/IP可以共存,但要注意端口占用。实测过同时跑EIP通讯和Modbus数据采集,PLC的网口带宽完全够用。如果遇到数据延迟,试着在EIP配置里调小RPI(请求数据间隔),默认100ms可以降到30ms左右。
碰到过最头疼的问题是伺服突然报过流故障,最后发现是Ethernet/IP通讯丢包导致控制信号中断。解决方法是在PLC程序里加了心跳检测:
iecst
heartbeatTimer(IN:=TRUE, PT:=T#2S);
IF heartbeatTimer.Q THEN
iaiController.controlWord.15 := NOT iaiController.controlWord.15; //翻转心跳位
END_IF
这招让伺服端能持续监测通讯状态,超时自动停机保护。调试伺服参数时建议先调软限位,再调刚性。IAI的PDO配置里有几个隐藏参数得用专用软件解锁,这部分官方资料里没写,需要找他们的技术支持要密码。