您好,欢迎来到小侦探旅游网。
搜索
您的当前位置:首页YD9111通讯协议

YD9111通讯协议

来源:小侦探旅游网
文件编号 版本

YADA-R&D1105 V2.0 2012年 3 月 12 日 第1页,共8页

YD9111 Modbus-RTU Communication Protocal

广东雅达电子股份有限公司

YD9111三交流电压数显表通讯规约

1. 引言

YD9111三交流电压数显表通讯规约详细描述了本机串行口通讯的读、写命令格式及内部信息数据的定义,以便第三方开发使用。 1.1.

PLC ModBus 兼容性

ModBus通讯规约允许YD9111三交流电压数显表与施耐德、西门子、AB、GE、Modicon等多个国际著名品牌的可编程顺序控制器(PLC)、RTU、SCADA系统、DCS或第三方具有ModBus兼容的监控系统之间进行信息和数据的有效传递。有了YD9111三交流电压数显表,就只要简单的增加一套基于PC(或工控机)的通讯主控显示软件(如:组态王、Intouch、FIX、synall等)就可建立一套监控系统。 1.2.

广泛的通讯集成

YD9111三交流电压数显表提供与Modicon系统相兼容的ModBus通讯规约,这个通讯规约被广泛作为系统集成的标准。兼容RS-485/232C接口的可编程逻辑控制器ModBus通讯规约允许信息和数据在YD9111三交流电压数显表与Modicon可编程逻辑控制器(PLC),RTU、SCADA系统、DCS系统和

另外兼容ModBus通讯规约的系统之间进行有效传递。 2. ModBus基本规则 2.1.

所有RS485通讯回路都应遵照主/从方式。依照这种方式,数据可以在一个主站(如:

PC)和32个子站(如:YD9111三交流电压数显表)之间传递。 2.2. 2.3. 2.4. 2.5.

主站将初始化和控制在RS485通讯回路上传递的所有信息。 任何一次通讯都不能从子站开始。

在RS485回路上的所有通讯都以“信息帧”方式传递。

如果主站或子站接收到含有未知命令的信息帧,则不予以响应。

“信息帧”就是一个由数据帧(每一个字节为一个数据帧)构成的字符串(最多255个字节),是由信息头和发送的编码数据构成标准的异步串行数据,该通讯方式也与RTU通讯规约相兼容。 3. 数据帧格式:

通讯传输为异步方式,并以字节(数据帧)为单位。在主站和子站之间传递的每一个数据

文件编号 版本

YADA-R&D1105 V2.0 2012年 3 月 12 日 第2页,共8页

YD9111 Modbus-RTU Communication Protocal 帧都是11位的串行数据流。

数据帧格式: 起始位 数据位 停止位

1位

8位(低位在前、高位在后)

1位:有奇偶校验位;2位:无奇偶校验位

广东雅达电子股份有限公司

奇偶校验位 1位:有奇偶校验位;无:无奇偶校验位 有校验位的时序图:

止起D0D1D2D3data数据位D4D5D6D7D8parity校验位止start起始位end停止位

无校验位的时序图: 止起D0D1D2D3data数据位D4D5D6D7止start起始位end停止位

4. YD9111三交流电压数显表通讯规约

当通讯命令发送至仪器时,符合相应的地址码的设备接收通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后的数据以及错误校验码(CRC)。如果出错就不发送任何信息。 4.1.

START 初始结构

延时(相当于4个字节的时

间) 4.1.1.

ADD 地址码 1字节 8位

CS 功能码 1字节 8位

DATA 数据区

N字节 N×8位

CRC 错误校验

2字节 16位

END 结束结构

延时(相当于4个字节的时

间)

信息帧格式

地址码(ADD)

地址码为每次通讯传送的信息帧中的第一个数据帧(8位),从0到255。这个字节表明由用户设定地址码的子机将接收由主机发送来的信息。并且每个子机都有唯一的地址码,并

文件编号 版本

YADA-R&D1105 V2.0 2012年 3 月 12 日 第3页,共8页

YD9111 Modbus-RTU Communication Protocal 且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的子机地址,而子机发送的地址码表明回送的子机地址。 4.1.2.

