1. FINS协议简介
欧姆龙(Omron)是来自日本的全球制造公司,产品是工业和制造业的机器。其中、小型PLC在国内市场有较高的占有率,有CJ、CM等系列。PLC可以支持Fins、Host link等协议进行通信。支持以太网的欧姆龙PLC CPU、以太网通信模块根据型号的不同,一般都会支持FINS(Factory Interface Network Service)协议,一些模块也会支持EtherNet/IP协议。
FINIS协议使用的TCP/UDP端口:9600
FINS协议使用的编码格式为:ASCII
Fins协议封装在TCP/UDP之上,FINS以太网协议基于OSI模型如下。
2. FINS协议解析
2.1 FINS会话流程
FINS会话流程是基于TCP/IP协议,下图表述了FINS会话开始几个数据帧的作用。FINS协议的会话有一次请求帧,请求帧中附带着发起方的节点参数。PLC端(Server端)会确认并将自己的节点参数放回给请求方。
2.2 FINS帧结构
FINS帧结构包含三部分组成,分别由FINS Header、FINS Command Code和FINS Command Data组成。
2.3 FINS Header
2.3.1 FINS/TCP Header
Magic Bytes(4 bytes):0x46494e53(Protocol ID,协议ID,FINS的16进制ASCII码)
Length(4 bytes): 数据长度,指后续跟着的字符长度
Reserved(3 bytes):保留,通常为0x000000
Command Type(1 byte):数据帧类型,值如下:
- 0x00:connect requst 连接请求数据帧
- 0x01:connect Response,连接请求确认数据;
- 0x02:data,数据传输;
Error Code(4 bytes):保留,通常为0x00000000
2.3.2 FINS Header
0:ICF(1 byte):(Information Control Field)信息控制码:
- 由4个子字段组成,分述如下:
- 1… …. = Gateway bit,是否使用网关,0x01表示使用;
- .1… …. = Data Type bit,数据类型比特位,0x01表示为响应,0x00表示命令;
- …0. …. = Reserved bit&#