漫谈工业软件(2)-IEC61499标准

IEC 61499是用于分布式工业过程测量与控制系统(IPMCSs)功能块的标准。该标准的名称表明了两个重要的概念

-分布式工业过程测量与控制系统 

 (IPMCSs)表明该标准针对的是工业分布式系统-由多台设备通过网络构成的系统。相比之下,IEC61131 PLC 标准针对的是单台设备的编程。也许有人会产生一些疑惑,PLC 不是也可以通过网络构成分布式控制系统么?这两个标准有什么区别呢?其中主要的差别就在与IEC61499 标准将分布式系统当作一个整体来考虑。在IEC61499 的概念之下,整体地定义系统,设备和资源。设计一个完整的基于功能块网络的应用程序,然后将这个网络分解成为若干段,映射到相应的设备上去。通俗地讲,基于IEC61131 标准的分布式系统要为每一个设备编写不同的程序,以及设备之间的通信协议。而基于IEC61499 标准的分布式系统只编写一个大的控制程序,然后分段映射到各个设备上运行。而且系统的调试,部署和监控都有以一个整体来加以考虑的。第一次接触IEC61499 标准是我就吃惊地感受到它的制定者真是一个大胆的想法。这将大大地简化了分布式系统的编程,部署和运维。在后来的具体实验中,也的确感受到了这一点。编写一个多台设备构成的一个跑马灯控制系统,半个小时就搞定的了,而且应用程序修改起来十分的方便。

 

   

在上图中示意了由多个个设备构成的分布式系统(图中只画出了两个设备)。设计者编写了一个由FB1 到FB5 构成的功能块网络,实现的他希望在这个系统上实现的控制程序。在IEC61499 的开发工具(通常我们称之为IEC6499 开发环境IDE)中,借助于图形编辑工具输入这个功能块网络。然后通过映射将功能块FB1映射到设备1,将FB2 映射到设备2.。等等。由于FB1 和FB2 分布部署在两个设备上,功能块之间的连线表示的数据传输要通过网路来实现。因此,开发工具在映射是会自动地插入通信服务功能块SUB和PUB。在IEC61499 中功能块通信是通过这种订阅(SUB)/发布(PUB)机制来实现的。

   完成映射之后,开发环境会将系统部署到各个设备上。所谓部署,就是通过网络将功能块网络段下载到设备中。每个设备中都已经预先运行了一个IEC61499 运行时(runtime)。它负责执行下载的功能块网络段。并且通过过程接口(process interface) 与设备的硬件接口打交道。

-功能块(Function block)

功能块是一个软件的功能单元。它采用图形化表示。通过功能块图形之间的连线,实现一个功能块网络形式的应用程序。下面就是一个LED 闪烁程序的功能块网络。

这张图看上去和硬件设计的原理图十分相似,E_CYCLE 相当于一个时钟发生器,它产生一个周期为一秒钟的信号。E_SWITCH 是一个2选1 电路,E_SR 类似于数字电路的RS 触发器。它和E_SWITCH构成了一个除 2 电路。在Q端将产生一个周期为2 秒的方波脉冲信号。QX 是一个硬件接口功能块。将脉冲信号在第4个GPIO 上,控制LED 闪烁。将该功能块映射到一个设备上。一旦部署成功,LED 就会不停地闪烁。

   相信具有数字电路基础的读者都能够看懂上面的“原理图”,虽然我是一个软件工程师,但是也十分喜欢这样硬件的(hardware-like)功能表达方式。编写程序就像搭试电路那样具有成就感和真实感。

   IEC61499 标准中,定义了少量的基本功能块。IEC61499 的开发环境会提供更多的功能块库。专业的IEC61499 软件

  因此,一个完整的IEC61499 软件系统包括了开发环境,运行时程序和功能块库组成。下面是一个著名的IEC61499 开源项目4DIAC 的系统组成。

 

     

           在我们的研究项目中。我们在Windows /ubuntu 上运行4DIAC的开发环境X86 PC的Ubuntu OS  ,全志Arm的H6 ,瑞芯微的RK3399 已经树莓PI3 上面运行4DIAC 的forte 运行时。