功能码(CS)

广东雅达电子股份有限公司

功能码是每次通讯传送的信息帧中的第二个数据帧。ModBus通讯规约定义功能码为1~127(01H~7FH)。YD9111三交流电压数显表利用其中的一部分功能码。作为主机请求发送,通过功能码告诉子机执行什么动作。作为子机响应,子机发送的功能码与主机发送来的功能码一样,并表明子机已响应主机进行操作。如果子机发送的功能码的最高位是1(功能码>127),则表明子机没有响应或出错。

下表列出的功能码都具体的含义及操作。

MODBUS部分功能码

功能码 03H 06H

1、 03,读寄存器

定义 读寄存器

操作

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

写单个寄存器把一个16位二进制数写入单个寄存器 YD9111三交流电压数显表采用ModBus通讯规约,利用通讯命令,可以进行读取点

(保持寄存器或返回值输入寄存器)。功能码03H映射的数据区的保持和输入寄存器值都是16位(2字节)。

子机响应的命令格式是子机地址、功能码、数据区及CRC码。数据区的数据都是每2个字节为一组的双字节数,且高字节在前。

2、 06,写单个寄存器:

主机利用这条命令把单点数据保存到YD9111三交流电压数显表的存储器。子机也用这个功能码向主机返送信息。 4.1.3.

数据区(DATA):

数据区随功能码不同而不同。由主机发送的读命令(03H)信息帧的数据区与子机应答信息帧的数据区是不同的,由主机发送的写命令(06H、10H)信息帧的数据区与子机应答信息帧的数据区是完全相同。数据区包含需要子机执行什么动作或由子机采集的需要回送的信息。这些信息可以是数值、参考地址等等。例如,功能码告诉子机读取寄存器的数值,则数据区必须包含要读取寄存器的起始地址及读取长度(寄存器个数)。

文件编号 版本

YADA-R&D1105 V2.0 2012年 3 月 12 日 第4页,共8页

YD9111 Modbus-RTU Communication Protocal

1、 与功能码03对应的数据区格式:

󰂋 主机发送

数据顺序 数据含义 字节数

󰂋 子机应答

数据顺序 字节数

2、 与功能码06对应的数据区格式:

数据顺序 数据含义 字节数

3、 与功能码10对应的数据区格式:

数据顺序 数据含义 字节数

4.1.4.

错误校验码(CRC):

1 起始地址

2

2 写入数据1

2

… …

N 写入数据N 1 起始地址

2

2

写入寄存器的数据

2

1 1

2

N个寄存器的数据

2×N

1 起始地址

2

2 读寄存器个数

2

广东雅达电子股份有限公司

数据含义 回送字节数

… 2

主机或子机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其他一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或子机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验码采用CRC-16校验方法。

二字节的错误校验码,低字节在前,高字节在后。

信息帧的格式都是相同的:地址码、功能码、数据区和错误校

注意:

验码。

4.2.

错误校验

冗余循环码(CRC)包含2个字节,即16位二进制。CRC码由发送端计算,放置于发送信息的尾部。接收端的设备再重新计算接收到信息的CRC码,比较计算得到的CRC码是否与接收到的相符,如果二者不相符,则表明出错。

文件编号 版本

YADA-R&D1105 V2.0 2012年 3 月 12 日 第5页,共8页

YD9111 Modbus-RTU Communication Protocal

CRC码的计算方法是,先预置16位寄存器全为。再逐渐把每8位数据信息进行处理。在进行CRC码计算时只用8位数据位,起始位及停止位,如有奇偶校验位的话也包括奇偶校验位,都不参与CRC码计算。

在计算CRC码时,8位数据与寄存器的数据相异或,得到的结果向低位移一位,用0填补最高位。再检查最低位,如果最低位为1,把寄存器的内容与预置数相异或,如果最低位为0,不进行异或运算。

这个过程一直重复8次。第8次移位后,下一个8位再与现在寄存器的内容相异或,这个过程与上以上一样重复8次。当所有的数据信息处理完后,最后寄存器的内容即为CRC码值。 4.3.

CRC-16码的计算步骤

