MODBUS通信协议.docx

上传人:b****5 文档编号:4368894 上传时间:2022-12-01 格式:DOCX 页数:16 大小:23.86KB
下载 相关 举报
MODBUS通信协议.docx_第1页
第1页 / 共16页
MODBUS通信协议.docx_第2页
第2页 / 共16页
MODBUS通信协议.docx_第3页
第3页 / 共16页
MODBUS通信协议.docx_第4页
第4页 / 共16页
MODBUS通信协议.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

MODBUS通信协议.docx

《MODBUS通信协议.docx》由会员分享,可在线阅读,更多相关《MODBUS通信协议.docx(16页珍藏版)》请在冰豆网上搜索。

MODBUS通信协议.docx

MODBUS通信协议

MODBUS通信协议

No.:

000000000000000293

☟☪R、☟☪C系列产品采用RS485、RS232、C✌☠、☜♦♒♏❒☠♏♦(❆CP✋P)等通信方式与当地监控系统或上一级调度自动化系统连接。

MODB✞S是应用层协议,可基于上述通信媒介进行系统互连。

MODB✞S采用直接内存访问的模式,其基本协议定义了内存访问的具体细节,各应用程序或系统互连时只须提供内存地址表即可。

一、☟☪R、☟☪C系列产品支持的MODB✞S命令

1、连续读⏹个字(功能码03☟)

下行:

设备地址(B✡❆☜):

01☟~☞☞☟

功能码(B✡❆☜):

03☟

起始地址(WORD):

0000☟~☞☞☞☞☟

读的字数(WORD):

0001☟~007D☟

校验码(WORD):

以上所有字节的CRC16校验和

上行:

设备地址(B✡❆☜):

01☟~☞☞☟

功能码(B✡❆☜):

03☟

数据长度(B✡❆☜):

01☟~☞✌☟

数据内容(B✡❆☜):

读到的具体数据

数据内容(B✡❆☜):

读到的具体数据

数据内容(B✡❆☜):

读到的具体数据

校验码(WORD):

以上所有字节的CRC16校验和

2、写1个字(功能码06☟)

下行:

设备地址(B✡❆☜):

01☟~☞☞☟

功能码(B✡❆☜):

06☟

起始地址(WORD):

0000☟~☞☞☞☞☟

写入数据(WORD):

0001☟~☞☞☞☞☟

校验码(WORD):

以上所有字节的CRC16校验和

上行:

设备地址(B✡❆☜):

01☟~☞☞☟

功能码(B✡❆☜):

06☟

起始地址(WORD):

0000☟~☞☞☞☞☟

写入数据(WORD):

0001☟~☞☞☞☞☟

校验码(WORD):

以上所有字节的CRC16校验和

3、连续写⏹个字(功能码10☟)

下行:

设备地址(B✡❆☜):

01☟~☞☞☟

功能码(B✡❆☜):

10☟

起始地址(WORD):

0000☟~☞☞☞☞☟

写的字数(WORD):

0001☟~007D☟

数据长度(B✡❆☜):

01☟~☞✌☟

数据内容(B✡❆☜):

写入的具体数据

数据内容(B✡❆☜):

写入的具体数据

数据内容(B✡❆☜):

写入的具体数据

校验码(WORD):

以上所有字节的CRC16校验和

上行:

设备地址(B✡❆☜):

01☟~☞☞☟

功能码(B✡❆☜):

10☟

起始地址(WORD):

0000☟~☞☞☞☞☟

写的字数(WORD):

0001☟~007D☟

校验码(WORD):

以上所有字节的CRC16校验和

CRC计算例程:

◆⏹♦♓♑⏹♏♎♦♒☐❒♦C♋●♍◆●♋♦♏CRC☎◆⏹♦♓♑⏹♏♎♦♒☐❒♦✉☐D♋♦♋,◆⏹♦♓♑⏹♏♎♦♒☐❒♦♦☹♏⏹♑♦♒✆

{

◆⏹♦♓♑⏹♏♎♦♒☐❒♦♦CRC;

♦CRC=0⌧♐♐♐♐;

♦♒♓●♏☎♦☹♏⏹♑♦♒--✆♦CRC=☎♦CRC>>8✆♈♍♉♦❆♋♌●♏CRC☯☎♦CRC♈✉☐D♋♦♋++✆&0⌧00♐♐];

❒♏♦◆❒⏹♦CRC;

◆⏹♦♓♑⏹♏♎♦♒☐❒♦♍♉♦❆♋♌●♏CRC☯256]=

