前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >欧姆龙通信协议 FINS 2.0

欧姆龙通信协议 FINS 2.0

作者头像
天钧
发布2020-07-03 16:34:35
2.7K0
发布2020-07-03 16:34:35
举报

0x00 FINS简介

欧姆龙全球制造用于工业和制造业的机器。FINS用于通过网络控制其中一些机器。FINS以太网协议基于OSI模型:

OSI layer

Protocol

7 Application Layer

FINS

6 Presentation Layer

5 Session Layer

4 Transport Layer

ISO-on-TCP (RFC 1006)

3 Network Layer

IP

2 Data Link Layer

Ethernet

1 Physical Layer

Ethernet

其中,第1-4层会由计算机自己完成(底层驱动程序),关于这些神马的定义,大家可以上网查一下;

第7层,FINS,这一层和用户数据相关,对PLC数据的读取报文在这里完成。

图1 FINS协议请求结构模型

图2 FINS协议响应结构模型

0x01 协议依赖

FINIS协议使用的TCP端口:9600

FINS协议使用的编码格式为:ASCII

0x02 FINS协议

FINS会话流程

FINS会话流程是基于TCP/IP协议,下图表述了FINS会话开始几个数据帧的作用。FINS协议的会话有一次请求帧,请求帧中附带着发起方的节点参数。PLC端(Server端)会确认并将自己的节点参数放回给请求方。

图3 FINS会话流程

FINS帧结构

FINS帧结构包含三部分组成,分别由FINS Header、FINS Commands和FINS Text组成。

图4 FINS 帧结构

FINS Header 是由标示性的 FINS的ASCII开头,

即:0x46 0x49 0x4e 0x53 转换成字符串就是“FINS”。

FINS Commands 是由功能码组成,分别为Request 和 Response两种内容组成。

FINS Header部分

FINS Header部分包含了3个信息:协议标识符,数据长度、预留及帧类型组成。如图5所示:

图5 S7CommPlus Header结构

FINS Header的结构为:

  • 0~3:Protocol ID,协议ID,通常为0x46 0x49 0x4e 0x53 即“FINS”;
  • 4~7:Length,数据长度,指后续跟着的字符长度。
  • 8~10:Reserved,预留,通常为0x00 0x00 0x00;
  • 11:Type,数据帧类型,一般有以下值:
    • 0x00:connect requst 连接请求数据帧
    • 0x01:connect Response,连接请求确认数据;
    • 0x02:data,数据传输;
  • 12~15:Reserved,保留。

举个例子,如图6所示:

图6 FINS Header结构内容举例

接下来介绍重要的部分(FINS Commands),后面的帧结构都是由PDU类型与功能码来决定的。

FINS Commands部分

FINS Commands部分分为Commands 和 Response两中结构类型。

Commands结构类型如下:

图7 FINS Commands结构内容举例

具体内容如下:

  • 0:ICF:(Information Control Field)信息控制码:
  • 1:Rev:(Reserved)预留 一般为0x00。
  • 2:GCT:(Gateway count)网关数量,一般为0x02。
  • 3:DNA:(Destination network address)目标网络地址。
    • 00:本地网络
    • 01 to 7F:远程网络
  • 4:DA1:(Destination node number)目标节点号。
    • 01 to 7E:SYSMAC NET 网络节点号
    • 01 to 3E:SYSMAC LINK 网络节点号
    • FF:广播节点号
  • 5:DA2:(Source unit number)源单元号。
    • 00:PC(CPU)
    • FE:SYSMAC NET连接单元或者SYSMAC LINK单元连接网络
    • 10 to 1F:CPU 总线单元
  • 6:SNA:(Source network address)源网络地址。
    • 00:本地网络
    • 01 to 7F:远程网络
  • 7:SA1:(Source node number)源节点号
    • 01 to 7E:SYSMAC NET 网络节点号
    • 01 to 3E:SYSMAC LINK 网络节点号
    • FF:广播节点号
  • 8:SA2:(Source Unit address)源单元地址
    • 00:PC(CPU)
    • FE:SYSMAC NET连接单元或者SYSMAC LINK单元连接网络
    • 10 to 1F:CPU 总线单元
  • 9:SID:(Service ID) 序列号 范围00-FF
  • 10~11:Commands code:命令码,分为一级命令码和二级命令码。详细的命令码可参考FINS Commands code。

