ModBus通讯规约16k.docx

上传人:b****7 文档编号:10096649 上传时间:2023-02-08 格式:DOCX 页数:20 大小:44.12KB
下载 相关 举报
ModBus通讯规约16k.docx_第1页
第1页 / 共20页
ModBus通讯规约16k.docx_第2页
第2页 / 共20页
ModBus通讯规约16k.docx_第3页
第3页 / 共20页
ModBus通讯规约16k.docx_第4页
第4页 / 共20页
ModBus通讯规约16k.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

ModBus通讯规约16k.docx

《ModBus通讯规约16k.docx》由会员分享,可在线阅读,更多相关《ModBus通讯规约16k.docx(20页珍藏版)》请在冰豆网上搜索。

ModBus通讯规约16k.docx

ModBus通讯规约16k

ModBus_RTU通讯规约

(本协议采用主从问答方式)

ModBus通讯协议:

ModBus通讯规约允许TDS系列仪表/变送器与施耐德、西门子、AB、GE等多个国际著名品牌的可编程顺序控制器(PLC)、RTU、SCADA系统、DCS或与第三方具有ModBus兼容的监控系统之间进行信息交换和数据传送。

TDS系列仪表/变送器只要简单地增加一套基于计算机(或工控机)的监控软件(如:

组态王、Intouch、FIX、synall等)就可以构成一套工况监控系统。

广泛的系统集成:

TDS表/变送器提供了标准的RS-485/422通讯接口及ModBus通讯协议,这个通讯协议已广泛被国内外工控行业作为系统集成的标准。

通讯数据的类型及格式:

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

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

(1位起始位,8位数据位,2位停止位,无奇偶校验)

字格式(串行数据)

11位二进制

说明

起始位

1位

出厂按该表11位的字格式

特殊需要另订

数据位

8位

奇偶校验位

停止位

2位

若特殊需要(订货时请注明要求),主站和从站之间传递的通讯信息也可采用10位的字格式:

(1位起始位,8位数据位,1位停止位)

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

数据格式:

地址码

功能码

数据区

错误校检

数据长度:

1字节

1字节

N字节

16位CRC码(冗余循环码)

★注:

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

2、ModBus是Modicon公司的注册商标。

3、“从机”在本文件中既为TDS。

通讯信息传输过程:

当通讯命令由发送设备(主机)发送至接收设备(从机)时,在CRC校验无误情况下,从机地址与地址码相符的从机接收通讯命令(TDS表以本机的地址码和功能码2个字节作为同步字),并根据功能码及相关要求处理信息,执行相应的任务,然后把执行结果(数据)返送给主机。

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

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

TDS表使用的MODBUS功能码(16进制)

功能码

定义

操作(二进制)

02

读开关量

读取开关量设置数据;一个或多个开关量控制/报警状态数据

03

读寄存器数据

读取单路或多路工况数据;单路或多路控制/报警设置数据

05

写开关量

写一个开关量设置数据

06

写单个寄存器

写单个功能寄存器或单路控制/报警设置数据

10

写多路寄存器

写多路功能寄存器或多路控制/报警设置数据

地址码:

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

每个从机都必须有唯一的地址码。

所有地址的从机都将接收由主机发送来的信息,只有符合地址码的从机才响应要求,回送信息。

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

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

功能码:

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

ModBus通讯规约可定义的功能码为0到127。

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

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

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

数据区:

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

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

开关量、模拟量、寄存器参数等等)、参考地址等。

例如,主机通过功能码03告诉从机返回单路或多路工况数据寄存器的值或单路或多路控制/报警设置数据寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度等),则返回的数据包括寄存器的数据长度及数据内容。

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

TDS系列仪表/变送器采用Modbus通讯规约,主机(PLC、RTU、PC机、DCS等)利用通讯命令(功能码03),可以进任意行读取其数据寄存器(其数据信息表详见附录)。

TDS系列仪表/变送器的数据寄存器存储多种工况数据(如:

温度、压力、流量、电流、电压、功率及控制/报警数据等),开关量以bit位为单元的二进制数组成(既8bit为1个字节)多字节数据;模拟量、寄存器参数都是16位(2字节)的二进制数据,高位在前(最高位为符号位,其后15位数据,例1500D05DCH;-500D81F4H)。

TDS响应的命令格式是从机地址、功能码、数据区及CRC码。

