當前位置:編程學習大全網 - 源碼下載 - Freemodbus源代碼使用

Freemodbus源代碼使用

這是我寫的OnComm事件程序,供參考!

全局變量定義:

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事件

結束幫助

  • 上一篇:5.19中國旅遊日山西景區優惠信息匯總
  • 下一篇:線程池-參數篇:2.隊列
  • copyright 2024編程學習大全網