Vbs 操作wincc画面脚本总结
一: 不使用变量单纯的操作界面
1.操作某个画面中控件的属性 如 Home1.Pdl(总窗体) 下的 画面窗口2(画面窗口)
Sub OnClick(ByVal Item)
Dim objCircle
Dim screenname
Dim pwname
Set objCircle= ScreenItems("圆1" )
objCircle.Radius = 60
Set screenname=HMIRuntime.Screens("Home1") //获取要操作的窗体
Set pwname=screenname.ScreenItems("画面窗口2") //获取要操作的控件,这里填入你要操作的控件名
MsgBox(objCircle.Radius) //输出圆的半径
MsgBox (pwname.Picturename) //输出当前画面窗口2的名字
End Sub
注意 当调用某窗体下的某控件的某个属性时,需要声明两个对象,一个接纳这个控件,一个接纳值 例如
Dim object
Dim value
Set object =HMIRuntime.Screens("Home1").ScreenItems("画面窗口2")
Set value=object.picturename
2.更改画面窗口的对象
Sub OnClick(Byval Item)
Dim opObject
Set opObject=HMIRuntime.Screens ("Home1").ScreenItems("画面窗口2")
opObject.PictureName="Page1.Pdl"
End Sub
3.设置文本
Set titleTxt=HMIRuntime.Screens ("Home1").ScreenItems("静态文本2")
titleTxt.Text =titleTxt.Text+"EF" //获取文本的值并追加字符
4.vb 字符串函数 VB的字符串截取函数有Left(字符串,n),返回字符串前N个字符;Mid(字符串,p,n),从第p个字符开始,向后截取N个字符;right(字符串,n),返回字符串的最后n个字符。
获取下标
VB中的InStr()函数与InStrRev()函数:
都是在主字符串当中搜寻寻找子字符串,返回找到的子字符串在主字符串中出现的位置; 不同在于;
InStr()函数,从左开始向右寻找,InStrRev()函数,从右开始向左寻找。
截取 right 和left 获取长度 Len
二:操作变量
1. Dim objTag
Dim AText
Set objTag = HMIRuntime.Tags("a") //获取变量
objTag.Read //执行读取
Set AText=ScreenItems("静态文本2") //获取控件
AText.Text=objTag.Value //给控件写入值
objTag.Value =100 //给目标变量写入值
objTag.Write //执行写入
2. vb 中 Switch 语句的变体
Dim objTag
Dim AText
Set objTag = HMIRuntime.Tags("a") //获取内部变量a的值
objTag.Read //必须要有这一步,这是读取操作,同理如果改写值必须要有ogjTag.write
Set AText=ScreenItems("静态文本2")
Select Case objTag.Value Case 1
AText.Text="a" Case 2
AText.Text="b"
Case Else
AText.Text=objTag.Value
End Select
三.弹出对话框
设置
buttons 参数可以有以下值:
常数 值 描述
vbOKOnly 0 只显示确定按钮。
vbOKCancel 1 显示确定和取消按钮。
vbAbortRetryIgnore 2 显示放弃、重试和忽略按钮。
vbYesNoCancel 3 显示是、否和取消按钮。
vbYesNo 4 显示是和否按钮。
vbRetryCancel 5 显示重试和取消按钮。
vbCritical 16 显示临界信息图标。
vbQuestion 32 显示警告查询图标。
vbExclamation 48 显示警告消息图标。
vbInformation 64 显示信息消息图标。
vbDefaultButton1 0 第一个按钮为默认按钮。
vbDefaultButton2 256 第二个按钮为默认按钮。
vbDefaultButton3 512 第三个按钮为默认按钮。
vbDefaultButton4 768 第四个按钮为默认按钮。
vbApplicationModal 0 应用程序模式:用户必须响应消息框才能继续在当前应用程序中工作。
vbSystemModal 4096 系统模式:在用户响应消息框前,所有应用程序都被挂起。
第一组值 (0 - 5) 用于描述对话框中显示的按钮类型与数目;第二组值 (16, 32, 48, 64) 用于描述图标的样式;第三组值 (0, 256, 512) 用于确定默认按钮;而第四组值 (0, 4096) 则决定消息框的样式。在将这些数字相加以生成 buttons 参数值时,只能从每组值中取用一个数字。
返回值
MsgBox 函数有以下返回值:
常数 值 按钮
vbOK 1 确定
vbCancel 2 取消
vbAbort 3 放弃
vbRetry 4 重试
vbIgnore 5 忽略
vbYes 6 是
vbNo 7 否
下面的例子演示了 MsgBox 函数的用法:
Dim MyVar
MyVar = MsgBox ("Hello World!", 65, "MsgBox Example")
' MyVar contains either 1 or 2, depending on which button is clicked.
你要求是有是和否两个按钮那么MyVar = MsgBox ("Hello World!", 65, "MsgBox Example")中 的65改成4就可以了!
vbs脚本中:
if msgbox("确实要启动设备吗?",4,"警告")=6 then
hmiruntime.tags("tag1").write 1
end if
学习VB两个星期以来, (其实真正时间也不到两个星期吧 平时有空闲就学习了下 在这里是想告诉大家 VB基本操作不难,)第一个串口调试程序通了 能够实现更改波特率,串口号,接收数据实现字符也十六进制显示,在发送文本框输入数据 电机发送将在接收框内显示 记住将RS232的2和3管脚直接接起来
下面是我测试实际过程
大家也可以和我一样练习练习
下面是我的源代码 可以供大家参考下 也希望高手指点下 (框架就没必要给了) Dim baud As String
Dim text2enbale, asciflag As Boolean '停止显示标志 false将不能显示
Private Sub Check2_Click()
End Sub
Private Sub Combo1_Click()’端口控制
Select Case Combo1.Text
Case "COM1"
MSComm1.CommPort = 1
Case "COM2"
MSComm1.CommPort = 2
Case "COM3"
MSComm1.CommPort = 3
Case "COM4"
MSComm1.CommPort = 4
Case "COM5"
MSComm1.CommPort = 5
Case "COM6"
MSComm1.CommPort = 6
End Select
End Sub
Private Sub Combo2_Click()’波特率控制
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
Select Case Combo2.Text
Case "300"
baud = "300"
Case "600"
baud = "600"
Case "1200"
baud = "1200"
Case "2400"
baud = "2400"
Case "4800"
baud = "4800"
Case "9600"
baud = "9600"
Case "19200"
baud = "19200"
Case "38400"
baud = "38400"
End Select
MSComm1.Settings = baud & ",n,8,1"
MSComm1.PortOpen = True
Else
Select Case Combo2.Text
Case "300"
baud = "300"
Case "600"
baud = "600"
Case "1200"
baud = "1200"
Case "2400"
baud = "2400"
Case "4800"
baud = "4800"
Case "9600"
baud = "9600"
Case "19200"
baud = "19200"
Case "38400"
baud = "38400"
End Select
MSComm1.Settings = baud & ",n,8,1"
End If
End Sub
Private Sub Command5_Click()
'Dim s As String
Dim a() As Byte
If MSComm1.PortOpen = False Then
MsgBox "串口未打开,请打开串口", 48, "警告"
End If
'ReDim a(3)
'a(0) = &HF
'a(1) = &HFE
'a(2) = &HDD
'a(3) = &HCC
s = Text3.Text
'a = s
MSComm1.RThreshold = Len(s) ' UBound(a) + 1
If MSComm1.PortOpen = True Then
MSComm1.Output = s
End If
Call Delay(20)
End Sub
Private Sub MSComm1_OnComm()
Dim idata As Variant
Dim arr() As Byte
intInputLen = MSComm1.InBufferCount '不这样将会提示不能给数组赋值
ReDim arr(intInputLen) '和上面一样
Select Case MSComm1.CommEvent
Case comEvReceive '接收成功信息
arr = MSComm1.Input '得到 接收缓冲区数据
If asciflag = True Then
For i = 0 To UBound(arr)
Text2.Text = Text2.Text + Chr$(arr(i))
Next i
Else
For i = 0 To UBound(arr)
Text2.Text = Text2.Text + " " & arr(i)
Next i
End If
MSComm1.InBufferCount = 0
End Select
End Sub
Private Sub Option1_Click()
If Option1.Value = True Then
asciflag = True
End If
End Sub
Private Sub Option2_Click()
If Option2.Value = True Then
asciflag = False
End If
End Sub
Private Sub Timer1_Timer()
Label11.Caption = Time
End Sub
Private Sub uart_open_Click()
MSComm1.PortOpen = Not MSComm1.PortOpen
If MSComm1.PortOpen Then
Shape2.BackColor = &HFF&
uart_open.Caption = "关闭串口"
Else
Shape2.BackColor = &HE0E0E0
uart_open.Caption = "打开串口"
End If
End Sub
Private Sub text2_clr_Click()
Text2.Text = ""
End Sub
Private Sub text2_en_Click()
text2enable = Not text2enbale
End Sub
Private Sub Command6_Click()
End
End Sub
Private Sub Form_Load()
Show '没有show后面的设置焦点将失败 错误
text2enbale = True
Option2.Value = True '默认显示是以16进制显示
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeBinary '二进制接收数据
MSComm1.InBufferCount = 0
MSComm1.RThreshold = 1 '缓冲区接收到4个字符 就产生一个oncomm事件
Text3.Text = ""
Text3.SetFocus
End Sub
至此 一个简单的小工程就完成了,因为我是电子信息工程专业对高级编程还是很菜鸟的,其实这个功能也是我一直想能够自己实现的,因为之前一直以为学习VB 会花好多时间,就像之前一直在学习ARM一样半天模不着头脑。所以迟迟不敢接触。估计也好多人和我一样,其实学习开始了 也会发现并不是想象中那样。
20xx-7-30
青檐铃风
学习操作系统心得体会摘要:操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。操作系统身负诸如管理与配置…
第**期污废水处理工培训班学习心得——污水处理厂管理工作总结有幸参加了广东省第51期污废水处理工培训班,现根据学习的内容,并结合本…
银行合规教育心得体会-开展“从我做起,合规操作”开展“从我做起,合规操作”专题教育学习活动心得24小时秘书版权所有,文秘工作者共同…
操作系统心得体会电脑使用一段时间后机箱里会存积大量的灰尘,这些灰尘会影响硬件的散热,尤其会影响cpu的散热。具体的表现是主机工作时…
银行员工克服习惯做法养成合规操作心得体会*****日我行下发了关于开展“克服习惯做法,养成合规操作”的活动,通过活动我们对风险操作…
信息机项目脚本电销员:您好!请问您是XX先生、小姐呢?情况一:客户:是。电销员:XX先生、小姐,您好!我是中国移动3G市场部的XX…