vb.net發送MobbusTCP指令,讀取固定地址固定位元組的數據
一、用是VS建立VB.net項目
二、把空間載入到項目中來
三、把控制項拖到畫面中
四、連接遠程主機
TCPserver.Connect("192.168.0.77", 502)
五、發送讀取命令
Try
Dim SendStr(11) As Byte
SendStr(0) = 0 '交換識別號高位元組,通常為0
SendStr(1) = 0 '交換識別號低位元組,通常為0
SendStr(2) = 0 '協議識別號高位元組,為0
SendStr(3) = 0 '協議識別號低位元組,為0
SendStr(4) = 0 '位元組長度高位元組
SendStr(5) = 6 '以下位元組長度低位元組
Advertisements
SendStr(6) = 255 '單元識別號,確省為255
SendStr(7) = &H3 '讀多個字命令代碼
SendStr(8) = 0 '讀數據的起始地址高位元組
SendStr(9) = 60 '讀數據的起始地址低位元組 字的首地址
SendStr(10) = 0 '數據長度高位元組
SendStr(11) = 60 '數據長度低位元組 表示讀取60個字
Dim aStr As String = Nothing
Dim i As Integer
For i = 0 To 11
aStr = aStr & Chr(SendStr(i))
Next
TCPserver.SendData(aStr)
Advertisements
Catch ex As Exception
TCPserver.Close()
TCPserver.Connect("192.168.0.77", 502)
End Try
六、使用GetData獲取函數
Private Sub TCPserver_DataArrival(ByVal sender As Object, ByVale As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent)Handles TCPserver.DataArrival
Dim a(10), s As String
Dim RcvStr() As Byte = Nothing
TCPserver.GetData(RcvStr)
s = ArrToHex(RcvStr)
TextBox1.Text = s 'a(0) & a(1) & "//" & a(2) &a(3) & "//" & a(4) & a(5) & "//" & a(6) &a(7) & "//" & a(8) & a(9)
TextBox3.Text = (e.bytesTotal)
Dim i As Integer
For i = 1 To e.bytesTotal * 2
TextBox2.Text = TextBox2.Text & Mid(s, i, 1) & "//"
Next
End Sub