OMRON FINS
FINS (Factory Interface Network Service) 是日本 OMRON PLC 的标准通信协议。CJ / CS / CP / NJ / NX 等系列几乎所有 OMRON PLC 都支持 FINS/TCP 或 FINS/UDP。
这是在汽车零部件、食品饮料、医药包装产线上最常见的 PLC 之一。
注册表单输入项
| 输入栏 | 填写内容 | 示例 |
|---|---|---|
| IP 地址 | PLC 的 IP | 192.168.0.110 |
| 端口 | FINS 端口 | 9600 (标准) |
| 网络号 (network) | FINS 网络号 | 0 (单一网络) |
| 节点号 (node) | PLC 的节点号 | 通常为 IP 最后一个八位组 (110) |
| 单元号 (unit) | 多 CPU 环境下的 unit | 0 |
需在 PLC 的 CX-Programmer / Sysmac Studio 中,将 [内置以太网设置] → FINS/TCP 或 FINS/UDP 设为启用。
节点号的正确取值
OMRON 通常将 IP 的最后一个八位组用作节点号(例如:192.168.0.110 → 节点 110)。但在 CX-Programmer 的 [PLC 设置] → [内置以太网] 中可以任意修改,因此请以 PLC 画面上的实际值为准。
标签的 PLC 地址表示法
OMRON 的内存区域及其简写表示:
| 表示 | 区域 | 备注 |
|---|---|---|
D100 | Data Memory 100 | 最常用,16-bit |
W50 | Work Area 50 | 16-bit |
H10 | Holding Area 10 | 16-bit,断电后仍保持 |
A100 | Auxiliary Area | 16-bit |
CIO0 | Core I/O word 0 | 16-bit |
CIO0.5 | CIO word 0 的 bit 5 | 1 位 |
E0_100 | Extended DM bank 0, addr 100 | 16-bit |
位 / 字表示法
<area><number>→ 16-bit 字(例如:D100)<area><number>.<bit>→ 位(例如:CIO0.5)<area><number>:<data-type>→ 明确指定数据类型(例如:D100:DINT)
数据类型匹配
| PLC 中的值 | 数据类型 | 类型辅助 | PLC 地址示例 |
|---|---|---|---|
| 位 (CIO bit / W bit) | Boolean | (留空) | CIO0.5, W50.0 |
| 16-bit 整数 | Integer | (留空) | D100 |
| 16-bit 无符号 | Integer | UI | D100 |
| 32-bit 整数 (D100~D101) | Integer | DW | D100 |
| 32-bit 实数 | Float | REAL | D200 |
| 64-bit 实数 | Double | LREAL | D300 |
| 字符串 (BCD/ASCII) | String | STR[N] | D500 |
OMRON 将 32-bit 数据以两个字为一组的方式存储(例如:D100 = lower,D101 = upper)。使用 DINT / REAL 时,请预留足够的空闲字。
常见问题与处理
| 现象 / 提示信息 | 可能原因 | 解决方法 |
|---|---|---|
| “Connection refused” | FINS 未启用 | 在 CX-Programmer / Sysmac Studio 中启用 FINS/TCP 或 FINS/UDP |
| “Network not found” / “Node not found” | network/node 号不一致 | 按 PLC [内置以太网设置] 中的网络/节点值原样填写 |
值始终为 0 | 区域不匹配(本应为 D 却按 W 读取等) | 对照手册重新确认 “FINS 内存区域代码” |
| 32-bit 实数数据错乱 | 两个字的顺序 (LSWORD/MSWORD) 不同 | 类型辅助先尝试 REAL(默认),不行再用 REAL_LSWORD_FIRST |
常用示例
| 标签名称 | PLC 地址 | 数据类型 | 类型辅助 |
|---|---|---|---|
| 运行标志 | CIO0.0 | Boolean | (留空) |
| 生产计数器 | D100 | Integer | (留空) |
| 压力 (kPa) | D200 | Float | REAL |
| 累计时间 (h) | D102 | Integer | DW |
| 批次 ID | D500 | String | STR[10] |
更详细的示例 / 自动化注册
请参考 高级 — REST API 中的 FINS 示例。