上位监控软件在线扩展功能的开发
1概述
在过程控制系统中,上位监控程序已经成了系统不可缺少的组成部分。通过上位监控程序对系统进行控制可以使操作的难度和复杂度都大大降低。随着计算机功能的日益增强,监控程序能完成的功能也越来越多,在有些情况下可以让上位机协助下位机完成控制功能。
目前,上位机程序设计主要有两种方式,其一是采用专门的组态软件,如WinCC、组态王等;另外就是通过编程语言自行开发。第一种方法操作简单、效率高、对开发人员的要求相对较低,但成本较高;第二种方法相对要复杂,要求开发者具有较高的编程水平,开发周期长,但与第一种方法比具有灵活、成本低的优点。对于规模较小的项目出于降低成本的考虑可以采用第二种方法进行开发。采用第二种方法就需要解决一些额外的技术难点,比如系统已经投入运行后可能会由于生产规模的扩大等原因需要增加额外的设备或模块,这种情况下就要求监控程序也要做出相应的改动。这时采用第二种方法开发的程序一般就会遇到修改工作量大、需要停机升级程序的问题。特别对于后一问题,在上位机协助下位机完成控制功能时是应该尽量避免出现的。本文就是针对这一问题提出的基于插件技术的解决方案。
2插件背景知识
2.1插件原理
插件是一种遵循一定规范的应用程序接口的程序,可以理解为一个插件就是一种新功能。实现插件功能对插件容器和插件本身都要进行考虑。这里首先要解决的问题就是插件容器不知道将来要安装的插件要实现什么功能,而插件本身可能需要知道一些插件容器的信息来更好的实现与容器之间的结合。基于这种考虑,就需要在它们之间定义具体的接口(一般采用接口函数),接口的实际功能完全依赖于插件本身,如图1所示。
图1 插件结构图
采用插件的主要目的就是在不改动监控程序(插件容器)的前提下扩展监控程序的功能,因此,应该在程序设计之初就要考虑接口函数的参数和返回类型。另外,由于插件一般是在程序运行过程中安装的,那么在下一次程序启动的时候希望程序能自动的添加已经安装过的插件,因此要使监控程序对已经安装的插件进行统一管理。
2.2动态链接库(DLL)
DLL是建立在客户/服务器通信的概念上,包含若干函数、类或资源的库文件。函数和数据被存储在一个DLL(服务器)上并由一个或多个客户导出而使用,这些客户可以是应用程序或者是其它的DLL。
微软的Visual C++支持三种DLL,它们分别是Non-MFC DLL(非MFC动态库)、Regular DLL(常规DLL)、 Extension DLL(扩展DLL)。Non-MFC DLL指的是不用MFC(微软基础类)的类库结构,直接用C语言写的DLL,其导出的函数是标准的C接口,能被非MFC或MFC编写的应用程序所调用。Regular DLL和下述的Extension DLL一样,是用MFC类库编写的,它的一个明显的特点是在源文件里有一个继承CWinApp的类(注意:此类DLL虽然从CWinApp派生,但没有消息循环,被导出的函数是C函数、C++类或者C++成员函数),调用常规DLL的应用程序不必是MFC应用程序,只要是能调用类C函数的应用程序就可以,它们可以是在Visual C++、 Dephi、Visual Basic、Borland C等编译环境下利用DLL开发的应用程序。
相关文章
- 2024-11-05Z箍缩实验装置高压低抖动Marx发生器
- 2023-08-16基于PIC16F877的红外测距系统
- 2022-11-15智能型红外遥控器的设计应用
- 2024-02-27超声检测中双孔法调节扫描速度的应用
- 2024-09-19双制冷温度双工质吸收制冷系统Ⅱ的模拟
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。