1.3 IEC 61499标准与IEC 61131-3标准的主要区别
在过去,IEC 61499标准曾被认为是IEC 61131-3标准的后继替代品,然而经过10余年的交错发展,两个标准的当前关系更多是互补而非简单替代。IEC 61131-3标准专注于带有单个处理器或几个紧密耦合的多处理器小型PLC的编程语言标准化,并为此定义了针对单台控制设备的软件模型,但是却缺乏对整个控制系统的建模支持。作为补充,IEC 61499标准中的系统配置模型涵盖了一个分布式工业控制系统所需的控制、通信和部署等完整信息。另一方面,IEC 61131-3标准定义的是编程语言,而IEC 61499标准定义的是系统级建模语言;前者侧重于通过代码实现逻辑功能,而后者则首先利用规则定义结构中每个组件的语义,并通过文字或图形等抽象化方式表述系统的架构。因此,IEC 61131-3标准定义的是编程语言,而IEC 61499标准定义的则是系统级建模语言。另外,相较于统一建模语言(Unified Modeling Language, UML),IEC 61499标准在详细的语法规范外还对功能块网络的执行语义做出详细定义,因此基于IEC 61499标准开发的应用能够直接部署并执行,而不用与UML一样还需要额外的代码生成步骤。综上所述,IEC 61499标准提出了一种针对分布式工业控制系统的设计、开发、测试和部署的所见即所得一体化方案,因此也被称作面向分布式工业控制系统的可执行系统级建模语言(System-Level Executable Modeling Language)。
在基于IEC 61131-3标准的工业控制系统开发过程中,软件与硬件一般是强绑定关系,当选定硬件平台后才能开始软件开发。与此相反,IEC 61499标准提供的功能块网络模型则是完全独立于硬件的软件模型,即开发者可以在硬件尚未选型的情况下先开发软件;当硬件与网络拓扑定型之后,只需要将功能块实例一一映射到相应的硬件上即可实现软硬件的绑定。这种松散耦合的方式使得IEC 61499标准中软硬件完全解耦,当需要调整任务分配时,只需将相应的功能块映射到其他硬件资源上即可完成部署方案,而无需对代码做任何修改。另外,与基于IEC 61131-3标准的PLC需要通过频繁更改代码来实现任务的重新分配不同,基于IEC 61499标准的控制系统可以根据现场设备的实时状态而动态地重构代码与配置,这为实现自主智能的生产系统提供了强有力的支撑。在执行层面上,基于IEC 61131-3标准的PLC遵循轮询(Cyclic-Scan)机制,即不断重复读取输入变量、运算逻辑、更新输出变量这一循环。虽然在IEC 61131-3标准中也可以设定中断任务,但整体仍然是基于循环扫描这一执行规则。IEC 61499标准则以事件驱动机制(Event-Driven)作为核心,即功能块只有在被事件触发时才会被执行。基于事件触发的执行机制让功能块在大多数时间都处于闲置状态,这样可以有效地降低计算资源的占用率,因此相较于IEC 61131-3而言,同一控制程序在IEC 61499运行环境中的CPU占用率都较低。
IEC 61499标准在IEC 61131-3标准所提供的编程语言基础上,进一步提供了系统级统一建模语言、软硬件解耦的开发模式以及事件触发的执行机制,这些创新特性为新一代的PLC和DCS系统提供了更为高效与灵活的设计和开发模式。