科技视界Science&Technology Vision
科创直通车DOI:10.19694/jki.issn2095-2457.2022.29.02上位机软件开发培训
基于WPF的大型养路机械上位
机组态软件开发
朱鸿野
(中国铁建高新装备股份有限公司,云南昆明650215)
【摘要】针对大型养路机械上位机监控系统,目前都是采用市面上的通用型组态软件进行开发设计,因此在一些特殊需求上,特别是在智能控制的大背景下,通用型组态软件稍显力不从心。本文提出基于WPF技术自行开发组态软件,专用于大型养路机械上位机监控系统,可以很好的地对上位机系统进行定制化开发,从而提高人机交互性能。
【关键词】大型养路机械;上位机;HMI;WPF
0引言
组态软件,又称组态监控系统软件,是指用于自动控制的专用软件,也是指用于开发监控程序的软件平台和开发环境。这些软件为电气人员设计,让非计算机软件专业的设计人员通过灵活的组态方式,快速生成工业自动控制监控系统的软件工具[1]。WPF(Windows Presentation Foundation)是用于Windows的现代图形显示系统[2]。
目前大型养路机械使用的上位机系统,主要是基于各大电子公司的通用型组态软件进行设计开发的,这些组态软件结构庞大,功能多,对于大型养路机械来说,许多功能用不到,造成很大浪费。这些组态软件为了照顾各行各业的使用,需要考虑通用性,因此针对大型养路机械设备的某些特殊需求,实现起来有一定的局限性。同时各品牌上位机组态软件都是以适配自家下位机PLC为先,因此对于大型养路机械的不同品牌PLC来说,需要不同的上位机组态软件,界面不利于统一。
对比市面上的通用型组态软件,结合大型养路机械特点,基于WPF自行开发一款专用的上位机组态软件,相比行业内的组态软件,功能专一,用户界面辨识度高,友好,容易上手,可以更加灵活地进行车辆上位机界面设计,实现各种各样自定义功能。
1平台总体设计
1.1软件系统环境
整个软件系统分为开发环境、运行环境两大部分[3],其体系结构如图1所示。在整个系统中,开发环境和运行环境相对独立。工程在开发环境下组态好后进入运行环境开始运行,工作流程类似与常规组态软件。
在开发环境下,该软件提供一套基础的设计工具,供组态人员(非C#开发人员)使用,组态人员根据电气需求,通过简单的操作既能设计制作机械设备触摸屏的上位机监控画面。组态人员可使用该软件录入设备PLC变量信息、选择PLC驱动、关联PLC变量与界面控件、定义报警、归档变量等操作。组态人员的操作以文件的形式
作者简介:朱鸿野,工程师,研究方向为大型养路机械电气系统控制软件设计。
004
Science&Technology Vision科技视界保存,供运行环境调用。在运行环境下,系统根据组态人员的组态设计文件,读写PLC的状态和数值,对实时数据、历史数据的处理和储存,报警处理等,完成上位机监控系统的运行。
1.2功能需求分析
组态软件主要包括的功能内容有:(1)人机界面(画面、图元)设计器;(2)变量管理器(驱动、UI
关联、报警、归档);(3)数据库管理器;(4)数据导出功能;(5)用户权限管理器;(6)脚本功能。
结合现有工况,及自行开发组态软件的难易程度,我们主要考虑的功能模块有:变量管理器(驱动、UI关联、报警、归档)、数据导入导出功能、用户权限。人机界面(画面、图元)设计器,由于开发难度较大,选用C#的集成开发环境Visual Studio作为人机界面设计器使用。脚本功能的开发难度也较大,由于目前设备组态人机界面时很少使用脚本功能,基本逻辑都在下位机PLC里完成,因此开发不考虑脚本功能的实现。
1.3平台总体结构
该软件平台后台基于框架搭建服务端平台,前端采用WPF框架,使用BLEND设计器进行二次开发。系统耦合度低便于扩展,业务化配置能力强,业务系统设计采用C/S结构,使用前后端分离技术,方便系统扩展和维护。
网络结构采用三层结构:下位机、中间组件、上位机。三层结构的主要优点:(1)界面设计与后台服务开发可以分开工作,只要接口不变,一层需求更改不会影响另一层的工作,维护相对简单。(2)设备PLC只需要和中间组件进行通信连接,连接压力小。(3)分布性广,灵活方便。中间组件可同时部署在两台上位机上,互为冗余备份,
提供系统的可靠性。
图1软件系统结构图2网络结构
2详细设计与实现
2.1技术选型
技术平台:选用微软的编程环境.NET,编程语言选C#,图形显示系统选用WPF技术,集成开发环境选Visual Studio2019。相比MFC、Qt、Labview、Winform等传统技术,使用WPF技术主要有三个优点:(1)界面设计与分辨率无关;(2)前端界面设计和后端业务逻辑设计分离,有利于工作分工;(3)WPF技术可利用显卡渲染界面,提高CPU利用率以及软件运行效率[4]。
软件框架:选择WPF系统的Prism开源框架作为整个应用程序的系统架构。Prism是由微软开发的项目,目的在于帮助开发人员构建松散耦合的、更灵活、更易于维护并且更易于测试的WPF应用。使用Prism可以使程序开发更趋于模块化。多个离散的、松耦合的模块通过Prism组合成为一个应用程序。界面设计Prism采用MVVM的设计模式,更好的分离的前后端的开发工作。基于Prism开发的应用程序符合我们意愿。
科创直通车
005
科技视界Science&Technology Vision
科创直通车2.2控件库
该平台的易用性主要体现在完善的控件库上,平台采用Visual Studio配套的Blend作为控件设计器,进行
控件开发。主要开发以下几种控件。
(1)指示灯:可关联控制系统信号,进行状态指示。(2)按钮:可对控制系统进行写变量操作,用于控制设备启停等。(3)导航按钮:主要用于界面的切换。(4)键盘:监控屏幕一般为触摸屏,不配备键盘,特开发一个键盘控件方便使用。(5)仪表:仪表是界面比较重要的UI展示,如发动机转速仪表、液压走行相关压力仪表,以及压力、温度的进度条、起道、拨道仪表控件等。
对控件进行规划,主要实现功能有:读数据、写数据、数据尺度变换、控件信息提示、变量交换(用于前后司机室方向相反控制)、动画报警、状态显示几种功能。
2.3变量管理
设备控制系统和该平台项目所生成的数据通过变量进行数据通信[5]。变量管理工具将对项目所使用的变量和通讯驱动程序进行管理。
变量管理工具具有目录树的层级划分,总共分4级,第1级“S”为服务器,主要提供服务器的数据配置;下一级为“D”通讯驱动,用于驱动的选择;下一级为“Group”变量组,提供一个变量分组功能,且各组可配置不同的通讯参数配置;再下一级为“C”类别,没有动态特性,主要用来对组下面的变量进行再分组,方便查变量。2.4通讯过程
该平台与大机控制系统之间的通讯通过驱动程序进行。定义统一的设备平台通讯驱动接口,根据各个PLC 不同厂家提供的驱动类库,进行适配开发工作,目的是为了平台可在所实现的驱动中,不需要代码开发,即可方便切换。该平台主要支持的驱动有:OPC DA、OPC UA、ModbusTCP、西门子S7等多种通信协议。
下位机PLC采集传感器的数值后,平台的整个通讯过程分为三个阶段:平台服务端与PLC、平台客户端与平台服务端、上位机界面与平台客户端。服务端对PLC请求数据主要有两种方式:轮询和订阅。平台的服务端与客户端的通讯,主要基于TCP/IP协议,开发以自定义协议为主。服务端数据推送,支持多客户端推送,对每个客户进行唯一ID认证。
2.5报警服务
该平台专门开发了报警控件,并且提供一个最新报警显示控件。报警列表提供4种消息状态:(1)现场报警存在,没点复位按钮,红底白字显示条目;(2)现场报警消失,没点复位按钮,白底红字显示条目;(3)现场报警存在,按下复位按钮,红底黑字显示条目;(4)现场报警消失,按下复位按钮,显示条目消失。
3结语
该平台组态软件基于WPF技术开发,采用前后端分离架构和模块化思想,实现了控制系统通讯组态、人机界面组态、控件库管理、变量编辑器等功能。该组态软件开发维护便捷,易学易用,可以快速响应界面需求变更,对开发者的计算机软件水平要求不高,开发者可以花更多的精力用于业务逻辑的工作中。已在多个设备中使用,实际运行效率显著,满足控制系统的监控要求。
【参考文献】
[1]羊建树.远程访问方法和工业信息与控制系统组态软件体系结构的研究,铁道部科学研究院,1999.
[2][美]Matthew MacDonald.WPF编程宝典:C#2012版[M].王德才,译.北京:清华大学出版社,2012.
[3]孙莉.基于C#组态软件中图形界面系统的设计,信息技术与信息化,2014(1):59-63.
[4]张玉民,何鑫,杨百川.基于WPF技术的无人机地面站软件设计与实现,计算机工程与设计,2019(4):1167-1173.
[5]曾羽琴.计算机实时监控组态软件的研究与开发[D].东南大学,2007.
006