SCADA作为公司新一代的监控系统,期望达到两个目标,一是实现跨平台特性,支持系统平滑运行于各种异构平台及操作系统之上,满足市场对跨平台监控系统的需求,二是系统要在监控系统的技术水平、应用水平上得到深层次的提升,系统的开发目标不仅仅是一套厂站监控系统,更为重要的是能为研发乃至公司提供一套可扩展性强、先进、稳定、高效的新一代监控软件平台。
在跨平台的开发方式上主要有两种方案:
- 使用平台独立的开发语言进行开发;
- 基于第三方提供的平台无关的开发工具、中间件或类库进行开发,由第三方软件实现跨平台特性;
第一种方案,平台独立的开发语言现主要是Java、C/C++,采用Java可以实现“一次编译,到处运行”,从调研情况来看,Java主要是在企业网络和电子商务领域的应用比较成功,但在实时控制领域应用并不是很成熟,实时性能让人担心,据有关的性能测试表明,Java的代码执行速度是C++的1.3倍,而我们开发的系统对实时性的要求是非常苛刻。C/C++ 语言可以满足实时性的特性,但采用C/C++开发,就要一切从底层做起,要求我们对各个硬件平台(如处理器的存取方式)操作系统(OS API)具有精确的了解,开发难度大,而且系统的维护也会变得异常复杂,因此,第一种方案对我们来件,不太可行。
随着软件技术的飞速发展,一些具有跨平台特性的软件工具包得到了迅速发展与应用,这些软件工具包对于各种硬件平台与操作系统具有很好的兼容性,并在在工业应用领域上取得了成功的应用,具有代表性的跨平台工具包主要有自适应网络通信技术(ACE)、数据库访问(OTL)、图形开发包QT等,综合在时间、开发效率及系统维护等方面的考虑,基于成熟的跨平台软件工具包开发的开发模式更加适合我们所处的环境,基于以上考虑,SCADA开发方式采用第二种方案。
跨平台系统总体上包括异构硬件平台、操作系统、通用支撑平台和应用系统,如图1所示。
通用支撑平台是跨平台系统的核心,它提供数据库管理、实时库访问、软总线、图形系统及公用功能组件,具备跨平台特性,将上层应用和底层支撑隔离开,向下兼容各种硬件平台与操作系统,向上为具体应用系统提供二次开发和运行环境,为应用系统的高效稳定运行提供可靠保障。通用支撑平台本身是与具体应用无关的,其提供的服务仅服务于中性数据的处理。采用组件式的系统设计,使得通用支撑平台具有良好的开放性、组态性和可扩展性,以持续满足不断扩充的实时控制系统的需求。在通用支撑平台之上,可以构建各种面向行业应用的应用系统。通用支撑平台包括数据库管理系统、图形系统、网络软总线、进程调度、公用服务组件、WEB发布等。
应用系统构建于通用支撑平台之上,面向各种行业应用,由于通用支撑平台整合了数据库、图形、网络通信等大量通用服务,这使得在其之上组建的应用系统不必再从底层做起,而是共享通用支撑平台提供的各种服务功能,应用系统只需专注于自身应用功能的开发,因此在这种架构下,应用系统的开发将变得更加灵活、高效。
软件框架
系统软件可分为通用平台层和应用系统层两部分,通用平台层包括数据库配置工具、图形库组件、数据库访问组件、实时库管理系统、实时库访问组件、公用组件、进程管理器、网络软总线及WEB服务组成,应用系统则是面向具体行业在通用平台之上建立的软件系统,对变电站监控系统,需实现的软件功能主要有画面编辑工具、操作监视界面、告警窗口、前置通信、第三方接口及高级应用(如VQC、操作票、录波分析)等。