时间:2024-09-03
肖微
【摘要】WinCC西门子上位监控软件,已在钢铁自动化HMI人机界面开发中占有一席之地。在各个不同的冷轧项目HMI开发中,如何避免项目因开发者不同而带有严重的个人风格,导致开发中的大量重复劳动及投用后维护难的问题,成为了当前的研究热点。本文描述了如何在自动化冷轧项目HMI开发中,运用WinCC V6.2 集成的C脚本库,来达到使各个不同生产线的HMI项目具有通用性,以及便于管理的目的。
【关键词】WinCC V6.2;HMI;C脚本库
引言
近几年,冷轧薄板生产规模日益壮大,生产工艺也日趋成熟。由此,冷轧生产线自动化控制软件开发技术也日渐完善。随着这一趋势,WinCC这一运行于Microsoft Windows2000和XP下的Windows操作系统控制中心,被越来越广泛于应用到生产线运行过程监控中,跻身于可视化过程通信和监视软件之首。
1.WinCC简介
SIMATIC WinCC是第一个使用最新的32位技术的过程监视系统,它集成了SCADA、组态、脚本语言和OPC通讯等先进技术,具有良好的开放性和灵活性。一方面,其高水平的创新,使用户在早期就认识到即将到来的发展趋势并予以实现;另一方面,其基于标准的长期产品策略,可确保用户的投资利益。凭借这种战略思想,WinCC已发展成为欧洲市场中的领导者,乃至业界遵循的标准[1]。
在冷轧项目中,我们将WinCC V6.2集成于可编程逻辑控制软件Step7 V5.4和PLC300/400等多种自动化设备,在此环境下进行画面开发、脚本编程、项目组态、信号编译、数据管理,来实现HMI监视、控制、报警、趋势记录等功能。
2.全局脚本功能的实现
基于WinCC具有强大的功能,WinCC画面编辑器本身已经为用户提供了各种各样的控件,每一种控件各自又带有十几,甚至于几十种属性项和动作触发器。通过触发不同属性项或者动作的变量,我们就可以使画面实现我们所需要的功能,例如I/O域功能、颜色状态指示、通过按钮弹出子窗口功能等等。那么很多人可能就会产生一个疑问,既然画面编辑器已经可以让画面实现绝大部分用户所需求的功能,那么应用全局脚本是否是必要的?其意义又体现在何处?
要深刻理解全局脚本的含义,我们首先要对全局脚本编辑器的结构、特性及调用方法有一个初步的概念和认识。
2.1 脚本分类结构
全局脚本是C语言函数和动作的通称,根据其不同的类型,可用于一个给定的项目或众多项目中。脚本被用于给对象组态动作并通过系统内部C语言编译器来处理,全局脚本动作用于过程执行的运行中,一个触发可以开始这些动作的执行[2]。
在WinCC中打开全局脚本编辑器可以看到,全局脚本分为以下几个大类:
①Project functions(项目函数)
②Standard functions(标准函数)
③Internal functions(内部函数)
④Actions(动作)
(1)项目函数,是可以自己创建新的函数或者编辑已有的函数。项目函数创建后,被保存在项目路径下的Library文件夹中,因此项目函数是跟着项目“走”的,即便重新安装WinCC,也不会丢失。它可以被动作、全局动作,以及所有脚本的地方所调用。如果在一个项目中,需要经常反复用同一个C动作实现相同的功能,我们就可以使用项目函数。
修改一个项目函数会影响该项目中所有正在使用该函数的C动作。如果在一个WinCC项目中没有使用项目函数的功能,那么就必须手动逐个修改所有相关的C动作,通常一个冷轧项目中会重复运用的C动作,少则几十,多则上百,逐个手工修改不仅量大且繁琐,而且容易出错。由此不难看出,运用项目函数这不但可以简化组态,更可以方便维护和故障检测工作。
基于项目函数可以被自由创建和跟项目“走”的特点,因此项目函数还具有在不同的项目中可重复使用的特性。在开发新的WinCC项目时,遇到与老项目中同样的C动作,我们只需把老项目中Library文件夹下相应的脚本文件拷贝入新项目文件夹的同样位置后,加载入库即可调用。
项目函数另一大特点是函数脚本可以通过指定口令进行保护,以防他人随意更改。这样可以保护组态数据和知识产权。
(2)标准函数,除系统自带的函数外,也可以被创建和修改,标准函数存储在WinCC的安装路径中的aplib文件夹中。
因此创建标准函数较之项目函数有利有弊。其利在于在不需要重装WinCC系统的情况下,新项目可以直接使用已经存在的标准函数,无需拷贝和重新加载函数文件。而弊在于创建的标准函数一旦遇到WinCC需要的重装的问题,如不特别备份,非系统自带的标准函数就会丢失。
标准函数中,WinCC系统自带一个标准函数集,内容包括:
①Alarm组:包含控制WinCC報警控件的函数。用于工具栏中的每一个按钮。
②Graphics组:包含用于编程图形系统的函数。
③Report组:包含用来启动打印作业的打印预览或打印输出本身的函数。
④TagLog组:包含控制WinCC表格控件和WinCC趋势控件的函数。
⑤WinCC组:包含影响整个WinCC系统的函数。
⑥Windows组:包含Execute Program函数。
(3)内部函数,WinCC系统自带的函数,既不能创建新的内部函数,也不能修改已存在的内部函数。内部函数在整个项目中都能被识别用来画图形对象和使归档动态化,并用于项目函数、标准函数和全局脚本动作中。
(4)动作,是一组全局脚本,可以被创建和修改,动作脚本保存在项目文件夹下的Pas文件夹中。WinCC一旦运行后,全局脚本无论被调用在任何画面,都被触发。
2.2 脚本的应用
我们先要明确要被创建的全局脚本的类型,如上节内容,可以被创建的类型有项目函数,标准函数和动作。
创建函数一般分为5个步骤:
①制定函数
②添加函数信息
③编译函数
④保存函数
⑤生成头文件
下面以冷轧连退项目中的一个简单的项目函数“SetCSMColor()”函数为例,来说明函数的具体创建过程和调用方法。
首先在新建一个项目函数,在函数编辑栏中写入以下函数内容。本函数的功能是在CSM画面中电机的指示灯根据信号收到的值不同,变换不同的颜色。
#include “apdefap.h”
long SetCSMColor(char* DwBackColor)
{
switch(GetTagDWord(DwBackColor))
{
case 0:return(CO_DKGRAY); // default
case 1:return(CO_GREEN); // switch on
case 2:return(CO_DKBLUE); // off and ready
case 4:return(CO_MAGENTA); // off and not ready
case 8:return(CO_YELLOW); // warning
case 16:return(CO_RED); // fault-alarm
case 32:return(CO_DKBLUE); // switch on active
case 64:return(CO_GREEN); // switching running
case 128:return(CO_DKGREEN); // run
default:return(CO_DKGRAY);
}
}
从以上函数内容中我们可以发现,在这个项目函数中,还调用了一个名为“GetTagDWord()”,这是一个WinCC自带的内部函数。在此说明,各种函数之间,只要符合功能需求,它们都是可以被自由调用的。
编写完函数内容以后,我们可以通过点击工具栏中的按钮来添加函数的一些相关信息,创建密码及版本号。然后点击按钮编译函数,编译通过后点击按钮保存函数到项目文件夹下的Library文件夹内,例如路径D:\EGL_HMI\library。点击按钮生成头文件,要注意的是,创建一个新的函数后,只有当函数的头文件被产生,此新函数才会显示在全局脚本函数编辑器的函数浏览器中。
图3 全局脚本属性窗口
当函数脚本被创建完成后,我们就可以在项目中使用该脚本了。调用脚本的方法非常便捷,在需要产生动作的控件的属性项,点击右键选择“C动作”,在右侧代码窗口中将光标移动到需要调用函数的位置,然后在窗口的左侧函数栏中找到需要调用的函数双击,在弹出小窗口中更改函数变量名及类型,点击“确定”即可完成调用。
图4 C函数调用窗口
3.全局脚本在冷轧项目中的意义
自从越来越多的冷轧WinCC项目使用了全局脚本功能以后,大大减少了画面开发工作中的机械式重复劳动。而其更深远的意义在于,全局脚本功能使各个冷轧项目的画面开发凝聚成了一个模板式的体系,所有冷轧项目的画面风格、状态显示、功能实现方法等各方面,形成了一个规范化的统一。在没有“统一”之前,往往冷轧项目画面开发者带有很大的自主性,画面功能实现方法仅有开发者本身熟悉,一旦开发者有特殊情况不能继续开发,或者是无法参与投产后的维护工作,那么接手其工作的人员就要花大量的时间和精力去熟悉画面的功能和风格。现在有了这样的“统一”,为我们在冷轧项目的調试和维护工作上带来了很大的便捷,提高了公司人员的可调动性,接手工作的人员能够以最快的速度投入到画面的开发和维护工作中去。
4.结束语
全局脚本既可以用C语言写,也可以用VB来写,所以要求开发人员至少要对这两种计算机编程语言其中的一种有一定的了解。熟练掌握C或VB,可以对应用全局脚本有很大的帮助。
本文对WinCC全局脚本功能进行了研究,重点分析了全局脚本的功能和实际应用中的优势,对WinCC开发L1 HMI工作具有一定的指导意义。
参考文献
[1]梁绵鑫.WinCC基础及应用开发指南[M].机械工业出版社,2009.
[2]WINCC全局脚本手册[S].
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!