VB与C脚本总结 bartender vb脚本

西门子给的例子

1.在使用wincc6.2 SP3遇到如下问题:

我想在一个界面上做两个按钮,两个按钮连接一个wincc中定义好的内部变量a。a为内部变量是有符号16位数,

当a等于1时,我输入输出域显示内容为1个变量;

当a等于1时,我输入输出域显示内容为另一个变量;

我想用VB做脚本,不知道怎么编辑是对的,已经试过可是编译总是遇到问题,您能给指导一下吗?

在画面中新建一个输入/输出域,打开属性对话框。选择
属性, 输出/输入, 域类型:输出
属性, 输出/输入, 输出值,右键,VBS动作。


以下VBS脚本仅供参考:

Dim a,x,y,temp

Settemp=HMIRuntime.ActiveScreen.ScreenItems("输入输出域1")

Set a = HMIRuntime.Tags("a")
a.Read

Set x = HMIRuntime.Tags("x")
x.Read

Set y = HMIRuntime.Tags("y")
y.Read

If a.value=1 Then
temp.OutputValue = x.Value
VB与C脚本总结 bartender vb脚本
End If

If a.value<>1 Then
temp.OutputValue = y.Value
End If

2.我把用户在界面上输入的数值a,给内部变量b,

根据一个内部变量C的值:

c=1,把b给外部变量k1

c=2,把b给外部变量k2

If HMIRuntime.Tags("c").Read=1Then
HMIRuntime.Tags("K1").WriteHMIRuntime.Tags("b").Read
End If

If HMIRuntime.Tags("c").Read=2Then
HMIRuntime.Tags("K2").WriteHMIRuntime.Tags("b").Read
End If

1.输出值显示

根据DP号不同的值判断输出域显示不同的频率反馈。

在属性/输入输出域/域类型中编辑VB脚本

Dim a,temp

Set a =HMIRuntime.Tags("DP号")

a.Read

Settemp=HMIRuntime.ActiveScreen.ScreenItems("输入输出域3")

If a.Value=1 Then

Dim b

Set b =HMIRuntime.Tags("频率反馈_1")

b.Read

temp.OutputValue=b.Value

End If

If a.Value =3 Then

Dim c

Set c =HMIRuntime.Tags("频率反馈_2")

c.Read

temp.OutputValue=c.Value

End If

2.圆颜色变化(运行状态)

根据不同的DP号,圆显示不同的变量,

根据变量的值是0还是1,圆显示棕色还是绿色

属性/圆/背景色中编辑VB脚本

Dim a,b,c, temp

Settemp=HMIRuntime.ActiveScreen.ScreenItems("圆1")

Set a =HMIRuntime.Tags("DP号")

a.Read

If a.Value=1 Then

Set b =HMIRuntime.Tags("启停状态_1")

b.Read

If b.Value=1 Then

temp.BackColor=RGB(0,255,0)

Else

temp.BackColor=RGB(128,128,128)

End If

End If

If a.Value=3 Then

Set c =HMIRuntime.Tags("启停状态_2")

c.Read

If c.Value=1 Then

temp.BackColor=RGB(0,255,0)

Else

temp.BackColor=RGB(128,128,128)

End If

End If

3.按钮颜色变化

每次按按钮给变频器号赋值

事件/鼠标/鼠标动作中编辑VB脚本

Dim c

Set c=HMIRuntime.Tags ("变频器号")

c.write 1

根据变频器号不同的值,相应的按钮显示不同的颜色

属性/圆/背景色中编辑VB脚本

Dim a

Set a=HMIRuntime.Tags ("变频器号")

a.read

Dim b,b1

Setb=HMIRuntime.ActiveScreen.ScreenItems("按钮21")

Setb1=HMIRuntime.ActiveScreen.ScreenItems("按钮13")

If a.value=1 Then

b.BackColor=RGB(0,202,202)

Else

b.BackColor=RGB(0,94,187)

End If

If a.value=2 Then

b1.BackColor=RGB(0,202,202)

Else

b1.BackColor=RGB(0,94,187)

End If

