您好!欢迎访问深圳市易测电气有限公司网站!
专业的传感器与智能自动化方案提供商专注位移传感器行业
全国咨询热线:137-2888-0902
联系我们
微信扫一扫

【 微信扫码咨询 】

137-2888-0902

0755-85271862

197 EtherCAT位移传感器 — Beckhoff TwinCAT配置与CODESYS变量映射说明

作者:易测电气技术团队 浏览量:341 时间:2026-09-18

一、Beckhoff TwinCAT 3 — GJ 197 EtherCAT 从站配置步骤

197磁致伸缩位移传感器产品外观图

Step 1:安装 ESI 文件

ESI 文件里有哪些对象、过程数据怎么组织,说明见 197 EtherCAT 位移传感器使用说明。

  1. 将 GJ 197 EtherCAT (1 magnet).xml 复制到 TwinCAT 的 ESI 目录:
    C:\TwinCAT\3.1\Config\Io\EtherCAT(TwinCAT 2 为 C:\TwinCAT\IO\EtherCAT)
  2. 打开 TwinCAT XAE → Solution Explorer → I/O → Devices → 右键 Scan
  3. 勾选 EtherCAT Master(如 EtherCAT Master (EK1100 / PCIe))→ 点击 OK
  4. 系统自动识别 “Germanjet GJ 197 EtherCAT (1 magnet)”,Vendor ID 0x000005FC

Step 2:确认 PDO 映射(默认已生效)

展开从站 → Box → Process Data Inputs,应看到:

  • Input WORD/DWORD → Position 1 (0x6000:01)
  • Velocity 1 (0x6000:02)
  • Status 1 (0x6000:03)

输入长度默认为 6 Bytes (3 × DINT),无需手动修改 0x1A00。

Step 3:激活 DC(推荐)

  1. 双击从站 → DC Tab
  2. Operation Mode 选 Distributed Clocks (DC)
  3. Assign Activate = 0x0300(通常自动填)
  4. Sync0 Cycle 设为主站 Task 周期(例:1 ms / 2 ms)

Step 4:变量映射(Mapping to PLC)

  1. 在 POUs → Global Variables (GVL) 中声明:
    VAR_GLOBAL
        bEcatOnline   : BOOL;        (* 从站 Online 标志 *)
        nPosition     : DINT;        (* 位移位置值 0x6000:01 *)
        nVelocity     : DINT;        (* 速度值 0x6000:02 *)
        nStatus       : DINT;        (* 状态字 0x6000:03 *)
    END_VAR
    
  2. 回到 I/O 树 → 右键 Position 1 (Input) → Link To → 选择 GVL.nPosition
  3. 同样映射 Velocity → GVL.nVelocity,Status → GVL.nStatus
  4. 从站 Online State → 右键 Set to OP (Operational)

此时 GVL.nPosition 实时反映传感器位移值(单位需按分辨率换算,参考 0x2000:02)。

Step 5:读取制造商参数(可选 SDO)

  • Online → CoE → SDO Upload
  • Index 0x2000 SubIndex 01 → 读 Stroke(量程 mm)
  • Index 0x2000 SubIndex 03 → 可写 Direction(0/1 反向)

二、CODESYS / 施耐德 — EtherCAT 变量映射说明

1. 扫描从站

  1. Device → Add Device → EtherCAT Master → Scan Network
  2. 识别 Germanjet GJ 197 EtherCAT (1 magnet)

2. 确认 Input Process Data

从站 → EtherCAT I/O → Process Data → Inputs,应出现:

  • Position_1 (DINT) — 对应 0x6000:01
  • Velocity_1 (DINT) — 对应 0x6000:02
  • Status_1 (DINT) — 对应 0x6000:03

3. 全局变量声明

VAR_GLOBAL
    Pos_um      : DINT;      (* 位移 raw value *)
    Vel_um      : DINT;
    StatWord    : DINT;
END_VAR

4. I/O Mapping

  1. 选中 Position_1 → Properties → I/O Mapping
  2. 映射到 GVL.Pos_um
  3. 同理映射 Velocity → GVL.Vel_um,Status → GVL.StatWord

5. 单位换算参考

