待解决

ESI文件里PDO mapping和CoE对象字典对不上咋整?

zhao_lei
zhao_lei
2026/03/23 14:07

最近接了个改造项目,客户那边用的是倍福CX5130+第三方伺服,厂家给的ESI我导入到TWINCAT3里,扫描从站的时候能识别出来,但是Start过程报错,说PDO mapping跟CoE对象字典不一致。我对比了XML里的PDO配置和厂家手册里的对象字典,0x1A00和0x1600那几组确实数量对不上,ESI里多映射了2个32位的参数,手册里那2个参数其实是在0x2xxx那一段里。

现在我手头能改的就两样:TWINCAT里的PDO assignment可以手动勾选,或者把ESI文件里对应的PDO条目删掉重新加载。直接改ESI会不会让从站启动的时候报配置错误啊?有没有兄弟碰到过这种ESI和实际对象字典不一致的坑,是改ESI稳还是改TWINCAT侧的配置稳?

24 4

全部回复 (4)

年年有余
年年有余#1

先别动ESI文件。从站上电的时候固件会校验PDO映射数量,ESI里写多少它就期望多少,你TWINCAT这边手动勾选只改了主站侧的SM通道配置,从站那边该校验还校验。报这个错基本就是厂家导ESI的时候把后期才加的变量提前编进PDO里了。

稳妥的做法是拿厂家最新版的固件更新包看看有没有同步的ESI,我之前碰过汇川的IS620N就是这毛病,新版固件修了PDO映射顺序,ESI也一起更新了。如果厂家那边不更新,你只能动ESI,把那2个32位参数对应的PDO条目(Entry)手动删掉,记得TPDO和RPDO要对称删,别只删一边。删之前备份原文件,万一从站进PreOP卡住还能回滚。

2026/03/26 13:49
谢辉
谢辉#2

反问一下,你这0x2xxx里的2个参数是啥功能?如果是厂商自定义的私有对象(比如转矩前馈、增益切换那类),ESI里给不给映射其实无所谓,主站通过SDO读写就行,把那2个参数从PDO里完全去掉反而更稳,PDO越少周期时间越短。关键是看那2个参数在运控过程中需不需要每周期更新,控制在1ms周期里的才值得放PDO。

2026/03/26 22:24
yongz95
yongz95#3

我去年做汇川和欧姆龙NJ的配套也撞过,汇川给的ESI里0x1A00映射了8个对象,控制器那边只认前6个。当时是直接用汇川原厂调试软件(InoProShop)在线把PDO配置改了再导出新ESI,TWINCAT用导出后的ESI一点问题没有。厂家自己改肯定比手编XML靠谱,XML里的数据类型要是写错一个bit位,扫描的时候都识别不出来。

2026/03/26 23:02
潘树林
潘树林#4

CX5130带的TwinCAT3啥版本?3.1.4024之前有个bug是ESI缓存的,从旧的换成新的得把TwinCAT的IO Devices缓存清掉,路径在C:\TwinCAT\3.1\Boot\下面还有个PLC的,把对应的TIx文件和IO cache都删了重启。说不定你那边根本不是ESI的问题,是控制器还在用旧的PDO配置在跑。

2026/03/31 18:13