{

0⌧0000,0⌧♍0♍1,0⌧♍181,0⌧0140,0⌧♍301,0⌧03♍0,0⌧0280,0⌧♍241,

0⌧♍601,0⌧06♍0,0⌧0780,0⌧♍741,0⌧0500,0⌧♍5♍1,0⌧♍481,0⌧0440,

0⌧♍♍01,0⌧0♍♍0,0⌧0♎80,0⌧♍♎41,0⌧0♐00,0⌧♍♐♍1,0⌧♍♏81,0⌧0♏40,

0⌧0♋00,0⌧♍♋♍1,0⌧♍♌81,0⌧0♌40,0⌧♍901,0⌧09♍0,0⌧0880,0⌧♍841,

0⌧♎801,0⌧18♍0,0⌧1980,0⌧♎941,0⌧1♌00,0⌧♎♌♍1,0⌧♎♋81,0⌧1♋40,

0⌧1♏00,0⌧♎♏♍1,0⌧♎♐81,0⌧1♐40,0⌧♎♎01,0⌧1♎♍0,0⌧1♍80,0⌧♎♍41,

0⌧1400,0⌧♎4♍1,0⌧♎581,0⌧1540,0⌧♎701,0⌧17♍0,0⌧1680,0⌧♎641,

0⌧♎201,0⌧12♍0,0⌧1380,0⌧♎341,0⌧1100,0⌧♎1♍1,0⌧♎081,0⌧1040,

0⌧♐001,0⌧30♍0,0⌧3180,0⌧♐141,0⌧3300,0⌧♐3♍1,0⌧♐281,0⌧3240,

0⌧3600,0⌧♐6♍1,0⌧♐781,0⌧3740,0⌧♐501,0⌧35♍0,0⌧3480,0⌧♐441,

0⌧3♍00,0⌧♐♍♍1,0⌧♐♎81,0⌧3♎40,0⌧♐♐01,0⌧3♐♍0,0⌧3♏80,0⌧♐♏41,

0⌧♐♋01,0⌧3♋♍0,0⌧3♌80,0⌧♐♌41,0⌧3900,0⌧♐9♍1,0⌧♐881,0⌧3840,

0⌧2800,0⌧♏8♍1,0⌧♏981,0⌧2940,0⌧♏♌01,0⌧2♌♍0,0⌧2♋80,0⌧♏♋41,

0⌧♏♏01,0⌧2♏♍0,0⌧2♐80,0⌧♏♐41,0⌧2♎00,0⌧♏♎♍1,0⌧♏♍81,0⌧2♍40,

0⌧♏401,0⌧24♍0,0⌧2580,0⌧♏541,0⌧2700,0⌧♏7♍1,0⌧♏681,0⌧2640,

0⌧2200,0⌧♏2♍1,0⌧♏381,0⌧2340,0⌧♏101,0⌧21♍0,0⌧2080,0⌧♏041,

0⌧♋001,0⌧60♍0,0⌧6180,0⌧♋141,0⌧6300,0⌧♋3♍1,0⌧♋281,0⌧6240,

0⌧6600,0⌧♋6♍1,0⌧♋781,0⌧6740,0⌧♋501,0⌧65♍0,0⌧6480,0⌧♋441,

0⌧6♍00,0⌧♋♍♍1,0⌧♋♎81,0⌧6♎40,0⌧♋♐01,0⌧6♐♍0,0⌧6♏80,0⌧♋♏41,

0⌧♋♋01,0⌧6♋♍0,0⌧6♌80,0⌧♋♌41,0⌧6900,0⌧♋9♍1,0⌧♋881,0⌧6840,

0⌧7800,0⌧♌8♍1,0⌧♌981,0⌧7940,0⌧♌♌01,0⌧7♌♍0,0⌧7♋80,0⌧♌♋41,

0⌧♌♏01,0⌧7♏♍0,0⌧7♐80,0⌧♌♐41,0⌧7♎00,0⌧♌♎♍1,0⌧♌♍81,0⌧7♍40,

0⌧♌401,0⌧74♍0,0⌧7580,0⌧♌541,0⌧7700,0⌧♌7♍1,0⌧♌681,0⌧7640,

0⌧7200,0⌧♌2♍1,0⌧♌381,0⌧7340,0⌧♌101,0⌧71♍0,0⌧7080,0⌧♌041,

0⌧5000,0⌧90♍1,0⌧9181,0⌧5140,0⌧9301,0⌧53♍0,0⌧5280,0⌧9241,

0⌧9601,0⌧56♍0,0⌧5780,0⌧9741,0⌧5500,0⌧95♍1,0⌧9481,0⌧5440,

0⌧9♍01,0⌧5♍♍0,0⌧5♎80,0⌧9♎41,0⌧5♐00,0⌧9♐♍1,0⌧9♏81,0⌧5♏40,

0⌧5♋00,0⌧9♋♍1,0⌧9♌81,0⌧5♌40,0⌧9901,0⌧59♍0,0⌧5880,0⌧9841,

0⌧8801,0⌧48♍0,0⌧4980,0⌧8941,0⌧4♌00,0⌧8♌♍1,0⌧8♋81,0⌧4♋40,

0⌧4♏00,0⌧8♏♍1,0⌧8♐81,0⌧4♐40,0⌧8♎01,0⌧4♎♍0,0⌧4♍80,0⌧8♍41,

0⌧4400,0⌧84♍1,0⌧8581,0⌧4540,0⌧8701,0⌧47♍0,0⌧4680,0⌧8641,

0⌧8201,0⌧42♍0,0⌧4380,0⌧8341,0⌧4100,0⌧81♍1,0⌧8081,0⌧4040

❝;

 

通讯数据的类型及格式说明:

信息传输为异步方式,并以字节为单位。

在主站和从站之间传递的通讯信息是11位的字格式:

字格式(串行数据)

11位二进制

起始位

1位

数据位

8位

奇偶校验位

1位:

有奇偶校验位/无:

无奇偶校验位

停止位

1位:

有奇偶校验位/2位:

无奇偶校验位

●通讯数据(信息帧)格式

数据格式:

地址码

功能码

数据区

错误校检

数据长度:

1字节

1字节

☠字节

16位CRC码(冗余循环码)

★注:

1、1个字节由8位二进制数组成(既8♌♓♦)。

2、M☐♎B◆♦是M☐♎♓♍☐⏹公司的注册商标。

3、❽从机❾在本文件中既为PDM。

一、通讯信息传输过程:

当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。

返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。

如果CRC校验出错就不返回任何信息。

1.1地址码:

地址码是每次通讯信息帧的第一字节(8位),从1到255。

这个字节表明由用户设置地址的从机将接收由主机发送来的信息。

每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。

当从机回送信息时,回送数据均以各自的地址码开始。

主机

发送的地址码表明将发送到的从机地址,而从机返回的地址码表明回送的从机地址。

相应的地址码表明该信息来自于何处。

1.2功能码:

是每次通讯信息帧传送的第二个字节。

M☐♎B◆♦通讯规约可定义的功能码为1到127。

PDM系列仪表/变送器仅用到其中的一部分功能码。

作为主机请求发送,通过功能码告诉从机应执行什么动作。

作为从机响应,从机返回的功能码与从主机发送来的功能码一样,并表明从机已响应主机并且已进行相关的操作。

表8.1MODB✞S部分功能码

功能码

定义

操作(二进制)

02

读开关量输入

读取一路或多路开关量状态输入数据

01

读开关量输出

读取一路或多路开关量输出状态数据

03

读寄存器数据

读取一个或多个寄存器的数据

05

写开关量输出

控制一路继电器❽合/分❾输出

06

写单路寄存器

把一组二进制数据写入单个寄存器

10

写多路寄存器

把多组二进制数据写入多个寄存器

1.3数据区:

数据区包括需要由从机返送何种信息或执行什么动作。

这些信息可以是数据(如:

开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。

例如,主机通过功能码03告诉从机返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),则返回的数据包括寄存器的数据长度及数据内容。

对于不同的从机,地址和数据信息都不相同(应给出通讯信息表)。

二、MODB✞S功能码简介

2.1功能码❽02❾:

读1路或多路开关量状态输入

例如:

主机要读取地址为01,开关量D✋1—D✋4的输入状态。

从机(PDM)数据寄存器的地址和数据为:

起始位地址

D✋寄存器数据(16进制)

备注

0000

0B

D✋1/D✋2/D✋4状态为❽1❾,D✋3状态为❽0❾

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

02

读开关量输入状态

起始B✋❆位

2

0000

起始B✋❆位地址为0000

读数据长度

2

0004

读取4路开关量输入状态位

CRC码

2

79C9

由主机计算得到CRC码

从机(PDM)响应返回的报文格式:

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

02

读开关量输入状态

数据长度

1

01

1个字节(8个B✋❆位)

D✋状态数据

1

0B

D✋寄存器内容

CRC码

2

☜04☞

由从机计算得到CRC码

2.2功能码❽01❾:

读1路或多路开关量输出状态

例如:

主机要读取地址为01,开关量DO1,DO2的输出状态。

从机(PDM)数据寄存器的地址和数据为:

起始位地址

DO寄存器数据☎16进制✆

备注

0000

02

DO2输出状态为❽1❾,DO1输出状态为❽0❾

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

01

读开关量输出状态

起始B✋❆位

2

0000

起始B✋❆位地址为0000

读数据长度

2

0002

读取2路继电器输出状态位

CRC码

2

BDCB

由主机计算得到CRC码

从机(PDM)响应返回的报文格式:

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

01

读开关量输出状态

数据长度

1

01

1个字节(8个B✋❆位)

DO状态数据

1

02

DO寄存器内容

CRC码

2

D049

由从机计算得到CRC码

2.3功能码❽03❾:

读多路寄存器输入

例如:

主机要读取地址为01,起始地址为0116的3个从机寄存器数据。

从机(PDM)数据寄存器的地址和数据为:

寄存器地址

寄存器数据(16进制)

对应PDM电量

0116

1784

✞✌

0117

1780

✞B

0118

178✌

✞C

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

03

读取寄存器

起始地址

2

0116

起始地址为0116

数据长度

3

0003

读取3个寄存器(共6个字节)

CRC码

2

☜5☞3

由主机计算得到CRC码

从机(PDM)响应返回的报文格式:

 

从机响应

字节数

返回的信息

备注

从机地址

1

01

来自从机01

功能码

1

03

读取寄存器

读取字

1

06

3个寄存器共6个字节

寄存器数据1

2

1784

地址为0116内存的内容

寄存器数据2

2

1780

地址为0117内存的内容

寄存器数据3

2

178✌

地址为0118内存的内容

CRC码

2

5847

由从机计算得到CRC码

 

2.4功能码❽05❾:

写1路开关量输出(❽遥控❾)

例1:

开关量输出点DO1,其当前状态为❽分❾,主机要控制该路继电器❽合❾。

控制命令为:

❽☞☞00❾为控制继电器❽合❾;

❽0000❾为控制继电器❽分❾;

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

05

写开关量输出状态

输出B✋❆位

2

0000

对应输出继电器B✋❆位(DO1)

控制命令

2

☞☞00

控制该路继电器输出为❽合❾状态位

CRC码

2

8C3✌

由主机计算得到CRC码

从机(PDM)响应返回的报文格式:

与主机发送的报文格式及数据内容完全相同。

例2:

开关量输出点DO2,其当前状态为❽合❾,主机要控制该路继电器❽分❾。

主机发送的报文格式:

主机发送

字节数

发送的信息

备注

从机地址

1

01

发送至地址为01的从机

功能码

1

05

写开关量输出状态

输出B✋❆位

2

0001

对应输出继电器B✋❆位(DO2)

控制命令

2

0000

控制该路继电器输出为❽合❾状态位

CRC码

2

9C0✌

由主机计算得到CRC码

从机(PDM)响应返回的报文格式:

与主机发送的报文格式及数据内容完全相同。

2.5功能码❽06❾:

写单路寄存器

例如:

主机要把数据07D0,保存到地址为002C的从机寄存器中去(从机地址码为01)。

通讯数据保存结束后,地址为002C的PDM表原存储信息为:

地址

原来存储数据(16进制)

002C

04B0

主机发送的报文格式:

主机发送

字节数

发送的信息

举例

从机地址

1

01

发送至地址为01的从机

功能码

1

06

写单路寄存器

起始地址

2

002C

要写入的寄存器地址

写入数据

2

07D0

对应的新数据

CRC码

2

4B✌☞

由主机计算得到的CRC码

从机(PDM)响应返回的报文格式:

与主机发送的报文格式及数据内容完全相同。

2.6功能码❽10❾:

写多路寄存器

主机利用这个功能码把多个数据保存到PDM表的数据存储器中去。

M☐♎♌◆♦通讯规约中的寄存器指的是16位(即2字节),并且高位在前。

这样PDM的存储器都是二个字节。

由于M☐♎♌◆♦通讯规约允许每次最多保存60个寄存器,因此PDM一次也最多允许保存60个数据寄存器。

例如:

主机要把0064,0010保存到地址为002C,002D的从机寄存器中去(从机地址码为01)。

通讯数据保存结束后,地址为002C/002D的PDM表内存储信息为:

地址

原来存储数据(16进制)

002C

04B0

002D

1388

主机发送的报文格式:

主机发送

字节数

发送信息

举例

从机地址

1

01

发送至从机01

功能码

1

10

写多路寄存器

起始地址

2

002C

要写入的寄存器的起始地址

保存数据字长度

2

0002

保存数据的字长度(共2字)

保存数据字节长

1

04

保存数据的字节长度(共4字节)

保存数据1

2

04B0

数据地址002C

保存数据2

2

1388

数据地址002D

CRC码

2

☞C63

由主机计算得到的CRC码

从机(PDM)响应返回的报文格式:

从机响应

字节数

字节数

举例

从机地址

1

01

来自从机01

功能码

1

10

写多路寄存器

起始地址

2

002C

起始地址为002C

保存数据字长度

2

0002

保存2个字长度的数据

CRC码

2

8001

由从机计算得到的CRC码

三、错误校验码(CRC校验):

主机或从机可用校验码进行判别接收信息是否正确。

由于电子噪声或一些其它干扰,信息在传输过程中有时会发生错误,错误校验码(CRC)可以检验主机或从机在通讯数据传送过程中的信息是否有误,错误的数据可以放弃(无论是发送还是接收),这样增加了系统的安全和效率。

MODB✞S通讯协议的CRC(冗余循环码)包含2个字节,即16位二进制数。

CRC码由发送设备(主机)计算,放置于发送信息帧的尾部。

接收信息的设备(从机)再重新计算接收到信息的CRC,比较计算得到的CRC是否与接收到的相符,如果两者不相符,则表明出错。

在进行CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算。

●CRC码的计算方法是:

1.预置1个16位的寄存器为十六进制☞☞☞☞(即全为1);称此寄存器为CRC寄存器;

2.把第一个8位二进制数据(既通讯信息帧的第一个字节)与16位的CRC寄存器的低

8位相异或,把结果放于CRC寄存器;

3.把CRC寄存器的内容右移一位(朝低位)用0填补最高位,并检查右移后的移出位;

4.如果移出位为0:

重复第3步(再次右移一位);

如果移出位为1:

CRC寄存器与多项式✌001(1010000000000001)进行异或;

5.重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;

6.重复步骤2到步骤5,进行通讯信息帧下一个字节的处理;

7.将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低

字节进行交换;

8.最后得到的CRC寄存器内容即为:

CRC码。

四、通讯错误信息及数据的处理:

当PDM表检测到除了CRC码出错以外的错误时,必须向主机回送信息,功能码的最高位置为1,即从机返送给主机的功能码是在主机发送的功能码的基础上加128。

以下的这些代码表明有意外的错误发生。

PDM从主机接收到的信息如有CRC错误,则将被PDM表忽略。

PDM返送的错误码的格式如下(CRC码除外):

地址码:

1字节

功能码:

1字节(最高位为1)

错误码:

1字节

CRC码:

2字节。

PDM响应回送如下错误码:

81.非法的功能码。

接收到的功能码PDM表不支持。

82.非法的数据位置。

指定的数据位置超出PDM表的范围。

83.非法的数据值。

接收到主机发送的数据值超出PDM相应地址的数据范围。

用户注册服务协议

【提示条款】

为了更好地为您提供服务,请您仔细阅读《用户注册协议》(以下简称“本协议”)。

在您开始使用“XX”软件及相关服务之前,请您务必认真阅读并充分理解本协议,特别是涉及免除或者限制责任的条款、权利许可和信息使用的条款、同意开通和使用特殊单项服务的条款、法律适用和争议解决条款等。

其中,免除或者限制责任条款等重要内容将以加粗形式提示您注意,您应重点阅读。

如您未满18周岁,请您在法定监护人陪同下仔细阅读并充分理解本协议,并征得法定监护人的同意后使用平台提供的服务。

当您按照注册页面提示填写信息、阅读并同意本协议且完成全部注册程序后,即表示您已充分阅读、理解并接受本协议的全部内容,承诺作为本协议的一方当事人接受协议的约束。

阅读本协议的过程中,如果您不同意本协议或其中任何条款约定,您应立即停止注册程序。

您应自行准备如下设备和承担如下开支:

(1)上网设备,包括并不限于电脑或者其他上网终端、调制解调器及其他必备的上网装置;

(2)上网开支,包括并不限于网络接入费、上网设备租用费、手机流量费等。

一、定义

1.本协议是您与平台的运营商XXXX有限公司及其关联公司(在本协议中简称为“公司”)之间就您下载、安装、注册、登录、使用“XX”软件,并获得“XX”软件提供的相关服务所订立的协议。

2.“用户”指所有直接或间接获取和使用“XX”软件及相关服务的使用者,包括自然人、法人或其他组织等。

在本协议中称为“用户”或称“您”。

3.“XX”软件指由公司合法拥有并运营的、标注名称为“XX”的网站和客户端应用程序,向用户提供商户信息、点评信息、消费信息、优惠信息、电子刊物等网络服务。

在本协议中称为“平台”或“软件”。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1