若分辨率为 1 μm/count(常见出厂设定):

Pos_mm := DINT_TO_REAL( GVL.Pos_um ) / 1000.0;   (* μm → mm *)

若分辨率为 0.1 μm/count,则除以 10000。

6. SDO 访问(可选)

  • 从站 → CoE → SDO Read/Write
  • Index 0x2000 SubIndex 03 写 0 或 1 切换方向
  • 写 0x2000:08 = 1 保存参数到 EEPROM

7. 启用分布式时钟(DC)

  1. 双击 EtherCAT 主站,在 EtherCAT 选项卡确认已选中接到传感器的那块网卡。
  2. 双击从站进入 DC 选项卡,Operation Mode 选 DC Synchron,SYNC0 周期填成主站任务周期的整数倍,例如任务 1 ms 就填 1 ms。
  3. 重新编译并激活配置,从站应稳定停在 OP;多轴场合再对比各轴换向点曲线的相位。

不开 DC 时各站按自己的节拍采样,多轴联动会看到稳定的相位差;开了 DC 各站共用同一条时间轴,换向点才对得齐。

8. 从站上不了 OP 的排查顺序

先在主站读出从站的 AL Status Code(寄存器 0x0134),按码定位:

  • 0x001D / 0x001E:PDO 映射长度与同步管理器不符,用 ESI 里的默认映射重建工程。
  • 0x001B:同步管理器看门狗超时,检查主站任务是否在运行、周期是否设得过短。
  • 0x0031 / 0x0033:分布式时钟没锁住,把 SYNC0 周期放宽一档再试。

技术支持:深圳市易测电气有限公司
官网:www.szetme.com | 电话:137-2888-0902 | 邮箱:info@szetme.com

现场问得最多的问题(量程怎么定、输出信号怎么选、干扰怎么排、通讯怎么配)我们整理成了一页问答合集:位移传感器常见问题解答。

常见问题

GJ 197 EtherCAT 在 TwinCAT 3 里怎么配置?

把 ESI 文件复制到 TwinCAT 的 EtherCAT 配置目录,打开 TwinCAT XAE,在 I/O → Devices 右键 Scan,勾选 EtherCAT Master 后系统自动识别从站;展开从站的 Process Data Inputs,应看到 Position 1(0x6000:01)、Velocity 1(0x6000:02)、Status 1(0x6000:03),输入长度默认为 6 Bytes,无需手动修改 0x1A00。

EtherCAT 从站怎么启用分布式时钟?

双击从站进入 DC Tab,Operation Mode 选 Distributed Clocks (DC),Assign Activate 通常自动填 0x0300,Sync0 Cycle 设为主站 Task 周期,例如 1 ms 或 2 ms。

EtherCAT 位移传感器的变量怎么映射到 PLC?

在 Global Variables 里声明变量,例如 bEcatOnline(BOOL)与 nPosition、nVelocity、nStatus(都是 DINT);回到 I/O 树右键 Position 1 (Input) → Link To → 选择对应变量,同样映射 Velocity 与 Status;最后把从站设为 OP (Operational) 状态。此时变量实时反映传感器位移值,单位需按分辨率换算。

分辨率 1μm/count 时 EtherCAT 位置值怎么换算成 mm?

分辨率为 1 μm/count 时除以 1000.0;若分辨率为 0.1 μm/count,则除以 10000。

CODESYS 里 EtherCAT 位移传感器怎么扫描和映射?

Device → Add Device → EtherCAT Master → Scan Network 识别从站;在 EtherCAT I/O → Process Data → Inputs 应出现 Position_1、Velocity_1、Status_1,均为 DINT,依次对应 0x6000:01、0x6000:02、0x6000:03;声明全局变量后在 I/O Mapping 里逐个映射即可。

EtherCAT 从站能进 Safe-OP 却上不了 OP 是什么原因?

先读 AL Status Code(寄存器 0x0134)定位。常见三种:同步管理器看门狗超时(0x001B,主站没有周期性发出过程数据)、分布式时钟没锁定(0x0031 或 0x0033)、PDO 映射长度与同步管理器不符(0x001D 或 0x001E)。