数据区的数据为多字节开关量数据或模拟量数据。

以64路TDS仪表为例作如下说明:

功能码02:

读开关量

例如:

从机48路开关量设定数据(内容:

B,01110011B,B,B,00010101B,B)主机要读取地址为01的从机第3路到第22路巡检状态开关量设置数据,数据地址为0302H开始20bit位(内容:

B,B,XXXX1001B)。

(未参加巡检时,该路数的开关量数据0)

主机发送的报文格式:

主机发送

字节数

发送的信息

举例说明

从机地址

1

01H

发送至地址为01的从机

功能码

1

02H

读取开关量设置数据

起始地址

2

0302H

单元数

2

0014H

20bit位20路巡检状态

CRC码

2

XXXXH

由主机计算得到CRC码

从机(TDS)响应返回的报

从机响应

字节数

返回的信息

举例说明

从机地址

1

01H

来自从机01

功能码

1

02H

读取开关量设置数据

字节数

1

03H

数据区字节数

开关量设置数据

1

B

8bit位设置数据(3~10路)

开关量设置数据

1

B

8bit位设置数据(11~18路)

开关量设置数据

1

XXXX1001B

4bit位设置数据(19~22路)

CRC码

2

XXXXH

由从机计算得到CRC码

功能码03:

读多路寄存器

例如:

主机要读取地址为01,起始地址为从1路到3路从机工况数据,其中第2路未参加巡检。

(未参加巡检时,该路数的工况数据为0000H)

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

寄存器地址

寄存器数据(16进制)

01路

1784H

02路

0000H

03路

178AH

主机发送的报文格式:

主机发送

字节数

发送的信息

举例说明

从机地址

1

01H

发送至地址为01的从机

功能码

1

03H

读取工况数据

起始地址

2

0000H

起始地址为00(1路)

数据路数

2

0003H

读取3路工况数据

CRC码

2

XXXXH

由主机计算得到CRC码

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

从机响应

字节数

返回的信息

举例说明

从机地址

1

01H

来自从机01

功能码

1

03H

读取工况数据

字节数

1

06H

第1路工况数据

2

1784H

第2路工况数据

2

0000H

第3路工况数据

2

178AH

CRC码

2

XXXXH

由从机计算得到CRC码

功能码05:

写开关量

例如:

主机要设置地址为01的从机第9路参加巡检(数据FF00H代表ON该路参加巡检;数据0000H代表OFF该路不参加巡检)。

主机发送的报文格式:

主机发送

字节数

发送的信息

举例说明

从机地址

1

01H

发送至地址为01的从机

功能码

1

05H

写开关量设置数据

起始地址

2

0308H

1

FFH

1

00H

CRC码

2

XXXXH

由主机计算得到CRC码

 

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

从机响应

字节数

返回的信息

举例说明

从机地址

1

01H

来自从机01

功能码

1

05H

写开关量设置数据

起始地址

2

0308H

1

FFH

1

00H

CRC码

2

XXXXH

由从机计算得到CRC码

功能码06:

写单路控制/报警数据

主机利用这个功能码把单路二进制控制/报警设置数据保存到TDS表的数据存储器中去(寄存器)。

例如:

主机要把04B0H保存到从机第6路上上限寄存器中去(从机地址码为01)。

通讯数据保存结束后,TDS表内第6路上上限为04B0H:

主机发送数据地址和数据为:

地址

数据

第6路

04B0H

主机发送的报文格式:

主机发送

字节数

发送的信息

举例说明

从机地址

1

01H

发送至从机01

功能码

1

06H

写单路寄存器

数据地址

2

0205H

第6路上上限寄存器

保存数据

2

04B0H

CRC码

2

XXXXH

由主机计算得到的CRC码

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

主机发送

字节数

返回的信息

举例说明

从机地址

1

01H

发送至从机01

功能码

1

06H

写多路寄存器

数据地址

2

0205H

第6路上上限寄存器

保存数据

2

04B0H

CRC码

2

XXXXH

由主机计算得到的CRC码

功能码10:

写多路控制/报警数据

主机利用这个功能码把多路二进制控制/报警设置数据保存到TDS表的数据存储器中去(寄存器)。

例如:

主机要把04B0H,保存到从机第1路上限寄存器中去;1388H保存到从机第2路上限寄存器中去(从机地址码为01)。

