首页 上一页 1 2 3 4 下一页 尾页

Wincc7.0画面编辑技巧(三) 点击:16217 | 回复:61



tyfeixian

    
  • 精华:4帖
  • 求助:2帖
  • 帖子:14帖 | 50回
  • 年度积分:27
  • 历史总积分:1276
  • 注册:2006年8月02日
发表于:2015-11-17 19:32:17
楼主

一、阀门的状态正常情况下为两种状态,即开状态和关状态。但是在实际应用中我们经常用到的是三种或四种状态显示。

即运行开状态,运行关状态,运行开但开反馈没开故障,运行关但关反馈没关故障。这四种状态显示,后两种可以合并为一种故障状态。

在实际应用中我见过的其他前辈的下列做法

1、Honeywell PKS C200 在DCS中将开反馈,关反馈,开关信号做运算得出一个float标签1、2、3、4在PKS中通过状态显示这四种状态。

2、Honeywell HC900  在DCS中将开反馈,关反馈,开关信号做逻辑与或得出一个bool标签,在HS中通过图层的叠加显示三种状态。

3、Siemens 315 在PL从中将开反馈,关反馈,开关信号做逻辑与或得出一个bool变量,在Wincc中通过闪烁来显示三种状态。

以上做法的好坏就不评价了。我说说我的做法。

画好阀门图形,尽量使用Wincc自带多边形化(下列演示中使用圆代替),当然也可以使用控件(控件的代码请自行研究)。

方案1

右击鼠标--》属性--》选择属性--》闪烁--》闪烁背景激活--》C动作

为什么要选择C动作而不是VBS动作那?请仔细查看Wincc帮助中的C与VBS运行速度的对比。我使用了C和vbs同用做了一个画面,当画面的元件超过200不到300时vbs编写的已经有些轻微的卡顿了,而C运行完美。所有我是尽量只是在鼠标点击或变量不是频繁变化时使用vbs脚本。

不过说实话C写的读起来没有vbs写的容易读懂,也可能是我的C没学好的缘故。

粘贴下来代码:

代码说明 

在画面周期内,读取变量test1、test2、test3到内部变量,如果in1开则显示绿色,如果in2开则显示红色,如果output开而in1没开或者output关而in2没开,则将闪烁打开,闪烁的状态由图一中设置。

方案二

右击鼠标--》属性--》选择属性--》颜色--》背景颜色--》C动作


二、模拟量的报警的画面显示。

首先建立内部变量如图

可以先建立好一个然后使用TAG Export Import导出使用excel编辑完再倒入。同时在建立如下图所示的几个变量,后期使用

每个模拟量对应一个高限和底限,如果有高高限和低低限的需要也将这些建立成变量。

再在模拟量显示的输入输出域或柱状控件上点击右键。

右击鼠标--》属性--》选择属性--》颜色--》背景颜色--》C动作

插入代码

在报警记录中


添加一条报警记录点

给这个报警点添加一个上限报警和一个下限报警如图

注意:那个间接必须钩选上。点击确定即全部配置好了。

这样配置完后会发现有一个缺点,就是每次退出Wincc重启后所有的内部变量全部变成0无法保存。

下面介绍如何保存内部变量的数据。

三、先介绍一种笨办法。

新建一个页面连接所有需要保存的内部变量,位置随意,不需要刻意的排列,如下图

然后建立一个excel表格如图

注意表格内的名称必须与变量的名称一样

然后再启动画面中的空白地方右击鼠标选择属性,如图

插入下列代码

Dim HA

Set HA = HMIRuntime.Tags("F7010LT_HA")

HA.Read 

If HA.Value <=0 Then    

Canshu

End if

代码内容是判断其中的莫一个内部变量的值是否为0,如果为0则运行canshu脚本。如果不为0则什么也不做。

其主要目的在于防止在Wincc打开时从其他画面切换到启动画面时在此运行canshu脚本。

canshu脚本在全局脚本中编写如图:



canshu脚本请见附件。就不发出来了。




以下拉票,

如果你觉得本帖对你无用,请略过,

如果你觉得本帖对你有用,请回帖顶一下。

俗话说只拿不回是可耻的。



正在下载,请等待……
下载附件需2积分!



楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 4 下一页 尾页