找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3328|回复: 12

WinCC 通过VBS脚本进行串口通讯

 火.. [复制链接]
  • 打卡等级:即来则安
  • 打卡总天数:29
  • 打卡月天数:1
  • 打卡总奖励:7791
  • 最近打卡:2025-12-13 17:25:16

2540

主题

1353

回帖

2万

积分

管理员

积分
21301
发表于 2021-10-5 11:39:18 | 显示全部楼层 |阅读模式
【导读】整理电脑资料发现的一篇文章,是关于WINCC 通过VBS脚本进行串口通讯的文档,分享给大家。


PLC价格还要缺货多久?


电气人上哪儿接单靠谱?
(一)打开端口
(1)代码图片


(2)VBS代码
Sub OnClick(Byval Item)

DimobjMSComm1, tagConnection
SetobjMSComm1 = HMIRuntime.Screens("Main").ScreenItems("MSComm1")
SettagConnection = HMIRuntime.Tags("Connection")

IfobjMSComm1.PortOpen = False Then

'Assign com port number
objMSComm1.Commport= 1

'Values: 9600 Baud, N - No Parity, 8 - Databit, 1 - Stopbit
objMSComm1.Settings= "9600,N,8,1"
objMSComm1.RThreshold= 1
objMSComm1.SThreshold= 1
objMSComm1.InputLen= 0
objMSComm1.PortOpen= True

tagConnection.Write(True)
HMIRuntime.Trace("Portopen." & vbCrLf)
Else
HMIRuntime.Trace("Portis already opened." & vbCrLf)
EndIf
End Sub
(二)读Buffer
(1)代码图片


(2)VBS代码
Option Explicit
Function action

DimstrBuffer, strTemp
DimobjMSComm1, tagBuffer

SetobjMsComm1 = HMIRuntime.Screens("Main").ScreenItems("MSComm1")
SettagBuffer =HMIRuntime.Tags("Buffer")
strTemp= ""

IfobjMSComm1.PortOpen = True Then

'readthe buffer
strTemp= CStr(objMSComm1.Input)
IfstrTemp <> "" Then

'checkingfor the delimited character
IfInStr(strTemp, Chr(6)) Then
strBuffer= Left(strTemp,Len(strTemp)-1)
Else
strBuffer= strTemp
EndIf

tagBuffer.Value= strBuffer
tagBuffer.Write
EndIf
Else
HMIRuntime.Trace("Noport is opened!" & vbCrLf)
EndIf

End Function
(三)发送数据
(1)代码图片


(2)VBS代码
Sub OnClick(ByVal Item)
DimtagOutput, objMSComm1

SettagOutput = HMIRuntime.Tags("Output")
SetobjMSComm1 = HMIRuntime.Screens("Main").ScreenItems("MSComm1")

IfobjMSComm1.PortOpen = True Then
tagOutput.Read
objMSComm1.Output= tagOutput.Value
tagOutput.Write("")
Else
HMIRuntime.Trace("Noport is opened!" & vbCrLf)
EndIf

End Sub
(四)关闭端口
(1)代码图片


(2)VBS代码
Sub OnClick(Byval Item)

DimobjMSComm1, tagConnection
SetobjMSComm1 = HMIRuntime.Screens("Main").ScreenItems("MSComm1")
SettagConnection = HMIRuntime.Tags("Connection")

IfobjMSComm1.PortOpen = True Then
objMSComm1.PortOpen= False
tagConnection.Write(False)
HMIRuntime.Trace("Portclose." & vbCrLf)
EndIf

End Sub
来源:公众号(自动化与工程技术)

工控课堂 www.gkket.com

0

主题

131

回帖

454

积分

注册会员

积分
454
发表于 2021-10-5 11:39:18 | 显示全部楼层
太生气了,无法HOLD啦 >_<......
工控课堂 www.gkket.com

1

主题

116

回帖

304

积分

注册会员

积分
304
发表于 2021-10-5 12:33:19 | 显示全部楼层
本来在潜水,看到LZ这篇矿石奇文,实在忍不住出来冒个泡泡:真TM天书啊!
工控课堂 www.gkket.com

0

主题

102

回帖

153

积分

新手上路

积分
153
发表于 2025-11-13 12:58:26 | 显示全部楼层
蹲个后续,楼主记得更新呀,在线等挺急的~
工控课堂 www.gkket.com

0

主题

1451

回帖

4571

积分

金牌会员

积分
4571
发表于 2025-11-13 13:12:29 | 显示全部楼层
来凑个热闹,为楼主增加点人气!
工控课堂 www.gkket.com

0

主题

82

回帖

120

积分

新手上路

积分
120
发表于 2025-11-13 14:11:16 | 显示全部楼层
笑不活了,评论区比正文还精彩
已转发给朋友,一起快乐一下
工控课堂 www.gkket.com

0

主题

106

回帖

493

积分

注册会员

积分
493
发表于 2025-11-13 14:35:06 | 显示全部楼层
这评论区卧虎藏龙,个个都是人才!
工控课堂 www.gkket.com

0

主题

128

回帖

211

积分

注册会员

积分
211
发表于 2025-11-13 14:44:20 | 显示全部楼层
画面感太强了,仿佛身临其境!
工控课堂 www.gkket.com

0

主题

88

回帖

141

积分

新手上路

积分
141
发表于 2025-11-16 22:54:53 | 显示全部楼层
同款经历!我当初也这么过来的😂
工控课堂 www.gkket.com

0

主题

458

回帖

2498

积分

高级会员

积分
2498
发表于 2025-11-16 23:38:26 | 显示全部楼层
浅评一下:内容优质,值得推荐~
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 12:52 , Processed in 0.163543 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表