4.手动输入不同的参数

根据DP号不同的值,把中间变量(频率给定)的值写给不同的参数(频率给定_1、频率给定_2)

在事件/对象/键盘/释放中编辑VB脚本

Dim a,b,c,d

Set a=HMIRuntime.Tags ("DP号")

Set b=HMIRuntime.Tags ("频率给定")

a.read

b.read

Set c=HMIRuntime.Tags ("频率给定_1")

Set d=HMIRuntime.Tags ("频率给定_2")

If a.value=1 Then

c.write b.value

End If

If a.value=3 Then

d.write b.value

End If

5.赋值(定值)

选井启动界面,给频率赋值的快捷键C脚本,有提示文本

DP号为不同的值,给不同的频率给定赋值

事件/鼠标/鼠标动作中编辑C脚本

#pragma code("UseAdmin.DLL")

#include "pwrt_api.h"

#pragma code()

HWND hWnd=NULL;

int iRet;

hWnd=FindWindow(NULL,"");

iRet=MessageBox(hWnd,"是否将频率改为50HZ ?","提示",MB_YESNO|MB_APPLMODAL);

if (iRet==IDYES)

{SetTagWord("频率给定",50);

if (GetTagByte("DP号")==1)

SetTagWord("频率给定_1",50);

if (GetTagByte("DP号")==3)

SetTagWord("频率给定_2",50);

}

历史曲线中的思路:

1.点击按钮,给变频器号赋值

Dim a

Set a=HMIRuntime.Tags ("变频器号")

a.write 1

2. 根据变频器号的不同值,界面上方的井号显示不同的变量。

Dim a,temp

Settemp=HMIRuntime.ActiveScreen.ScreenItems("输入输出域16")

Set a =HMIRuntime.Tags("变频器号")

a.Read

If a.Value=1 Then

Dim b

Set b =HMIRuntime.Tags("1#变频器对应井号内部变量地址")

b.Read

temp.OutputValue=b.Value

End If

If a.Value =2 Then

Dim c

Set c =HMIRuntime.Tags("2#变频器对应井号内部变量地址")

c.Read

temp.OutputValue=c.Value

End If

3. 1号变频器的按钮颜色中根据DP号的不同值,相应的按钮显示不同的颜色。

4.根据相应变频器号的DP号的不同,调用不同的界面(C脚本做做的)

if (GetTagByte("1#变频器对应DP号")==1)

OpenPicture("1#历史曲线.PDL");

if (GetTagByte("1#变频器对应DP号")==3)

OpenPicture("2#历史曲线.PDL");

事件记录:

有故障或动作出现时只在事件记录中出现一次,没有故障或动作时,就不再报。

1. 记录中打开系统块,将状态添加。只选择进入。

2. 记录界面,报警控件属性中/消息块/

3. 态选中/在消息列表中将现有的消息块中的状态添加到选中的消息块中、确定。

4. 可以实现。

常用的C脚本

1.登陆用户

#pragma code("useadmin.dll")

#include "PWRT_api.h"

#pragma code()

PWRTLogin('c');

2.注销用户

#pragma code("UseAdmin.DLL")

#include "pwrt_api.h"

#pragma code()

HWND hWnd=NULL;

int iRet;

hWnd=FindWindow(NULL,"");

iRet=MessageBox(hWnd, "是否注销 ?","提示",MB_YESNO|MB_APPLMODAL);

if (iRet==IDYES)

PWRTLogout();

3.退出组态

#pragma code("UseAdmin.DLL")

#include "pwrt_api.h"

#pragma code()

HWND hWnd=NULL;

int iRet;

hWnd=FindWindow(NULL,"");

iRet=MessageBox(hWnd,"是否退出组态?","提示",MB_YESNO|MB_APPLMODAL);

if (iRet==IDYES)

DeactivateRTProject ();

4.切换本机为主机

#pragma code("UseAdmin.DLL")

#include "pwrt_api.h"

#pragma code()

HWND hWnd=NULL;

int iRet;

hWnd=FindWindow(NULL,"");

