企业简介

作为中国自动化领域的权威旗舰网络媒体,控制网创立于1999年7月,是中国举行的第十四届IFAC (International Federation of Automatic Control)大会的中国官方组织机构的唯一指定网站。控制网是中国自动化学会专家咨询工作 委员会(ECC)的秘书处常设之地。是北京自控在线文化传播有限公司开设的网站。

  • 公司类型:其他

联系方式
  • 控制网
  • 地址:北京市海淀区上地十街辉煌国际2号楼1504室
  • 邮编:100085
  • 电话:010-57116291 / 59813326
  • 传真:010-59813329
  • 网址:http://www.kongzhi.net
  • Email:mahongliang@kongzhi.net
  • 联系人:市场部
案例详细
标题巧用编程解决WinCC组态几个常见问题
技术领域仪器仪表
行业化工
简介
内容

 

聂安兴

 

1  前言

 

    中原大化集团复合肥厂(以下简称为复合肥厂)配料称重系统是复合肥生产的中心环节,尿素、磷肥和钾肥以及粘合剂的比例配比直接影响着成品的质量和效用。复合肥厂为提高工艺控制水平,精确配方,采用了PLC控制系统。

 

2  系统结构

 

    复合肥厂控制系统,上位机采用SIEMENS工控机,CPUP4 1.4G128MDRAM20GHD20CRT。下位机为一台S7-400PLC系统,带118×13bit模拟量输入模块,98×14bit模拟量输入模块,632bit24VDC开关量输入模块。上位机与下位机通过MPI电缆连接。

 

    现场的4~20mA24VDC开关量标准信号进入S7-400,上位机通过MPI/DP通讯口从S7-400获得数据。

 

3  组态软件

 

    该系统硬件均采用SIEMENS公司的产品,并采用SIEMENS公司的配套开发软件,上位机用WinCC软件组态,下位机用STEP 7编程实现。整个系统中,下位机实现保护、控制和数据采集的功能,上位机执行显示、报警、存储等功能。

 

        WinCC系统组态编程中,Tag是核心概念,人们把它理解为一个外部数据,可以与下位机的一个内存地址单元同步更新,称为外部Tag;也可以作为WinCC系统组态编程的一个全局变量,称为内部TagInternal Tag)。因此,上位机与下位机的数据通讯是通过外部Tag来实现的,一个工艺参数就对应一个外部Tag,控制系统的大小就决定了外部Tag的多少。WinCC软件根据外部Tag的最大数量分为128512等不同版本,以适应不同情况,价格相差很大。笔者采用的是128Tag版本。

 

4  应用技巧

 

        WinCC是一套功能非常强大的组态软件,但它不可能满足所有的要求。有些功能可以用编程技巧来实现。

 

4.1  Tag传送

        当需要的工艺参数超过WinCC版本限制的Tag数目,可以用嵌入式C语言编程实现多个工艺参数打包成一个Tag传送。

 

        复合肥厂配料称重系统有146个参数,超过了WinCC128Tag的限制,笔者用C语言编程解决了这一问题,基本思想就是把多个参数在下位机内存中连续排列,然后在WinCC中定义一个Tag,它的长度是多个参数之和,取得这个Tag后编程将其分成多个参数。

 

        例如:下位机有两个参数LTN44001LTN44023,都是16位整数,分别存放在DD99.DW146DD99.DW148。在WinCC中定义一个外部Tag,命名为PackageTag,类型为32位整数,并联地址为DD99.DBD146,再定义两个内部Tag,名为LTN44001LTN44023,在 Global Script(全局脚本)中C语言编程如下:

        Union

        {

           Long Dword

           Int Word[2]

        }union

        Union.Dword=GetTagDword(PackageTag)

        SetTagWord(LTN44001,Union.Word[0])

        SetTagWord(LTN44023,Union.Word[0])

        这样,两个参数LTN44001LTN44023就通过一个Tag传送上来了。理论上只要下位机内存足够,可以传送任意数量的参数而不受WinCC版本外部Tag数目的限制。

 

4.2  弹出窗口

        WinCC中的Graphics Designer 不能制作弹出窗口,这一功能可以按下列步骤来实现:

        第一步:制作好弹出窗口的画面。

        第二步:在流程图中准备弹出窗口的位置插入一个与弹出窗口画面同样大小的 Picture Window

        第三步:将Picture WindowMiscellaneous Picture Name 设为弹出窗口画面。将其 Miscellaneous Display属性与一个Binary类型的InternalTag 相关联。

 

        使这个 Binary Tag1,弹出窗口;清0,弹出窗口消失。这样就实现了弹出窗口的功能。另外,在第二步,可以将Picture Window置于另一层(Layer),使它不至于遮盖住流程图。

 

4.3  自动启动

        为了实现WinCC监控系统的自动运行,保证安全性,笔者希望上位机一启动就进入组态的工艺画面,而这一功能可以按下面的步骤实现:

        第一步:将WinCC软件的快捷方式放进WinNT StartProgram中的Startup菜单。

        第二步:进入WinCCComputer Properties设置窗口,点击Graphies-Runtime菜单条,将Start Picture设为自动进入的画面。

        第三步:将WinCC置为Active状态,然后退出WinCC

        再重新启动,就可以自动进入工艺画面。

 

4.4  禁止Windows系统热键

        WinCCWinNT应用软件,而WinNT是一个多任务操作系统。在WinCC运行过程中,如果启动其它程序,可能对系统产生不良影响,所以必须禁止WinNT的系统热键,防止发生这种状况。

 

        进入WinCCComputer Properties设置窗口,点击Parameters菜单条,在Disable Keys栏将Ctrl+Alt+DelAlt+TabCtrl+EscAlt+ Esc前的方框打勾,就可以在WinCC中禁止这些热键,再结合前述的自动启动的方法,可以保证计算机只能运行WinCC

 

5  WinCC组态编程中需注意的问题

 

        (1)  在工艺画面中用I/O Field()来显示工艺参数,I/O Field与该工艺参数的Tag相关联,设置关联属性时,有一项Update cycle(更新周期)非常关键。WinCC是通过MPI/DP通讯从下位机取得数据的,如果Update cycle取得过小,通讯负担就很重,造成系统整体性能下降。所以,在满足需要的前提下,可针对不同的工艺参数Tag,设置适当的Update cycle,比如温度取20秒,压力取5秒,流量取2秒等,以减轻通讯负荷。

 

        (2)  C语言编程时,如用到用户编写的函数,那么在调用该函数的程序中必须增加一条语句。

        //include “APDEFAP.H”

        否则,编译时找不到该函数。

 

6  结语

 

        WinCC软件是一套功能强大的组态软件,能够用于多种用途的控制系统,同时提供嵌入式C语言编程,用户可以通过编程实现特殊的功能。通过组态实践,可以开发出更为有效、贴近现场工艺、更为人性化的监控系统。