首页 理论教育现场总线应用技术:访问子层

现场总线应用技术:访问子层

【摘要】:现场总线访问子层利用数据链路层的调度和非调度服务来为现场总线报文规范层服务。FAS与FMS虽同为应用层,但其作用不同,FMS的主要作用是允许用户程序使用一套标准的报文规范通过现场总线相互发送信息。FAS-PDU的一般结构是FAS帧头加上用户数据,如图7-10所示。这些服务就是FAS所映射的主要DLL层的活动,这样FAS就有机地同DLL联系起来,共同为FMS服务,形成基金会现场总线的通信栈。

现场总线访问子层(FAS)利用数据链路层(DLL)的调度和非调度服务来为现场总线报文规范层(FMS)服务。FAS与FMS虽同为应用层,但其作用不同,FMS的主要作用是允许用户程序使用一套标准的报文规范通过现场总线相互发送信息。本节的内容有应用关系(AR)作用、FAS服务、FAS的状态机制和FAS-PDU的结构。

1.概述

(1)AR作用

在分布通信系统的AR,使用一些服务和应用层通信渠道进行相互间的通信。通过连接两个以上的同种类型的AR端点,就可以建立一个AR。其建立方式有3种:预先建立、预先组态动态建立。

AR的特点和作用是由其AR端点(AREP)决定的,所以AREP的类型对通信有着非常重要的作用。在AREP间的通信,其方向有单向的,有双向的;数据链路的启动策略有用户启动的,有网络启动的;在数据传输中,有以缓冲器传输为模型的,也有以队列传输为模型的。据此AR被分成如下三类:

1)队列传输、用户启动、单向的AREP(QUU)。

2)队列传输、用户启动、双向的AREP(QUB)。

3)缓冲器传输、网络启动、单向的AREP(BNU)。

这里使用的数据链路层服务分为面向连接的和无连接的数据传输服务。

(2)FAS服务

FAS利用协议数据单元为FMS提供服务,FAS服务充分把DLL和FMS连接在一起,构成统一体———通信栈。在这里FAS起到承上启下的关键作用。FAS提供的服务如下:

1)“连接”服务,控制AR的建立,建立通信。

2)“放弃”服务,控制AR的断开,断开通信。

3)“确认的数据传输”服务,传递确认的高层服务,而且是双向交换的。

4)“非确认的数据传输”服务,用来传递不需要确认的高层服务。

5)“FAS强迫”服务,这个服务要求DLL从调度通信的数据链路缓冲器中产生非调度通信的发送。

6)“获得缓冲器报文”服务,允许FAS用户释放(读取)缓冲器的内容。

7)“FAS-状态”服务,这个服务可以把DLL的一些具体状态报告给FAS的用户。

FAS的这些服务都是通过组织协议数据单元FAS-PDU来完成的。

978-7-111-55649-7-Chapter07-10.jpg

图7-9 FAS结构

(3)FAS协议状态机制

在FAS中,有三个综合的协议机制来共同描述FAS的行为,这三个协议机制是FAS服务协议机制(FSPM)、应用关系协议机制(ARPM)和数据链路层映射协议机制(DMPM)。其中ARPM根据AREP类型又分为三种:QUU、QUB和BNU,其结构如图7-9所示。

从上面的状态协议机制的结构中可以清楚地看到FAS的三个协议之间的关系。

1)FSPM描述了FAS用户和一个AREP的服务接口,对于所有类型的AREP,FSPM都是相同的,没有任何改变。它主要负责以下的活动:接收FAS用户的服务原语,并转化成FAS内部原语;根据FAS用户提供的AREP识别参数选择合适的ARPM状态机制,并把转换后的FAS内部原语发送给被选中的AREP状态机制;从ARPM接收FAS内部原语,并把它转化成FAS用户所使用的服务原语;根据和原语有关的AREP识别参数,把FAS内部原语传递给FAS用户。

