modbusvb源碼
① vb.net怎樣寫modbus
直接調用.net程序集DLL啊,很方便的,搜 ModbusTCP.DLL / ModbusRTU.DLL;
② 如何用VB實現Modbus串列通訊
Modbus只是一種協議,首先實現類似串口助手的功能,再根據Modbus協議構造數據幀進行收發即可,可以使用一些測試軟體輔助設計,例如格西烽火通信軟體等,可以自定義協議,有Modbus的測試。
③ PC 如何跟儀表通訊呢 通過RS485 通訊協議modbus rtu VB6.0原代碼怎麼寫呢
需將485信號轉換為232信號到PC機串口上。(即232介面) 。然後在儀表上設置好相關通訊參數。(如地址,波特率等)在根據modbus協議的內容寫發送命令。標準的modbus 協議有固定格式其具體寄存器內容,需根據該儀表協議來定義。
④ VB modbus協議發送命令
modbus命令碼03 是讀多個寄存器的值,數據1234567不符合幀格式的要求,因為若1234(前4位)是地址,則數據長度567超出了最大值(125)。
例子:設備地址 01,命令03,讀起始地址為30006的10個寄存器的數值,modbus-rtu幀格式為:
01 03 00 06 00 0A CRC
其中,CRC需要計算,並佔2個位元組。
⑤ 請問誰有VB編寫modbus的應用例子,要詳細些的,最近在學,很迷惑啊!
其實也很簡單的,搞清楚功能碼的作用,以及指令格式,和CRC校驗就差不多了,如00 06 00 00 01 00 89 8B,00是從機地址,06是功能碼的寫,00 00 01 00是要發送的數據,89 8B是CRC校驗碼
Private Sub Command1_Click()
Dim CRC As String
Dim d() As Byte '待傳輸數據
Dim sendstr As String
Dim str As String
Dim N As Integer
Dim GetStr As String
Dim ErrMsg As String
Dim Status As Integer
'01 06 00 01 10 00
sendstr = Trim(Text1.Text)
strT = Split(sendstr, " ")
N = UBound(strT)
ReDim d(N)
For i = 0 To N
S = "&H" & strT(i)
d(i) = S
Next
' d(0) = &H1
' d(1) = &H6
' d(2) = &H0
' d(3) = &H0
' d(4) = &H10
' d(5) = &H0
CRC = CRC16(d) '調用CRC16計算函數
'CRC(0)為高位
'CRC(1)為低位
str = Text1.Text & " " & CRC
Text1.Text = str
Status = LynxSPcomm(MSComm1, str, True, GetStr, ErrMsg, True, 0)
Text2.Text = GetStr
End Sub
'注意:在數據傳輸時CRC的低位可能在前,而高位在後。
Function CRC16(data() As Byte) As String
Dim CRC16Lo As Byte, CRC16Hi As Byte 'CRC寄存器
Dim CL As Byte, CH As Byte '多項式碼&HA001
Dim SaveHi As Byte, SaveLo As Byte
Dim i As Integer
Dim Flag As Integer
CRC16Lo = &HFF
CRC16Hi = &HFF
CL = &H1
CH = &HA0
For i = 0 To UBound(data)
CRC16Lo = CRC16Lo Xor data(i) '每一個數據與CRC寄存器進行異或
For Flag = 0 To 7
SaveHi = CRC16Hi
SaveLo = CRC16Lo
CRC16Hi = CRC16Hi \ 2 '高位右移一位
CRC16Lo = CRC16Lo \ 2 '低位右移一位
If ((SaveHi And &H1) = &H1) Then '如果高位位元組最後一位為1
CRC16Lo = CRC16Lo Or &H80 '則低位位元組右移後前面補1
End If '否則自動補0
If ((SaveLo And &H1) = &H1) Then '如果LSB為1,則與多項式碼進行異或
CRC16Hi = CRC16Hi Xor CH
CRC16Lo = CRC16Lo Xor CL
End If
Next Flag
Next i
Dim ReturnData(1) As Byte
ReturnData(0) = CRC16Hi 'CRC高位
ReturnData(1) = CRC16Lo 'CRC低位
CRC16 = Hex(CRC16Lo) & " " & Hex(CRC16Hi)
End Function
⑥ vb6.0 怎麼編寫modbus tcp 程序
你的意思是不是,讓vb走網路?
tcp是一個協議,根據協議的要求,你自己寫代碼是完全可以的,不過這個你可能寫不了,太龐大了,工作量技術含量都不小。
vb提供了2個控制項訪問網路。WinSock 控制項、INET控制項
具體這2個控制項怎麼用,就需要你自己學習了。根據你的需求,你看看用哪個合適。
如果有詳細的、具體的需要,可以給我網路私信。
⑦ vb modbus多通道數據採集返回的數據是亂碼
波特率是否正確?
協議是rtu嗎,串口接收就按位元組處理,ASC按字元處理!可以先用串口調試工具監控一下看看就好;
協議的內容要熟悉一下;先用串口調試工具模擬發送指令,一問一答;測試一下,是不是參數沒有設置對;
你可以先用Modbus Poll主站工具,訪問從站試試(這軟體兼容RTU、ASC、TCP),通信成功後,打開軟體的數據監視,看看就會明白的(速度設置慢點)。
祝你成功!
⑧ VB中如何編寫MODBUS協議:
這是最簡單的485匯流排對話協議,
對話協議、校驗方式 你要了解,用串列通迅,
網路上搜一下,這方面的文章多如牛毛
⑨ 請教用VB和無錫信捷PLC通訊,modbus協議
網上都有modbus通信源代碼下載的啊,實在不行就用modbus opc server很簡單的
⑩ VB 與PLC 通信
VB有控制項可以實現的,不太清楚你用的是何種PLC,也不知道協議,只能說給你些參考
可參考:
1、基於ModbusRTU協議的溫度採集模塊與西門子PLC SP7-200的連接 http://www.yotons.com/solution4.html
2、ModbusRTU組網輔助控制項ytmc.ocx http://www.yotons.com/service.html
3、VB MODBUS實現源碼 http://wenku..com/view/d2c8722acfc789eb172dc8cc.html