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

article/2025/10/9 18:28:32

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 应用具有更深刻的理解。


http://chatgpt.dhexx.cn/article/mRZVSHTe.shtml

相关文章

行业认证标准:IEC 62304-医疗设备软件安全分类标准

什么是IEC 62304? IEC 62304标准在医疗设备行业中使用,它是一种软件安全分类,它为软件生命周期过程提供了一个框架,其中包含为安全设计和维护医疗设备软件所必需的活动和任务。美国FDA接受IEC 62304合规性作为证明医疗设备软件已根据要求的法规/标准进行设计的证据,因为它…

c语言c11标准 下载,【整理】C语言的各种版本:C89,AMD1,C99,C11

【背景】 之前就知道了有个C90和C99。 后来又在: 期间知道有C11。 现在去整理一下,关于C语言的版本方面的更详细的内容。 参考内容: C语言版本历史 C语言主要有三个版本: ANSI CC89C90 ANSI C standardX3.159-1989 1989年批准通过…

iec611313标准下载_IEC 60249-1-1982(R1993)

基本信息 标准号:IEC 60249-1-1982(R1993) 标准名称:Base Materials For Printed Circuits. Part 1: Test Methods 外文名: Base Materials For Printed Circuits. Part 1: Test Methods 标准状态: 废止 被以下替代标准&#xff1…

iec611313标准下载_IEC 61730-1-2016

基本信息 标准号:IEC 61730-1-2016 标准名称:Photovoltaic (Pv) Module Safety Qualification – Part 1: Requirements For Construction 外文名: Photovoltaic (Pv) Module Safety Qualification – Part 1: Requirements For Construction…

iec611313标准下载_IEC 62108-2016

基本信息 标准号:IEC 62108-2016 标准名称:Concentrator Photovoltaic (Cpv) Modules And Assemblies – Design Qualification And Type Approval 外文名: Concentrator Photovoltaic (Cpv) Modules And Assemblies – Design Qualification…

国际著名标准化组织及ISO/IEC/ASTM/IEEE等国际标准免费下载地址

在知识经济时代,标准已被称作世界的通用语言。你看不懂语言没关系,但是一个标准的图形符号,你就能看明白,很快能GET到你需要的信息。在没有标准的世界,不仅人与人之间难以沟通,机器、零部件以及产品之间的联…

光伏产品标准 - IEC 61215:2021版系列简介及标准下载

光伏产品标准 - IEC 61215:2021版全系列简介及标准下载 2021年初,IEC正式发布了光伏产品IEC 61215:2021相关系列标准的更新版本,这也是IEC 61215:2016发布以来的首次更新。近五年来光伏行业技术发展迅猛,新标准的推出也迫在眉睫,历…

Java入门教程(二)程序设计基础

Java入门 二.Java程序设计基础1.标识符和关键字1.1标识符概述1.2标识符1.3关键字概述1.4关键字特点: 2.注释2.1概述2.2注释分类 3.Java常量3.1常量概述3.2常量分类 4.数据类型4.1计算机存储单元4.2数据类型4.3内存占用和取值范围 5.Java变量5.1变量概述5.2变量定义5…

Java程序设计教程——第四、六章习题

1、判断题 下标是用于指出数组中位置的数字或变量。(X)同一个数组中可以存放多个不同类型的数据。(X)[数组是相同数据类型的数据元素的集合]数组的下标可以是int型或float型。(X)数组可声明为任何数据类型…

Java程序设计与实践教程

Java简介: Java的名字来源于印度尼西亚爪哇岛的英文名,这个小岛因盛产咖啡而闻名。JavaBeans(咖啡豆),Sun和Java的标识也正是一杯冒着热气的咖啡。Sun(Stanford University Network)公司被美国…

java入门-java程序

前言 java入门系列,自我学习总结,用来记录一些入门简单的知识点和自己的思考总结,不会很详细的进行记录。 参考文档地址:菜鸟教程 参考文档地址:廖雪峰 Java 教程 参考视频笔记:b站尚硅谷 什么是计算机程…

《Java语言程序设计》

一、Java概述 Java是简单的,面向对象的语言,具有分布性、安全性、健壮性;最初版本是解释执行的,后期增加了编译执行;是多线程的、动态的;最主要的是与平台无关,解决了软件移植的问题。 Java语…

Java程序设计教程(第3版)雍俊海 全书例程-1

按书的页码排列 如果代码有误,欢迎评论区指正! p14简单招呼程序例程 public class J_HelloJava {public static void main(String args[ ]){System.out.println("Java语言,您好!");System.out.println("我将成为优秀的Java程…

Java程序设计基础——简单Java程序

简单Java程序 一、Java应用程序1.HelloWorldApp源代码:编译运行: 二、Java小应用程序1.HelloApplet源代码:编译运行: 2.firstApplet源代码:编译运行: 一、Java应用程序 1.HelloWorldApp 源代码&#xff1…

java程序入门

java程序基础入门 第1章 认识java1.1 Windows系统Java开发环境搭建1.2 Java运行及原理分析1.3 java基础语法1.4 本章小结 第2章 变量&运算符2.1 变量的概念和作用2.2常量2.3 数据类型2.4 运算符2.5 本章小结 第3章 流程控制语句3.1 选择结构3.2 循环语句 第1章 认识java J…

Java程序设计入门教程--类的行为

类的成员方法是Java描述类对象行为的途径。成员方法的定义应包含两部分内容:方法声明和方法体。 方法定义常用的格式如下: [public/protected/private][static][final/abstract] returnType methodName([param List]) [throw…

Java入门之基础程序设计

1、Java语言特点了解 1. java语言: 有些语言提供了可移植性、垃圾收集等机制,但是没有提供一个大型的库。如果想要有酷炫的绘图功能、网络连接功能或者数据库存取功能,就必须动手编写代码。Java具备所有这些特性,它是一种功能齐…

Java程序设计(一)

终于开Java课了,完全没动力学习O__O "… 环境 JDK-11.0.2 eclipse-jee-2018-12-R-win32-x86_64 都是官网找最新版本下的。 Java语言基础 实验编号: 实验一 实验主题: Java语言基础 实验目的: (1)熟悉使用Eclipse、Netbe…

Java语言程序设计(基础篇)

网站 更多书籍点击进入>> CiCi岛 下载 电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍 电子书下载(皮皮云盘-点击“普通下载”)购买正版 封页 编辑推荐 Java语言的经典教材,多年来…

Java的基本程序设计

前言: 阅读完本章,你将学习到Java的基本类型、变量与常量、运算符及其进阶部分。 注:关于进阶部分将会标注 " * " , 初学者可以跳过。 目录 一, 变量与常量 1.1 声明变量 1.2 变量的命名规则 1.3 变量初始化 1.4 常量 二, Java基本数据类型 2.1 基本数据类型&…