MODBUS
This presentation is the property of its rightful owner.
Sponsored Links
1 / 35

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


  • 251 Views
  • Uploaded on
  • Presentation posted in: General

MODBUS 技术的基础知识 演讲者 : 北京交通大学 孙昕. 主要内容. 概述 Modbus 应用协议规范 Modbus 协议在串行链路上的实现 Modbus 协议在 TCP/IP 上的实现. 概 述. 1979年 Modicon 公司(现 Schneider 的一部分)提出的 Modbus Modbus 最初作为工业串行链路的事实标准 1997年 Schneider 电气在 TCP/IP 上实现 Modbus 协议 2004年 Modbus 作为我国国家标准. Modbus 技术规范组成. Modbus 应用协议规范

Download Presentation

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

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Modbus

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


Modbus

主要内容

  • 概述

  • Modbus应用协议规范

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

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


Modbus

概 述

  • 1979年Modicon公司(现Schneider 的一部分)提出的Modbus

  • Modbus最初作为工业串行链路的事实标准

  • 1997年Schneider电气在TCP/IP上实现Modbus协议

  • 2004年Modbus作为我国国家标准


Modbus

Modbus技术规范组成

  • Modbus应用协议规范

  • Modbus协议在串行链路上的实现指南

  • Modbus协议在TCP/IP上的实现指南


Modbus1

Modbus技术规范的关系


Modbus2

Modbus应用协议规范


Modbus3

Modbus通信栈


Modbus4

Modbus应用协议

Modbus是一种简单客户机/服务器应用协议

  • 客户机能够向服务器发送请求

  • 服务器分析请求,处理请求,向客户机发送应答


Modbus

通用Modbus帧结构--协议数据单元 (PDU)

Modbus是一个可选择部分使用的协议

  • 服务器可执行部分Modbus协议

    Modbus由公共功能码和用户定义的功能码组成

    Modbus应用协议使用功能码列表读或写数据,或者在远程服务器上进行远程处理

  • 读/写寄存器列表,读/写比特列表

  • 诊断,标识


Modbus5

Modbus事务处理(无差错)

  • 当服务器对客户机响应时,它使用功能码域来指示正常(无差错)

    响应或者出现某种差错(称为异常响应)

  • 对于一个正常响应来说,服务器仅复制原始功能码


Modbus

Modbus事务处理(异常响应)

SM6

  • 对于异常响应,服务器将原始功能码的最高有效位设置逻辑1后返回

  • 异常码指示差错类型


Modbus pdu

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字节。


Modbus pdu1

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字节]


Modbus6

基本表

对象类型

访问类型

注释

离散量输入

单个位

只读

I/O系统可提供这种类型数据

线圈

单个位

读写

通过应用程序可改变这种类型数据

输入寄存器

16位字

只读

I/O系统可提供这种类型数据

保持寄存器

16位字

读写

通过应用程序可改变这种类型数据

Modbus数据模型

Modbus的数据模型是以一组具有不同特征的表为基础建立的

四个基本表为:


Modbus

功能码

子码

(十六进制)

访

访

物理离散量输入

读离散量输入

02

02

内部位或

物理线圈

读线圈

01

01

写单个线圈

05

05

写多线圈

15

0F

16

访

输入寄存器

读输入寄存器

04

04

内部寄存器或物理输出寄存器

读保持寄存器

03

03

写单寄存器

06

06

写多寄存器

16

10

读/写多寄存器

23

17

屏蔽写寄存器

22

16

读FIFO队列

24

18

文件记录访问

读文件记录

20

6

14

写文件记录

21

6

15

读异常状态

07

诊断

08

00-18

获得通信事件计数器

11

OB

获得通信事件记录

12

0C

报告从站ID

17

11

读设备识别码

43

14

2B

其它

封装接口传输

43

2B

Modbus公共功能码的定义


Modbus 1

功能码

1字节

0x01

起始地址

2字节

0x0000 至0xFFFF

线圈数量

2字节

1至2000(0x7D0)

功能码

1字节

0x01

字节计数

1字节

N*

线圈状态

n字节

n=N或N+1

功能码

1字节

功能码+0x80

异常码

1字节

01或02或03或04

Modbus功能码应用实例(1)

请求

读线圈01 (0x01)

响应

*N=寄存器的数量/8,如果余数不等于0,那么 N = N+1

错误


Modbus

功能码

1字节

0x03

起始地址

2字节

0x0000至0xFFFF

寄存器数量

2字节

1至125(0x7D)

功能码

1字节

0x03

字节数

1字节

2×N*

寄存器值

N*×2字节

差错码

1字节

0x83

异常码

1字节

01或02或03或04

请求

  • 写多个寄存器16(0x10)

响应

*N=寄存器数量

错误


Modbus 3

功能码

1字节

0x10

起始地址

2字节

0x0000至0xFFFF

寄存器数量

2字节

0x0001至0x0078

字节计数

1字节

2×N*

寄存器值

N*×2字节

功能码

1字节

0x10

起始地址

2字节

0x0000至0xFFFF

寄存器数量

