小说国士无双笔趣阁:wincc串口通信终于弄出来了

来源:百度文库 编辑:偶看新闻 时间:2024/04/30 20:05:35
wincc串口通信终于弄出来了2010-02-04 10:27

     wincc串口通信终于弄出来了,弄了这么久,总算是弄出来了,心里一个劲的高兴啊。发表在下面,给大家参考一下。

初始化程序
MScomm.commport=1
MScomm.settings="9600,n,8,1"
MScomm.inputmode=1
MScomm.RThreshold = 1
MScomm.inbuffercount=0
MScomm.portopen=True

下面为接收串口数据
Sub OnComm(ByVal Item)
Dim indata

If item.InBufferCount>0 Then     
      indata = Item.Input        
     HMIRuntime.Tags("Serial_Data").Write indata  
     Item.InBufferCount = 0
End If

End Sub
注:这样不能接收多个字节,如果要接收多个字节,可将内部变量Serial_Data设置成文本变量,然后再把得到的数据想办法拆分出来(用left,right,mid函数试一下吧)

下面为发送多个字节
Function Output_Trigger(Byval Item)
Dim cnvt
Dim Temp(7)

Temp(0) = &h11
Temp(1) = &h22
Temp(2) = &h33
Temp(3) = &h44
Temp(4) = &h55
Temp(5) = &h66
Temp(6) = &h77
Temp(7) = &h88

Set cnvt = CreateObject("ADs.ArrayConvert")

Dim v,v1,v2
v = Temp
v1 = cnvt.CvOctetStr2vHexStr(v)
v2 = cnvt.CvHexStr2vOctetStr(v1)
Item.Output = v2

End Function

VDS.DLL的下载地址:http://support.microsoft.com/kb/250344/en-us  
http://support.microsoft.com/kb/250344/zh-cn

注:其实用VBS做这个Wincc的串口通信是很不方便的,还不如用VB做串口通信部分,把处理好的数据直接发给Wincc。可查看:http://hi.baidu.com/andyzhou502/blog/item/35ae130e94054d216159f38f.html