您当前的位置:五五电子网电子知识电工技术电工文摘基金会现场总线系统中功能块的调度 正文
基金会现场总线系统中功能块的调度

基金会现场总线系统中功能块的调度

点击数:7460 次   录入时间:03-04 11:44:39   整理:http://www.55dianzi.com   电工文摘
摘 要:现场总线控制系统是一种全新的分布控制系统,是以控制、计算机、数字通讯等技术为主要内容的综合技术。基金会现场总线以其技术上的优势,极有希望成为主流发展趋势。它的最大特点就是应用功能块实现全分布式控制。

关键词:现场总线,功能块,调度,应用进程,虚拟现场设备

The Function Block Schedules in FF System

ABSTRACTION:Fieldbus-Control system is a kind of new Distributed-Control system, and a kind of integrated technology based on Automation-Control, Computer and Digital Communication. With great advantage in technology, Foundation Fieldbus technology is coming to be the major one. And its main feature is to implement distribute control by using function blocks.

KEYWORDS:Fieldbus, Function Block, Schedule, Application Process, Virtual Field Device

1 引言

  现场总线 (Fieldbus)是20世纪末期出现并发展起来的,用于过程自动化、制造自动化、楼宇自动化等领域的现场智能设备互连通讯网络。它作为工厂数字通信网络的基础,沟通了生产过程现场及控制设备之间及其与更高控制管理层次之间的联系。现场总线控制系统是一种开放式的、安全性好、成本低、新型的全分布控制系统,是以控制、计算机、数字通讯等技术为主要内容的综合技术,成为自动化技术发展的热点,并将导致自动化系统结构与设备的深刻变革。

  现场总线技术的标准化起步较晚,是以目前呈现多种现场总线技术并存的局面,其中有较强实力和影响的有:Foundtion Fieldbus(FF),LonWorks,Profibus,Hart,CAN等。它们具有各自的特色,在不同应用领域形成了自己的优势。其中,基金会现场总线以其技术先进、属下会员实力强大成为非常有竞争力的一种总线技术。

  基金会现场总线系统是由数字智能化现场设备和控制、监控设备互联而组成的。他们在一起提供I/O和控制、自动处理等操作。每个现场设备执行整个系统中一部分功能,包括实现一个或多个时间关键的应用,例如传感器数据的获得和控制算法的执行。每一个现场应用都是由一组设备功能来实现的,称作功能块(FB)。这些应用就称作功能块应用进程(FBAP)。

2 功能块的定义和结构特点

  功能块表示了基本的自动化功能。每个功能块处理输入参数,并根据内部的内含参数,执行特定的算法,产生可用的输出参数。因此功能块由输入,输出和内含参数,和应用这些参数的算法组成。功能块用一个位号(FB Tag)和对象字典(OD)的索引来标识。功能块位号提供了一个功能块的符号引用,在一个系统中应该是唯一的。对象字典索引是为了快速访问功能块而用的。对象字典的索引只是在包含这个功能块的资源中才有用。功能块参数定义了用于功能块操作的输入,输出和内含参数。这些参数可以通过网络访问,输入和输出参数通过功能块之间的连接来交换数据。内含参数用来定义功能块的私有参数,尽管他们是网络可见的,但是他们不参与功能块连接。功能块的参数用设备描述(DD)的Member Id和对象字典索引来标识。DD Member Id和一个Tag相对应,这个Tag在整个系统内必须是唯一的;对象索引用来通过FMS服务来访问一个功能块参数。参数的描述可以通过DD来扩展。功能块定义和相关的DD描述被组成一个一般依赖于应用领域、设备功能和厂商定义的参数的集合。

  不同类型的设备根据实现功能的不同可以有不同的功能块,典型的功能块包括模拟输入(AI),模拟输出(AO)和PID控制功能块。每一个功能块都有一些特定的参数和算法以实现特定的功能。

  功能块应用结构定义了一个功能块应用的内部组件,并规定了在一个应用内或多个应用之间这些组件的接口,这个结构可设计如下:

  · 设计和执行功能块应用

  · 配置和集成功能块应用到现场设备中

  · 系统运行时功能块之间的互操作。

  一个设备中的部分或所有组件可以由生产厂商预先定义。组件的参数可以通过设备组态来修改。另外,设备还要支持标准的功能块服务(包括对功能块参数的读写服务)。通过这些服务,功能块和变换块等组件可以被访问或修改。

