Presentation is loading. Please wait.

Presentation is loading. Please wait.

MODBUS技术的基础知识 演讲者:北京交通大学 孙昕

Similar presentations


Presentation on theme: "MODBUS技术的基础知识 演讲者:北京交通大学 孙昕"— Presentation transcript:

1 MODBUS技术的基础知识 演讲者:北京交通大学 孙昕
1

2 主要内容 概述 Modbus应用协议规范 Modbus协议在串行链路上的实现 Modbus协议在TCP/IP上的实现

3 概 述 1979年Modicon公司(现Schneider 的一部分)提出的Modbus Modbus最初作为工业串行链路的事实标准
概 述 1979年Modicon公司(现Schneider 的一部分)提出的Modbus Modbus最初作为工业串行链路的事实标准 1997年Schneider电气在TCP/IP上实现Modbus协议 2004年Modbus作为我国国家标准

4 Modbus技术规范组成 Modbus应用协议规范 Modbus协议在串行链路上的实现指南 Modbus协议在TCP/IP上的实现指南

5 Modbus技术规范的关系

6 Modbus应用协议规范

7 Modbus通信栈

8 Modbus应用协议 Modbus是一种简单客户机/服务器应用协议 客户机能够向服务器发送请求 服务器分析请求,处理请求,向客户机发送应答

9 通用Modbus帧结构--协议数据单元 (PDU)
读/写寄存器列表,读/写比特列表 诊断,标识

10 Modbus事务处理(无差错) 当服务器对客户机响应时,它使用功能码域来指示正常(无差错) 响应或者出现某种差错(称为异常响应)
对于一个正常响应来说,服务器仅复制原始功能码

11 Modbus事务处理(异常响应) SM6 对于异常响应,服务器将原始功能码的最高有效位设置逻辑1后返回 异常码指示差错类型

12 Modbus PDU长度 Modbus最初在串行链路上的实现(最大RS485ADU=256字节) 限制了Modbus PD的长度。
因此,对串行链路通信来说,Modbus PDU=256-服务器地址(1字节)-CRC(2字节)=253字节。 从而: RS232 / RS485 ADU = 253字节+服务器地址(1字节) + CRC (2字节)= 256字节。 TCP Modbus ADU = 253字节+ MBAP (7字节) = 260字节。

13 Modbus PDU结构 Modbus请求PDU
mb_req_pdu = { function_code, request_data} , function_code - [1字节] Modbus功能码 request_data - [n字节] Modbus响应PDU mb_rsp_pdu = { function_code, response_ data }, function_code - [1字节] Modbus功能码 response_data - [n字节] Modbus异常响应PDU mb_excep_rsp_pdu = { function_code, exception_code }, function_code - [1字节] Modbus功能码 + 0x80 exception_code – [1字节]

14 Modbus 数据模型 Modbus的数据模型是以一组具有不同特征的表为基础建立的 四个基本表为: 基本表 对象类型 访问类型 注释
离散量输入 单个位 只读 I/O系统可提供这种类型数据 线圈 读写 通过应用程序可改变这种类型数据 输入寄存器 16位字 保持寄存器

15 Modbus公共功能码的定义 功能码 码 子码 (十六进制) 数 据 访 问 位 物理离散量输入 读离散量输入 02 内部位或 物理线圈
功能码 子码 (十六进制) 访 物理离散量输入 读离散量输入 02 内部位或 物理线圈 读线圈 01 写单个线圈 05 写多线圈 15 0F 16 输入寄存器 读输入寄存器 04 内部寄存器或物理输出寄存器 读保持寄存器 03 写单寄存器 06 写多寄存器 10 读/写多寄存器 23 17 屏蔽写寄存器 22 读FIFO队列 24 18 文件记录访问 读文件记录 20 6 14 写文件记录 21 读异常状态 07 诊断 08 00-18 获得通信事件计数器 11 OB 获得通信事件记录 12 0C 报告从站ID 读设备识别码 43 2B 其它 封装接口传输

16 Modbus功能码应用实例(1) 读线圈01 (0x01) 请求 功能码 1字节 0x01 起始地址 2字节 0x0000 至0xFFFF
线圈数量 1至2000(0x7D0) 响应 功能码 1字节 0x01 字节计数 N* 线圈状态 n字节 n=N或N+1 *N=寄存器的数量/8,如果余数不等于0,那么 N = N+1 错误 功能码 1字节 功能码+0x80 异常码 01或02或03或04

17 写多个寄存器16(0x10) 请求 响应 错误 功能码 1字节 0x03 起始地址 2字节 0x0000至0xFFFF 寄存器数量
1至125(0x7D)  响应 功能码 1字节 0x03 字节数 2×N* 寄存器值 N*×2字节 *N=寄存器数量 错误 差错码 1字节 0x83 异常码 01或02或03或04

