# SF4501|FINS协议

### 概述

Fins协议 FINS协议，全称为Factory Interface Network Service，是由日本欧姆龙（Omron）公司开发的一套用于工业自动化控制网络的通信协议。它主要用于在PLC（可编程逻辑控制器）和计算机之间进行通信，以实现数据交换和程序下载等功能。

### 示例

准备

- 中科时代出厂的工智机；

- MetaFacture V1.0.4.4编程软件；

1.打开软件，新建工程

2.选择标准工程，并命名Fins

3.选择中科时代Sinsegye设备，选择PLC编程语言(本例为ST语言)

4.登录工智机

5.鼠标右键“Application”—选择“属性”

6.点击“目标内存设置”—勾选“覆盖目标内存设置”—点击“是”

7.中科时代支持设置最大64M的输入、输出和内存。

8.打开程序PLC_PRG,新建变量映射至%I、%Q、%M

Fins协议的寄存器地址与PLC的对应如下

寄存器 | PLC地址
--- | ---
CIO0~CIO32767 | %I区
CIO32768~CIO65535 | %Q区
D0~D33554431 | %M区

使用中科时代Fins协议时，对%I区和%Q区传输的数据大小进行了限制：

变量 | 地址范围 | 最大支持的元件数量 | 说明
--- | --- | --- | ---
%IW0~%IW32767 | 0x0000 ~ 0x7FFF (0~32767) | 32768 | I区的16位寄存器
%QW0~%QW32767 | 0x7FFF ~ 0xFFFF (32768~65535) | 32768 | Q区的16位寄存器

对%M的大小没有限制，最大为64M

所以，示例PLC中：

wIn1对应的地址为I区W5（CIO5），

aInput数组对应地址为I区100~199（CIO100~CIO199）

wOut1对应的地址为Q区W3（CIO32771）

aOutput数组对应地址为Q区100~199（CIO32868~CIO32967）

wMem1对应的地址为M区W7（D7）

aMem数组对应地址为M区100~199（D100~D199）

9.登录工智机，下载并运行程序

10.对变量任意赋值,本例赋值如下：

变量 | 初始值
--- | ---
wIn1 | 99
aInput[0]-- aInput[4] | 11，12，13，14，15
aOutput[0]-- aOutput [4] | 101，102，103，104，105
aMem[0]-- aMem [4] | 201，202，203，204，205

11.打开HslCommunication测试工具，选择Omron—Fins Tcp—输入IP地址（本例为192.168.105.5），默认端口号为9600，点击“连接”

### Fins读取功能

1. 调整数据传送的大小端，调整完成后需重新连接才能生效。

2. 读取我wIn1，地址为CIO5,成功读取值为99

3. 读取wOut1，地址为CIO32771，成功读取

4. 读取wMem1，地址为D7，成功读取。

5.读取PLC的aMem数组，对应Fins的D100数据，选择“ushort读取”：

6.批量读取D100~D109,数量修改为10，点击“ushort读取”

7.读取PLC中aInput[0]数据，起始地址为CIO100

8.批量读取aInput数据

9. 读取PLC中aOutput[0]数据，%Q区的起始地址为CIO32767，在PLC中aOutput[0]映射地址为%QW100,所以aOutput[0]对应CIO32868

8.批量读取PLC中aOutput数据

### Fins写入功能

1. 写入wIn1数据，写入地址为CIO5,修改值为88

2. 内存%M区写入，aMem[50]对应D150,写入数据50，点击“ushort写入”。

3. 输入%I区写入, aInput[51]对应CIO151,写入数据51，点击“ushort写入”。

4. 输入%Q区写入, aOutput[52]对应CIO32920,写入数据52，点击“ushort写入”。