2字节

1至123(0x7B)

差错码

1字节

0x90

异常码

1字节

01或02或03或04

Modbus功能码应用实例(3)

请求

  • 写多个寄存器16(0x10)

*N=寄存器数量

响应

错误


Modbus

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


Modbus7

ISO/OSI 模型

7

应用层

Modbus应用协议

6

表示层

5

会话层

4

传输层

3

网络层

2

数据链路层

Modbus串行链路协议

1

物理层

EIA/TIA-485 (或EIA/TIA232)

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

  • 主要在RS-485和RS-232等物理接口上实现Modbus协议


Modbus8

串行链路上的Modbus帧结构

  • Modbus串行链路协议是一个主/从协议

  • 网络上的每个从站必须有唯一的地址(从1到247)

  • 从站地址用于寻址从站设备,由主站发起

  • 地址0用于广播模式,不需要响应

  • RS-485和RS-232 定义了标准的物理端口,提高互可操作性


Modbus rtu

Modbus串行传输模式 – RTU模式

  • RTU Modbus串行传输模式的报文格式, CRC-16差错校验

  • 报文帧的标识

  • 字符之间的要求


Modbus ascii

Modbus串行传输模式 –ASCII模式

  • 报文必须以“:”开始

  • 报文必须以“LF-CR”结束

  • 数据用十六进制ASCII码值表示

  • 使用LRC进行差错校验


Modbus

Modbus协议在TCP/IP上的实现


Tcp ip modbus

基于开放TCP/IP 的Modbus协议

  • Modbus协议是一个开发性协议

    • IANA已为 Modbus协议指配TCP / UDP 知名端口502

  • Modbus协议是一个标准协议

    • IETF组织提议将Modbus协议作为因特网标准

    • Modbus协议是自动化领域中广泛使用“实事”标准

  • 以太网 (快速以太网)

    • 使用目前最流行的LAN技术

    • IEEE 802.3中定义的以太网和以太网II

  • TCP/IP模型

    • 描述因特网协议的组合


Modbus tcp ip

Modbus TCP/IP通信结构

  • Modbus TCP/IP的通信设备:

    连接至TCP/IP网络的Modbus TCP/IP客户机和服务器设备

    互连设备,如:在TCP/IP网络和串行链路子网之间互连的网桥、

    路由器或网关等设备


Tcp ip modbus1

TCP/IP 上的Modbus 数据帧

  • 通过TCP/IP栈传输

  • 支持以太网II和IEEE 802.3帧,默认帧为以太网II帧

  • 以太网II是默认的 TCP/IP 网络帧格式


Modbus

长度

描述

客户机

服务器

事务处理标识符

2字节

Modbus请求/响应事务处理的识别

客户机启动

服务器从接收的请求中重新复制

协议标识符

2字节

0=Modbus协议

客户机启动

服务器从接收的请求中重新复制

长度

2字节

随后字节的数量

客户机启动(请求)

服务器(响应)启动

单元标识符

1字节

串行链路或其它总线上连接的远程从站的识别

客户机启动

服务器从接收的请求中重新复制

MBAP 报文头


Modbus9

用户应用

通讯

MODBUS

MODBUS

应用层

客户接口

客户接口

MODBUS客户机

MODBUS服务器

TCP

管理层

栈参数化

连接管理

访问控制

TCP/IP栈

Modbus报文传输服务结构


Modbus

通信应用层

  • Modbus客户机

    允许用户应用显性地控制与远程设备的信息交换。Modbus客户机根据用户应用向Modbus客户机接口发送的要求中所包含的参数来建立一个Modbus请求。

  • Modbus客户机接口

    Modbus客户机接口提供一个接口,使得用户应用能够生成各类Modbus服务的请求,该服务包括对Modbus应用对象的访问

  • Modbus服务器

    在收到一个Modbus请求以后,模块激活一个本地操作进行读、写、或完成其他操作。


Modbus

TCP管理层

管理通信的建立和结束以及管理在所建立的TCP连接上的数据流 。

  • 连接管理

    在客户机和服务器的Modbus模块之间的通信需要使用TCP连接管理模块,负责全面管理报文传输TCP连接

  • 访问控制

    在某些至关重要的场合,必须禁止无关的主机对设备内部数据的访问。这既是需要的安全模式,也是在需要时实现安全处理的原因


Tcp ip

TCP/IP栈层

  • 可以对TCP/IP的栈进行参数配置,以适用对产品或系统的不同的特定

    约束进行数据流控制、地址管理和连接管理。使用BSD套接字接口来管

    理TCP连接


Modbus tcp ip1

Modbus报文传输服务必须在502端口上提供一个监听套接字,允

许接收新的连接和与其他设备交换数据

当报文传输服务需要与远程服务器交换数据时,它必须与远程502端口建立一个新的客户机连接,以便于远距离地交换数据。本地端口必须高于1024,并且对每个客户机的连接各不相同

Modbus TCP/IP连接建立


Modbus tcp ip2

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

Modbus TCP/IP通信栈


Modbus

谢谢!

[email protected]


  • Login