iRet=MessageBox(hWnd,"是否将本机切换为主机 ?","提示",MB_YESNO|MB_APPLMODAL);

if (iRet==IDYES)

SetTagWord("主从选择",1);

密码登陆界面

1.密码正确执行以下语句

#pragma code("UseAdmin.DLL")

#include "pwrt_api.h"

#pragma code()

HWND hWnd=NULL;

int iRet;

hWnd=FindWindow(NULL,"");

iRet=MessageBox(hWnd,"密码正确,请设置DP号和井号!","提示",MB_YESNO|MB_APPLMODAL);

if (iRet==IDYES)

if (GetTagByte("密码")==123)

OpenPicture("进入系统设置(1-10).PDL");

SetTagWord("密码",0);

2.如果密码不正确。执行以下语句

Dim a

Set a=HMIRuntime.Tags ("密码")

a.read

If a.value<>123Then

MsgBox"密码不正确,请重新输入"

End If

按钮颜色:

RGB(0,202,202)按钮选中颜色

RGB(0,94,187)按钮未选中颜色

RGB(0,255,0) 变频器运行时状态灯颜色

RGB(128,128,128) 变频器待机模式下运行状态灯颜色

RGB(255,0,0)变频器停机时状态灯颜色

RGB(255,255,0)变频器故障灯颜色

密码:

参数设置页面密码为:123

用户权限登陆账户:操作员1,密码:123456

操作员2,密码:654321

权限设置:

按钮属性/其他/授权/用户管理,设置后需要登陆用户账号才能操作,否则提示没有许可权

按钮属性/允许操作员控制/否:按钮将显示为灰色状态或者提示更不了

输入输出域/允许操作员控制/否:输入输出域更不了数值,没有任何提示。

根据选择输入输出域的不同,给temp赋不同的值,根据不同的temp值,把数字键盘的值temp1赋给相应的输入输出域

Dim a,b,c,d,e

Set a=HMIRuntime.Tags ("temp")

Set b=HMIRuntime.Tags ("temp1")

a.read

b.read

Set c=HMIRuntime.Tags ("1")

Set d=HMIRuntime.Tags ("2")

Set e=HMIRuntime.Tags ("3")

If a.value=1 Then

c.write b.value

Elseif a.value=2 Then

d.write b.value

Elseif a.value=3 Then

e.write b.value

End if

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/245673.html

更多阅读

怎样给U盘分区 如何分区

通常情况下我们的U盘都只有一个盘符也就是一个分区的,但现在U盘的容量是越来越大了,我们是不是也可以像使用硬盘那样把U盘分成多个分区呢?经过多方研究与测试,终于总结出一个小方法,让你的U盘实现多分区,想分多少就分多少。一般我

本科毕业论文答辩流程 论文答辩不会答怎么办

毕业论文答辩流程一般包括自我介绍、答辩人陈述、提问与答辩、总结和致谢五部分。本科毕业论文答辩流程——步骤/方法本科毕业论文答辩流程 1、自我介绍:自我介绍作为答辩的开场白,包括姓名、学号、专业。介绍时要举止大方、态度从容

PCT降钙素原 与-CRPC-反应蛋白 的比较 降钙素原与c反应蛋白

新朋友,请点击上方【检验之星】快速关注一、降钙素原(PCT)降钙素原(PCT)是血清降钙素(CT)的前肽物质,是由116个氨基酸组成的糖蛋白质,在正常生理情况下,由甲状腺C细胞分泌产生。健康人血液中的PCT浓度非常低,小于0.05ng/ml。在炎症刺激特别是细

JNI 数据类型转换 jni与c 数据类型转换

Java基础知识——JNI入门介绍java/jni 2010-01-12 16:46:11 阅读293 评论0 字号:大中小订阅Java类型和本地类型对应在如下情况下,需要在本地方法中应用java对象的引用,就会用到类型之间的转换:1)java方法里面将参数传入本地方法;2)在本地方

声明:《VB与C脚本总结 bartender vb脚本》为网友眼角的笑意分享!如侵犯到您的合法权益请联系我们删除