工业以太网杂谈(一)

工控安全 2年前 (2022) admin
494 0 0
工业以太网杂谈(一)
JZGKCHINA
工控技术分享平台

开题我们先罗列一下国内目前常见的
工业以太网杂谈(一)

工业以太网协议以及主要厂家


Modbus TCP/IP
工业以太网杂谈(一)  


工业以太网杂谈(一) 
以及其他中立厂商


EtherNet/IP
 
工业以太网杂谈(一)

工业以太网杂谈(一)
工业以太网杂谈(一)工业以太网杂谈(一)


ProfiNet 工业以太网杂谈(一)
 S7comm

工业以太网杂谈(一)


EtherCAT
 
工业以太网杂谈(一)

工业以太网杂谈(一)


PowerLink 
工业以太网杂谈(一)

工业以太网杂谈(一)

想必大家都知道在以太网还在以同轴电缆作为物理传输介质的时候,很多主流工业通讯方式还是串口,包括我们熟知的Modbus RTU,Can,MPI/PPI , 3964R, MB+ , DF1等等。

今天给大家讲讲这几种工业以太网:


Modbus TCP/IP:


先我们来看Modbus TCP/IP, 直观上看他还是Modbus协议,这个没错,Modbus TCP/IP是Modbus 协议的变体,将Modbus协议运行在了TCP/IP网络上,连接端口是502,不需要校验和计算,因为数据校验在低层进行了;

还有几种协议Modbus over TCP,Modbus over TCP/IP还有Modbus RTU/IP,这三种也是Modbus的变体,但是和Modbus TCP/IP协议最大的区别就是带有了Modbus RTU的检验和。

目前也有很多人在研究Modbus UDP/IP,这和Modbus TCP/IP最大的区别在于可以提高实时性和通信效率。因为UDP是无连接协议,比TCP节约了大量网络时间,但是可靠性和安全性不能保证。

首先,让我们通过一段报文来理解Modbus TCP/IP,从OSI七层模型物理层到应用层
工业以太网杂谈(一)
上图我们可以清晰看到Modbus TCP/IP使用了OSI的物理层,数据链路层,网络层,传输层以及应用层

物理层:

Frame 物理层的数据帧概况,线路307个字节,实际捕获307个字节

工业以太网杂谈(一)

  • 物理介质:以太网卡
  • 传输介质:双绞线,同轴电缆,光纤
  • 封装类型:Ethernet(1)
  • 物理接口:RJ45
  • 帧编号:1176
  • 帧长度:307字节

数据链路层:

Ethernet II协议,以太网帧头信息 (14个字节)

工业以太网杂谈(一)
网卡MAC地址:
  • 的MAC:00:15:5d:07:b4:0a
  • MAC:a8:74:1d:c7:16:5d
  • 类型:IPv4

网络层:

IP协议 IP包头信息(20个字节)

工业以太网杂谈(一)
  • 版本:IPv4
  • 协议类型:TCP
  • 源IP地址:172.18.32.32
  • 目的IP地址:172.18.31.72

传输层:

TCP协议  数据段的头信息(20个字节)
工业以太网杂谈(一)
  • 源端口:502
  • 目的端口:57298
  • 序列号:4197
  • 确认号:241
  • PDU长度:253

应用层:

MBAP,Modbus 应用层的信息(253个字节)
工业以太网杂谈(一)
  • MBAP:(7个字节)
  • MABP 由四部分构成:
  • 事务识别号:9522
  • 协议识别号:0
  • 长度:247
  • 设备识别号:255

详细说明如下:

描述

字节长度

描述

客户端表示

服务端表示

事务识别号

2字节

Modbus 请求/响应任务的识别号

由客户端初始化时形成

由接收到的请求信息复制

协议识别号

2字节

0=Modbus 协议

由客户端初始化时形成

由接收到的请求信息复制

长度

2字节

后面的字节数量

由客户端发送请求时形成

由服务端响应请求时形成

设备识别号

1字节

连接的从站地址

由客户端初始化时形成

由接收到的请求信息复制

关于设备识别号,对于Modbus TCP/IP协议该项默认255,但是如果该协议为Modbus Plus或者Modbus RTU等串口协议,通过串口服务器等转换设备转换后变为了Modbus RTU over TCP,则该项为Modbus 串口从站的设备地址。
工业以太网杂谈(一)Modbus:(246个字节)
在应用层Modbus的响应报文:
  • 第一个字节:功能码
  • 第二个字节:后面的长度
  • 第三个字节:请求数据的第一个寄存器的值。上图即显示的40001-40024的值;由上图也能看出40003的当前值为38.86

综上内容一条完整modbus TCP/IP的构成如下




IP



M
B
A
P






[0]



[1]



[2]

……

以太网头(14字节):

目的MAC地址
(6字节)

源MAC地址
(6字节)

类型(2字节)
0x0800为IPv4

IP包头(20字节)

版本
(1字节)

DSF
(1字节)

总长度
(2字节)

识别码
(2字节)

标志字
(1字节)

段偏移
(1字节)

生存时间
(1字节)

协议(1字节)
06=TCP

错误校验
(2字节)

源IP地址
(4字节)

目的IP地址
(4字节)





数据段(20字节)

源端口
(2字节)

目的端口
(2字节)

序列号
(4字节)

确认号
(4字节)

数据段长度
(1字节)

Flag
(1字节)

