GJ 197 EtherCAT 磁致伸缩位移传感器:ESI 文件解读与上机配置

197 系列磁致伸缩位移传感器接 EtherCAT 时,主站扫到的不是一个"嘴上的传感器",而是一个按 ESI 文件描述出来的从站:三个 32 位输入、没有输出过程数据、参数走邮箱。这份文件把上面这些写死了,读懂它,配置这一步就不用猜。

文中出现的每个编号和数值,都取自厂家给的 GJ 197 EtherCAT (1 magnet).xml,不是通用经验值。

文件骨架:三层

文件头是 EtherCATInfo Version 1.6,往下分 Vendor 与 Descriptions 两层。Vendor 里是厂家编号和名称,Descriptions 里才是设备本身。

项目ESI 里的值用在哪
Vendor Id#x000005FC主站按它认厂家,扫到的设备对不上就查这里
Device TypeProductCode #x00000197主站靠它匹配 ESI 文件
RevisionNo#x1描述修订号,与固件不匹配时会提示
PhysicsYY物理层为 EtherCAT
GroupTypeGJ EtherCAT Sensor主站设备树里的分组

导入时常被忽略的是 RevisionNo。同一台设备换了固件、ESI 没跟着换,主站会提示描述与设备不一致;此时要么换文件,要么在工程里关掉那一项校验,别硬跑。

从站只往上送三组数

整份文件里只有一个 TxPDO:#x1a00,名称 Sensor Inputs,挂在 SM3 上,标了 Mandatory 和 Fixed——意味着这几项不能删、不能改顺序。

索引名称数据类型含义
#x6000:1Position 1DINT · 32 位位置
#x6000:2Velocity 1DINT · 32 位速度
#x6000:3Status 1DINT · 32 位状态

三项合计 96 位,也就是 12 字节,全部只上行。文件里 RxPDO 的数量是 0:主站没有任何过程数据能往下写,控制字、目标值一概没有。要改参数只能走邮箱,走 CoE 的 SDO。

197 系列 EtherCAT 从站结构:主站通过 TxPDO 读三项 32 位数据,参数与调试走 CoE 邮箱
三个 32 位输入走 PDO,配置与调试走邮箱,中间没有反向过程数据

这里有一个会让人犯嘀咕的地方:ESI 里 SM3 的默认尺寸写的是 6 字节,而上面三项加起来是 12 字节。多数主站会把尺寸按 PDO 重算,运行不受影响;导入时如果主站报"SYNC 尺寸不一致",以 PDO 的 12 字节为准,别反过来改映射去凑 6。

对象字典里真正要动的只有 #x2000

字典一共 17 个对象,其中 14 个是 EtherCAT 通用项(设备类型、错误寄存器、标识、同步参数、PDO 分配),现场不改。跟测量真正有关的只有三个:#x2000 参数、#x6000 输入、#x8000 调试。

子项名称作用
1Stroke量程
2Resolution分辨率
3Direction方向,决定递增还是递减
4Max no of magnet最大磁环数
5No of missing magnet缺失磁环数
6 / 7Reserved1 / Reserved2保留
8Save保存到非易失存储

顺序上有讲究:前四项写完,最后写 Save。不写 Save,参数只停在内存里,断电就回到默认值 0000——量程和分辨率都是 0 的状态下,位置值换算不成毫米,很多人到这里以为是通讯坏了。

ESI 里这些对象的 Access 一律标 ro,看着像全只读。这个标注不能当结论用,能不能写取决于固件和厂家手册;省事的验证方式是主站上用 SDO 写一次、立刻读回,读回来的不是原值就说明写进去了。

同步方式:Free Run 还是 DC Sync0

