MODBUS RTU规约
PD1008-9S4多功能电力仪表MODBUS通讯规约

(MODBUS RTU协议)一、概述本规约采用MODBUS RTU 协议,为主从问答式连接(即半双工)。
主站(如PC机)发送包含地址的消息,从站识别主站发来的消息,决定产生何种行动。
如需回应,从站将生成反馈信息并用本规约发出。
1、字格式采用异步串行通讯方式,通讯信息为11位的字格式:每个字节的位:●1个起始位●8个数据位●无奇偶校验位●1个停止位地址码:地址码是每次通讯帧的第一字节,从1到255。
主机通过将要联络的从机的地址放入消息中的地址码域来选通从机。
当从机发送回应消息时,把自己的地址放入回应的地址码域中,以便使主机知道是哪一个从机作出回应。
每个从机都必须有唯一的地址码。
并且只有符合地址码的从机才能响应并返回信息。
地址0为广播地址,所有从机均响应广播命令,但不需要信息返回。
功能码:功能码是通讯信息帧传送的第二个字节。
范围为1到127。
作为主机请求发送,通过功能码告诉从机应执行什么行为。
作为从机响应,从机返回的功能码与从主机发送来的功能码一样,表明从机已响应主机并且已进行相关的操作。
如有某种错误发生,在向主机回送信息时,将功能码的最高位置为1。
功能码定义:数据区:数据区包括需要由从机返送何种信息或执行什么动作。
错误校验码(CRC校验):本协议的采用CRC(冗余循环码)校验,包含2个字节,即16位二进制数。
CRC码由发送设备计算,放置于发送信息帧的尾部。
接收信息的设备再重新计算接收到信息的CRC,比较计算得到的CRC是否与接收到的相符,如果两者不相符,则表明出错,错误的数据将被放弃(无论是发送还是接收)。
在进行CRC计算时只用8个数据位,起始位及停止位,如有奇偶校验位也包括奇偶校验位,都不参与CRC计算。
说明:CRC校验码的计算方法:1、置一16位寄存器为全1;2、将报文数据的高位字节异或寄存器的低八位,存入寄存器;3、右移寄存器,最高位置0,移出的低位存入标志位;4、如标志位是1,则用1010000000000001异或寄存器;如标志位是0,继续步骤3;5、重复步骤3和4,直至移位八次;6、异或下一位字节与寄存器;7、重复步骤3至5,直至所有报文数据均与寄存器异或并移位8次;8、此时寄存器中即为CRC校验码,最低位先发送;二、通讯地址表及说明2.1、实时测量量,支持03功能码读取规则说明:1、SFlag位定义:Bit0 :=1表示A相有功功率方向为负Bit1 :=1表示B相有功功率方向为负Bit2 :=1表示C相有功功率方向为负Bit3 :=1表示总有功功率方向为负Bit4 :=1表示A相无功功率方向为负Bit5 :=1表示B相无功功率方向为负Bit6 :=1表示C相无功功率方向为负Bit7 :=1表示总无功功率方向为负Bit8 :=1表示A相功率因数方向为负Bit9 :=1表示B相功率因数方向为负Bit10 :=1表示C相功率因数方向为负Bit11 :=1表示总功率因数方向为负Bit12 :未定义Bit13 :未定义Bit14 :未定义Bit15 :未定义2、数据格式说明:电度数据占用两个寄存器,共4个字节,先传低16位,后传高16位三、通讯帧格式1、遥测命令报文格式从机返回帧格式2、修改参数报文格式主站下发帧格式:从机返回帧格式:5、异常应答返回PA1008-9X4参照以上通讯协议版权所有2007年06月12日如有变更恕不另行通知天水长开电子科技有限公司。
MODBUS协议概括及详解

