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

Advertisements

你可能會喜歡