LS 产电 (LS ELECTRIC) — XGI / XBC / XBM
与 LS ELECTRIC(原 LS 产电)的 XGI / XBC / XBM PLC 系列通过 FEnet (Fast Ethernet) 标准协议进行通信。
这是 XGT 系列最常用的通信方式,先确认 ICMP (ping) 可达性,然后再开始实际通信。
注册表单输入项
| 输入栏 | 填写内容 | 示例 |
|---|---|---|
| IP 地址 | PLC 的 FEnet 模块 IP | 192.168.0.80 |
| 端口 | FEnet 端口 | 2004 (XGT 默认) |
| 连接超时 (connect-timeout) | 连接尝试的最长时间 (ms) | 3000 |
| 读取超时 (read-timeout) | 读取响应的最长时间 (ms) | 3000 |
| 使用校验和 (use-checksum) | BCC 校验和选项 | 通常为 false |
| 位索引使用十六进制 (use-hex-bit-index) | 是否将位号按十六进制解释 | 通常为 false。仅当在 P 区使用 F 这类十六进制索引时设为 true |
PLC 侧配置只需在 XG5000 中预先注册 FEnet 模块的 IP / 端口即可。
ping 检测
LS PLC 在尝试通信前,网关会先用 ping 确认是否可达。如果企业内网屏蔽了 ICMP (ping),正常的 PLC 也会显示 “Ping failed”,请检查防火墙策略。
标签的 PLC 地址表示法
LS PLC 推荐使用简写形式 (D00309),网关会自动转换为标准形式 (%DW00309)。
存储区域
| 字母 | 区域 |
|---|---|
D | Data Register — 最常用 |
M | Memory (存储位) |
K | Keep Relay |
F | Flag |
T | Timer |
C | Counter |
R | (视系列而定) |
P | I/O |
表示示例
| 表示法 (简写形式) | 含义 |
|---|---|
D00309 | Data Register 309 (16-bit) |
D00600 | Data Register 600 (若要按 32-bit 使用,需在 [格式辅助] 中指定 DW) |
M02704 | Memory bit 2704 |
P0001F | I/O bit (使用十六进制索引时) |
LS 的同一地址可按 16-bit / 32-bit / 64-bit / 浮点等多种方式解释,因此 [格式辅助] 至关重要。
数据格式匹配
| PLC 中的值 | 数据格式 | 格式辅助 | PLC 地址示例 |
|---|---|---|---|
| 位 (M, K, T, P) | Boolean | (留空) | M02704 |
| 字中的特定位 | Boolean | BIN[3] (第 3 位) | D00309 |
| 16-bit 整数 | Integer | (留空) | D00309 |
| 16-bit 无符号 | Integer | UI | D00300 |
| 32-bit 整数 | Integer | DW | D00600 (使用 D00600~D00601) |
| 32-bit 无符号 | Integer | UDW | D00690 |
| 64-bit 整数 | Long | (留空) | D00700 |
| 32-bit 浮点 (最常见的浮点型) | Float | REAL | D00450 |
| 64-bit 浮点 | Double | LREAL | D00500 |
| 字符串 N 字 (= 2N 个字符) | String | STR[N] | D00500 |
32-bit 却把格式辅助留空会怎样?
会被误读为 16-bit,得到完全不同的数值。32-bit 整数请务必指定 DW,32-bit 浮点请务必指定 REAL。
常见问题与解决方法
| 现象 / 提示 | 可能原因 | 解决方法 |
|---|---|---|
| “Ping failed” | ICMP 被屏蔽的环境 | 在防火墙中允许 ICMP。若仍不行请联系系统管理员 |
| “Connect failed” | FEnet 模块未运行、端口不一致 | 在 XG5000 中确认 FEnet 模块 IP/端口 (2004) |
| 32-bit 值异常 | 格式辅助留空 | 指定 DW (整数) / REAL (浮点) |
| 位读不到 | 注册为 D00100 (D 是字区域) | 使用 M02704 这类位区域。或用 format=BIN[3] 从字中提取位 |
| 字符串乱码 | LS 采用 low-byte-first 发送的特性 | 网关会自动处理。使用外部工具直接解码时需注意 |
常用示例
一般产线 PLC 注册
| 标签名称 | PLC 地址 | 数据格式 | 格式辅助 |
|---|---|---|---|
| 运行位 | M02704 | Boolean | (留空) |
| 计数器 (16-bit) | D00309 | Integer | (留空) |
| 累计产量 (32-bit) | D00600 | Integer | DW |
| 压力 (浮点) | D00100 | Float | REAL |
| 压力 (kPa,换算) | D00100 | Float | REAL (计算公式 ${VALUE}*0.1) |
| 批次名 (10 字) | D00500 | String | STR[10] |
从字中提取位
如果同一个字中打包了多个位信号,可以用 BIN[비트번호] 逐行注册。
| 标签名称 | PLC 地址 | 数据格式 | 格式辅助 |
|---|---|---|---|
| Bit 0 | D00309 | Boolean | BIN[0] |
| Bit 3 | D00309 | Boolean | BIN[3] |
| Bit 15 | D00309 | Boolean | BIN[F] (十六进制 F = 15) |
通过 use-hex-bit-index=true 设置 PLC 注册选项后,即可使用十六进制索引(如 F)。
更详细的示例 / 自动化注册
请参考 高级 — REST API 中的 LS 示例。