通讯数据保存结束后,TDS表内第1路上限为04B0H;、第2路上限为1388H:

主机发送数据地址和数据为:

地址

数据

第1路

04B0H

第2路

1388H

主机发送的报文格式:

主机发送

字节数

发送的信息

举例说明

从机地址

1

01H

发送至从机01

功能码

1

10H

写多路寄存器

起始地址

2

0100H

第1路开始

数据数

2

0002H

2路设定数据

字节数

1

04H

保存数据1

2

04B0H

保存数据2

2

1388H

CRC码

2

XXXXH

由主机计算得到的CRC码

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

主机发送

字节数

返回的信息

举例说明

从机地址

1

01H

发送至从机01

功能码

1

10H

写多路寄存器

起始地址

2

0100H

第1路开始

数据数

2

0002H

保存2路设定数据

CRC码

2

XXXXH

由主机计算得到的CRC码

错误校验码(CRC校验)

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

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

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

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

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

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

●CRC码的计算方法

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

2.把第一个8位二进制数据(既通讯信息帧的第一个字节)与16位的CRC寄存器的低8位相异或,把结果放于CRC寄存器;

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

如果最低位为1:

移位后CRC寄存器与多项式A001(1010000000000001)进行异或;如果最低位为0:

不作处理;

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

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

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

CRC码。

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

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

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

TDS接收到的信息如有CRC错误,则将被TDS略。

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

地址码:

1字节

功能码:

1字节(最高位为1,例:

03H功能码变为83H)

错误码:

1字节

CRC码:

2字节。

TDS响应回送如下错误码:

81:

非法的数据位置。

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

82:

非法的数据值。

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

附录1:

TDS系列流量积算仪MODBUS通讯规约信息表

数据类型

单元地址

说明

0000~0001

累积流量

单元(四字节)数据类型为带小数点的八位十进制数

0002~0005

分别为瞬时流量、第一、第二及第三工况数据(十六进制数)

0006

单元(两字节)4个4位二进制数分别代表流量、第一、二、三工况数据小数点位置:

0000无小数点

0001小数点在十位

0010小数点在百位

0011小数点在千位

0100小数点在万位

0007

附加功能

前字节高4位二进制数代表转换数据小数点位置:

0000无小数点

0001小数点在十位

0010小数点在百位

0011小数点在千位

0100小数点在万位

0008

单元(两字节)第一、二、三工况数据的某一转换数据

附录2:

8/16/24/32/48/64路MODBUS通讯规约信息表

单元数据类型

单元地址

说明

工况数据

0000H~0040H

从0000H到003FH共64个单元(双字节)分别代表64路工况数据;0040H单元(双字节),后字节为巡检路数设定字节(主机可改)是TDS表工况现场设定的巡检路数。

前字节(主机不可改)低4位代表控制/报警方式:

0000单显示

0001上限报警

0010上限/上上限报警

字节高4位代表工况数据小数点位置:

0000无小数点

0001小数点在十位

0010小数点在百位

0011小数点在千位

上限寄存器

0100H~013FH

从0100H到013FH共64个单元(双字节)分别代表64路上限设定数据)。

当该控制/报警方式不存在时,对所有单元读/写时,回送为非法的数据位置错误码。

上上限寄存器

0200H~023FH

从0200H到023FH共64个单元(双字节)分别代表64路上上限设定数据。

当该控制/报警方式不存在时,对所有单元读/写时,回送为非法的数据位置错误码。

开关量设定数据

0300H~033FH

从0300H到033FH每个单元为1bit,每单元分别对应1巡检路,分别代表64路巡检状态设定(主机可改)(第1单元0300H主机不可改)。

每8个单元组成1字节(每1字节8bit)。

单元(bit位)为1表示对应的巡检路参加巡检,未参加巡检时该路所有单元参数为0。

第1字节最末位代表第1路巡检状态,第8字节最高位代表第64路巡检状态。

开关量控制/报警状态

0400H~043FH

0440H~047FH

0480H~04BFH

从0400H到04BFH每个单元为1bit,0400H~043FH共64bit分别代表64路断阻报警状态;0440H~047FH共64bit分别代表上限控制/报警状态;0480H~04BFH共64bit分别代表上上限控制/报警状态。

每8个单元组成1字节,每8个字节为一组,第1字节最末位代表第1路控制/报警状态,第8字节最高位代表第64路控制/报警状态。

