Modubus通讯协议及其作用

介绍了MODUBUS通讯协议的结构,组成及其应用,概括了MODUBUS通讯协议通讯过程及应用注意事项。

毕业论文网   MODUBUS协议网络通讯   Modbus协议现在为一通用工业标准。

有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。

通过此协议,监控器相互之间、控制器经由网络(如以太网)和其他设备之间可以通信。

协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信的。

他描述了控制器请求访问其他设备的过程,以及怎样侦测错误并进行记录。

它确定了消息域格式及内容的公共格式。

当在Modbus网络上通信时,每个控制器需要知道他们的设备地址,识别按他们发来的消息,决定要产生的何种行动。

如果需要回应,只控制器将生成反馈信息并用Modbus协议发。

在其他网络上,包含了Modbus协议消息转化为在此网络上使用的帧或包结构。

1(Modbus)协议网络选择   (1)在Modbus网络上转输时,标准的Modbus口是使用与RS_232C兼容的串行接口,它定义了连接口的引脚、电缆、信号位、传输波特率及奇偶校验。

控制器能直接或经由modem组网。

控制器通信使用主从技术,即仅一台设备(主设备)能初始化传输(查询)。

其他设备(从设备)根据主设备查询提供的数据做出相应的反应。

典型的主设备有计算机和编程面板。

典型的从设备有P L C。

设备可单独和从设备通信,也能以广播方式和所有从设备通信。

如果单独通信,则从设备返回消息作为回应;如果是以广播方式查询了,则不做任何回应Modbus协议建立了主设备查询的格式,即设备(或广播)地址功能代码、所有要发送的数据错误检测域。

设备回应消息也由Modbus血液构成,包括确认要行动的域、任何要返回的数据错误检测域。

如果在消息接收过程中发生错误

或从设备不能执行其命令,则从设备将建立错误消息并把它作为回应发出去。

2Modbus查询―回应周期   (1)查询消息包括功能代码数据错误检测等几部分。

功能代码告知被选中的从设备要执行何种功能

数据段包括了从设备要执行功能的任何附加信息。

例如,功能代码03是要求从设备读保持寄存并返回他们的内容。

数据段必须包含要告知从设备的信息――――从哪一个寄存器开始读及要读的寄存器数量。

错误检测域为从设备提供了一种验证消息内容是否正确的方法。

(2)回应消息包括功能代码数据段及错误检测等几部分。

如果从设备产生正常的回应,则在回应消息功能代码是在查询消息中的功能代码回应

数据段包括了从设备收集的数据寄存器值或状态。

如果有错误发生,则功能代码将被修改以用于指出回应消息错误的,同事数据段包括了描述此错误信息的代码

错误检测域允许主设备确认消息内容是否可用。

3Modbus数据传输模式   控制器能设置为两种传输模式(ASCII或RTU)中的任何一种,不允许同时存在两种通信模式。

在配置每个控制器时,一个Modbus网络上的所有设备都必须原则相同的传输模式和串口通信参数(波特率、校验方式等)。

所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。

4modbus消息帧   在两种传输模式(ASCII或RTU)中,传输的modbous消息转为有起点和终点的帧,这就允许接收的设备消息起始处开始工作,读地址分配信息,判断哪一个设备被选中(广播方式则传给所有设备),判知何时信息已完成。

消息帧包括ASCII帧和RTU帧。

消息帧的地址域包含两个字符(ASCII)或8BIT(RTU)。

可能的从设备地址是0~247(加进制)。

单个设备地址范围是1~247.主设备通过将要联络的从化设备地址放入消息中的地址域来选通从设备

当从设备发送回应消息时,她把自己的地址放入回应地址域中。

一边主设备知道是哪一个设备作出回应

地址0用作广播地址,以使所有的从设备都能认识。

当modbos协议用于更高水准的网络时,广播可能不允许或以其他方式代替。

消息从主设备发往从设备时,功能代码域将告知从设备需要执行哪些行为。

例如,去读取输入的开关状态,读一组寄存器数据的内容,读从设备的诊断状态,允许调入、记录、校验在从设备中的程序等。

5数据域   数据域是由两个十六进制数集合构成的,范围为00~FF。

根据网络传输模式,这可以是由一对ASCII字符组成或由一RTU字符构成。

设备发给从设备消息数据域包含附加的信息,从设备必须执行由功能代码所定义的功能

这包括了不连续的寄存器地址、要处理项的数目及域中实际数据字节数。

例如,如果主设备需要从设备读取一组保持寄存器功能代码03),数据域指定了起始寄存器级要读的寄存器数量。

如果主设备写一组从设备寄存器功能代码10十六进制),则数据域指明了要写的起始寄存器及要写的寄存器数量、数据域的数据字节、要写入寄存器数据

6错误检测域   标准的modbus网络有两种错误检测方法:ASCII模式和RTU检测

错误检测域的内容有赖所选的检测方法。

当选用ASCII模式做字符帧,则错误检测域包含了两个ASCII字符,这是使用LRC(中相沉长检测)方法对消息内容计算得出的,不包括开始的冒号符及回车符。

LRC字符附加在回车字符附加在回车换行符前面。

当选用RTU模式做字符帧,错误检测域包含一16bits值(用两个8位的字符来实现)。

错误检测域的内容是通过对消息内容进行循环沉长检测方法得出的。

CRC域附加在消息的最后,添加时先是低字节,然后通过高字节,故CRC的高位字节是发送消息的最后一个字节。

2 次访问