2)ARPM描述了一个AR的建立和释放以及与远端ARPM间交换FAS-PDU。它主要负责以下的活动:从FSPM接收FAS内部原语,产生其他的内部原语,并发送给FSPM或DMPM;接收来自于DMPM的FAS内部原语,转换成另一种内部原语发送给FSPM;如果是“连接”或“放弃”服务,它将建立或断开AR。其作用有:鉴定当前的AREP,封装PDU,破解PDU,删除标志符,破解代码及附加细节。

3)DMPM描述的是DLL和FAS之间的映射关系,对于所有类型的AREP均是相同的。它负责以下的活动:接收从AREP来的内部原语,转换成DLL服务原语,并发送到DLL;接收DLL的指示或确认原语,以FAS内部原语的形式发送给ARPM。其作用有:限制本地端点属性,核对远端端点的存在性,定位、鉴别DLL的标识符。

2.FAS-PDU

FAS协议中一个重要的内容就是FAS-PDU,所有FAS服务均是通过封装相应的FAS-PDU来实现的。FAS-PDU类型有七种:

1)确认的数据传输-请求PDU。

2)确认的数据传输-响应PDU。

3)非确认的数据传输-PDU。

4)连接-请求PDU。

5)连接-响应PDU。(www.chuimin.cn)

6)连接-错误PDU。

7)放弃-PDU。

这七种PDU用来完成FAS的主要服务,特别是与通信有关的服务。FAS-PDU的一般结构是FAS帧头加上用户数据,如图7-10所示。

978-7-111-55649-7-Chapter07-11.jpg

图7-10 FAS-PDU的结构

FAS帧头8位共1个字节,作用是区别PDU类型,也就是说,FAS帧头代表的是哪一种PDU。用户数据是高层FAS用户传递而来,这样FAS封装好PDU,并发送给DLL;而接收方的FAS从它的DLL读上来,解开帧头,再送给FAS的用户。这样完成了双方的通信。FAS帧头的第1位若为“0”,则说明FAS用户是FMS;若为“1”,则保留给非FMS的FAS用户。从系统结构图中可以知道,FAS的用户可以是应用进程AP,此时通信旁路FMS主要的服务有“FAS-强迫”服务、“读缓冲器”服务和“FAS-状态”服务,所使用FAS的AREP类型也以BNU为主。

3.FAS所映射的DLL层活动

FAS是利用DLL的调度通信和非调度通信来为FMS提供服务,因此FAS在为FMS提供服务的同时,需要底层DLL提供如下服务支持:

1)无连接数据传输服务。

2)面向连接的两种数据传输服务。

3)缓冲器传输服务。

4)队列式传输服务。

5)数据单元分割服务。

6)数据链路时间分配服务。

这些服务就是FAS所映射的主要DLL层的活动,这样FAS就有机地同DLL联系起来,共同为FMS服务,形成基金会现场总线的通信栈。通信栈就是由DLL、FAS和FMS共同构成的通信渠道,用于用户层的应用进程之间的通信。当然它不包括SMK和DLL中直接通过SMKP的通信,SMKP并不使用通信栈的3层通信原理。

4.虚拟通信关系(VCR)

FAS提供VCR终点来对DLL进行访问。每个VCR终点都是由封装的一个数据链路性能的特殊子集来定义的。这种性能提供了一个访问的单一模式,FAS终点端口的定义是由信息传输和FAS服务与数据链路性能的特殊子集的联合。VCR终点的数据链路性能定义在FAS 中,而不是在DLL中,这是因为它们只有在访问时,而不是终点定义时提供给DLL。VCR终点的基本特性见表7-2。

表7-2 FAS VCR终点特征表

978-7-111-55649-7-Chapter07-12.jpg

自由VCR是那些当VCR被打开时,可以动态定义的远程终点。VCR终点也可以同定义的远程终点一起被预构造。排队式VCR类型允许应用程序使用DLL维护的一个优先顺序的FIFO队列,互相传输信息。另外,缓冲式VCR类型允许应用程序在发送和接收DLL实体中使用缓冲区来互相传输信息。缓冲式传输有以下规定:

