全局變量定義:
Dim Inputtext作為變量
私有子標簽10_Click()
' Dim Clardata As String '用於清除緩存並準備接收數據!
如果MSCOM。那麽PortOpen = False
Call Desplaycomnotopen '提示串口沒有打開。
其他
MSCOM。' InputLen = 0 '接收所有數據,以便清空接收緩沖區。
Clardata = MSCOM。投入
MSCOM。InputLen = 4 '準備先接收四個字節。
MSCOM。RThreshold = 1 '每收到壹個字節就觸發壹次ONCOMM事件。
文本消息。Text = TEXT_MESSAGE文本& amp" = = = = = = = = = = = = = = = = =系統信息= = = = = = = = = = = = = = = = = = " &;vbCrLf
文本消息。Text = TEXT_MESSAGE文本& amp"發送命令:[將設備的工作模式修改為定時器計數器模式]" &;vbCrLf
' text _ message . selstart = len(text _ message . text)'顯示到最後壹行。
Syslink = 0 '發送成功標誌位
Mstime。“Enabled = True”定時器開始工作,用來判斷傳輸是否成功。
MSCOM。output = " upok 021 " & amp;“VbCrLf”發送命令
如果…就會結束
末端接頭
私有子MSCOM _ OnComm()
選擇案例MSCOM。CommEvent
案件受理
輸入文本= MSCOM。“輸入”收到的數據。
如果(Inputtext = "SBOK ")這就是我想要的數據。
Syslink = 1 '通知您聯機並獲取數據。
MSCOM。RThreshold = 0 '在命令事件時停止。
Delay1ms (100)'等待數據傳輸完成。
MSCOM。“InputLen = 2”讀取兩個字節。
輸入文本=空
If (MSCOM。PortOpen = True)那麽
輸入文本= MSCOM。輸入'讀取
如果…就會結束
If (Inputtext = "ST ")然後
調用Setup_ST '子程序
ElseIf (Inputtext = "AL ")然後
調用Setup_AL '子程序
如果…就會結束
如果…就會結束
結束選擇
MSCOM。InputLen = 0 '讀取所有字節。
If (MSCOM。PortOpen = True)那麽
輸入文本= MSCOM。輸入'讀取
如果…就會結束
MSCOM。InputLen = 4 '讀取兩個字節,為下壹個數據做準備。
MSCOM。RThreshold = 1 '每收到壹個字節就觸發壹次ONCOMM事件。
末端接頭
OnComm控制接收方式描述:
如果串口打開,mscom。閾值
倉庫裏有些沒用的東西怎麽辦?
放MSCOM。InputLen =0,然後找壹個變量讓它等於mscomm.input,壹次性取全。
我建議:
提取數據之前:
設置要獲取的位數。
設置OnComm事件以觸發收到的每個位。
取壹次數據,確認是否是我們想要的數據。
關閉串行端口事件
500毫秒的延遲等於所有數據的輸入。
重新定義數據讀取長度
讀取數據並將其傳遞給第壹個變量。
重新定義數據讀取長度
讀取數據並將其傳遞給第二個變量。
..........
重新定義數據讀取長度
清除緩存
打開OnComm事件
結束幫助