我用MSCOMM在WINCC中进行串口通讯,现在收发文本信息没问题。但是无法收发二进制数据,请教各位?
以下是OnCom的代码,定义bytInput为bytInput()或objMSComm.InputMode =1时,程序立即无效。(既不报错,也无反应)
Sub OnComm(ByVal Item)
Dim bytInput,intInputLen
Dim aa,bb,cc,dd,addr,strLen,strCRC
Dim staus,objMSComm
Dim CurrentTime,tNow
Set objMSComm = HMIRuntime.Screens("AX").ScreenItems("COM")
Select Case objMSComm.CommEvent '分析接收事件的类型
Case 2 'comEvReceive '值为2,收到 Rthreshold 个字符。
If Not objMSComm.PortOpen Then '串口关闭则打开
objMSComm.CommPort = 3
objMSComm.Settings = "9600,N,8,1"
objMSComm.PortOpen = True
End If
'此处添加处理接收的代码
objMSComm.InputMode = 0 'comInputModeBinary
intInputLen = objMSComm.InBufferCount '接收区计数
Redim bytInput(intInputLen) '重新定义数组
bytInput = objMSComm.input
End Select
' objMSComm.output=bytInput()
If bytInput<>"" Then
Set aa=HMIRuntime.Tags("接收数量")
aa.Write intInputLen
Set aa=HMIRuntime.Tags("接收字符")
aa.Write bytInput