FINS 协议

Factory Interface Network Service by OMRON

FINS 是欧姆龙 PLC 的专有通信协议,支持 Ethernet、串口和 Controller Link 多种传输介质,协议无加密认证机制,可通过网络远程读写 PLC 内存和控制设备运行。

概述

FINS(Factory Interface Network Service)是欧姆龙(OMRON)公司为其工业自动化产品系列开发的通信协议,覆盖欧姆龙 CJ、CP、NJ/NX 系列等主流 PLC 产品。FINS 协议的设计目标是为欧姆龙自动化设备提供统一的通信接口,支持 Ethernet、Controller Link、RS-232、RS-422/485 等多种传输方式。

FINS 协议在中国的食品饮料、电子制造、水处理和纺织机械等行业有较广泛的应用。作为欧姆龙生态系统的核心通信协议,FINS 不仅用于 PLC 编程和诊断,也是欧姆龙 SCADA 系统(如 CX-Supervisor)和第三方上位机与欧姆龙 PLC 数据交换的主要通道。

通信机制

FINS 协议采用客户端-服务器通信模型。FINS 命令帧由信息控制字段(ICF)、网络地址、节点号、服务号和 FINS 命令码组成。FINS 命令码定义了具体的操作类型,包括内存区域读写(01/02)、参数读写、运行控制(改变 PLC 运行状态)、循环读(定时读取多个内存区域)和错误状态读取等。

FINS over Ethernet 将 FINS 命令封装在 UDP 或 TCP 数据包中,使用固定的报文头格式。UDP 模式默认使用 9600 端口,每个 FINS 数据包最大 2014 字节。FINS 通信通过本地网络号和节点号寻址,支持跨网络转发(需要 FINS 路由节点)。

FINS 协议支持多种内存区域的直接访问,包括 CIO(核心 I/O 区域)、WR(工作区域)、HR(保持区域)、AR(辅助区域)、DM(数据存储区域)和 EM(扩展数据存储区域)。读取 DM 区域的值可以获取工艺参数,写入特定内存区域可以改变 PLC 运行逻辑。

FINS 广播命令允许客户端向网络中的所有节点发送命令,用于网络状态查询和时钟同步。FINS 还支持通过 FINS/TCP 网关将 FINS 协议从串口网络桥接到以太网网络。

安全风险分析

FINS 协议的安全缺陷与其他 PLC 专有协议类似。协议无身份认证机制——任何能到达 9600 端口或接入串口总线的设备均可发起 FINS 通信。协议无加密——所有命令和数据以明文形式传输,内存地址、数据值和控制命令完全暴露。协议无完整性保护——攻击者可修改报文内容而不被发现。

攻击者通过 FINS 协议可执行的危险操作包括:读取 PLC 全部内存区域获取程序和工艺参数;写入关键内存区域改变控制逻辑;发送运行控制命令停止或启动 PLC;通过强制功能直接操控输出模块。FINS 的循环读功能允许客户端持续轮询 PLC 数据,攻击者可利用此功能进行高频率的数据采集,为后续攻击收集情报。

FINS 路由功能在跨网段部署中引入额外风险。若路由节点配置不当,攻击者可通过一个网络入口访问多个 FINS 子网的 PLC 设备。部分欧姆龙 PLC 的 FTP 服务(用于文件传输)若开放在网络上,也可能被利用获取 PLC 程序文件。

应用场景

FINS 协议主要应用于使用欧姆龙 PLC 的自动化系统。在中国市场,食品饮料生产线、电子制造装配线、水处理厂和纺织机械控制是欧姆龙 PLC 的传统优势领域。FINS 协议在这些场景中连接 PLC、HMI、上位机 SCADA 和 MES 系统。

欧姆龙 NJ/NX 系列控制器在机器自动化领域(如半导体制造设备、精密机床)也有大量应用,通过 FINS/Ethernet 与上层系统通信。部分物流分拣系统和楼宇自动化项目也使用欧姆龙 PLC 及 FINS 协议。

安全防护建议

通过工控防火墙对 UDP/TCP 9600 端口实施协议级访问控制,仅允许授权的 SCADA/编程上位机 IP 地址发起 FINS 通信,并基于 FINS 命令码设置白名单(如禁止运行控制命令从非维护网段发起)。在 PLC 与上层网络之间部署串口隔离网关或协议转换器,避免 FINS 协议直接暴露在非受控网络中。关闭 PLC 上不必要的 FINS 服务端口和 FTP 服务。启用欧姆龙 PLC 的内置安全功能(如 NJ 系列的控制器安全设置),限制远程访问能力。部署终端白名单系统,建立 PLC 的 FINS 通信基线,检测异常的内存访问模式和非法的控制命令。

常见问题

Q: FINS 协议使用哪些端口?
FINS over Ethernet 默认使用 UDP 9600 端口通信,部分实现也支持 TCP 方式。Controller Link 使用专有数据链路层协议,串口 FINS 使用 RS-232/RS-422/RS-485。
Q: FINS 协议能否远程控制 PLC?
FINS 协议支持远程读写 PLC 内存区域(DM、CIO、WR 等)和发送运行控制命令,若无网络隔离和访问控制,攻击者可通过 FINS 协议远程操控 PLC。
Q: FINS 协议是否支持加密?
传统 FINS 协议不支持加密传输,所有命令和数据明文交换。欧姆龙较新的 PLC 型号在部分通信场景中提供了安全扩展选项,但需额外配置。
标签:FINS欧姆龙工控通信
发布日期:2026-05-19
选择区号