| 作者 | 主题 |
|---|---|
|
zhubeilife 新手 经验值:23 发帖数:2 精华帖:0 |
楼主
主题:WinCC 中 VBS语句判断相等的问题
这是我的代码,是通信模块的,第一个判断是判断是否接收到信息的判断。第二个if是判断当前信号是否联通,我设定的是当收到0x1F的时候认为通信正常,然后才进行收发,标志位就是 State_Comm,并且我设定的串口空间Mscomm的接收方式是接收二进制代码。但是始终卡在Tag_Temp = &H1F 这句话上,好像系统根本就不进行判断。
Dim Tag_Temp Dim Tag_Receive Dim Delta_Set Dim State_Comm Set Tag_Receive = HMIRuntime.Tags("Tag_Receive") Set Delta_Set = HMIRuntime.Tags("Delta_Set") Set State_Comm = HMIRuntime.Tags("State_Comm") If Item.CommEvent = 2 Then Tag_Temp = Item.Input Tag_Receive.Value = Tag_Temp Tag_Receive.Write If State_Comm.Read = 0 Then HMIRuntime.Trace("1" & vbCrLf) If Tag_Temp = &H1F Then HMIRuntime.Trace("1.5.1" & vbCrLf) State_Comm.Write 1 Item.Output = "?" Else HMIRuntime.Trace("1.5.2" & vbCrLf) End If Else HMIRuntime.Trace("2" & vbCrLf) Delta_Set.Value = Tag_Temp Delta_Set.Write End If End If |
|
youhm 至圣 经验值:13572 发帖数:4924 精华帖:81 |
1楼
主题:回复:WinCC 中 VBS语句判断相等的问题
数据类型不匹配,二进制方式接收,Item.Input返回的是一个字节数组,所以
Tag_Temp = Item.Input Tag_Temp就是一个数组,后面访问值应以Tag_Temp(0)的形式出现。 |