两种传输模式中,传输设备可以将Modbus消息转为有起点和终点的帧,这就允许接收的设备在消息起始处开始工作,读地址分配信息,判断哪一个设备被选中,判知何时信息已完成。当Modubs协议用于更高级的网络时,广播可能不允许或以其他方式代替。......
2023-11-20
两种传输模式中(ASCII或RTU),传输设备可以将Modbus消息转为有起点和终点的帧,这就允许接收的设备在消息起始处开始工作,读地址分配信息,判断哪一个设备被选中(广播方式则传给所有设备),判知何时信息传送完成。部分的消息也能侦测到并且能将错误设置为返回结果。
1.ASCII帧
使用ASCII模式,消息以冒号“:”字符(ASCII码3AH)开始,以回车换行符(ASCII码0DH、0AH)结束。
其他域可以使用的传输字符是十六进制的0~9、A~F。网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否是发给自己的。
消息中字符间发送的时间间隔最长不能超过1s,否则接收的设备将认为传输错误。一个典型消息帧如图3-16所示。
图3-16 ASCII消息帧
2.RTU帧
使用RTU模式,消息发送至少要以3.5个字符时间的停顿间隔开始。在网络波特率下设置多个字符时间(比如图3-15中的T1-T2-T3-T4),这是最容易实现的。传输的第一个域是设备地址,可以使用的传输字符是十六进制的0~9、A~F。网络设备不断侦测网络总线,包括停顿间隔时间。当第一个域(地址域)接收到,每个设备都进行解码以判断是否是发给自己的。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标注了消息的结束,一个新的消息可在此停顿后开始。
整个消息帧必须作为一连续的流传输。如果在帧完成之前有超过1.5个字符的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样地,如果一个新消息在小于3.5个字符时间内接着前一个消息开始,接收的设备将认为它是前一消息的延续。这将导致一个错误,因为在最后的CRC域的值不可能是正确的。一个典型的消息帧如图3-17所示。
图3-17 RTU消息帧
3.地址域
消息帧的地址域包含两个字符(ASCII)或8bit(RTU)。允许的从设备地址是0~247(十进制)。单个从设备的地址范围是1~247。主设备通过将从设备的地址放入消息中的地址域来选通从设备。当从设备发送响应消息时,它把自己的地址放入响应的地址域中,以便主设备知道是哪一个设备做出的响应。
地址0是用作广播地址,以使所有的从设备都能识别。当Modbus协议用于更高级的网络时,广播可能不允许或以其他方式代替。
4.功能域
消息帧中的功能代码域包含了两个字符(ASCII)或8bit(RTU)。允许的代码范围是十进制的1~255。当然,有些代码是适用于所有控制器的,有些只适用于某种控制器,还有些保留以备后用。
当消息从主设备发往从设备时,功能代码域将告知从设备需要执行哪些动作。例如去读取输入的开关状态,读一组寄存器的数据内容,读从设备的诊断状态,允许调入、记录、校验在从设备中的程序等。
当从设备响应时,它使用功能代码域来指示是正常响应(无误)还是有某种错误发生(称作异常响应)。对正常响应,从设备仅响应相应的功能代码。对异常响应,从设备返回一个在正常功能代码的最高位置1的代码。
例如,一主设备发往从设备的消息要求读一组保持寄存器,将产生如下功能代码:
00000011(十六进制03H)
对正常响应,从设备仅响应同样的功能代码。对异常响应,它返回
10000011(十六进制83H)(www.chuimin.cn)
除功能代码因异常错误作了修改外,从设备将一特殊的代码放到响应消息的数据域中,这能告诉主设备发生了什么错误。
主设备应用程序得到异常的响应后,典型的处理过程是重发消息,或者诊断发给从设备的消息并报告给操作员。
5.数据域
数据域是由两位十六进制数构成的,范围为00H~FFH。根据网络传输模式,这可以是由一对ASCII字符组成或由一RTU字符组成。
主设备发给从设备消息的数据域包含附加的信息:从设备必须采用该信息执行由功能代码所定义的动作。这包括了不连续的寄存器地址、要处理项目的数量以及域中实际数据字节数。
例如,如果主设备需要从从设备读取一组保持寄存器(功能代码03H),数据域指定了起始寄存器以及要读的寄存器数量。如果主设备写一组从设备的寄存器(功能代码10H),数据域则指明了要写的起始寄存器、要写的寄存器数量、数据域的数据字节数以及要写入寄存器的数据。
如果没有错误发生,从从设备返回的数据域包含请求的数据。如果有错误发生,此域包含一异常代码,主设备应用程序可以用来判断采取的下一步动作。
在某种消息中数据域可以是不存在的(0长度)。例如,主设备要求从设备响应通信事件记录(功能代码0BH),从设备不需任何附加的信息。
6.错误检测域
标准的Modbus网络有两种错误检测方法,错误检测域的内容与所选的传输模式有关。
(1)ASCII
当选用ASCII模式作字符帧时,错误检测域包含两个ASCII字符。这是使用LRC(纵向冗余检测)方法对消息内容计算得出的,不包括开始的冒号符及回车换行符。LRC字符附加在回车换行符前面。
(2)RTU
当选用RTU模式作字符帧时,错误检测域包含一个16 bit值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗余检测方法得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。故CRC的高位字节是发送消息的最后一个字节。
7.字符的连续传输
当消息在标准的Modbus系列网络上传输时,每个字符或字节以如下方式发送(从左到右):最低有效位…最高有效位。
使用ASCII字符帧时,位顺序如图3-18所示。
图3-18 位顺序(ASCII)
使用RTU字符帧时,位顺序如图3-19所示。
图3-19 位顺序(RTU)
有关现场总线及其应用技术的文章
两种传输模式中,传输设备可以将Modbus消息转为有起点和终点的帧,这就允许接收的设备在消息起始处开始工作,读地址分配信息,判断哪一个设备被选中,判知何时信息已完成。当Modubs协议用于更高级的网络时,广播可能不允许或以其他方式代替。......
2023-11-20
当波特率为38400 bit/s时,Modbus通信协议推荐此时1个字符时间为500μs,即定时器定时时间为250μs。图3-20 Modbus数据串行口接收中断服务程序结构框图......
2023-11-22
对于报文发送器和接收器,报文的实际有效时刻是不同的。标志数据帧和远程帧的起始,它仅由一个显性位构成。每个数据帧和远程帧均由7个隐性位组成的标志序列界定。......
2023-11-22
基金会现场总线,是在过程自动化领域得到广泛支持和具有良好发展前景的技术。屈于用户的压力,这两大集团于1994年9月合并,成立了现场总线基金会,致力于开发出国际上统一的现场总线协议。基金会现场总线分低速H1和高速H2两种通信速率。H1的传输速率为31.25 kbit/s,通信距离可达1900 m,可支持总线供电,支持本质安全防爆环境。H2总线标准也已形成。......
2023-11-22
PCI总线是由Intel公司提出的。PCI总线不是由ANSI通过的标准,但由于它是由厂家自发制定执行的标准,具有众多的优点,拥护者,执行者众多,成了事实上的标准。PCI总线共有100个引脚,如果只作为目标设备,至少需要47条,如作为主设备则需要49条。本设计使用位命令字,其定义如下:3.PCI总线基本协议PCI上的基本总线传输机制是突发成组传输。......
2023-11-22
Modbus协议是应用于PLC或其他控制器上的一种通用语言。采用Modbus协议,不同厂商生产的控制设备可以互连成工业网络,实现集中监控。当在Modbus网络上通信时,此协议要求每个控制器必须知道它们的设备地址,识别按地址发来的消息,决定要产生何种动作。如果需要响应,控制器将生成反馈信息并用Modbus协议发出。从设备响应消息也由Modbus协议构成,包括确认要动作的域、任何要返回的数据和一个错误检测域。......
2023-11-22
现场总线控制网络处于企业网络的底层,或者说,它是构成企业网络的基础。从图中可以看出,除现场的控制网络外,上面的ERP和MES都采用以太网。图中的ERP与MES功能层大多采用以太网技术构成数据网络,网络节点多为各种计算机及外设。控制网络的主要作用是为自动化系统传递数字信息。这些都需要在现场控制层内部,在FCS与MES、ERP各层之间,方便地实现数据传输与信息共享。......
2023-11-22
INTERBUS定义了该模型的第1、2、7层。INTERBUS具有强大的可靠性、可诊断性和易维护性。INTERBUS采用了集总帧型的数据环通信。强大的诊断功能是INTERBUS区别于其他总线所独有的。INTERBUS CLUB负责向设备生产厂家提供INTERBUS的接口方案和接口芯片,向其成员提供信息,帮助解决技术问题及为特定的应用找寻合适的INTERBUS产品。INTERBUS的技术发起人为德国菲尼克斯公司。另外,在美国和中国也设有INTERBUS技术中心。......
2023-11-22
相关推荐