1、一种工业上广泛使用的一种工业上广泛使用的串行通信协议串行通信协议 Modbus协议是工业控制器网络协议中的一协议是工业控制器网络协议中的一种,此协议定义了一个控制器能认识的消息结构,种,此协议定义了一个控制器能认识的消息结构,描述了一个控制器请求访问其它设备、回应来自其描述了一个控制器请求访问其它设备、回应来自其它设备的请求以及侦测错误并记录的过程。通过此它设备的请求以及侦测错误并记录的过程。通过此协议,控制器相互之间、控制器经由网络(例如以协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一种太网)和其它设备之间可以通信。它已经成为一种通用工业标准,可以将不
2、同厂商生产的控制设备通用工业标准,可以将不同厂商生产的控制设备(例如:变频器,伺服驱动器,智能仪表,信号采(例如:变频器,伺服驱动器,智能仪表,信号采集卡等)连成工业网络,进行集中监控。集卡等)连成工业网络,进行集中监控。Modbus串行链路协议是一个主串行链路协议是一个主-从协从协议。在同一时间,只能将一个主站连接到总议。在同一时间,只能将一个主站连接到总线,将一个或多个从站(最大数量为线,将一个或多个从站(最大数量为247)连接到相同的串行总线。连接到相同的串行总线。Modbus 通讯总通讯总是由主站发起,当从站没有收到来自主站的是由主站发起,当从站没有收到来自主站的请求时,将不会发送数据
3、。主站同时只能启请求时,将不会发送数据。主站同时只能启动一个动一个Modbus事务处理,从站之间不能相事务处理,从站之间不能相互通信。互通信。主站用两种模式向从站发出主站用两种模式向从站发出Modbus请求,分别请求,分别为单播模式和广播模式。为单播模式和广播模式。单播模式工作方式:由主站寻址单个从站,从站接单播模式工作方式:由主站寻址单个从站,从站接收并处理完请求之后,向主站返回一个报文(一个收并处理完请求之后,向主站返回一个报文(一个应答)。在这种模式下,一个应答)。在这种模式下,一个Modbus 事务处理包事务处理包含含2 个报文:一个是主站的请求,另一个是从站的个报文:一个是主站的请求
4、,另一个是从站的应答。每个从站必须有唯一的地址(应答。每个从站必须有唯一的地址(1247),),这样才能区别于其它站而被独立地寻址。这样才能区别于其它站而被独立地寻址。广播模式工作方式:主站可以向所有的从站发送请广播模式工作方式:主站可以向所有的从站发送请求,对于主站广播的请求没有应答返回,广播请求求,对于主站广播的请求没有应答返回,广播请求必须是写命令,所有设备必须接收写功能的广播,必须是写命令,所有设备必须接收写功能的广播,地址地址0被保留用来识别广播通信。被保留用来识别广播通信。Modbus寻址空间由寻址空间由256个不同地址组成。地个不同地址组成。地址址0为广播地址,所有从站必须识别广
5、播地址。为广播地址,所有从站必须识别广播地址。Modbus主站没有特定地址,只有从站有一个地主站没有特定地址,只有从站有一个地址,在址,在Modbus串行总线上,这个地址必须是唯串行总线上,这个地址必须是唯一的。一的。表表1 Modbus寻址空间分配寻址空间分配01-247248-255广播地址从站某个地址保留地址(1)请求)请求 主设备查询消息中的功能代码告之被选中的从设备要执主设备查询消息中的功能代码告之被选中的从设备要执行何种功能。数据段包含了从设备要执行功能的任何附加信行何种功能。数据段包含了从设备要执行功能的任何附加信息。例如:功能代码息。例如:功能代码03是要求从设备读保持寄存器并
6、返回是要求从设备读保持寄存器并返回它们的内容。数据段必须包含要告之从设备的信息:从何寄它们的内容。数据段必须包含要告之从设备的信息:从何寄存器开始读及要读的寄存器数量。错误检测域为从设备提供存器开始读及要读的寄存器数量。错误检测域为从设备提供了一种验证消息内容是否正确的方法。了一种验证消息内容是否正确的方法。(2)响应)响应 如果从设备产生一个正常的回应,在回应消息中的功能如果从设备产生一个正常的回应,在回应消息中的功能代码是在查询消息中的功能代码的回应。数据段包括了从设代码是在查询消息中的功能代码的回应。数据段包括了从设备收集的数据(例如寄存器值或状态)。如果有错误发生,备收集的数据(例如寄
7、存器值或状态)。如果有错误发生,功能代码将被修改以用于指出回应消息是错误的,同时数据功能代码将被修改以用于指出回应消息是错误的,同时数据段包含了描述此错误信息的代码。错误检测域允许主设备确段包含了描述此错误信息的代码。错误检测域允许主设备确认消息内容是否可用。认消息内容是否可用。控制器能设置为两种传输模式(控制器能设置为两种传输模式(ASCII或或RTU)中的任何一种在)中的任何一种在标准的标准的Modbus网络中进行通信。用户可以选择想要的模式,包括网络中进行通信。用户可以选择想要的模式,包括波特率、校验方式等串口通信参数,在配置每个控制器的时候,一个波特率、校验方式等串口通信参数,在配置每
8、个控制器的时候,一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。网络上的所有设备都必须选择相同的传输模式和串口参数。(1)ASCII模式模式 当控制器设为在当控制器设为在Modbus网络上以网络上以ASCII模式通信时,在消息模式通信时,在消息中的每个数据字节都转换为两个表示其中的每个数据字节都转换为两个表示其16进制编码的进制编码的ASCII字符发字符发送。这种方式的主要优点是人工可读、字符发送的时间间隔可达到送。这种方式的主要优点是人工可读、字符发送的时间间隔可达到1秒而不产生错误,缺点是表示方式冗长。秒而不产生错误,缺点是表示方式冗长。(2)RTU模式模式 当控制器设
9、为在当控制器设为在Modbus网络上以网络上以RTU(远程终端单元)模式(远程终端单元)模式通信时,在消息中的每个字节以通信时,在消息中的每个字节以8个个bit发送。这种方式的主要优点发送。这种方式的主要优点是:在同样的波特率下,可比是:在同样的波特率下,可比ASCII方式传送更多的数据。方式传送更多的数据。(1)ASCII帧帧 使用使用ASCII模式,消息以冒号模式,消息以冒号:字符(字符(ASCII码码 3AH)开始,以回车换行符结束(开始,以回车换行符结束(ASCII码码 0DH,0AH),其它域),其它域可以使用的传输字符是可以使用的传输字符是”0.9,A.F”。网络上的设备不断侦测网
10、络上的设备不断侦测:字符,当有一个字符,当有一个:接收到时,接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的。每个设备都解码下个域(地址域)来判断是否发给自己的。消消息中字符间发送的时间间隔最长不能超过息中字符间发送的时间间隔最长不能超过1秒,否则接收的设秒,否则接收的设备将认为是传输错误。一个典型的备将认为是传输错误。一个典型的ASCII模式消息帧如下所示:模式消息帧如下所示:起始位起始位 设备地址设备地址 功能代码功能代码 数据数据 LRC校验校验 结束符结束符1个字符个字符 2个字符个字符 2个字符个字符 n个字符个字符 2个字符个字符 2个字符个字符2)RTU帧帧 使用使用
11、RTU模式,两个连续发送的数据帧之间至少要有模式,两个连续发送的数据帧之间至少要有3.5个字符的停顿时间间隔。传输的第一个域是设备地址。网个字符的停顿时间间隔。传输的第一个域是设备地址。网络设备不断侦测网络总线上的有效数据和停顿间隔时间,当第络设备不断侦测网络总线上的有效数据和停顿间隔时间,当第一个域(地址域)接收到,每个设备都进行解码以判断是否发一个域(地址域)接收到,每个设备都进行解码以判断是否发往自己的。如果发送完一个数据帧,间隔时间小于往自己的。如果发送完一个数据帧,间隔时间小于3.5个字符个字符时间又发送第二个数据帧,那么接收站点就会误认为它们是同时间又发送第二个数据帧,那么接收站点
12、就会误认为它们是同一个数据帧,从而造成接受数据混乱。一个典型的一个数据帧,从而造成接受数据混乱。一个典型的RTU模式消模式消息帧如下所示。息帧如下所示。起始位起始位 设备地址设备地址 功能代码功能代码 数据数据 CRC校验校验 结束符结束符28Bit 8Bit 8Bit n个个8Bit 16Bit 28Bit 标准的标准的Modbus网络有两种错误校验方法。错误校验网络有两种错误校验方法。错误校验域的内容视所选的校验方法而定。域的内容视所选的校验方法而定。(1)ASCII 当选用当选用ASCII模式作字符帧,错误校验域包含两个模式作字符帧,错误校验域包含两个ASCII字符。这是使用字符。这是使
13、用LRC(纵向冗长校验)方法对消息(纵向冗长校验)方法对消息内容计算得出的,不包括开始的冒号符及回车换行符。内容计算得出的,不包括开始的冒号符及回车换行符。LRC字符附加在回车换行符前面。字符附加在回车换行符前面。(2)RTU 当选用当选用RTU模式作字符帧,错误校验域包含一个模式作字符帧,错误校验域包含一个16Bits值。错误校验域的内容是通过对消息内容进行值。错误校验域的内容是通过对消息内容进行CRC(循环冗长校验)方法得出的。(循环冗长校验)方法得出的。CRC域附加在消息的最后,域附加在消息的最后,添加时先是低字节然后是高字节,故添加时先是低字节然后是高字节,故CRC的高位字节是发送的高位字节是发送消息的最后一个字节。消息的最后一个字节。数据类型 IEEE标准的浮点数 32位整型数 8位数据 混合数据类型 整数中的位域 整数倍数
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。