3 功能块的执行和调度

  功能块的执行是由一个事件输入激活的。这个事件可能是:

  · 调度:调度定义了功能块开始被触发执行的时间。

  · 功能块执行的结束: 同一个设备内的功能块执行完成后有可能触发其他功能块的执行。

  · 厂商定义:功能块的执行可由生产厂商自己定义。

  在基金会现场总线中,最常见的是调度执行的功能块。要想保证功能块的调度执行正确性和实时性,就必须符合以下特性:

  · 系统中的每个功能块应用有一个相同的时间即系统时间。时间标准的统一才能够保证每个功能块执行时间的准确性。

  · 测量设备定期采样以保证连续控制的输入参数的正确性。

  · 在功能块执行时输入和控制参数应该保持一致。

  · 输出参数的产生和应用之间的时间间隔必须小于控制回路的执行时间。这个时间间隔包括功能块之间传输数据所用的时间和数据传输完成后等待功能块开始执行的时间。

  上述这些特性要求功能块的执行在以下三个方面的调整:

  首先,要保证整个系统内的时间同步,以保证功能块执行的同步。

  第二,要保证输出参数的产生在其他功能块需要这个参数之前。

  第三,要保证功能块的调度与总线上数据传输的同步,以确保输出参数在合适的时间进行传输。

  这三个方面分别是由时钟同步,功能块调度和网络传输调度来实现的。

  在FF系统中,应用时钟的同步是通过系统管理的时钟发布来实现的。系统管理中的时间发布者周期性的向现场设备发布应用时钟同步消息, 应用时钟消息包括应用时钟时间(AP time)和链路时间(LS time)。系统管理内核(SMK)采样链路时间和应用时钟时间组成应用时钟消息一起发送,接收设备利用接收到的应用时钟消息调整其本地应用时间,以达到应用时钟同步的目的。

  对功能块的执行的调度也是由系统管理内核来管理的,通过对系统管理信息库中的FB Start参数进行组态来实现对功能块运行的调度。

  FB Start的定义如下所示:

  struct

  {

  unsigned long start_time_offset;

  unsigned short fb_object_index;

  unsigned long vfd_ref;

  } FB_START_ENTRY;

  其中,start_time_offset表示功能块开始执行的时间,这个参数是一个相对与宏周期的时间偏差。它的单位是1/32毫秒。宏周期是指整个网络上功能块应用的执行时间,功能块的调度和数据传输的调度都是以宏周期为时间基准来进行周期性调度的。它的单位也是1/32毫秒。

  fb_object_index表示与这个FB Start项相关联的功能块的数据字典索引,即要执行的功能块的起始索引。这个参数用于标识要执行的功能块。

  vfd_ref表示这个FB Start相关的VFD号,即要执行的功能块在哪个VFD里。

  而数据传输的调度是由链路活动调度器(LAS)来实现的。组态完成以后,在链路活动调度器(LAS)设备中就生成了一个调度表,这个调度表有一定的格式,LAS通过对这个调度表的读取来进行数据传输的调度,即在特定的时间给特定的设备发送强制令牌(CD)报文来强制现场设备把要发送的实时数据发送出去。这个时间是严格准确的,能够确保正确的数据在需要的时间传输。现场设备在收到CD后立刻将缓冲区内的数据发布到总线上,缓冲区内的数据是由功能块执行以后写入的。

  下面一个以典型的PID控制回路为例来说明FF系统中功能块的调度。


图1 一个典型的PID控制回路

  如图1所示为一个典型的PID控制回路,图中AI功能块和PID功能块在一个设备中,AO功能块在另一个设备中。控制过程如下:AI功能块的输出(OUT)参数送到PID的输入(IN)参数,PID的输出(OUT)参数送到AO的级联输入(CAS_IN)参数,而AO的回算输出(BKCAL_OUT)参数送到PID的回算输入(BKCAL_IN)参数。从而完成一个PID闭环控制。

  由此形成的调度如下图所示:


图2 PID控制回路的调度

  图2中,Loop Time(即宏周期)是1秒,蓝颜色的框是功能块的执行时间,红颜色的框是功能块执行后在总线上发布数据的时间。由于AI功能块和PID功能块在一个设备中,这部分的参数传递是通过本地接口实现的,在总线上是不可见的,故在图中没有这部分数据传输的显示。

  组态完成后,在包含有AI功能块和PID功能块的设备(设备A)中应该有两个FB Start项,一个对应AI功能块的执行,start_time_offset应该是0,fb_object_index是AI功能块的起始索引;另一个对应PID功能块的执行,start_time_offset应该是640(20ms)。即在一个宏周期的起始处(偏移量为零),设备A的SMK调度AI功能块开始执行,得出输出值并送到本地的PID功能块。而在宏周期开始后的20毫秒处,设备A的SMK调度PID功能块开始执行,应用AI给的输入值,算出输出值,并放入缓冲区中,等待数据传输的调度令牌(CD)。而LAS根据调度表在宏周期开始后的40毫秒处,发出一个强制发送数据的令牌(CD)来把设备A缓冲区中的数据发布到网络上。设备B中只有一个AO功能块要执行,所以组态时只产生一个FB Start项用来对应AO功能块的执行,它的start_time_offset应该是1280(120毫秒)。设备B的AO功能块接收到从设备A的PID功能块发布的数据后,在宏周期开始后的120毫秒处,由设备B的SMK调度开始执行,并产生输出数据对执行器进行操作,同时产生一个回算输出(BKCAL_OUT)值放到本地的缓冲区内,等待数据传输的调度令牌(CD)。而LAS根据调度表在宏周期开始后的140毫秒处,发出一个强制发送数据的令牌(CD)来把设备B缓冲区中的数据发布到网络上。设备A中的PID功能块应用这个回算值和AI的输出值,调整执行后的输出值。从而完成一个PID的闭环控制。

[1] [2]  下一页


本文关键字:基金会  电工文摘电工技术 - 电工文摘