日志档案

发表于 2009/7/9 11:32:51

0

精华帖

标签: INTERBUS PCP 现场总线

第三讲 INTERBUS的数据传输

  一  INTERBUS的PCP参数数据传输方法
  在工业的实际应用中,特别是在现场设备的数据传输中,不仅需要传输过程数据,即字位短(1~16位)具有实时性要求的循环传输数据,而且在一定的情况下也需要传输参数数据,即字位较长(>100K位)无实时性要求的非循环传输数据。因此,INTERBUS协议采用复合式数据结构,即同时采用过程数据通道和参数数据通道,这是与其他总线的重要区别。它对提高INTERBUS的性能起了重要的作用,实现了一个协议可完成由不同控制器、智能设备和简单变送器/执行器组成的总线网络,显示了INTERBUS协议的优越性和完整性。
  参数数据通道作为过程数据通道的补充,它的作用体现在两个总线模块进行非周期性复杂的数据传输时。参数数据通道传输的信息往往无实时性的要求,而且只当系统请求时才进行运作。参数数据采用主-从式PMS(Peripherals Message Specification)的大量信息的传输方法。这种方法是以MAP/MMS为基础。参数数据通道主要用于总线设备的初始化和参数化。INTERBUS的模块往往只带有过程数据通道。也可以根据实际要求增加参数数据通道。
  增加了参数数据通道的INTERBUS的集总帧协议的格式如图1所示。
  

  在相应的集总帧上,根据需要参数数据按序列进入参数通道,这意味着一个完整的参数数据块被分隔为一个个小的数据块,然后这些小的数据块按顺序先后进入循环执行的协议里进行传输。每个传输周期仅传输整个参数数据的一部分。传输后重新组成参数数据块是由附加的OSI通讯协议第2层的DLL(Data-Link-Layers)软件来实现的,用户不必考虑。通过分块参数传输的方法,避免了由于协议长度的增加而导致信号周期加大、实时性差的矛盾。同时通过在协议中设置一个固定的参数通道长度,仍然保证了传输协议长度的不变性,从而使系统的循环时间无论是进行或不进行参数传输都保持恒定。采取这种混合协议帧的方法,INTERBUS系统可以在快速传输过程数据的同时,传输多达100K以上的参数数据。这种特殊的协议帧的结构将两种不同的传输数据有机的统一成一体,既不影响INTERBUS系统的传输效率,同时又能满足传输信息数据的需要。
  INTERBUS系统采用了优化的混合集总帧协议以及环形网络结构后,只需要一种500Kbps的传输速率就能达到MS级的传输周期。传输时间也可以通过下面的公式简单地进行计算。实际上循环周期与系统的点数成正比。
  T=tsw+[13*(6+n)+1.5m]*tbit
  上式中,T为传输周期;n为有效传输的位数;m为现场总线模块的个数;软件延迟时间tsw为200ms;传输一个字节的时间tbit为2ms。
  INTERBUS循环周期的线性、可计算的特点给实践带来了很大的优点。因为循环周期时间是可知、恒定的,那么在控制器运行的过程中就可以事先考虑该时间的影响。同时决定采用怎样的控制技术,以满足现场总线的要求。
  图2表示了INTERBUS的传输周期与系统所带输入/输出(I/O)个数的比例关系。
  

  二  INTERBUS数据传输的安全性和可靠性
  1  采用Loop-Back-Word(LBW)启动字来实现对INTERBUS环路循环时间的监视
  

  实现INTERBUS现场总线系统通讯的先决条件是传输的安全性。当系统受到外界干扰,如整个环路发生断开现象或总线系统中的移位寄存器的长度由于总线段的关闭或连接发生变化时,将会引起通讯的中断和错误。由于INTERBUS采用环路网络的方法,整个环路的传输时间与回路的长度有关,因此每个环路的循环时间是固定的。因此,INTERBUS运用了信号周期时间监视的方法,即LBW。如图3所示,当INTERBUS系统运行时,主站首先发出一个按一定格式构成的LBW字,当主站重新得到这个字时,表示INTERBUS的环路已循环了一次,该时间就是INTERBUS系统的循环时间。以后主站根据每个得到LBW字的时间就能检测出整个环路是否正常。如果时间太长,表示系统的移位寄存器的长度发生变化,系统不正常;如果时间太短,表示系统的移位寄存器的长度短了,系统也不正常;如果主站一直得不到LBW的信号,则说明系统已不成环路了。通过时间检测的方法,不仅保证传输运行的正确,也保证了每个现场总线模块上信号传递的周期性。
  2  INTERBUS数据传输的可靠性
  采用LBW字可以知道INTERBUS系统状态的变化,如INTERBUS是否正确的连接,INTERBUS的网络结构是否被改变以及INTERBUS的环路是否闭合等。而为了检查内部传输数据的正确性,INTERBUS采用了CRC-循环冗余编码。CRC码检错方法是将要发送的数据比特序列当作一个多项式的系数,在发送方用收发双方约定的生成多项式去除,求得一个余数多项式,这个余数多项式称为CRC-检测数列。INTERBUS利用按CCITT规定的16阶生成多项式来构成一个CRC-检测数列:
  G(x)=x16+x12+x5+1
  每个INTERBUS的现场总线模块在数据移位的过程中,每个比特与生成多项式进行XOR的运算并移位。每个模块上的接收端和发送端都计算出一个CRC检测数,当所有数据在INTERBUS环路被移位后,一个模块的发送端的CRC-生成多项式的结果将与下一个模块的接收端的CRC-生成多项式的结果进行比较。如果两个结果一致,表示传输数据是正确的;反之,传输的数据有错,在INTERBUS的数据检测时钟到来时,便发出一个出错信号。
  CRC检测数仅仅从一个模块送到下一个模块,并不是在这个环路里传输。所以在16个移位时钟后,CRC检测数的传输就结束了,下16位传输数据检测的结果。所以在集总帧中最后加上32位的协议帧测试信号位-FCS
 

  INTERBUS所有信息的传输在海明距离HD=4进行。如图4所示,传输数据在集总帧协议加上CRC检测数据后,当数据有一位发生了变化,那么CRC检测数据就至少有3位会发生相应的变化。因此在一个循环周期中找出错误的机率是:100%检查出单位错;100%检查出离散的两位错;100%检查出奇位个数错;100%检查出长度小于或等于16位的突出错;99.9%检查出长度大于16位的突出错。
  3  INTERBUS数据传输时的系统保护
  当数据传输过程中发生错误时,系统应能够随时复原到一个预定的状态,即安全状态。系统在发生故障时,也能自动地回到一个安全的位置。这就要求系统发生事故时,所有的输出信号必须置为零。以保证工业设备能够毫无问题的停止工作。一般来说所有输出的电平必须为“零”。INTREBUS采用一个分频式的清零信号来实现这一功能。当导线断裂时,INTRERBUS的模块可通过主站或者自行地还原到设定值,即系统被清零。
  通过分频清零信号的方法,系统不仅能回到设定值,而且还能知道出错的地点。分频清零信号是通过清零信号不同的脉冲长短来实现。小于256?s的脉冲称为短脉冲,大于25ms的脉冲称为长脉冲。因为两线制传输不能传输清零信号,所以清零信号是通过INTERBUS协议中的监视方法来进行。即在发送信号时,通过检测两个模块中传输状态电报来实现。每个有效的状态电报将监视时钟置为初始值。
  如当导线断开后,传输线上没有传输信号,模块在26?s后(两个数据电报的传输时间)开始测量传输中断时间。如果中断时间超过256?s,即为短清零信号,所有远程终端模块关闭输出端,每个INTERBUS总线段被隔离。只有主站与第1个总线终端模块相连接,在短清零信号的时间,I/O模块的输出信号没有被清零;如果数据传输中断时间超过25ms,则为长清零信号,长清零信号除了具有与短清零信号同样的功能外,还将输出信号置为零。同时借助于集总帧中控制数据,主站还可以有目的地将其远程或本地总线段置为清零状态。这种清零也称为编程清零。
  总之,通过LBW的控制,每个模块中CRC的检测技术的应用以及分频式的清零信号等措施,使INTERBUS系统成为一种可靠、安全的现场总线系统,被广泛地应用在各个工业自动化控制领域中。
  4  INTERBUS数据传输时的抗干扰能力
  INTERBUS数据传输的抗干扰能力可通过两方面来实现。
  (1)  采用500Kbps的传输速率与其它的现场总线相反,INTERBUS采用对传输媒介和总线模块的连接没有很高要求的500Kbps的传输速率,提高了模块本身的抗电磁场(EMC)干扰能力。
  (2)  INTERBUS模块产品进行严格的测试,并得到CE的认证,即包含EN50082-2的EMC的认证。PHOENIX CONTACT公司生产的INTERBUS模块都进行了6种包括EN55022、ENV50140、IEC801-6、IEC801-2、IEC801-4和IEC801-5欧洲和国际标准的测试。所有的测试都在经过授权的专业测试单位进行。

系统分类: 现场总线   |   用户分类: 现场总线   |   来源: 无分类

    阅读(2367)    回复(0)