文件给了两个 OpMode:Free Run(AssignActivate #x0000)和 DistributedClk(#x0300,Sync0 事件)。调试阶段先用 Free Run 把通讯跑通,再切 DC,问题好定位。

切到 DC 之后要盯的是 #x1c32 和 #x1c33 这两组同步参数,各有 12 个子项,现场常用的是 Synchronization Type、Cycle Time、Sync0 Cycle Time,以及三个错误计数:SM-Event Missed、Cycle Time Too Small、Sync Error。这三个计数一旦开始涨,就别再调控制参数了,先把周期和主站负载对一遍。

另一点要留出余量:DC 只解决"什么时候采样、主站什么时候取",消不掉传感器自身的测量延迟。算整环响应时,这一段要单独加进去。

#x8000 是厂家的调试口

调试对象有 8 个子项:Out 1 到 Out 6、Reserved、Command。这组在标准 EtherCAT 设备里没有,属于厂家自带,ESI 只给了名字没给语义,具体每个 Out 对应什么要看厂家说明。

用法上它比猜有用:设备状态可疑时先读这组值,能大致判断问题在测量侧还是通讯侧,省掉把传感器拆下来这一趟。

上机六步

197 系列 EtherCAT 从站上机六步:导入 ESI、选同步方式、核 PDO、写参数、保存、读回验证
前三步核对,后三步落参数,顺序颠倒会在第 6 步暴露出来
  1. 导入 ESI,核对身份。ProductCode 要是 #x00000197、Revision 要是 #x1,两项都对上再往下走。
  2. 选同步方式。能上 DC 就上 Sync0;先跑 Free Run 确认通讯,再切 DC。
  3. 核 PDO。三个 32 位、合计 12 字节、顺序是位置在前的 Position/Velocity/Status。
  4. 写 #x2000。量程按实际行程,分辨率按型号,方向按缸的朝向,磁环数按实际装了几只。
  5. 写 #x2000:8 Save。写完立刻读回,确认参数没有回滚。
  6. 读回验证。读 #x6000:1,按量程与分辨率折算成毫米,和钢尺在两个端点各对一次。

三个容易踩的坑

坑一,ESI 选错文件。文件名和设备名都带 (1 magnet),同一系列按磁环数会配不同的 ESI。换配置时没换文件,通讯可能照样通,但对象字典里跟磁环数有关的项对不上,表现是能读数却读不对。

坑二,用 SDO 周期读位置。邮箱是一问一答,轴一多总线负载立刻上去,表现是刷新变慢、位置滞后。位置必须在 PDO 里:#x1c13(TxPDO assign)的默认值已经是 #x011a,指向 #x1a00,别把这个分配删掉。

坑三,把 SM 默认尺寸当数据长度。上面那个 6 字节就是例子。数据长度永远以 PDO 映射为准,SM 的 DefaultSize 只是个默认提示。

这份 ESI 是厂家给的,改不了;能改的是主站侧怎么读、怎么写。把三组数读对、把 #x2000 写对并 Save,剩下的就是换算和机械对零的事。

这篇讲的是文件本身。物理层接线和上线顺序偏ESI 文件与 IN/OUT 接线方向,同步与状态迁移的取舍偏DC 配置与从站状态机。整线选型看四种总线选型,同系列的 PROFINET 版本在199 的 GSDML 组态。

常见问题

Q:导入 ESI 后主站为什么没有输出过程数据

这份 ESI 里 RxPDO 数量是 0。197 系列只向上送三组 32 位数据(位置、速度、状态),没有接收的过程数据,所以主站的输出区是空的。要下发参数只能走邮箱,用 CoE 的 SDO 写入对象字典。

Q:#x2000 里改了参数,断电后为什么又回到默认值

少了最后一步 Save。#x2000 有 8 个子项,Stroke、Resolution、Direction、磁环数写完,还要写 #x2000:8 Save。不写 Save,参数只存在内存里,断电就回到 0000,量程和分辨率都归零。

Q:ESI 里 SM3 写 6 字节而 PDO 是 12 字节,按哪个改

以 PDO 为准,别改映射去凑 6。三项各 32 位合计 12 字节,多数主站会按 PDO 重算尺寸;如果主站报 SYNC 尺寸不一致,把数据长度按 12 字节处理,SM 的默认尺寸只是提示值。

Q:主站扫到了设备但参数项对不上

先看 ESI 文件有没有选错。文件名与设备名都带 (1 magnet),同一系列按磁环数会配不同文件;ProductCode 相同,描述内容不同,主站靠 RevisionNo 判断匹配。换配置时记得一起换文件。

这篇讲的问题,说到底都绕不开磁致伸缩位移传感器本身。磁致伸缩位移传感器产品中心按行程、安装方式与输出接口把全部系列排开,选型从这里进最省事。

← 返回行业动态