18 Modbus功能码应用实例(3) 写多个寄存器16(0x10) 请求 功能码 1字节 0x10 起始地址 2字节 0x0000至0xFFFF
寄存器数量 0x0001至0x0078 字节计数 2×N* 寄存器值 N*×2字节 *N=寄存器数量 响应 功能码 1字节 0x10 起始地址 2字节 0x0000至0xFFFF 寄存器数量 1至123(0x7B) 错误 差错码 1字节 0x90 异常码 01或02或03或04

19 Modbus协议在串行链路上的实现

20 Modbus协议在串行链路上的实现模型 主要在RS-485和RS-232等物理接口上实现Modbus协议 层 ISO/OSI 模型 7
7 应用层 Modbus应用协议 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 Modbus串行链路协议 1 物理层 EIA/TIA-485 (或 EIA/TIA232)

21 串行链路上的Modbus帧结构 Modbus串行链路协议是一个主/从协议 网络上的每个从站必须有唯一的地址(从1到247)
从站地址用于寻址从站设备,由主站发起 地址0用于广播模式,不需要响应 RS-485和RS-232 定义了标准的物理端口,提高互可操作性

22 Modbus串行传输模式 – RTU模式 RTU Modbus串行传输模式的报文格式, CRC-16差错校验 报文帧的标识 字符之间的要求

23 Modbus串行传输模式 – ASCII模式
报文必须以“:”开始 报文必须以“LF-CR”结束 数据用十六进制ASCII码值表示 使用LRC进行差错校验

24 Modbus协议在TCP/IP上的实现

25 基于开放TCP/IP 的Modbus协议 Modbus协议是一个开发性协议
IANA已为 Modbus协议指配TCP / UDP 知名端口502 Modbus协议是一个标准协议 IETF组织提议将Modbus协议作为因特网标准 Modbus协议是自动化领域中广泛使用“实事”标准 以太网 (快速以太网) 使用目前最流行的LAN技术 IEEE 802.3中定义的以太网和以太网II TCP/IP模型 描述因特网协议的组合

26 Modbus TCP/IP通信结构 Modbus TCP/IP的通信设备:
路由器或网关等设备

27 TCP/IP 上的Modbus 数据帧 通过TCP/IP栈传输 支持以太网II和IEEE 802.3帧,默认帧为以太网II帧
以太网II是默认的 TCP/IP 网络帧格式

28 MBAP 报文头 域 长度 描述 客户机 服务器 事务处理标识符 2字节 Modbus请求/响应事务处理的识别 客户机启动
服务器从接收的请求中重新复制 协议标识符 0=Modbus协议 随后字节的数量 客户机启动(请求) 服务器(响应)启动 单元标识符 1字节 串行链路或其它总线上连接的远程从站的识别

29 Modbus报文传输服务结构 用户应用 通讯 资 源 管 理 与 流 量 管理层 控 制 应用层 TCP TCP/IP栈 MODBUS
客户接口 MODBUS客户机 MODBUS服务器 TCP 管理层 栈参数化 连接管理 访问控制 TCP/IP栈

30 通信应用层 Modbus客户机 允许用户应用显性地控制与远程设备的信息交换。Modbus客户机根据用户应用向Modbus客户机接口发送的要求中所包含的参数来建立一个Modbus请求。 Modbus客户机接口 Modbus客户机接口提供一个接口,使得用户应用能够生成各类Modbus服务的请求,该服务包括对Modbus应用对象的访问 Modbus服务器 在收到一个Modbus请求以后,模块激活一个本地操作进行读、写、或完成其他操作。

31 TCP管理层 管理通信的建立和结束以及管理在所建立的TCP连接上的数据流 。 连接管理
在客户机和服务器的Modbus模块之间的通信需要使用TCP连接管理模块,负责全面管理报文传输TCP连接 访问控制 在某些至关重要的场合,必须禁止无关的主机对设备内部数据的访问。这既是需要的安全模式,也是在需要时实现安全处理的原因

32 TCP/IP栈层 可以对TCP/IP的栈进行参数配置,以适用对产品或系统的不同的特定
约束进行数据流控制、地址管理和连接管理。使用BSD套接字接口来管 理TCP连接

33 Modbus TCP/IP连接建立 Modbus报文传输服务必须在502端口上提供一个监听套接字,允 许接收新的连接和与其他设备交换数据
当报文传输服务需要与远程服务器交换数据时,它必须与远程502端口建立一个新的客户机连接,以便于远距离地交换数据。本地端口必须高于1024,并且对每个客户机的连接各不相同

34 Modbus TCP/IP通信栈 TCP/IP栈提供了一个接口,用来管理连接、发送和接收数据,还可以进行某些参数配置,以使得栈的特性适应于设备或系统的限制

35 谢谢!


Download ppt "MODBUS技术的基础知识 演讲者:北京交通大学 孙昕"

Similar presentations


Ads by Google