基金会现场总线系统中功能块的调度
上述这些特性要求功能块的执行在以下三个方面的调整:
首先,要保证整个系统内的时间同步,以保证功能块执行的同步。
第二,要保证输出参数的产生在其他功能块需要这个参数之前。
第三,要保证功能块的调度与总线上数据传输的同步,以确保输出参数在合适的时间进行传输。
这三个方面分别是由时钟同步,功能块调度和网络传输调度来实现的。
在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控制回路,图中AI功能块和PID功能块在一个设备中,AO功能块在另一个设备中。控制过程如下:AI功能块的输出(OUT)参数送到PID的输入(IN)参数,PID的输出(OUT)参数送到AO的级联输入(CAS_IN)参数,而AO的回算输出(BKCAL_OUT)参数送到PID的回算输入(BKCAL_IN)参数。从而完成一个PID闭环控制。
评论