广东雅达电子股份有限公司

1、 置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器。 2、 把一个8位数据与16位CRC寄存器的低位相异或,把结果放于CRC寄存器。 3、 把寄存器的内容右移一位(朝低位),用0填补最高位,检查最低位(移出位)。 4、 如果最低位为0:复第3步(再次移位)。

如果最低位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或。 5、 重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理。 6、 重复步骤2到步骤5,进行下一个8位的处理。

7、 最后得到的CRC寄存器即为CRC码,低字节在前,高字节在后。 4.4. 4.4.1.

信息帧格式举例 功能码03

子机地址为01,起始地址0000的3个寄存器。 此例中寄存器数据地址为:

地 址 0000 0002 0004

主机发送 子机地址

字节数 1

01

举 例(16进制) 送至子机01 数据(16进制)

1388 1388 1388

文件编号 版本

YADA-R&D1105 V2.0 2012年 3 月 12 日 第6页,共8页

YD9111 Modbus-RTU Communication Protocal

功能码 1 03 读取寄存器

起始地址

读取个数

CRC码

子机响应 子机地址 功能码 读取字节数 寄存器数据1

寄存器数据2

寄存器数据3

CRC码

4.4.2.

功能码06

字节数 1 1 1 2 2 2 2

01 03 06 13 88 13 88 13 88 4A 31

举 例(16进制) 送至子机01 读取寄存器

3个寄存器(共6字节) 地址为0000内的内容

地址为0002内的内容

地址为0004内的内容

由子机计算得到的CRC码

2 2 2

00 00 00 03 05 CB

起始地址为0032

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

由主机计算得到的CRC码

广东雅达电子股份有限公司

子机地址为01, 地址为1,修改上限阀值为5000.

主机发送 子机地址 功能码 起始地址

保存数据

CRC码

子机响应 子机地址 功能码 起始地址

保存数据

字节数 1 1 2 2

01 06 03 02 13 88

举 例(16进制)

来自子机01 单点保存 起始地址为0302

保存的数据为5000

字节数 1 1 2 2 2

01 06 03 02 13 88 25 18

举 例(16进制) 发送至子机01 单个数据(2字节)保存 起始地址为0302

保存的数据为5000

由主机计算得到的CRC码

文件编号 版本

YADA-R&D1105 V2.0 2012年 3 月 12 日 第7页,共8页

YD9111 Modbus-RTU Communication Protocal

CRC码 2 25 由子机计算得到的CRC码

4.5.

出错处理

当YD930B数显表检测到了CRC码出错以外的错误时,必须向主机回送信息,功能码的最高位置为1,即子机返送给主机的功能码是在主机以送的功能码的基础上加128。以下的这些代码表明有意外的错误发生。

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

子机返送的错误码的格式如下(CRC码除外) 地址码: 功能码: 错误码: CRC码:

1字节

1字节(最高位为1) 1字节 2字节

YD9111三交流电压数显表响应回送如下出错命令 01 02 03

5. 通讯地址

附录1:数据和地址

表1:功能码03H所映射的数据区-基本数据:

基本数据(Basic)

地址(Address) 0000H 0002H 0004H 0006H

表2:功能码06H所映射的数据区:

项目(Item) A相测量数据 B相测量数据 C相测量数据 小数点位置

说明

乘变比之前

非法的功能码。

接收到的功能码YD9111三交流电压数显表不支持。 非法的数据位置。

指定的数据位置超出YD9111三交流电压数显表范围 非法的数据值

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

18

广东雅达电子股份有限公司

文件编号 版本

YADA-R&D1105 V2.0 2012年 3 月 12 日 第8页,共8页

YD9111 Modbus-RTU Communication Protocal

项目Item 起始地址 Start address取值范围Value 单位Unit 地址 波特率 PT

03 00H 03 08H 03 12H

1-32 0-4 1~000

广东雅达电子股份有限公司

注意:00 00 寄存器地址对应的测量数据寄存器无法写入,只能读出。 03 00 寄存器地址对应的本机地址只能写入修改值,无法读出。

通讯采用ModBus规约N81格式(8个数据位、一个停止位、没有校验位)。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务