附录3:

TDS转速测控仪表MODBUS通讯规约信息表

单元数据类型

单元地址

说明

工况数据

0000H

频率f

数据带2位小数点

0001H

转速n

0002H

转速%

数据带1位小数点

0003H

频率fmax.

数据带2位小数点

0004H

转速nmax.

0005H

转速%max.

数据带1位小数点

设定数据寄存器

0100H

控制/报警J1

0%~5%额定转速

0101H

控制/报警J2

25%~40%额定转速

0102H

控制/报警J3

40%~80%额定转速

0103H

控制/报警J4

80%~90%额定转速

0104H

控制/报警J5

85%~100%额定转速

0105H

控制/报警J6

100%~125%额定转速

0106H

控制/报警J7

130%~175%额定转速

0107H

极对数/额定频率

单元前字节为极对数(主机可改),范围1~3FH(63D)极对数;单元后字节为转速仪测量额定频率(主机不可改):

00H60Hz

01H50Hz

02H25Hz

03H

0108H

归零延时

单元前字节为归零延时1~15,1为12秒;2为24秒;3......15为180秒;单元后字节为转速仪转速n/转速nmax.数据小数点位置:

0000无小数点

0001小数点在十位

0010小数点在百位

0011小数点在千位

开关量控制/报警状态

0300~0307

从0300H到0306H每个单元为1bit,共7bit(单元),分别代表J1~J7工况开关量控制/报警状态。

0307H单元为断相开关量报警状态。

说明:

1.控制/报警J1、J2、J3、J4、J5、J6、J7的设定数据,为正数表示当转速n大于设定值时该控制/报警动作;为负数表示当转速n小于设定值时该控制/报警动作。

TDS转速测控仪对J1、J2、J3、J4、J5、J6、J7设定数据的规定范围是J1、J2、J3为负数;J4、J5、J6、J7为正数。

例J3设定数据为50%即8032H,J6设定数据为105%即0069H。

2.频率f、频率f最大值数据含2位小数;转速%、转速%最大值数据含1位小数;转速n、转速n最大值数据,当转速n的额定转速大于等于100转/每分钟数据含1位小数(极对数小于30对极),当转速n的额定转速小于100转/每分钟数据含2位小数(极对数大于等于30对极)。

附录4:

TDS电站专用温度测控仪表MODBUS通讯规约信息表

单元数据类型

单元地址

说明

工况数据

0000H

工况温度

0001H

工况温度max

0002H

单元前字节低4位代表控制/报警方式:

0000单显示

0001下限报警

0010上限报警

0011下下限/下限报警

0100下限/上限报警

0101上限/上上限报警

前字节高4位代表工况数据类型:

0000Cu50~

0001Pt100~

0010Cu50/Pt100~

0011Pt100~

0100Pt100(-200~600)

单元后字节低4位代表工况数据小数点位置:

0000无小数点

0001小数点在十位

0010小数点在百位

0011小数点在千位

设定数据

寄存器

0100H

第一控制/报警

单报警或前报警设定

0101H

第二控制/报警

后报警设定

开关量控制/报警状态

0300~0302

0300H第一控制/报警状态

0301H第二控制/报警状态

0302H工况输入断阻报警

 

附录5:

TDS自动准同期测控仪表MODBUS通讯规约信息表

单元数据类型

单元地址

说明

工况数据

0000H

系统电压UH

0001H

机组电压FH

0002H

系统频率UF

0003H

机组频率FF

0004H

并机号等

设定数据寄存器

0100H

越前时间

0101H

合闸时间

0102H

允许压差

0103H

允许频差

0104H

均压周期

0105H

均压脉冲宽度

0106H

均频周期

0107H

均频脉冲宽度

开关量控制/报警状态

0300~0307

报警状态

0300~0303分别代表越前动作、相位允许、频率允许、电压允许

0304~0307分别代表电压差>=30伏或频率差>=3赫兹、系统或机组信号断线、自动准同期测控仪表在开机自检状态、自动准同期测控仪表在键入设置状态。

0308~030B

调控状态

0308---减速调控

0309---增速调控

030A---降压调控

030B---升压调控

说明:

电压量单位为伏,数据分辨率为伏;频率量单位为Hz,数据分辨率为;时间量单位为秒,数据分辨率为秒。

 

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

当前位置:首页 > 小学教育 > 其它课程

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

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