窗口
(2字节)

校验和
(2字节)

紧急指针
(2字节)


后面即为Modbus TCP/IP部分信息;

Modbus TCP/IP数据结构:

Modbus TCP/IP为CS架构,Client不断的像Server发出请求,Server端被动响应提供数据或者被写入。读写的数据结构和Modbus RTU是一样的,常见的如下四种:
序号 描述 地址 读写权限
1 开关量输入 10001 或者
100001
只读
2 模拟量输入寄存器 30001 或者
 300001
只读
3 线圈输出 00001 或者
 000001
读写
4 保持寄存器 40001 或者
 400001
读写
根据以上四种数据类型,可以引申出常见的8个功能码:

FC1

读取线圈的状态

FC5

单个写入线圈

FC2

读取开关量输入的状态

FC15

连续写入一组线圈

FC3

读取保持寄存器的值

FC6

单个写保持寄存器

FC4

读取模拟量输入寄存器的值

FC16

连续写保持寄存器

但是实际上Modbus协议的功能码远不止如下8个;比如FC20和FC21就是对文件记录的操作,其中FC20是读取文件记录,FC21是对文件进行写操作。

Modbus TCP/IP Client/Server 模型:

工业以太网杂谈(一)


Modbus TCP/IP工作过程:

  1. 客户端在网络上发出消息请求,将任务进行初始化
  2. 请求信息被服务端接收到
  3. 服务端发送一个响应消息
  4. 客户端确认收到服务端的响应信息

Modbus TCP/IP和Modbus RTU ADU的区别:

Modbus RTU ADU:
从站地址 功能码 数据 CRC校验
Modbus TCP/IP ADU:

Modbus 应用协议头头
(MBAP Header)

功能码

数据



其中两点区别:
1、没有了CRC校验
2、从站地址(1个字节)变为了MBAP Header(七个字节)

工业以太网杂谈(一)

最后给大家附上modbus错误代码

错误
代码

说明
01
非法功能。对于服务器(或从站)来说,询问中接收到的功能码是不可允许的操作,可能是因为功能码仅适用于新设备而被选单元中不可实现同时,还指出服务器(或从站)在错误状态中处理这种请求,例如:它是未配置的,且要求返回寄存器值。
02
非法数据地址。对于服务器(或从站)来说,询问中接收的数据地址是不可允许的地址,特别是参考号和传输长度的组合是无效的。对于带有100个寄存器的控制器来说,偏移量96和长度4的请求会成功,而偏移量96和长度5的请求将产生异常码02。
03
非法数据值。对于服务器(或从站)来说,询问中包括的值是不可允许的值。该值指示了组合请求剩余结构中的故障。例如:隐含长度是不正确的。modbus协议不知道任何特殊寄存器的任何特殊值的重要意义,寄存器中被提交存储的数据项有一个应用程序期望之外的值。
04
从站设备故障。当服务器(或从站)正在设法执行请求的操作时,产生不可重新获得的差错。
05
确认。与编程命令一起使用,服务器(或从站)已经接受请求,并且正在处理这个请求,但是需要长持续时间进行这些操作,返回这个响应防止在客户机(或主站)中发生超时错误,客户机(或主机)可以继续发送轮询程序完成报文来确认是否完成处理。
06
从属设备忙。与编程命令一起使用。服务器(或从站)正在处理长持续时间的程序命令。张服务器(或从站)空闲时,用户(或主站)应该稍后重新传输报文。
08
存储奇偶差错。与功能码20和21以及参考类型6一起使用,指示扩展文件区不能通过一致性校验。服务器(或从站)设法读取记录文件,但是在存储器中发现一个奇偶校验错误。客户机(或主方)可以重新发送请求,但可以在服务器(或从站)设备上要求服务。
10
不可用网关路径。与网关一起使用,指示网关不能为处理请求分配输入端口至输出端口的内部通信路径。通常意味着网关是错误配置的或过载的。
11 网关目标设备响应失败。与网关一起使用,指示没有从目标设备中获得响应。通常意味着设备未在网络中。



工业以太网杂谈(一)

下回给大家通过WireShark
分解西门子工业以太网

作 者 简 介


曹俊义


工业物联网资深构建专家
工厂智能化改造践行专家
资深工业网络通讯专家
工业自动化控制系统专家
ProSoft产品顶级技术专家

工业以太网杂谈(一)

工业通讯领域沉浸十数年,深喑各种工业通讯协议和工业网络架构以及国内外多种主流PLC应用和操作、熟知罗克韦尔、施耐德、西门子、GE等知名品牌的冗余系统,对工业无线通讯、工业物联网、工业IT与OT的融合,有着前瞻性的独到见解和务实的实践经验。
现任伟联科技董事长。努力为中国工业信息化、数字化、智能化的深入发展做出贡献。


工业以太网杂谈(一)

往期精选

工业以太网杂谈(一)


工业以太网杂谈(一)


工业以太网杂谈(一)

1.Smart200&V90伺服系统:已更新15课

2.贝加莱直播课程:已更新30课

3.PKS快速入门:初级&中级-全

4.剑指工控经典公开课:已更新35课
5.新品推荐:已更新10课
工业以太网杂谈(一)

原文始发于微信公众号(剑指工控):工业以太网杂谈(一)

版权声明:admin 发表于 2022年9月26日 上午6:01。
转载请注明:工业以太网杂谈(一) | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...