面向过程的编译和解释环境在工控组态软件系统中的应用
1 基于COM的工控组态软件的框架分析
传统的工控组态软件[1]一般可以分为两部分:组态设计系统和组态运行系统。组态设计系统可以按照实际工业流程的需要选择工控功能模块,设置各个模块间的关联和数据流向等系统参数,从而建立一套完整的控制系统。组态运行系统建立在组态设计系统基础之上,它按照设计系统设定的参数启动相应的工控功能模块,并负责模块之间数据的传输和并发控制等。
基于COM的工控组态软件[2]以面向对象的柔性设计与控制理论为基础[3],将面向对象技术应用于控制领域,把控制领域中的功能模块和对应的控制数据抽象封装成COM组件,按照开放式软件平台的原则将这些COM组件以插件的形式被加载到软件系统中。COM组件是与语言无关的二进制组件,使用任何语言开发的符合接口规定的COM组件都可以在组态软件系统中使用,因此提高了组态软件的开放性和收缩性,在系统设计阶段,设计人员可以像搭积木一样快速而直观的搭建出一条控制流水线。
每个COM组件是被单独开发的高度抽象的功能模块,它偏重于数据的计算处理而缺乏对系统环境变化的应变能力,组件之间的数据交互能力也较差。它与系统和其它的控制组件的耦合性较小,要完全同其它组件融合在一起并在大的系统环境中良好地运转和适度灵活的应变系统的变化是比较困难的。这就需要在组态设计系统中使用辅助控制语言对这些组件的活动加以控制,规范控制流程。如图1所示,在组态设计系统中引入事件(Event)的概念,在事件的响应函数中使用辅助控制语言规范控制流程和组件的活动,经过编译后生成中间代码提交给组态运行系统。相应地在组态运行系统中建立解释环境对中间代码进行解释执行,从而达到规范流程控制的目的。
图1 编译和解释运行原理图
2 COM组件和自动化对象
COM是用于开发分布式软件模型的组件化程序设计模型,它是建立在二进制可执行代码级基础上的。支持IDispatch接口的COM组件对象称为自动化对象,该接口允许将一个函数的名称以字符串的形式提交给组件,组件根据函数的名称自动调用相应的函数。该接口提供的这种机制可实现对COM组件的统一调度。本文介绍的编译器和解释器的工作就建立在该机制之上,它为如何在解释执行环境中启动二进制可执行代码提供了很好的解决方案。
3 编译器和解释器体系的框架分析
3.1 控制语言功能的选择
C语言功能丰富,表达能力强,目标程序效率高,可移植性好,控制灵活,普及面广,非常适用于工业控制领域。C语言功能强,语法规则也很庞大,但是要构造一个完整的C语言编译器用于流程的控制则显得过于浪费。我们构造了C语言语法规则的一个子集——Child-C,该子集保留了C语言的分支、循环、赋值、常量和变量的定义以及函数调用等基本语法规则,去掉了汇编语言的处理能力。
相关文章
- 2023-07-20光栅投影轮廓测量的系统标定技术
- 2023-03-09铜氨液流量测量的改进
- 2023-12-14浅谈减压阀的结构设计
- 2023-12-10吸收式制冷循环系统的热力学分析
- 2023-11-19轴类零件的高精度形状误差检测方法研究
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。