WinCC如何利用vbs脚本发送字符串

在VB里写了一个脚本,到WinCC下可能需要变化下,请指导下,vb脚本如下:
 Dim buf(11) As Byte
 buf(0) = &H1
 buf(1) = &H0
 buf(2) = &H0
 buf(3) = &H0
 buf(4) = &H0
 buf(5) = &H6
 buf(6) = &H1
 buf(7) = &H4
 buf(8) = &H0
 buf(9) = &H40
 buf(10) = &H0
 buf(11) = &H3
 sockClient.SendData buf

 这是给一个winsock控件发的命令,请问在VBS下应该如何编写?谢谢了。

问题补充:
我重新编写了一段程序,如下:
     Dim sock
     Dim buf (11)
     buf(0) = &H1
     buf(1) = &H0
     buf(2) = &H0
     buf(3) = &H0
     buf(4) = &H0
     buf(5) = &H6
     buf(6) = &H1
     buf(7) = &H4
     buf(8) = &H0
     buf(9) = &H40
     buf(10) = &H0
     buf(11) = &H3
     Set sock = HMIRuntime.ActiveScreen.ScreenItems.Item("sockclient") 
     sock.senddata buf

     是写在按钮的脚本里,但是按下发现没有执行,与网桥没有数据交换,但是在VB里是可以的,与winsock的连接也已经建立。 我怎么才能看到BUF的值到底是多少呢?应该怎么设置下?请指教~

   我的用的TCP转MODBUS,网桥是moxa的3180,下边有一个设备是通过mobus协议过来的,网桥是从站,我现在就是要通过网桥与modbus设备进行通讯。连接已经正常,winsock的status值是7,代表连接已建立。
 ——————————————————
 请问你确定WinCC的VBS下Winsock控件不能发送字节数组吗?那在C语言下Winsock控件可以发送字节数组吗?还有怎么判断VBS下不能发送字节数组的呢?有资料可以查询吗?

最佳答案

变化不大
   1、VBS不能声明类型
   Dim buf(11) As Byte  >>  Dim buf(11)
   2、使用ScreenItems获取控件
   dim sockClient
   set sockClient = ScreenItems("WinSockControl")
   sockClient.xxxx
  -----------------------------
  楼主你是用TCP还是UDP啊?谁是Server谁时Client?
  要先保证连接正常再进行收发数据。
  -----------------------------
 对了,WinCC VBS的Winsock是无法发送字节数组的,这点跟MsComm控件有点像,这是个麻烦事,我觉得还是用VB编写好了,再通过Ole写入WinCC即可,还可节省WinCC资源。

提问者对于答案的评价:
WinCC不能通过自带的Winsock控件发送数组,这给用户带来了很大的麻烦,希望以后能改进。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc274610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