MODBUS 是MODICON公司最先倡导的一种软的通讯规约,经过大多数公司的实际应用,逐渐被认可,成为一种标准的通讯规约,只要按照这种规约进行数据通讯或传输,不同的系统就可以通讯。
目前,在RS232/RS485通讯过程中,更是广泛采用这种规约。
常用的MODBUS 通讯规约有两种,一种是MODBUS ASCII,一种是MODBUS RTU。
一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUS ASCII规约,通讯数据数据量大而且是二进制数值时,多采用MODBUS RTU规约。
在实际的应用过程中,为了解决某一个特殊问题,人们喜欢自己修改MODBUS 规约来满足自己的需要(事实上,人们经常使用自己定义的规约来通讯,这样能解决问题,但不太规范)。
更为普通的用法是,少量修改规约,但将规约格式附在软件说明书一起,或直接放在帮助中,这样就方便了用户的通讯。
ModBus RTU通讯协议是Modicon公司的注册商标, 采用主从问答方式工作,是目前国际智能化仪表普遍采用的主流通讯协议之一[1]。
ModBus RTU通讯协议有两种传输模式,分为RTU模式和ASCII模式,其中RTU模式信息帧中的8位数据包括两个4位16进制字符,相对于ASCII模式,RTU模式表达相同的信息需要较少的位数,且在相同通讯速率下具有更大的数据流量。
因此通常情况下,一般工业智能仪器仪表都是采用RTU模式。
江阴长江斯菲尔公司生产的电力仪表大都采用MODBUS RTU通讯协议,允许一台主机和多台从机之间进行数据通信,在其生产的CD194E系列仪表通讯系统中,主机是微机(PC、工控机或PLC),从机是CD194E型仪表。
在该分散通讯系统中,允许总线挂接仪表多达128块,通讯距离可达到1千200米。
通讯方式采用主机请求,从机应答,即:主机提出命令请求,从机接收数据后作数据分析,如果数据满足通讯规约,从机作数据响应。
使用CD194E型网络电力仪表时,首先要进行通讯参数的设置:通过仪表上的编程键盘对仪表进行通讯参数设置:(1)仪表地址:设置通讯网络中从机(仪表)地址号,可以设置为1~247。
ModBusRTU通讯详解1

ModBusRTU通讯协议Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。
此协议支持传统的RS-232、RS-422、RS-485和以太网设备。
许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。
Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。
此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。
标准的Modicon控制器使用RS232C实现串行的Modbus。
Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。
Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC 校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。
另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。
因此,Modbus协议的可靠性较好。
对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。
MODBUS规约说明

