一、阀门的状态正常情况下为两种状态,即开状态和关状态。但是在实际应用中我们经常用到的是三种或四种状态显示。
即运行开状态,运行关状态,运行开但开反馈没开故障,运行关但关反馈没关故障。这四种状态显示,后两种可以合并为一种故障状态。
在实际应用中我见过的其他前辈的下列做法
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脚本请见附件。就不发出来了。
以下拉票,
如果你觉得本帖对你无用,请略过,
如果你觉得本帖对你有用,请回帖顶一下。
俗话说只拿不回是可耻的。
楼主最近还看过