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