modbus串行通信协议
modbus协议是一个公开的、被广泛应用的串行通信协议,最初由modicon公司为其可编程控制器和工业自动化系统而制定的论文联盟http://,使用于控制设备间传输数字和模拟的i/o及寄存器数据时使用。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。它描述了一个控制器请求访问其它设备的过程,如何回应来自其它设备的请求,以及怎样侦测错误并记录。它制定了消息域格局和内容的公共格式。
当在一个modbus网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用modbus协议发出。在其它网络上,包含了modbus协议的消息转换为在此网络上使用的帧或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
1.modbus协议
1.1 modbus协议族
modbus协议中有ascii、rtu、tcp等,其中前二者规定了消息、数据的结构、命令和应答的方式,数据通信采用master/slave(主从)方式,主端发出数据请求消息,从端接收到正确消息后就可以发送数据到主端以响应请求;主端也可以直接发送消息修改从端的数据,实现双向读写。此外,在校验上,ascii模式采用lrc校验,rtu模式采用16位crc校验。而tcp模式除了有奇偶校验外,没有额外规定校验,其原因就是tcp协议是一个面向连接的可靠协议。WwW.133229.coM
1.2 modbus网络上的数据传输
modicon控制器上的标准modbus端口是使用一个rs232兼容的串行接口,定义了连接器,接线电缆,信号等级,传输波特率,和奇偶校验,控制器可直接或通过调制解调器接入总线(网络)。控制器通讯使用主从技术而其它设备(从机)应返回对查询作出的响应,或处理查询所要求的动作。典型的主机设备应包括主处理器和编程器,典型的从机包括可编程控制器。
主机可对各从机寻址,发出广播信息,从机返回信息作为对查询的响应。从机对于主机的广播查询,无响应返回modbus协议报据设备地址,请求功能代码,发送数据,错误校验码,建立了主机查询格式,从机的响应信息也用modbus协议组织,它包括确认动作的代码,返回数据和错误校验码。若在接收信息时出现一个错误或从机不能执行要求的动作时,从机会组织一个错误信息。并向主机发送作为响应。
1.3 在其它总线上传输数据
除标准的modbus功能外,有些modicon控制器内置端口或总线适配器,在modbus+总线上实现通讯或使用网络适配器,在map网络上通讯。
在这些总线上,控制器间采用对等的技术进行通讯,即任意一个控制器可向其它控制器启动数据传送。因此,一台控制器既可作为从机,也可作为主机,常提供多重的内部通道,允许并列处理主机和从机传输数据 在信息级,尽管网络通讯方法是对等的,但modbus协议仍采用主从方式,若一台控制器作为主机设备发送一个信息,则可从一台从机设备返回一个响应,类似,当一台控制器接受信息时,它就组织一个从机设备的响应信息,并返回至原发送信息的控制器。
1.4 查询响应周期
查询:查询中的功能代码为被寻址的从机设备应执行的动作类型。数据字节中包含从机须执行功能的各附加信息,如功能代码03将查询从机,并读保持寄存器。并用寄存器的内容作响应。该数据区必须含有告之从机读取寄存器的起始地址及数量,错误校验区的一些信息,为从机提供一种校验方法,以保证信息内容的完整性。
响应:从机正常响应时,响应功能码是查询功能码的应答,数据字节包含从机采集的数据,如寄存器值或状态。如出现错误,则修改功能码,指明为错误响应。并在数据字节中含有一个代码,来说明错误,错误检查区允许主机确认有效的信息内容。
1.5 modbus协议帧结构
modbus协议帧通常也被称作modbus信息包裹,一个协议帧由从前到后有以下四个部分组成:地址域:发送信息的目的地址,即主站请求时的从站地址或从站响应时的主站地址。从站地址域长度为一个字节,其中
包括信息包裹传送的从站地址。从站地址范围为“1”至“255”。 功能码域:信息包裹中功能域长度为一个字节,用以通知从站应当执行何种操作。数据域:域长度不定,依据其具体动能而定。校验域:两种不同模式下,计算而得的校验码。