《Modbus-RTU规约详解》由会员分享,可在线阅读,更多相关《Modbus-RTU规约详解(42页珍藏版)》请在金锄头文库上搜索。
1、word第一章Modbus协议介绍Modbus协议介绍两种串行传输模式信息帧错误检查方法Modbus协议介绍Modbus可编程控制器之间可相互通讯,也可与不同网络上的其他设备进展通讯,支撑网络有Modicon的Modbus和Modbus+工业网络。网络信息存取可由控制器内置的端口,网络适配器以与Modicon提供的模块选件和网关等设备实现,对OEM(机械设备制造商)来说,Modicon可为合作伙伴提供现有的程序,可使Modbus+网络严密地集成到他们的产品设计中去。Modicon的各种控制器使用的公共语言被称为 Modbus协议,该协议定义了控制器能识别和使用的信息结构。当在Modbus网络上
2、进展通讯时,协议能使每一台控制器知道它本身的设备地址,并识别对它寻址的数据,决定应起作用的类型,取出包含在信息中的数据和资料等,控制器也可组织回答信息,并使用Modbus协议将此信息传送出去。在其他网络上使用时,数据包和数据帧中也包含着Modbus协议。如,Modbus+或MAP网络控制器中有相应的应用程序库和驱动程序,实现嵌入式Modbus协议信息与此网络中用子节点设备间通讯的特殊信息帧的数据转换。该转换也可扩展,处理节点地址,路由,和每一个特殊网络的错误检查方法。如包含在Modbus协议中的设备地址,在信息发送前就转换成节点地址,错误检查区也用于数据包,与每个网络的协议一致,最后一点是需用
3、Modbus协议,写入嵌入的信息,定义应处理的动作。图1说明了采用不同通讯技术的多层网络中设备的互连方法。在信息交换中,嵌入到每个网络数据包中的Modbus协议,提供了设备间能够交换数据的公共的语言。984A/B 和S985AT/HC-984 和HOST/MMHIAT/HC-984 和HOST/MMHI(去MB+)S980(去MAP)编程器编程器4个Modus设备或网络图1:Modbus协议应用示意图* MB+为 ModbusModbus上的数据传输Modicon控制器上的标准Modbus端口是使用一个RS-232兼容的串行接口,定义了连接器,接线电缆,信号等级,传输波特率,和奇偶校验,控制器
4、可直接或通过调制解调器(以后简称Modems)接入总线(网络)。控制器通讯使用主从技术,即主机能起动数据传输,称查询。而其它设备(从机)应返回对查询作出的响应,或处理查询所要求的动作。典应的主机设备应包括主处理器和编程器。典应的从机包括可编程控制器。主机可对各从机寻址,发出广播信息,从机返回信息作为对查询的响应。从机对于主机的广播查询,无响应返回Modbus协议报据设备地址,请求功能代码,发送数据,错误校验码,建立了主机查询格式,从机的响应信息也用Modbus协议组织,它包括确认动作的代码,返回数据和错误校验码。假如在接收信息时出现一个错误或从机不能执行要求的动作时,从机会组织一个错误信息。并
5、向主机发送作为响应。在其它总线上传输数据除标准的Modbus功能外,有些Modcon控制器内置端口或总线适配器,在Modbus+总线上实现通讯或使用网络适配器,在MAP网络上通讯。在这些总线上,控制器间采用对等的技术进展通讯,即任意一个控制器可向其它控制器启动数据传送。因此,一台控制器既可作为从机,也可作为主机,常提供多重的内部通道,允许并列处理主机和从机传输数据在信息级,尽管网络通讯方法是对等的,但Modbus协议仍采用主从方式,假如一台控制器作为主机设备发送一个信息,如此可从一台从机设备返回一个响应,类似,当一台控制器承受信息时,它就组织一个从机设备的响应信息,并返回至原发送信息的控制器。
6、8 位数据字节错误校验功能代码8 位数据字节设备地址功能代码设备地址主机查询信息查询响应周期:错误校验从机响应信息图2:主从查询响应周期查询:查询中的功能代码为被寻址的从机设备应执行的动作类型。数据字节中包含从机须执行功能的各附加信息,如功能代码03将查询从机,并读保持存放器。并用存放器的内容作响应。该数据区必须含有告之从机读取存放器的起始地址与数量,错误校验区的一些信息,为从机提供一种校验方法,以保证信息内容的完整性。响应:从机正常响应时,响应功能码是查询功能码的应答,数据字节包含从机采集的数据,如存放器值或状态。如出现错误,如此修改功能码,指明为错误响应。并在数据字节中含有一个代码,来说明
7、错误,错误检查区允许主机确认有效的信息内容。两种串行传输模式控制器可使用ASCII或RTU通讯模式,在标准Modbus上通讯。在配置每台控制器时,用户须选择通讯模式以与串行口的通讯参数。(波特率,奇偶校验等),在Modbus总线上的所有设备应具有一样的通讯模式和串行通讯参数。选择ASCII或RTU模式用于标准的Modbus总线。它定义了总线上串行传输信息区的“位的含义,决定信息打包与解码方法。如在MAP和Modbus+总线上时,Modbus信息以帧的方式出现,并与串行传输无关,如请求读保持存放器可以在Modbus+上的两个控制器之间处理,而与使用的控制器的Modbus端口无关。ASCII 模式
8、当控制器以ASCII模式在Modbus总线上进展通讯时,一个信息中的每8位字节作为2个ASCII字符传输的,这种模式的主要优点是允许字符之间的时间间隔长达IS,也不会出现错误。ASCII码每一个字节的格式:编码系统: 16进制,ASCII字符0-9,A-F 1个16进制 数据位: 1起始位7位数据,低位先送奇/偶校验时1位;无奇偶校验时0位LRC1位带校验1停止位;无校验2止位错误校验区: 纵向冗余校验RTU模式控制器以RTU模式在Modbus总线上进展通讯时,信息中的每8位字节分成2个4位16进制的字符,该模式的主要优点是在一样波特率下其传输的字符的密度高于ASCII模式,每个信息必须连续传
9、输。RTU模式中每个字节的格式: 编码系统:8位二进制,十六进制0-9,A-F数据位:1起始位8位数据,低位先送奇/偶校验时1位;无奇偶校验时0位停止位1位(带校验);停止位2位(无校验)带校验时1位停止位;无校验时2位停止位错误校验区:循环冗余校验(CRC)Modbus信息帧何论是ASCII模式还是RTU模式,Modbus信息以帧的方式传输,每帧有确定的起始点和完毕点,使接收设备在信息的起点开始读地址,并确定要寻址的设备 (广播时对全部设备),以与信息传输的完毕时间。可检测局部信息,错误可作为一种结果设定。对MAP或Modbus+协议可对信息帧的起始和完毕点标记进展处理,也可管理发送至目的地
10、的信息,此时,信息传输中Modbus数据帧内的目的地址已无关紧要,因为Modbus+地址已由发送者或它的网络适配器把它转换成网络节点地址和路由。ASCII帧在ASCII模式中,以(:)号(ASCII3AH)表示信息开始,以回撤一换行键(CRLF) (ASCII OD和OAH)表示信息完毕。对其它的区,允许发送的字符为16进制字符0-9,A-F。网络中设备连续检测并接收一个冒号(:)时,每台设备对地址区解码,找出要寻址的设备。字符之间的最大间隔为1S,假如大于1S,如此接收设备认为出现了一个错误。典型的信息帧见下表开始地址功能数据纵向冗余检查完毕1字符:2字符2字符n字符2字符2字符图3ASCI
11、I信息帧例外:对于584和984A/B/X控制器,一个ASCII信息可在LRC区后正常终止,而不需发送CRLF字符,此时出现IS的时间间隔,控制器也将认为是正常中断。RTU帧RTU模式中,信息开始至少需要有3.5个字符的静止时间,依据使用的波特率,很容易计算这个静止的时间(如如下图中的T1-T2-T3-T4)。接着,第一个区的数据为设备地址。各个区允许发送的字符均为16进制的0-9,A-F。网络上的设备连续监测网络上的信息,包括静止时间。当接收第一个地址数据时,每台设备立即对它解码,以决定是否是自己的地址。发送完最后一个字符号后,也有一个3.5个字符的静止时间,然后才能发送一个新的信息。整个信
12、息必须连续发送。如果在发送帧信息期间,出现大于1.5个字符的静止时间时,如此接收设备刷新不完整的信息,并假设下一个地址数据。同样一个信息后,立即发送的一个新信息,假如无3。5个字符的静止时间这将会产生一个错误。是因为合并信息的CRC校验码无效而产生的错误。开始地址功能数据校验终止T1-T2-T3-T48 B位S8 B位SN8 B位S16B位 ST1-T2-T3T-4图4RTU信息帧Modbus信息帧(Continued)地址设置信息地址包括2个字符(ASCII)或8位(RTU),有效的从机设备地址X围0-247,(十进制),各从机设备的寻址X围为1-247。主机把从机地址放入信息帧的地址区,并
13、向从机寻址。从机响应时,把自己的地址放入响应信息的地址区,让主机识别已作出响应的从机地址。地址0为于广播地址,所有从机均能识别。当Modbus协议用于高级网络时,如此不允许广播或其它方式替代。如Modbus+使用令牌循环,自动更新共享的数据库。功能码设置信息帧功能代码包括字符(ASCII)或8位(RTU)。有效码X围1-225(十进制),其中有些代码适用全部型号的Modicon控制器,而有些代码仅适用于某些型号的控制器。还有一些代码留作将来使用,有关功能代替码的设置将在第2章说明。当主机向从句发送信息时,功能代码向从机说明应执行的动作。如读一组离散式线圈或输入信号的ON/OFF状态,读一组存放
14、器的数据,读从机的诊断状态,写线圈或存放器,允许下截、记录、确认从机内的程序等。当从机响应主机时,功能代码可说明从机正常响应或出现错误(即不正常响应),正常响应时,从句简单返回原始功能代码;不正常响应时,从机返回与原始代码相等效的一个码,并把最高有效位设定为“1。如,主机要求从机读一组保持存放器时,如此发送信息的功能码为:0000 0011 (十六进制03)假如从机正确接收请求的动作信息后,如此返回一样的代码值作为正常响应。发现错时,如此返回一个不正常响信息:1000 0011(十六进制83)从机对功能代码作为了修改,此外,还把一个特殊码放入响应信息的数据区中,告诉主机出现的错误类型和不正常响
15、应的原因。主机设备的应用程序负责处理不正常响应,典型处理过程是主机把对信息的测试和诊断送给从机,并通知操作者。数据区的内容数据区有2个16进制的数据位,数据X围为00-FF(16进制),根据网络串行传输的方式,数据区可由一对ASCII字符组成或由一个RTU 字符组成。主机向从机设备发送的信息数据中包含了从机执行主机功能代码中规定的请求动作,如离散量存放器地址,处理对象的数目,以与实际的数据字节数等。举例说明,假如主机请求从机读一组存放器功能代码03,该数据规定了存放器的起始地址,以与存放器的数量。又如,主机要在一从机中写一组存放器,如此功能代码为10H。该数据区规定了要写入存放区的起始地址,存放器的数量,数据的字节数,以与要写入到存放器的数据。假如无错误出现,从机向主机的响应信息中包含了请求数据,假如有错误出现,如此数据中有一个不正常代码,使主机能判断并作出下一步的动作。数据区的长度可为“零以表示某类信息,如,主机要求-从机响应它的通讯事件记录功能代码OBH。此时,从机不需要其他附加的信息