2字节报文的CRC-16校验码
成功的应答格式如下:
1字节从机地址
1字节功能码(01h)
1字节字节计数器
n字节数据
2字节报文CRC-16校验码
应答报文中每字节包含8个位,第一个字节的最低位对应位起始地址。
读输入状态(功能码
功能码02h的用法与上述的功能码01h相似。绝大多数主机对该功能码采用1X引用方法,1X引用为一5位数地址,即上述指定的位地址加上100001即可。
功能码是:
01h读线圈状态
02h读输入状态
03h读保持寄存器
04h读输入寄存器
05h约束单个线圈
06h设置单个线圈
10h设置多个线圈
11h报告从机ID
读线圈状态(功能码
用功能码01h来读取各种位的状态。一次最多可读取1000位。
主机的请求必须具有下列格式:
1字节从机地址
1字节功能码(01h)
2字节位起始地址
06 - BUSY,REJECTED MESSAGE由于内部数据存取冲突,对请求不能及时应答;也用于指示请求的操作内存不够。
02 - ILLEGAL DATA ADDRESS请求的寄存器中的一部分没定义或无效。对于写操作,这可能表示寄存器是只读的;对于约束单线圈操作,可能是地址不是一有效数据区的起始地址
03 - ILLEGAL DATA VALUE在约束单线圈操作时,对给定的线圈,其引用值非法。
04 - FAILURE IN ASSOCIATED DEVICE被访问的端口目前没有采集所需要的数据,这是由于设置不准确、端口休止或读空的数据区。
对大多数主机,线圈号应设置为比指定的线圈引用大1。
设置单个线圈(功能码
通过该功能码让Modbus直接写数据库寄存器。
modbus rtu协议规则

modbus rtu协议规则好嘞,以下是为您撰写的关于“modbus rtu 协议规则”的文章:嘿,朋友们!今天咱们来好好聊聊 Modbus RTU 协议的那些规则。
先来说说啥是 Modbus RTU 协议哈。
简单说,这就是一种通信协议,就像咱们人和人交流得有个约定好的方式一样,设备之间通信也得有个规矩,Modbus RTU 协议就是这个规矩。
在这个协议里,允许的数据格式那是有讲究的。
比如说,数据得按照特定的字节顺序和位排列来传输,可不能随便乱来哟!禁止出现乱码或者格式错误的数据,不然设备之间就会“听不懂”对方在说啥,整个通信就乱套啦。
再讲讲地址这一块。
每个从设备都得有个独一无二的地址,就像咱们每个人都有个名字一样。
允许主设备准确地向特定地址的从设备发送指令,这能保证指令不发错地方。
但是,禁止重复或者错误的地址,要不然主设备想找张三,结果找到了李四,那不是闹笑话了嘛。
还有数据长度这方面,也有严格的规定。
允许传输合适长度的数据,不多也不少。
比如说,需要 8 个字节的数据,那就得是 8 个字节,禁止多一个或者少一个。
为啥呢?因为多了或者少了,接收的那一方就没法正确解读啦。
另外,传输的速度也不是随便定的哟。
允许根据实际情况设置合理的波特率,这样通信就能流畅进行。
但禁止设置超出设备支持范围的波特率,不然就像说话太快或者太慢,对方根本跟不上节奏。
总之呀,Modbus RTU 协议的这些规则就像是交通规则一样,大家都遵守,设备之间就能顺顺利利地交流,工作就能高效进行。
要是不遵守,那可就麻烦大了,各种错误、故障都会跑出来。
所以,咱们可得好好记住这些规则,让设备们都能“友好相处”,为咱们的工作和生活服务哟!好啦,关于 Modbus RTU 协议规则就说到这儿,希望对大家有帮助!。
RDS保护装置 MODBUS规约

RD系列保护装置 MODBUS-RTU 通讯规约1 引言1.1 范围本规约适用于我公司生产的RD系列微机保护装置。
1.2 协议概述本规约是表述串行链路上的Modbus协议。
本规约规定保护装置与上位机之间的传输模式为Modbus RTU模式。
采用异步主从半双工方式通讯。
上位机始终作为主站,保护装置始终作为从站。
2 物理层2.1 传输接口:RS-4852.2 接线方式: A线、B线、屏蔽地(屏蔽双绞线)2.3 工作方式:异步半双工2.3 从站地址:1~992.3 通讯波特率:1200bps,2400bps,4800bps,9600bps2.4 通讯格式:1位起始位、8位数据位、无校验、1位停止位3 数据链路层3.1 Modbus主站/从站协议原理Modbus 串行链路协议是一个主-从协议。
在同一时刻,只有一个主节点连接于总线,一个或多个子节点 (最大编号为 99 ) 连接于同一个串行总线。
Modbus 通信总是由主节点发起。
子节点在没有收到来自主节点的请求时,从不会发送数据。
子节点之间从不会互相通信。
主节点在同一时刻只会发起一个Modbus 事务处理。
主节点以两种模式对子节点发出 Modbus 请求:(1)在单播模式,主节点以特定地址访问某个子节点,子节点接到并处理完请求后,子节点向主节点返回一个报文(一个'应答')。
在这种模式,一个 Modbus 事务处理包含 2 个报文:一个来自主节点的请求,一个来自子节点的应答。
每个子节点必须有唯一的地址 (1 到 99),这样才能区别于其它节点被独立的寻址。
(2)在广播模式,主节点向所有的子节点发送请求。
对于主节点广播的请求没有应答返回。
广播请求一般用于写命令。
所有设备必须接受广播模式的写功能。
地址 0 是专门用于表示广播数据的。
3.2 Modbus帧描述两个报文之间的线路空闲间隔最少需33位。
总线接口单元(上位机)等待单元报文的超时时间为50ms,即总线接口单元在发送完需要单元应答的报文后,50ms内还未接收到应答报文的第一个字节就认为是超时。
万龙电动机保护器ST570 ModbusRTU通信协议
ST570 Modbus通信规约1.MODBUS规约MODBUS规约是MODICOM公司开发的一个为很多厂商支持的开放规约。
Modbus 协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
当在Modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息并用Modbus协议发出。
控制器通信使用主—从技术,即仅设备(主设备)能初始化传输(查询)。
其它设备(从设备)根据主设备查询提供的数据做出相应反应。
主设备可单独和从设备通信,也能以广播方式和所有从设备通信。
如果单独通信,从设备返回消息作为回应,如果是以广播方式查询的,则不作任何回应。
Modbus 协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、错误检测域。
从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和错误检测域。
如果在消息接收过程中发生错误,或从设备不能执行其命令,从设备将对功能代码进行修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。
每个MODBUS帧都包括:地址域,功能域,数据域,错误检测域。
2.RTU方式报文组织格式:地址功能代码数据数量数据1...数据n CRC低字节CRC高字节地址域 功能域数据域错误检测域帧界定:MODBUS RTU方式下,每两个字符之间发送或者接收的时间间隔不能超过1.5倍字符传输时间。
如果两个字符时间间隔超过了3.5倍的字符传输时间,规约就认为一帧数据已经接收,新的一帧数据传输开始。
3.支持命令目前MODBUS通信协议支持的命令比较有限,主要包括: ¾0x03:读保持寄存器¾0x04:读输入寄存器¾0x06:设置单个保持寄存器¾0x10:设置多个保持寄存器¾0x14:读文件记录¾异常报文处理1)0x03:读保持寄存器读保持寄存器命令主要涉及到的的数据类型包括:“保护系统定值”,“控制定值”,“扩展模块模拟量和状态量”,“保持命令”这些值属于内存保持变量,可以进行修改,也可以读取。
modbusRTU说明
Modbus通讯规约Modbus通讯规约被广泛的作为系统集成的标准。
当通讯命令发送至仪器时,符合相应地址码的设备接收通讯命令,读取信息,如果没有出错则执行相应的任务,然后把执行结果返送给发送者;如果出错则返送错误报告信息(CRC16校验码出错则不返送任何信息)或者不返送任何信息。
其通讯数据帧格式如下:地址码功能码数据区校验码8位8位N×8位16位CRC地址码:地址码是信息帧的第一个字节(8位),从0到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能相应回送。
当从机回送信息时,相应的地址码表明该信息来自于相应地址的从机。
功能码:主机发送的功能码告诉从机执行怎么样的任务,从机的功能码则表明从机响应主机相应任务进行了操作。
Modbus通讯规约定义的功能码为01H到7FH,多功能电力监测仪使用了其中一部分功能码。
下表列出了所用到的功能码的具体含义及操作。
代码(Hex) 含义操作03H 读取数据读取指定寄存器开始的一个或多个数据06H 写单个寄存器把设置的单个数值写入指定的寄存器10H 写多个寄存器把设置的数值写入指定的连续寄存器注:如果从机发送的功能码的最高位是1(功能码>127),则表明从机没有响应操作或发送出错。
数据区:数据区是根据不同的功能码而不同。
数据区可以是实际数值,设置点,主机发送给从机或从机发送给主机的地址。
数据区包含需要从机执行什么动作或由从机采集的返送信息,这些信息可以是数值、参考地址等等。
例如,功能码告诉从机读取寄存器的值,则数据区必须包含要读取的寄存器的起始地址及读取长度。
如果功能码告诉从机设置某些连续寄存器的值,则数据区还要包含这些数值。
对于不同的从机,地址和数据信息可能都不相同。
校验码:校验码可用于主机或从机判断接受信息是否出错。
有时由于电子噪音或其它一些干扰,信息在传输过程中会发生细微的变化,这时自己根据信息计算所得的检验码与信息中包含的校验码就会不一致,从而判断接受信息出错。
104规约详细介绍及报文解析
104规约详细介绍及报文解析【原创实用版】目录1.104 规约的概述2.104 规约的特点3.104 规约的报文结构4.104 规约的报文解析实例5.104 规约的应用场景正文一、104 规约的概述104 规约,全称为 Modbus RTU 通讯协议,是一种串行通信协议,主要应用于工业自动化领域。
它是由 Modicon 公司于 1979 年开发的,现在已成为工业控制领域中应用最广泛的通讯协议之一。
104 规约具有传输速度快、可靠性高、兼容性好等特点,广泛应用于 PLC、PAC、智能仪表等工业控制设备的通讯。
二、104 规约的特点1.传输速度快:104 规约采用二进制编码方式,传输速率最高可达1Mbps,满足了工业自动化领域对通讯速度的要求。
2.可靠性高:104 规约具有强大的错误检测和纠正能力,可以有效地防止通讯错误,确保通讯的可靠性。
3.兼容性好:104 规约支持多种工业控制设备,如 PLC、PAC、智能仪表等,具有很好的兼容性。
4.拓展性强:104 规约具有丰富的功能指令,可以满足各种工业自动化应用的需求。
三、104 规约的报文结构104 规约的报文由帧头、地址、命令、数据、校验和、结束符等部分组成。
其中,帧头用于标识报文的开始和结束;地址用于标识通讯设备的地址;命令用于指示通讯的类型和功能;数据是通讯的核心内容;校验和用于检验数据是否正确;结束符用于标识报文的结束。
四、104 规约的报文解析实例以读取保持型输入为例,假设设备地址为 1,输入寄存器地址为 0,对应的报文如下:- 帧头:0x03 0x03(表示报文开始和结束)- 地址:0x01(表示设备地址为 1)- 命令:0x04(表示读取保持型输入)- 数据:0x00 0x01(表示输入寄存器地址为 0)- 校验和:0x12(用于检验数据是否正确)- 结束符:0x03 0x03(表示报文结束)五、104 规约的应用场景104 规约广泛应用于工业自动化领域的通讯,如 PLC 与 PAC 之间的通讯、智能仪表的数据采集等。
MODBUS3.0 照明信号WZB-7
KJ2003监控系统MODBUS3.0照明综保通讯规约(第三版)电光防爆科技股份有限公司2009年7月MODBUS-RTU V3.0 照明信号综保通讯规约说明目录一、MODBUS 通讯协议简介二、通讯信息传输过程三、MODBUS 功能码简介四、错误校验码(CRC 校验)五、各指令对应的地址范围附件:CRC 校验算法程序一、MODBUS 通讯协议简介:MODBUS 协议是应用于电子控制器上的一种通用语言。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为一通用工业标准。
有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
MODBUS是一个请求/应答协议,并且提供功能码规定的服务。
MODBUS 是一种应用层报文传输协议,用于在通过不同类型的总线或网络连接的设备之间的客户机/服务器通信。
注:MODBUS是Modicon公司的注册商标。
数据编码:MODBUS 使用最高有效字节在低地址存储的方式表示地址与数据项。
即当发送多个字节时,首先发送最高有效字节。
例如:寄存器大小 值16 位 0x1234 发送的第一字节为 0x12 然后发0x34 通讯数据的类型及格式:信息传输为异步方式,以字节为单位,每字节为10 位的格式传输:字格式(串行数据)10 位二进制起始位 1 位,0数据位8 位,最低的有效位先被发送奇偶校验位偶校验停止位 1 位,1波特率 9600bps通讯数据(信息帧)格式:数据格式 地址码 功能码 数据区 CRC校验数据长度 1字节 1字节 N字节 16位CRC校验码2数据字节: 1个字节由8 位二进制数(8Bit)组成。
CRC 校验: CRC 生成后,低字节在前,高字节在后。
MODBUS-RTU的帧结构:在RTU 模式中,新的信息总是以至少3.5个字符的静默时间开始。
紧接着传送第一个域:设备地址。
整帧信息必须以一个连续的数据流进行传输。
如果信息结束前存在超过1.5个字符以上的间隔时间,则出错。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
概述:本规约采用Modbus 规约RTU模式,可以方便地与多种组态软件相连接,其通讯驱动与Modicon Modbus_RTU格式完全兼容。
1、 字节格式:
每字节含8位二进制码,传输时加上一个起始位(0),一个停止位(1),共10位。其传输序列如上图所示,D0是字节的最低有效位,D7是字节的最高有效位。先传低位,后传高位。
2、 通讯数据格式:通讯时数据以字(WORD— 2字节)的形式回送,回送的每个字中,高字节在前,低字节在后,如果2个字连续回送(如:浮点或长整形),则高字在前,低字在后。
数据类型 寄存器数 字节数 说 明 字节数据 1 1 整形数据 1 2 一次送回,高字节在前,低字节在后 长整形数 浮点数据 2 4 分两个字回送,高字在前,低字在后
3、 帧格式: 3.1读取仪表寄存器内容(功能码 03H) 3.1.1上位机发送的帧格式:
顺序 代 码 示例说 明 1 仪表地址 1 仪表的通讯地址(1-255之间)
2 03H 03H 功能码
3 起始寄存器地址高字节 10H 4 起始寄存器地址低字节 00H 寄存器起始地址
5 寄存器个数高字节 00H 6 寄存器个数低字节 02H 寄存器个数
7 CRC16 校验高字节 C0H 8 CRC16 校验低字节 CBH CRC 校验数据 3.1.2仪表回送的帧格式(数据正常) 顺序 代 码 说 明 1 仪表地址 仪表的通讯地址(1-255之间)
2 03H 功能码
3 回送数据域字节数(M) 4 第一个寄存器数据 …… …… 第N个寄存器数据 M+4 CRC 校验高字节 M+5 CRC 校验低字节
3.1.3如果起始寄存器地址或寄存器个数错误,仪表回送: 顺序 代 码 示 例 说 明 1 仪表地址 1 仪表的通讯地址(1-255之间)
2 83H 83H 功能码
3 02H 02H 错误代码
4 CRC 校验高字节 C0H 5 CRC校验低字节 F1H
3.2设置仪表寄存器内容(功能码 16H或10H或06H) 3.2.1.1 功能码06H写单路,将一个字(2字节)数据写入仪表寄存器中,上位机发送的帧格式:
顺序 代 码 示 例 说 明 1 仪表地址 1 仪表的通讯地址(1-255之间)
2 06H 06H 功能码
3 寄存器地址高字节 10H 4 寄存器地址低字节 00H 寄存器地址1000H
5 写入数据高字节 00H 6 写入数据低字节 0CH 写入数据0CH
7 CRC校验高字节 8DH 8 CRC校验低字节 0FH CRC校验数据8D0FH
3.2.1.2 仪表回送:如果写入正确,则仪表回送相同的数据。
3.2.2 .1 功能码16H或10H写多路寄存器,上位机发送的帧格式 顺序 代 码 示 例 说 明 1 仪表地址 1 仪表的通讯地址(1-255之间)
2 16H 或10H 10H 功能码
3 寄存器起始地址高字节 1FH 4 寄存器起始地址低字节 02H 寄存器地址1F02H
5 寄存器个数高字节 00H
00H
6 寄存器个数低字节 02H 字节数据、整形数据:01H
浮点数据、长整形数:02H
7 字节数(M)
4 字节数据 :01H
整形数据 :02H 浮点数、长整形数:04H 8 数据高字节 42H 数据次高字节 C8H 数据次低字节 00H 数据低字节 00H
设置的浮点数据为100
M+8 CRC校验高字节 6BH M+9 CRC校验低字节 C0H CRC校验数据6BC0H
3.2.2.2仪表回送:(写入成功) 顺序 代 码 示 例 说 明 1 仪表地址 1 仪表的通讯地址(1-255之间)
2 16H 或10H 10H 功能码
3 起始地址高字节 1FH 4 起始地址低字节 02H 寄存器起始地址1F02H
5 寄存器个数高字节 00H 6 寄存器个数低字节 02H 寄存器个数2
7 CRC校验高字节 E7H 8 CRC校验低字节 DCH CRC校验数据E7DCH
3.2.3仪表回送:(地址或数据错误) 顺序 代 码 说 明 1 仪表地址 仪表的通讯地址(1-255之间)
2 96H或90H或86H 功能码——针对16H,10H,06H
3 03H 错误代码
4 CRC校验高字节 5 CRC校验低字节
注:以上介绍中CRC校验为16位,高字节在前,低字节在后。 4、 通讯波特率:通讯波特率可以在300、600、1200、2400、4800、9600之间选择。出厂时,仪表已设置某一波特率。 5、 仪表地址:仪表地址可以在1-247之间选择。仪表出厂时,已设置某一地址。 6、 通讯功能码:03H(召测数据) 16H(10H或06H)(数据设置) 7、 通讯数据CRC校验: 7.1 校验多项式:X16+X12+X5+1 7.2 CRC检验码的计算例程见附录B和。附录C 7.3 CRC检验从第1字节开始至CRC校验高字节前面的字节数据结束。 附录A1:IEEE754单精度浮点格式: IEEE 单精度格式由三个字段组成:23 位小数 f ; 8 位偏置指数 e ;以及 1 位符号 s。这些字段连续存储在一个 32 位字中(如附录A表1 所示)。0:22 位包含 23 位小数 f,其中第 0位是小数的最低有效位,第 22 位是最高有效位; 23:30 位包含 8 位偏置指数 e,第 23 位是偏置指数的最低有效位,第 30 位是最高有效位;最高的第 31 位包含符号位 s。
格式 S e[30:23] f[22:0] 位 31 30-23 22-0
附录A表1:单精度浮点数据存储格式
附录A表2 显示一侧的三个组成字段 s、e 和 f 的值与另一侧的单精度格式位模式表示的值之间的对应关系;u 意味着无关,即指示字段的值与确定特定单精度格式位模式的值无关。
单精度格式位模式 值 0 < e < 255 (–1)
S× 2e-127
× 1.f (正规数)
e = 0;f ≠ 0(f 中至少有一位不为零) (–1)S× 2-126× 0.f (次正规数)
e = 0; f = 0(f 中的所有位均为零) (–1)S× 2-126× 0.0(有符号的零)
s = 0; e = 255; f = 0(f 中的所有位均为零) +INF (正无穷大) s = 1; e = 255; f = 0(f 中的所有位均为零) –INF (负无穷大) s = u; e = 255;f ≠ 0(f 中至少有一位不为零)NaN (非数)
附录A表2:单精度格式位模式表示的值 注意,当 e < 255 时,为单精度格式位模式分配的值是使用以下方法构成的:将二进制基数点插入到紧邻小数最高有效位的左侧,将一个隐含位插入到紧邻二进制点的左侧,因而以二进制位置表示法来表示一个带分数 (整数加小数,其中 0 ≤ ò3 小数 < 1)
如此构成的带分数称为单精度格式有效数字。之所以称为隐含位的原因是,在单精度格式位模式中没有显式地指定其值,但偏置指数字段的值隐式指定了该值。
对于单精度格式,正规数和次正规数的差别在于正规数有效数字的前导位 (二进制点左侧的位)为 1,而次正规数有效数字的前导位为 0。在 IEEE 754 标准中,单精度格式次正规数称为单精度格式非规格化数。
在单精度格式正规数中 23 位小数加上隐含前导有效数位提供了 24 位精度。 附录A表3 中给出了重要的单精度存储格式位模式的示例。最大正正规数是以 IEEE 单精度格式表示的最大有限数。最小正次正规数是以 IEEE 单精度格式表示的最小正数。最小正正规数通常称为下溢阈值。(最大和最小正规数和次正规数的十进制值是近似的;对于所示的数字来说,它们是正确的。) 通用名称 位模式 (十六进制) 十进制值 +0 0 0 0 0 0 0 0 0 0.0
-0 8 0 0 0 0 0 0 0 -0.0
1 3 f 8 0 0 0 0 0 1.0
2 4 0 0 0 0 0 0 0 2.0
最大正规数 7 f 7 f f f f f 3.40282347e+38 最小正正规数 0 0 8 0 0 0 0 0 1.17549435e-38 最大次正规数 0 0 7 f f f f f 1.17549421e-38 最小正次正规数 0 0 0 0 0 0 0 1 1.40129846e-45 +∞ 7 f 8 0 0 0 0 0 无穷 -∞ F f 8 0 0 0 0 0 负无穷 非数 7 f c 0 0 0 0 0 NaN
附录A表3:单精度存储格式位模式及其 IEEE 值