IEC61499 参考模型

在第一篇中,我们已经提及了工业软件中模型的重要性,下面我们就来详细地了解IEC61499 是如何通过模型来定义它的各种模型的。

在IEC61499 标准中,定义了如下几种模型

系统模型(system model)

设备模型(device model)

资源模型(resource model )

应用模型(Application model)

功能块模型(function block model)

分布式模型(distribution model)

管理模型(management model)

操作状态模型(operational state models)

我们先了解前四种模型,后面再详细地研究其它的模型。

系统模型

为了IEC61499 的目的,一个工业过程测量和控制系统的模型是一组相互连接的设备构成,相互之间通过网络通信。通信网络由网段和链接构成。设备通过链接接入网段。

 

IPMCS 完成的功能在模型中称为应用(Application),它可以驻留在一个设备中,例如应用C 。或者能分布在几个设备中。比如应用A和应用B。比如,一个应用可以由一个或者多个控制环路构成,在这些环中,一个设备采集输入数据,另外一个设备完成过程控制,而输出转换在第三个设备中完成。

可以看出,在IEC61499 中,应用(Application)就是基于功能块网络的应用程序。在中文翻译时,直接使用“应用”表示应用程序,有时会引起语义的混淆。所以在我的文章中,有时会使用“应用程序”来表示“应用”一词。

在前面已经提到过,设备可以是X86 PC,也可以是各种基于Arm 的小型计算机,比如树莓PI。

设备模型

从图2 可以看出,一台设备至少有一个接口(interface),亦即过程接口或者通信接口;也包含零个或者多个资源

“过程接口”提供了物理过程(模拟测量和离散IO 等)和资源之间的映射,与物理过程交换的信息以数据或者事件的形式呈现给资源。

通信接口提供了资源之间通过通信网络交换信息的映射。由通信接口提供的服务包括:

通信的信息表达成数据或者事件给资源

附加服务包括支持程序设计,配置和诊断。

资源模型

IEC61499 标准中资源的概念是比较难以理解的,因为它不像设备,网络那么直观。在标准中,定义为资源由功能单元(functional unit)构成,而在holobloc 网站的文档中,资源称之为提供在分布式系统中运行应用程序所需要服务的“工作马力(workhorses )”。在4DIAC 项目中,当添加一个设备时,自动在该设备下面产生了一个资源,除了修改一个名称之外,没有更多的编辑。资源可以理解为是设备中支撑应用程序的软件单元(supporting software uint)模型。也可以将资源理解为应用的运行环境的模型。资源模型对设备的硬件和网络接口进行了抽象。它们主要包括

过程映射

  完成应用与过程接口数据和事件的映射。映射由专门为此目的的服务接口功能块建模。

通信映射

  完成应用与通信接口之间的数据和事件映射。映射由专门为此目的的服务接口功能块。建模。

调度

执行应用中功能块之间的数据传输,遵循下列时间和顺序的需要

  产生事件

  功能块的相互连接

调度信息,例如周期和优先级。

资源是IEC61499 设备中的运行时(runingtime)程序来实现的。所以在IEC61499的开发环境中并没有太多对资源的产设定。初学者可以不太去纠结资源到底是什么。

应用模型

应用(程序)由功能块网络和它们的参数构成,它的节点是功能块或者子应用。网络分支是数据和事件连接线;

子应用(程序)是子应用(程序)类型的实例。子应用和应用类似,由功能块网络,应用名称,子应用和功能块对象的名称构成。可以建立分层标识符,唯一地标识系统中的每一个功能块对象。应用分布在一个或者多个设备中的若干资源中。

前面我们已经提到过,应用是整个分布式系统的应用,他分成为若干段,分别部署到各个设备中。

在下一篇中,我们会详细的研究IEC61499 的功能块。会对IEC61499 应用具有更深刻的理解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章