工业以太网协议以及主要厂家
Modbus TCP/IP
以及其他中立厂商
EtherNet/IP
ProfiNet
S7comm
EtherCAT
PowerLink
今天给大家讲讲这几种工业以太网:
Modbus TCP/IP:
首先我们来看Modbus TCP/IP, 直观上看他还是Modbus协议,这个没错,Modbus TCP/IP是Modbus 协议的变体,将Modbus协议运行在了TCP/IP网络上,连接端口是502,不需要校验和计算,因为数据校验在低层进行了;
目前也有很多人在研究Modbus UDP/IP,这和Modbus TCP/IP最大的区别在于可以提高实时性和通信效率。因为UDP是无连接协议,比TCP节约了大量网络时间,但是可靠性和安全性不能保证。
物理层:
Frame 物理层的数据帧概况,线路307个字节,实际捕获307个字节
-
物理介质:以太网卡 -
传输介质:双绞线,同轴电缆,光纤 -
封装类型:Ethernet(1) -
物理接口:RJ45 -
帧编号:1176 -
帧长度:307字节
数据链路层:
Ethernet II协议,以太网帧头信息 (14个字节)
-
目的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
传输层:
-
源端口:502 -
目的端口:57298 -
序列号:4197 -
确认号:241 -
PDU长度:253
应用层:
-
MBAP:(7个字节) -
MABP 由四部分构成: -
事务识别号:9522 -
协议识别号:0 -
长度:247 -
设备识别号:255
描述 |
字节长度 |
描述 |
客户端表示 |
服务端表示 |
事务识别号 |
2字节 |
Modbus 请求/响应任务的识别号 |
由客户端初始化时形成 |
由接收到的请求信息复制 |
协议识别号 |
2字节 |
0=Modbus 协议 |
由客户端初始化时形成 |
由接收到的请求信息复制 |
长度 |
2字节 |
后面的字节数量 |
由客户端发送请求时形成 |
由服务端响应请求时形成 |
设备识别号 |
1字节 |
连接的从站地址 |
由客户端初始化时形成 |
由接收到的请求信息复制 |
-
第一个字节:功能码 -
第二个字节:后面的长度 -
第三个字节:请求数据的第一个寄存器的值。上图即显示的40001-40024的值;由上图也能看出40003的当前值为38.86
以太网头(14字节):
目的MAC地址 |
源MAC地址 |
类型(2字节) |
IP包头(20字节)
版本 |
DSF |
总长度 |
识别码 |
标志字 |
段偏移 |
生存时间 |
协议(1字节) |
错误校验 |
源IP地址 |
目的IP地址 |
数据段(20字节)
源端口 |
目的端口 |
序列号 |
确认号 |
数据段长度 |
Flag |
窗口 |
校验和 |
紧急指针 |
Modbus TCP/IP数据结构:
序号 | 描述 | 地址 | 读写权限 |
1 | 开关量输入 | 10001 或者 100001 |
只读 |
2 | 模拟量输入寄存器 | 30001 或者 300001 |
只读 |
3 | 线圈输出 | 00001 或者 000001 |
读写 |
4 | 保持寄存器 | 40001 或者 400001 |
读写 |
FC1
读取线圈的状态
FC5
单个写入线圈
FC2
读取开关量输入的状态
FC15
连续写入一组线圈
FC3
读取保持寄存器的值
FC6
单个写保持寄存器
FC4
读取模拟量输入寄存器的值
FC16
连续写保持寄存器
Modbus TCP/IP Client/Server 模型:
Modbus TCP/IP工作过程:
-
客户端在网络上发出消息请求,将任务进行初始化 -
请求信息被服务端接收到 -
服务端发送一个响应消息 -
客户端确认收到服务端的响应信息
Modbus TCP/IP和Modbus RTU ADU的区别:
从站地址 | 功能码 | 数据 | CRC校验 |
Modbus 应用协议头头 |
功能码 |
数据 |
其中两点区别:
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
分解西门子工业以太网
作 者 简 介
曹俊义
往期精选
1.Smart200&V90伺服系统:已更新15课
2.贝加莱直播课程:已更新30课
3.PKS快速入门:初级&中级-全
原文始发于微信公众号(剑指工控):工业以太网杂谈(一)