1)发送的新数据会覆盖缓冲区中的旧数据。

2)从缓冲区读信息不会破坏它的内容。

循环VCR类型按照DLL调度表传递信息,调度表由位于链路上被称为LAS的特殊设备来维护和强制。在FF子集中,只有发布方/接收方数据可以被循环传输。LAS使用这个调度表知道何时指示一个设备发送数据。调度表中的每个条目含有发布方缓冲区的数据链路地址,并且指示何时传输数据。数据接收方监听发布方的地址,从而得知它们是否要接收数据。

单向VCR类型被用来传输不需要确认的服务给一个或者多个接收者。不需要确认的服务是那些没有响应的服务,它们被用来支持发布式数据的传输,如事件信息和趋势报告的发布。

面向连接的VCR使用数据链路连接。这些连接在数据发送之前必须被建立起来,但是在它们被建立之后,只要求一个地址参与数据传输。在发布方/接收方VCR的情况下,使用发布方的地址。对客户/服务器VCR来说,使用目的终点的地址。

无连接VCR不使用数据链路连接,代之以一个单一的无连接传输服务来传输它们的数据,在这种情况下不需要连接设置请求,但是源和目的地址都要参与数据传输。在事件与趋势报告中使用这种传输类型,因为它允许发送者把它的报告发送给组地址。接收者能够监听在一个组中传输的所有信息,而不管谁是发送者。如果代之以发布方/接收方方法,每个接收者必须监听一组地址,每个地址都是一个报告源。

对发布方/接收方VCR的重复检测是指当已经接收过的信息缓冲区重复收到时,会重复通知VCR用户。对客户/服务器VCR来讲,协议不传输复制品。

5.VCR类型

一条现场总线可以有多台链路主设备。如果当前的LAS失效,其他链路主设备中的一台将成为LAS,现场总线的操作将是连续的,现场总线设计成“故障时仍可运行”。FAS使用数据链路层的调度和非调度特点,为现场总线报文规范层(FMS)提供服务。FAS服务类型由虚拟通信关系(VCR)来描述,这些信息仅需输入一次,就可以成为“快速拨号”。一旦准备完成,只需输入快速拨号码就行,而且在组态后,仅需VCR号码就可与其他现场总线设备进行通信。

客户/服务器VCR类型用以实现现场总线设备间的通信,它们是排队的、非调度的、用户初始化的、一对一的。排队意味着报文的发送和接收是按次序进行传输的,它也是按照其优先级,以不覆盖原有报文的方式进行的。当设备从LAS收到一个传输令牌(PT),它可以发送一请求报文给现场总线上的另一台设备,请求者被称为“客户”,而收到请求的设备被称为“服务器”,当服务器收到来自LAS的PT时,发送相应的响应。

报告分发VCR类型用以实现现场总线设备间的通信,它们是排队的、非调度的、用户初始化的、一对多的。当设备有事件或趋势报告,且从LAS收到一个传输令牌(PT)时,将报文发送给由该VCR定义的一个“组地址”。在该VCR中被组态为接收的设备,将接收这个报文,一般用于现场总线设备发送报警通知给操作员控制台。

发布方/接收方VCR类型应用于带缓存、一点对多点的通信。缓冲意味着在网络中只保留数据的最新版本,新数据完全覆盖以前的数据。当设备收到强制数据(CD)后,它向现场总线上的所有设备“发布”或广播它的报文,那些希望接收公布报文的设备被称为“接收方”。该CD可由LAS调度,也可以由基于非调度的接收方发送。VCR标志指明使用哪一种方法。发布方/接收方VCR类型,被现场总线设备用于周期性、受调度地,用户应用功能块在现场总线上的输入和输出,诸如过程变量(PV)和原始输出(OUT)等。现场总线报文规范层为用户应用服务,它以标志的报文格式集,在现场总线上相互发布。