举个例子,如图8所示:

几个关键功能码

本节主要介绍STOP、RUN及FORCED(强制输出)三个功能码结构。

FINS RUN

通过PC将PLC改变DEBUG、MONITOR及RUN三种模式切换。

图9 FINS RUN数据格式

  • 0~1:Commands Code:功能码,0x04,0x01
  • 2~3:Program No.:项目码,一般为0xFF,0xFF
  • 4:Mode:模式
    • Debug模式 0x00,0x00
    • Monitor模式 0x00,0x02
    • Run模式 0x00,0x04

举个例子,如图10所示:

图10 RUN例子

FINS STOP

通过PC将PLC改变PROGRAM模式,停止程序运行。

图11 FINS STOP数据格式

  • 0~1:Commands Code:功能码,0x04,0x01
  • 2~3:Program No.:项目码,一般为0xFF,0xFF

举个例子,如图12所示:

图12 SetVariable帧结构

FINS FORCED

Forced功能码可以强制设置或者强制重置位。也可以强制设置状态及释放状态。在恢复强制状态前,程序将无法继续执行。其命令结构如下图所示。

  • 0~1:Commands Code:功能码,0x04,0x01
  • 2~3:No.of bits/flags:位号。
  • 4~9:Force Set/Reset data:强制/置位数据。
  • 4~5:Set/Reset Specification:执行动作。
    • 0x0000:强制复位
    • 0x0001:强制置位
    • 0x8000:强制释放并复位
    • 0x8001:强制释放并置位
    • 0xFFFF:解除强制状态
  • 6:Memory Area Code:存储区域代码
  • 7~9:Bit/Flags:位/状态设置

举个例子,如图13所示:

图13

FINS Commands Code

下表是PDU Type几种典型的数据类型及含义:

序号

一级命令

二级命令

含义

1

0x01

0x01

读存储区域

2

0x02

写存储区域

3

0x04

连续读多个存储区域

4

0x03

0x06

读项目区域

5

0x07

写项目区域

6

0x04

0x01

运行

7

0x02

停止

8

0x05

0x01

读控制数据区

9

0x06

0x01

写控制状态

10

0x07

0x01

读时钟

11

0x02

写时钟

12

0x21

0x01

清除错误

13

0x22

0x0F

读文件存储区序号

14

0x10

读文件存储区

15

0x11

写文件存储区

16

0x23

0x01

强制设置/置位

17

0x02

取消强制设置/置位

18

0x0A

读多个强制状态

FINS Memery Area Code

下表是OP Code几种典型的数据类型及含义:

存储区

数据

数据地址

地址范围

存储区代码

位数

起始范围

第三字节

CIO

Bit status

00000 to 25515

0000 to FFFF

00 to 0F

00

1

Word contents

000 to 255

00 to 00

80

2

LR

Bit status

LR 0000 to LR 6315

03E8 to 0427

00 to 0F

00

1

Word contents

LR 00 to LR 63

00 to 00

80

2

HR

Bit status

HR 0000 to HR 9915

0428 to 048B

00 to 0F

00

1

Word contents

HR 00 to HR 99

00 to 00

80

2

AR

Bit status

AR 0000 to AR 2715

048C to 04A7

00 to 0F

00

1

Word contents

AR 00 to AR 27

00 to 00

80

2

Timer/Counter

Completion Flag status

TIM 000 to TIM 511CNT 000 to CNT 511

0000 to 01FF

00 to 00

01

1

PV

TIM 000 to TIM 511CNT 000 to CNT 511

00 to 00

81

2

DM

Word contents

DM 0000 to DM 9999

0000 to 270F

00 to 00

82

2

0x03 结尾

以上仅仅是个人对欧姆龙通信协议 FINS 2.0理解和建议。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 渗透云笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档