ZNJC2 RS485通讯 modbus 协议
- 格式:doc
- 大小:201.50 KB
- 文档页数:6
在工业控制、电力通讯、智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换。
最初采用的方式是RS232接口,由于工业现场比较复杂,各种电气设备会在环境中产生比较多的电磁干扰,会导致信号传输错误。
除此之外,RS232接口只能实现点对点通信,不具备联网功能,最大传输距离也只能达到几十米,不能满足远距离通信要求。
而RS485则解决了这些问题,数据信号采用差分传输方式,可以有效的解决共模干扰问题,最大距离可以到1200米,并且允许多个收发设备接到同一条总线上。
随着工业应用通信越来越多,1979年施耐德电气制定了一个用于工业现场的总线协议Modbus协议,现在工业中使用RS485通信场合很多都采用Modbus协议,本节课我们要讲解一下RS485通信和Modbus协议。
单单使用一块KST-51开发板是不能够进行RS485实验的,应很多同学的要求,把这节课作为扩展课程讲一下,如果要做本课相关实验,需要自行购买USB转485通信模块。
RS485通信实际上在RS485之前RS232就已经诞生,但是RS232有几处不足的地方:1、接口的信号电平值较高,达到十几V,容易损坏接口电路的芯片,而且和TTL电平不兼容,因此和单片机电路接起来的话必须加转换电路。
2、传输速率有局限,不可以过高,一般到几十Kb/s就到极限了。
3、接口使用信号线和GND与其他设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。
4、传输距离有限,最多只能通信几十米。
5、通信的时候只能两点之间进行通信,不能够实现多机联网通信。
针对RS232接口的不足,就不断出现了一些新的接口标准,RS485就是其中之一,他具备以下的特点:1、我们在讲A/D的时候,讲过差分信号输入的概念,同时也介绍了差分输入的好处,最大的优势是可以抑制共模干扰。
尤其工业现场的环境比较复杂,干扰比较多,所以通信如果采用的是差分方式,就可以有效的抑制共模干扰。
rs485通信协议rs485通信协议RS485主从式多机通讯协议一、数据传输协议此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。
它描述了一控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。
它制定了消息域格局和内容的公共格式。
此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。
如果需要回应,控制器将生成反馈信息按本协议发出。
1、数据在网络上转输控制器通信使用主—从技术,即仅一设备(主设备)能初始化传输(查询)。
其它设备(从设备)根据主设备查询提供的数据作出相应反应。
主设备可单独和从设备通信,也能以广播方式和所有从设备通信。
如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则从设备不作任何回应。
协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。
从设备回应消息也由协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。
如果在消息接收过程中发生一错误(无相应的功能码),或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。
2、在对等类型网络上转输在对等网络上,控制器使用对等技术通信,故任何控制都能初始和其它控制器的通信。
这样在单独的通信过程中,控制器既可作为主设备也可作为从设备。
在消息位,本协议仍提供了主—从原则,尽管网络通信方法是“对等”。
如果一控制器发送一消息,它只是作为主设备,并期望从设备得到回应。
同样,当控制器接收到一消息,它将建立一从设备回应格式并返回给发送的控制器。
3、查询—回应周期(1)查询查询消息中的功能代码告之被选中的从设备要执行何种功能。
数据段包含了从设备要执行功能的任何附加信息。
错误检测域为从设备提供了一种验证消息内容是否正确的方法。
(2)回应如果从设备产生一正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。
RS485通信协议协议名称:RS485通信协议一、引言RS485通信协议是一种用于在多个设备之间进行数据传输和通信的标准协议。
本协议旨在规范RS485通信的数据格式、传输方式和通信协议,以确保设备之间的可靠通信和数据交换。
二、范围本协议适用于使用RS485通信接口的各种设备,包括但不限于工业自动化设备、仪器仪表、数据采集设备等。
三、术语定义1. RS485通信:使用差分信号进行数据传输的半双工通信方式。
2. 主设备:发起通信请求的设备。
3. 从设备:响应通信请求的设备。
4. 数据帧:包含数据信息的通信单元。
5. 起始位:数据帧的起始标识位。
6. 终止位:数据帧的结束标识位。
7. 奇偶校验:用于检测数据传输中的错误的校验机制。
8. 波特率:数据传输速率,以每秒传输的比特数表示。
四、通信协议1. 物理层RS485通信使用差分信号进行数据传输,其中A线和B线分别代表正向和反向信号线。
通信设备应符合RS485标准的物理层要求,包括信号电平、线路阻抗等。
2. 数据帧格式RS485通信使用数据帧进行数据传输。
数据帧格式如下:起始位 | 数据位 | 奇偶校验位 | 停止位起始位:一个字节的起始标识位,用于标识数据帧的开始。
数据位:包含要传输的数据信息,可以是一个或多个字节。
奇偶校验位:用于检测数据传输中的错误,可以选择奇校验、偶校验或无校验。
停止位:一个字节的停止标识位,用于标识数据帧的结束。
3. 通信流程RS485通信的通信流程如下:主设备发送请求帧 -> 从设备接收请求帧并解析 -> 从设备执行请求操作 -> 从设备发送响应帧 -> 主设备接收响应帧并解析4. 数据传输RS485通信使用半双工通信方式,即同一时间只能有一方发送数据。
通信设备应在发送数据前先检测总线是否空闲,以避免冲突。
5. 错误处理RS485通信中可能发生的错误包括数据传输错误、通信超时等。
通信设备应具备错误处理机制,能够检测和处理这些错误,例如重新发送数据、重置通信连接等。
使用说明书- 1 -_ MODBUS通讯协议说明1. 通讯相关的参数2.通讯说明2.1 数据格式说明控制器采用RS-485总线,协议符合ModBus规约,数据格式有标准MODBUS-RTU、非标准MODBUS-RTU(16进制)和ASC(ASCⅡ码)3种格式。
数据传输均采用8位数据位、1位停止位、无奇偶校验位。
波特率可设为2400、4800、9600和19200 bit/s。
通讯传送分为独立的信息头,和发送的编码数据。
以下的通讯传送方式定义与RTU通讯规约相兼容:2.2 非标准MODBUS-RTU(16进制)数据格式详细说明下面以RTU(16进制)数据格式进行详细说明,ASCⅡ码数据格式只是把16进制代码转换成ASCⅡ码字符。
地址码:这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。
并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。
主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。
功能码:通讯传送的第二个字节。
ModBus通讯规约定义功能号为01H到7FH。
本控制器利用其中的一部分功能码。
作为主机请求发送,通过功能码告诉从机执行什么动作。
作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。
如果从机发送的功能码的最高位 (比如功能码大于7FH),则表明从机没有响应操作或发送出错。
数据区:数据区是根据不同的功能码而不同。
CRC码:二字节的错误检测码。
当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。
返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。
如果出错就不发送任何信息。
2.2.2 信息帧格式:(1)地址码:地址码是信息帧的第一字节(8位),从1到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
RS485通信协议(ModBus_RTU方式)1、波特率:9600BPS2、通讯方式:数据采用8位,无奇偶校验位,启始、停止各1位(“9600, n, 8, 1”)。
3、通信格式(帧结构):每帧10位含义如下:5、上位机向下位机发送的数据格式:①上位机直接读取下位机数据(读取温控器测量温度、温控状态),功能码采用03h。
上位机的请求必须具有下列格式:②上位机强制下位机输出(温控器风机启动或停止),功能码采用05h。
6⑴、上位机直接读取下位机数据(读取绕组温度、温控状态),功能码采用03h。
下位机的应答必须具有下列格式:因此,传输的温度值需要减去40.0才为实际温度值。
②如果温度(整数部分)为FFH(255)则表示温度值太低(<-40.0) 或传感器短路如果温度(整数部分)为FEH(254)则表示温度值太高(>200.0) 或传感器开路。
7、通讯时序:上位机通讯时向温控器(下位机)发送请求命令,温控器接受请求后经验证从机地址、功能码、CRC校验等正确,即向上位机回传数据,上位机收到数据后经验证从机地址、功能码、CRC校验等正确则判断该帧数据有效,否则舍弃该帧数据。
注:上位机与下位机通讯间隔时间尽量加大(默认为10秒)。
8、CRC码的计算方法①、预置1个16位的寄存器为十六进制FFFF(即全为1);称此寄存器为CRC寄存器;②、把第一个8位二进制数据(既通讯信息帧的第一个字节)与16位的CRC寄存器的低8位相异或,把结果放于CRC寄存器;③、把CRC寄存器的内容右移一位(朝低位)用0填补最高位,并检查最低位;④、如果最低位为0:重复第3步(再次右移一位);如果最低位为1: CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或;⑤、重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;⑥、重复步骤2到步骤5,进行通讯信息帧下一个字节的处理;⑦、最后得到的CRC寄存器内容即为:CRC码。
RS485通信协议
RS485通信协议使用差分信号进行通信,即发送端通过差分驱动方式将1和0分别表示为正负信号,接收端通过判断两个线之间的电压差来确定数值。
这种差分信号的方式使得RS485具有较强的抗干扰能力,可以在较长距离上进行可靠的通信。
在RS485通信协议中,数据被组织为一个个数据帧,每个数据帧包括起始位、数据位、校验位和结束位。
起始位用于同步接收端的时钟,数据位用于传输实际的数据,校验位用于检测数据传输过程中的错误,结束位用于标记数据帧的结束。
除了数据帧的格式,RS485通信协议还定义了通信规则。
例如,通信的发起方先发送起始位,然后发送数据位,接收方在接收到数据位后进行校验并给出响应。
在多个设备同时通信的情况下,RS485通信协议通过设备的物理地址来区别接收方。
RS485通信协议还支持多种不同的工作模式,例如点对点通信、多点通信和主从通信。
点对点通信是最简单的模式,一对发送端和接收端直接进行通信。
多点通信允许多个设备共享同一总线,但同时只有一个设备能够发送数据。
主从通信中,主设备负责发起通信并提供时钟同步信号,从设备负责响应主设备的请求。
总之,RS485通信协议是一种常用的串行通信协议,它提供了可靠的远距离通信能力和较强的抗干扰能力。
通过定义数据帧格式和通信规则,RS485通信协议可以实现多个设备之间的可靠数据传输。
在工业自动化等领域,RS485通信协议被广泛应用,提供了稳定可靠的通信解决方案。
rs485通信协议RS485通信协议。
RS485通信协议是一种常用的工业控制领域通信协议,它具有高抗干扰能力、远距离传输和多设备共享同一总线等特点,因此在工业自动化控制系统中得到广泛应用。
本文将对RS485通信协议的基本原理、特点、应用范围和实际应用进行介绍。
一、基本原理。
RS485通信协议是一种基于差分信号传输的协议,它采用两根信号线进行数据传输,分别为A线和B线。
在数据传输时,A线和B线上的电压分别为正相位和负相位,通过对这两个信号进行差分传输,可以有效地抵消外部干扰,从而保证数据传输的稳定性和可靠性。
二、特点。
1. 高抗干扰能力,由于RS485采用差分信号传输,可以有效地抵消来自于外部的干扰信号,因此具有较高的抗干扰能力,适用于工业环境中复杂电磁干扰的场合。
2. 远距离传输,RS485总线传输距离可达1200米,因此适用于大范围的工业控制系统,可以满足工业现场对于远距离数据传输的需求。
3. 多设备共享同一总线,RS485总线支持多个设备共享同一总线进行通信,这样可以减少系统中的通信线路,降低系统成本。
三、应用范围。
RS485通信协议广泛应用于各种工业控制系统中,包括工业自动化控制、楼宇自动化、智能电网、智能交通等领域。
在这些领域中,RS485通信协议可以满足远距离、高抗干扰和多设备共享总线的通信需求,为工业控制系统的稳定运行提供了可靠的通信支持。
四、实际应用。
以工业自动化控制系统为例,RS485通信协议通常用于PLC(可编程逻辑控制器)和各种传感器、执行器之间的数据通信。
PLC作为控制中心,通过RS485总线与各个设备进行数据交换,实现对工业生产过程的监控和控制。
此外,RS485通信协议也常用于工业现场的数据采集和监测系统中,通过远距离传输数据,实现对工业过程的实时监测和管理。
总之,RS485通信协议作为一种稳定可靠的工业控制通信协议,具有高抗干扰能力、远距离传输和多设备共享同一总线的特点,在工业自动化控制系统中得到了广泛的应用。
MODBUS协议(功能码及报文解析)-485功能码哎呀,这可是个大家伙啊!今天我们就来聊聊MODBUS协议里的485功能码。
说到这个,我可是费了好大劲才搞明白的。
咱们得知道什么是485功能码。
简单来说,它就是一种通信协议,用来让设备之间互相传输数据。
那为什么要用到485功能码呢?因为它可以实现串行通信,而且传输距离远,抗干扰能力强。
很多设备都会选择使用485功能码来进行通信。
485功能码有哪些种类呢?其实,根据功能的不同,它可以分为很多种。
比如说,我们常见的有读线圈、写单个线圈、读离散输入线圈、写单个线圈和读/写多个线圈等。
这些功能码都有各自的作用,比如读线圈就是用来读取设备的输入状态,而写单个线圈则是用来设置设备的输出状态。
485功能码就像是一个神奇的钥匙,可以打开设备之间的沟通之门。
我们来看看如何解析485功能码。
这可不是一件容易的事情,因为每个功能码都对应着一种特定的操作。
我们需要仔细研究每个功能码的含义,才能正确地解析它们。
不过,别担心,我已经给大家整理好了一份详细的解析表,只要按照表格上的指示进行操作,就能轻松地解析出485功能码了。
光知道485功能码还不够,我们还得学会如何使用它们。
这可不是一件简单的事,因为不同的功能码需要不同的参数来支持。
在使用485功能码之前,我们必须要了解清楚每个功能码的具体用法。
只有这样,我们才能确保设备之间的通信是正常进行的。
现在我们已经知道了485功能码的基本知识。
接下来的问题就是:如何将这些知识应用到实际工作中呢?这个问题可不好回答啊!因为每个人的工作环境和需求都是不一样的。
我们需要根据自己的实际情况来选择合适的485功能码。
只有这样,我们才能发挥出485功能码的最大作用。
485功能码虽然看起来挺复杂的,但只要我们用心去学,一定能够掌握它。
而且,随着科技的发展,越来越多的设备开始采用485功能码进行通信。
学会485功能码对我们来说可是非常重要的哦!希望这篇文章能帮助大家更好地理解485功能码,让你们的工作更加顺利!。
知识创造未来
rs485通讯协议
RS485通信协议是一种用于串行通信的标准协议,适用于在工业环境中进行长距离数据传输的应用。
RS485协议使用差分信号传输数据,可以实现在多个节点之间进行双向通信。
RS485通信协议定义了数据传输的电气特性、物理连接和通信格式。
电气特性指定了信号线的电压范围和信号传输的速率。
物理连接采用了多个节点共享同一条通信线路的方式,通信线路上可以连接多个设备。
通信格式定义了数据帧的结构,包括起始符、数据位、校验位等。
RS485通信协议可以支持不同的数据传输模式,包括点对点模式、多点传输模式和主从模式。
在点对点模式中,只有两个节点进行通信。
在多点传输模式中,可以有多个节点同时发送和接收数据。
在主从模式中,一个主设备可以控制多个从设备进行通信。
RS485通信协议具有高噪声抑制能力和抗干扰性能,适用于在工业环境中进行稳定可靠的数据传输。
它广泛应用于自动化控制系统、工业仪表、智能楼宇系统等领域。
1。
仪表与上位机ModbusRTU通讯协议1、接口规格为与PC机或PLC编控仪联机以集中监测或控制仪表,仪表提供RS232、RS485两种数字通讯接口,光电隔离,其中采用RS232通讯接口时上位机只能接一台仪表,三线连接,传输距离约15米;采用RS485通讯接口时上位机需配一只RS232-485的转换器,最多能接近100台仪表,二线连接,传输距离约一千米。
2、通讯协议(适合本厂所有1_16通道仪表)(1)通讯波特率为1200、2400、4800、9600四档可调,数据格式为1个起始位、8个数据位,1个停止位,无校验位。
(2)上位机读一个参数仪表编号功能代码(03) 参数首地址读取的字数(1~16)CRC161byte 1byte 2byte 2byte 2byte(3)仪表返回:仪表编号功能代码(03) 读取的字节数参数值1 ……….1byte 1byte 1byte 2byte 2byte…..参数值16 CRC162byte 2byte(4)上位机写一个参数(2字节)及仪表返回(2字节)(帧格式相同):仪表编号功能代码(6) 参数首地址参数值CRC161byte 1byte 2byte 2byte 2byte上表中CRC16校验码按标准ModbusRTU通讯协议计算,低位在前,高位在后。
(5)参数代码及地址见仪表说明书通道显示值地址:(单通道仪表地址为第1通道:1001H)测量值为32767(7FFFH)表示HH(超上量程),为32512(7F00H)表示LL(超下量程)1通道:1001H 2通道:1002H 3通道: 1003H 4通道:1004H5通道:1005H 6通道:1006H 7通道:1007H 8通道:1008H9通道:1009H 10通道:100AH 11通道:100BH 12通道:100CH13通道:100DH 14通道:100EH 15通道: 100FH 16通道:1010H(6)仪表主控输出状态地址:1通道:1101H 2通道:1102H 3通道: 1103H 4通道:1104H5通道:1105H 6通道:1106H 7通道:1107H 8通道:1108H9通道:1109H 10通道:110AH 11通道:110BH 12通道:110CH13通道:110DH 14通道:110EH 15通道: 110FH 16通道:1110H(7)仪表报警输出状态地址:1200H 1201HD15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 AH16 AH15 AH14 AH13 AH12 AH11 AH10 AH9 AH8 AH7 AH6 AH5 AH4 AH3 AH2 AH1 AL16 AL15 AL14 AL13 AL12 AL11 AL10 AL9 AL8 AL7 AL6 AL5 AL4 AL3 AL2 AL13. 1).上位机对仪表写数据的程序部分应按仪表的规格加入参数限幅功能,以防超范围的数据写入仪表,使其不能正常工作,各参数代码及范围见《仪表说明书》2).上位机发读或写指令的间隔时间应大于或等于0.2秒,太短仪表可能来不及应答3).仪表未发送小数点信息,编上位机程序时应根据需要设置4).测量值为32767(7FFFH)表示HH(超上量程),为32512(7F00H)表示LL(超下量程)5). 除了CRC校验字节低位在前外,其它所有双字节均高位在前,。
_MODBUS 通讯协议说明1. 通讯相关的参数2.通讯说明2.1 数据格式说明控制器采用RS-485总线,协议符合ModBus 规约,数据格式有标准MODBUS-RTU 、 非标准MODBUS-RTU(16进制)和ASC(ASC Ⅱ码)3种格式。
数据传输均采用8位数据位、1位停止位、无奇偶校验位。
波特率可设为2400、4800、9600和19200 bit/s 。
通讯传送分为独立的信息头,和发送的编码数据。
以下的通讯传送方式定义与RTU通讯规约相兼容:2.2 非标准MODBUS-RTU(16进制)数据格式详细说明下面以RTU(16进制)数据格式进行详细说明,ASC Ⅱ码数据格式只是把16进制代码转换成ASC Ⅱ码字符。
地址码:这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。
并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。
主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。
功能码:通讯传送的第二个字节。
ModBus 通讯规约定义功能号为01H 到7FH 。
本控制器利用其中的一部分功能码。
作为主机请求发送,通过功能码告诉从机执行什么动作。
作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。
如果从机发送的功能码的最高位 (比如功能码大于7FH),则表明从机没有响应操作或发送出错。
数据区:数据区是根据不同的功能码而不同。
CRC码:二字节的错误检测码。
当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。
返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。
如果出错就不发送任何信息。
2.2.2 信息帧格式:(1)地址码:地址码是信息帧的第一字节(8位),从1到255。
这个字节表明由用户设置地址的从机将接收由主机发送来的信息。
每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。
当从机回送信息时,相当的地址码表明该信息来自于何处。
(2)功能码:主机发送的功能码告诉从机执行什么任务。
表2列出的功能码都有具体的含义及操作。
(3数据区包含需要从机执行什么动作或由从机采集的返送信息。
这些信息可以是数值、参考地址等等。
例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。
对于不同的从机,地址和数据信息都不相同。
(4)错误校验码:主机或从机可用校验码进行判别接收信息是否出错。
有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。
这样增加了系统的安全和效率。
错误校验采用CRC-16校验方法。
注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。
2.2.3 错误校验参与冗余循环码(CRC)计算的包括:地址码、功能码、数据区的字节。
冗余循环码包含2个字节,即16位二进制。
CRC码由发送设备计算,放置于发送信息的尾部。
接收信息的设备再重新计算接收到信息的 CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。
CRC码的计算方法是,先预置16位寄存器全为1。
再逐步把每8位数据信息进行处理。
在进行CRC码计算时只用8位数据位,起始位及停止位,如有奇偶校验位的话也包括奇偶校验位,都不参与CRC码计算。
在计算CRC码时,8位数据与寄存器的数据相异或,得到的结果向低位移一字节,用0填补最高位。
再检查最低位,如果最低位为1,把寄存器的内容与预置数相异或,如果最低位为0,不进行异或运算。
这个过程一直重复8次。
第8次移位后,下一个8位再与现在寄存器的内容相异或,这个过程与以上一样重复8次。
当所有的数据信息处理完后,最后寄存器的内容即为CRC码值。
计算CRC码的步骤为:(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码。
2.2.4 功能码03,读取和返回值:利用通讯命令,可以进行读取计数器内部保持寄存器的数值。
一次可读取一个寄存器。
从机响应的命令格式是从机地址、功能码、数据区及CRC码。
数据区的数据都是每二个字节高位在前,CRC码低位在前高位在后。
信息帧格式举例:从机地址为01,寄存器地址0001H表示当前计数值地址。
此例中假设当前计数值为:000001主机发送字节数举例从机地址 1 01 发送至从机01功能码 1 03 读取寄存器寄存器地址代码 2 00 起始地址为 000101CRC效验码 2 30 由主机计算得到的CRC码5C从机响应字节数举例从机地址 1 01 来自从机0功能码 1 03 读取寄存器寄存器地址代码 2 00 起始地址为 000101读出数据数量 1 04 long型数据长4byte当前计数值数据 4 00000001 当前计数值(0001)4byteCRC效验码 2 04 由从机计算得到的CRC码452.2.5 功能码06,设置寄存器:主机利用这条命令把数据保存到计数器的寄存器中。
计数器也用这个功能码向主机返送信息。
信息帧格式举例:假设计数器地址为01,寄存器地址0002的1个值。
在此例中,数据保存结束后,计数器中地址为0002寄存器的内容为64H。
主机发送字节数举例从机地址 1 01 发送至从机01功能码 1 06 单点保存寄存器地址代码 2 00 起始地址为 000202写入数据 04 00000064 保存的数据为64HCRC效验码 2 9F 由主机计算得到的CRC码EC从机响应字节数举例从机地址 1 01 来自从机01功能码 1 06 单点保存寄存器地址代码 2 00 起始地址为 000202操作结果 1 00 数据设置成功CRC效验码 2 18 由主机计算得到的CRC码282.2.6 数据错误返回值:如果主机发出的数据错误,则控制器向主机回送错误信息,功能码的最高位为1,即控制器返回给主机的功能码是在主机已送的功能码上加80H,如:功能码是03H,那么返回的是03H+80H=83H。
从机返回的错误码的格式如下:地址码:1字节功能码:1字节(最高位为1(8xH))错误码:1字节CRC码:1字节错误码有3种:分别为00H:表示CRC效验码错;01H:表示功能码未使用;02H:表示内部寄存器未使用;如返回: 01 83 00 41 30,表示CRC效验码出错。
2.3 ASCⅡ码数据格式详细说明ASCⅡ码数据格式基本与RTU(16进制)数据格式相同,只是把16进制代码转换成ASCⅡ码字符;格式: 02(STX起始符)+地址码+功能码+N个数据+和效验码+03(ETX终止符) 和效验码=地址码+功能码+N个数据(16进制累加和)2.3.1 代码对照2.3.2 代码举例读取的数据(假设从机地址:01)2.4标准MODBUS-RTU格式说明标准MODBUS-RTU数据格式与非标准MODBUS-RTU(16进制)数据格式相同;格式:通讯间隔+地址码+功能码+N个数据+CRC16效验码+通讯间隔标准MODBUS-RTU数据格式可直接与PLC或者文本显示器连接,读写数据,读写继电器状态;2.4.1 读写继电器状态(使用读线圈(01H)和设置线圈(05H)功能码)PLC发送:读继电器OUT2状态(01 01 00 01 00 01 AC 0A)仪表回复:继电器状态OFF(01 01 01 00 51 88)线圈状态ON(01 01 01 01 90 48)PLC发送:线圈设定继电器OUT2为OFF(01 05 00 01 00 00 9C 0A)仪表回复:设置成功(01 05 00 01 00 00 9C 0A)PLC发送:线圈设定继电器OUT2为ON(01 05 00 01 FF 00 DD FA)仪表回复:设置成功(01 05 00 01 FF 00 DD FA)2.4.2 读写寄存器数据(使用读寄存器(03H)和写寄存器(10H)功能码)仪表地址为:01;寄存器地址为:01;存放数值需要2个字(4个字节)。
则:PLC发给仪表的命令代码如下:01 03 00 01 00 02 95 CB假如此时数值为1000(0000 03E8H),数值是32位要2个字(4个字节)则:仪表发给PLC的命令代码如下:01 03 04 03 E8 00 00 7A 433.接线说明一条总线连接多个表的接线图乐清市信尔电子有限公司。