怎样提升WINCC组态效率_第1页
怎样提升WINCC组态效率_第2页
怎样提升WINCC组态效率_第3页
怎样提升WINCC组态效率_第4页
怎样提升WINCC组态效率_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1熟如何丹学习广组态岭软件葛?笛——胞怎样膛提升寨WI妇NC而C组简态效彼率冻时间影:策20铁10小年3挽月2挣6日振健

踩作喂者:弊中国索自动演化招桌聘网组态软件的出现使我们不需要专门的编程开发人员就可以根据自己的控制对象和任务,任意组态,构建出完整的自动化控制工程。随着工业自动化程度和计算机技术的不断开展,组态软件的应用也越来越广泛。西门子的Wincc就是其中较具代表性的产品,它为用户提供了简便、直观的操作界面,包含大量组态工具,在和西门子的PLC联合实现工业过程动态可视化、数据采集和管理、过程监控和报警、报表等功能上都有其独特的优势。

Wincc不仅提供众多强大的功能,同时还为我们准备很多工具和方法来提高我们组态的效率。下面我们就从组态的第一件事:规划变量,开始了解这些方法。

1.结构变量

首先我们要防止直接取DI、M等PLC区域的数据。这样的做法会导致,如果PLC方面信号有调整,组态变量的地址势必也要调整。使用一个DB〔数据块〕作为Wincc获取变量的中介就可以防止上述情况。这样在较大的工程中可以保证组态开发人员和PLC编程人员同时工作,不必考虑地址的问题,最后按照规划好标签和地址的关系,PLC程序只要将数据赋到DB或从DB取数据连接到自己的变量就可以了。这个数据块起到隔离的作用,也好比电气柜中的端子排。

其次也尽量不要建立单个的布尔型变量,应为Wincc和PLC通讯时,一个布尔变量也占用一个字节,不如把相关的布尔量组合在一个字节内,建立一个变量。例如对于设备的状态可以做一个Stat的字节变量:

在以上讨论的两点的根底上,就可以结合结构变量来大大提高建立标签的效率了。我们可以把某类设备相关的所有控制变量、过程变量定义在一个结构中。在定义结构变量的同时各个成员变量的相对地址就已经定义好了,因此在生成实际变量时只要指定首地址即可。一个好的结构定义,可以减少十几倍的工作量。定义成员变量时可以根据需要指定其为内部变量,还是外部变量,十分灵活。

下面是一个针对PI调节器的结构变量的例子:

需要指出的一点是,在规划结构变量时要考虑周全,一旦需要改变结构必须删除所有该结构变量的实例才可以修改。修改完毕,变量要重新建立。

2.画面模板

建立好结构变量,它在实际组态画面的时候有那些优势呢?那就来看看画面模板是如何利用结构变量的。

在连注工艺中要对每一流的扇形段进行流量调节,是否要为每个调节阀画一个PI调节器呢?不必,我们可以利用Wincc提供的画面模板功能。我们在需要使用弹出窗口时,都会应用一个画面窗口对象〔picturewindows〕,这个对象有一个属性:标签前缀〔tagprefix〕,这个属性为我们制作画面模板提供了便利。

由于画面模板中所引用的所有变量都需要有共同的前缀,所以在定义变量及命名时要做全盘的考虑。最常见的方法是将模板中的变量定义到一个结构变量中,这样生成实例时所有变量就有共同的前缀了。

例如,对于足辊段的调节器定义一个属于PID_C〔结构〕类型的变量F_Flow。就会自动生成如下变量:

F_Flow.MAN_ON

F_Flow.RANGE

F_Flow.PI

F_Flow.TI

F_Flow.MAN

F_Flow.MV_IN

F_Flow.SP_INT

F_Flow.PV_IN

.SP_INT

.PV_IN

.MV_IN

.MAN

.MAN_ON

.RANGE

.PI

.TI

在对模板编程时只要引用成员变量名即可。如设定值〔SP〕的I/O域属性输出值〔outputvalue〕连接到“.SP_INT〞〔注意分隔符“.〞〕。在调用模板时只要设定其标签前缀属性〔tagprefix〕:

SetTagPrefix(lpszPictureName,〞OP_Box〞,〞F_Flow〞);

其中〞OP_Box〞为画面窗口对象〔picturewindows〕的名称。

有时结构已经定义好,又需要在模板中参加一个不在结构中的变量,也不必修改结构。如上例,增加一个微分调节时间,只要定义变量F_Flow_DI,引用时用如下格式:〞_DI〞。因此在使用模板时对变量的命名也是十分重要的,用好了可以事半功倍。

3.变量替换

Wincc为一个画面元素的动态化提供了多种途径:变量、动态对话框、动作脚本。如果我们用变量和动态对话框来实现控制任务时,可以利用变量提换工具快速更改引用的变量,使相同的组态应用到不通的对象上。

对于脚本就不那么简单了。在Wincc5.0之后的版本中,当我们编辑一个C动作的时候会发现脚本编辑器中会自动生成如下代码:

//WINCC:TAGNAME_SECTION_START

//syntax:#defineTagNameInAction"DMTagName"

//nextTagID:1

//WINCC:TAGNAME_SECTION_END

//WINCC:PICNAME_SECTION_START

//syntax:#definePicNameInAction"PictureName"

//nextPicID:1

//WINCC:PICNAME_SECTION_END

其实这就是Wincc为我们提供的提提换变量而特意准备的。例如我们有四个活套。对于1号活套当检测到有钢时由“01L.Spare_1〞变量触发变换颜色显示;当活套起套时由“01L.Stat〞变量触发改变活套Y轴位置显示。其他活套仅仅是将“01L〞用“02L〞、“03L〞、“04L〞替换。通常的方法是先写好1号活套,复制成四个,再逐一修改脚本和触发条件中的变量。但如果我们在脚本中不直接使用变量,而采用下面的形式定义:

//WINCC:TAGNAME_SECTION_START

#defineGetStell"01L.Spare_1"

#defineLoopUp"01L.Stat"

//WINCC:TAGNAME_SECTION_END

就可以顺利完成变量的提换了。应用时先选中需要编辑的对象,如2#活套,再选择菜单“编辑〞—“链接〞—“标签连接〞进行变量替换,如下列图所示。否那么这种方法只能替换触发条件中的变量,而不能替换脚本中的变量。4.工程函数

有时编辑一些对象时会发现其脚本程序非常类似,这时最好将这些脚本程序写成工程函数,在需要时调用。例如,为用颜色来反映设备运行状态,就可以编写SetColorStatus函数:

#include"apdefap.h"

longSetColorStatusMill(intstatus)

{

switch(status)

{

case1://ready

return(CO_OFF);

case2://On

case3://1+2notresetready

return(CO_ON);//enable

case8://Run1

case16://Run2

case9://1+8MCC

case10://2+8Convertresetready

case11://1+2+8Convertnotresetready

case17://1+16MCC

case18://2+16Convertresetready

case19://1+2+16Convertnotresetready

return(CO_RUN);

case32://Fault

case34:

return(CO_ALARM);

default:

return(CO_NOT_READY);

}

}

这个函数在应用的时候要指定一个表示状态的标签〔这个标签要按

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论