面向工控领域的组态软件的画面组态实现
扫描二维码
随时随地手机看文章
引言
组态软件是一种面向工业自动化领域的通用监控与数据 采集系统的软件平台工具,具备对工业自动化系统的监视、控 制、管理等功能,同时也提供丰富的、易于使用的手段和工具。
组态软件的出现,解决了以往过程控制系统中图形报表、 控制回路设计、数据变量设置等功能只能依靠编程来实现的 问题。组态软件能适应不同的应用对象,工程师针对不同的 工程项目改变数据实体(包括控制回路、图形或报表文件等), 而不改变系统的执行代码。组态软件具有实时多任务特征, 满足工业控制系统中同时进行工业现场实时数据的采集、处 理、存储、检索、显示、图形动画展示、报表报警显示和实 时通信等多个并行任务。组态软件为用户提供数据访问安全机 制,只允许有特定操作权限的工程师对组态软件中某些功能 进行操作,防止未授权用户修改开发系统参数或者对工控现场 数据进行更改等操作,防止意外或非法地关闭该系统。组态 软件既提高了系统的运行速度,又保证了系统软件的成熟性、 健壮性和可靠性,为操作员提供非常方便、灵活的操作方式, 而且也便于工程师对系统进行修改、维护和扩展。
1组态软件的功能结构
图1所示是组态软件的功能结构图。组态软件的功能结 构主要包括工程管理、组态配置、组态运行几个部分,本文 将重点介绍组态配置中图形组态的实现。
2组态软件图形组态实现
图形组态可以模拟出生产过程中锅炉、水泵、管道等各 个单元的实际形状,并将生产过程中的模拟量和开关量与画 面中的图形连接起来,组成与工业控制系统现场匹配的动态 画面。
生产过程现场数据变量与画面中的图形元素是相互双向 对应的,生产现场产生的模拟量和开关量可以通过通讯接口 传送到组态画面中实时显示。同时,用户也可以操作运行画面 中的图形元素,通过通讯接口向工业控制系统中的现场设备发 送操作指令,这样使得操作员清晰、简单地监视和控制工业 现场生产过程。
组态软件中的图形组态可分为两个步骤:第一步是利用 组态参数配置模块提供的绘图工具编辑工业控制系统工艺流 程画面,形成与工控现场相对应的静态背景图;二是绑定工艺 流程画面中的某一图形元素对象和数据变量,通过实现动画 连接,生成随实时数据变化而变化的动态画面。
2.1组态软件的画面生成
组态软件运行时的各种显示画面是在图形组态参数配置环境中编辑而成的,这个环境提供了一个面向对象的图形编辑器,提供用户绘制矩形、直线、圆、文本对象和其他管道和矢量绘图工具,该环境为用户提供了一个面向目标的图形编辑 器,为工程师提供了如矩形、工控设备示意图、线条、圆、管 道以及文本等图元对象的矢量图编辑工具,每种图元类型均 能分别设置其基本属性和动画属性孔矢量图保存的是图元 各点的坐标,图形无论放大或缩小均不会变形和失真,并且所 占用的存储空间也比其他图形格式(如bmp、jpeg等)小,图 元的存取采用MFQMicrosoft Function Classes)的串行化技术, 通过串行化可以方便地保存数据,简化程序操作流程。
图元绘制的实现需结合鼠标左键按下、鼠标移动和松开 鼠标左键3个事件,其创建过程分为3个步骤[2]:
(1)创建组态画面图元示例(即鼠标左键按下动作)
创建画面图元时,首先选择确定图元所属类型,当工程 师按下左键时,即创建了相应图元类型的类实例,并将该图元 类型实例指针保存在成员m_objects中;
(2)跟踪鼠标移动修改图元,实现图元实时显示效果(即 鼠标移动动作)
当鼠标移动时,图元大小将随之变化,该过程在图元编 辑工具CDrawTool类的OnMouseMove事件(鼠标移动事件) 程序中实现。该事件可实现图元创建所见即所得的效果,使 工程师在绘制静态背景图时即时获取绘图效果,便于整体画 面编辑和修改,并增强画面编辑的友好型和互动性;
(3)保存新建图元类型示例(即鼠标左键抬起动作) 当工程师抬起鼠标左键时,表示图元对象绘制完成。程
序需保存该图元数据和更新视图显示,并恢复画面绘制前的 相应程序设置。因此,需在CDrawTool中加入的鼠标释放事 件 OnLButtonUp。
2.2组态软件动画连接
集散控制系统组态软件能够模拟工控现场系统的实际运 行情况,要求图形界面友好,通过绑定工艺流程画面中的某一 图形对象和数据变量,将数据变化在画面中实时形象地反应 出来,即实现动画叫通过制作工艺流程图,操作员可以监视 工业现场的情况,及时对紧急情况做出应急处理,防止灾难 发生和造成损失。
对于画面组态中的工艺流程图,其图形元素分为两类, 一类是为了画面完整的静态图,主要对画面起修饰作用;另一 类是反映现场仪表检测量的变化或者工业现场开关、阀门等 控制装置的状态的动态图形。
动态图形元素能实时反映检测量的变化,这就需要将这 些动态图形元素和工业控制系统现场控制仪表的输出数据联 系起来,即变量绑定。由于在组态画面参数设置时,已为每 个现场检测量设置了唯一的变量名,现场数据采集设备的输 出数据会根据工程师所设置的时间间隔传送到上位机数据库 /80物联网技术2014年/第3期 的对应变量中,进行变量绑定则是为动画图形元素添加数据 驱动源,让工作站组态运行环境知道各个图形对象应该根据 哪些变量值进行变化。组态软件在运行状态时会按设定时间 间隔到读取实时数据,并通过动态图形元素的动画进行展示。
动画属性与相应设备的I/O变量相关,变量的变化表现 为画面中动态图形元素的颜色变化、大小变化、位置变化、可 见度变化和闪烁性变化,图形元素的存在形态随着所绑定的 变量值的变化而变化。在组态软件运行环境下,画面中建立了 动画连接的图形即根据数据变量或表达式的变化进行显示。
用户可选中画面中的图形元素进行动态图形元素的动画 连接设置,双击图形元素,即弹出动画连接设置对话框,再 选择该图形的动画类型,例如需要给该图形设置填充属性, 则点击“填充属性”按钮,弹出填充属性设置对话框,在此 对话框内,对图元填充动画进行设置。用户可根据生产运行 实际情况设置相应图元对应的动画连接,利用动画连接,系 统将生成一系列画面组态信息动画信息,并将他们保存在数 据文件中,供组态运行程序调用。图2所示是动画连接设置 界面,图3所示是其组态运行界面图。
2.3画面编辑界面闪烁的解决方法
随着工业现场监测点增加,组态画面中的图形元素将越 来越多,在对界面中图元进行添加、删除、修改等操作时会造 成延迟,甚至是绘图界面闪烁,大大降低了用户的操作体验。
通常由OnPaint函 数调用OnDraw函 数,OnDraw和 OnPaint函数完成绘图过程叫 在MFC绘图处理机制中,重 绘画面时会先清除显示区,使之成为背景色,然后再调用 OnPamt函数进行绘制,而当窗口中图元颜色、位置等变化后 均会重绘画面。为了画面元素易于识别,通常将画面背景色与 图元颜色设置为不同颜色,当重绘画面时背景色与画面中的 显示图形将在极短的时间内交替出现,造成画面窗口刷新闪 烁,影响用户体验。因此,本文采用双缓冲机制来解决界面闪 烁的问题。
双缓冲机制绘图的实现即在画面显示在屏幕上之前,在 内存中创建一个缓冲区对象,该对象与组态画面绘图区域 一致,将图形元素绘制到内存的这个对象上,再通过调用 BOOLBitBlt(intx,inty,intnWidth,intnHeight,CDC*pSrcDC, intxSrc,intySrc,DWORDdwRop)函数,将这个对象上的图形 一并拷贝到画面绘图区域中,由于绘图的速度较快,人眼无法 感觉到闪烁,从而解决了绘图界面闪烁的问题。
其中:x为目标矩形区域的左上角x轴坐标点;y为目 标矩形区域的左上角y轴坐标点;nWidth为在目标设备中 绘制位图的宽度;nHight为在目标设备中绘制位图的高度; pSrcDC为源设备上下文对象指针;xSrc为源设备上下文的起 点x轴坐标,函数从该起点复制位图到目标设备;ySrc为源 设备上下文的起点y轴坐标,函数从该起点复制位图到目标设 备;dwRop为光栅操作代码。
图4所示是采用双缓冲机制绘图的过程图。
3结语
通过组态软件中图形组态的实现,将生产过程中的实时 数据动态展示在组态画面中,组成与生产过程现场相对应的 动态画面,提高了工业控制系统项目管理的灵活性和扩展性, 并为工程师和操作员执行权限范围内的操作提供了方便。
随着电力、石化、能源等领域控制系统规模的不断扩大, 设备逐渐增多,工业控制系统现场环境也变得更复杂,因此 对组态软件系统结构的功能要求、性能要求和安全要求也变 得越来越高。同时,软件工程的理论和工控领域控制系统技术 的不断发展,组态软件的整体设计要求也变得越来越高,对 组态软件的扩充和完善将是工控领域长久的需求。
20211120_61988d5ff1184__面向工控领域的组态软件的画面组态实现