发布于 2006-11-30 17:29:44
0楼
偶然在微软网站上发现了此问题的解决方法:
下载一个ADS.DLL,注册;
在WINCC中用VBS脚本,比如:
Dim cnvt
Dim Temp()
Dim obj_s_Com
Dim sOutput
Set cnvt = CreateObject("ADs.ArrayConvert")
Set obj_s_Com = ScreenItems("m_Com")
obj_s_Com.CommPort = 1
Redim Temp(2)
Temp(0) = &heb
Temp(1) = &h90
Temp(2) = &h71
Dim v,v1,v2,v3,v4
v = Temp
HMIRuntime.Trace "The V is:" & VarType(v) &" " &TypeName(v) &vbCrLf
'obj_s_Com.Output = v
v1 = cnvt.CvOctetStr2vStr(v)
HMIRuntime.Trace "The V1 is:" & VarType(v1) &" " &TypeName(v1) & " " &vbCrLf
'obj_s_Com.Output = v1
v2= cnvt.CvStr2vOctetStr(v1)
HMIRuntime.Trace "The V2 is:" & VarType(v2) &" " &TypeName(v2) & " " &vbCrLf
'obj_s_Com.Output = v2
v3 = cnvt.CvOctetStr2vHexStr(v)
HMIRuntime.Trace "The V3 is:" & VarType(v3) &" " &TypeName(v3) & " " &vbCrLf
'obj_s_Com.Output = v3
v4 = cnvt.CvHexStr2vOctetStr(v3)
HMIRuntime.Trace "The V4 is:" & VarType(v4) &" " &TypeName(v4) & " " &vbCrLf
obj_s_Com.Output = v4
我们可以发现比如>&H7E的ANSI字码也可以通过串口正常发送。
这样从可行性上来讲,任何不同的串口通讯协议都可以在WINCC中采用MSCOMM控件加VBS脚本来实现。只要你不嫌麻烦,我们可以用小点数的WINCC来实现更多的外部数据量的采集。
不知大家以为然否?
VDS.DLL的下载地址是:http://support.microsoft.com/kb/250344/en-us