手机版

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码

时间:2025-07-13   来源:未知    
字号:

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码本人用的是Modbus RTU通讯模式,通过计算机串口转RS485与外围设备通行通讯,读写外围设备指定地址里的数据,从而达到自动化控制远端设备。

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码

本人用的是Modbus RTU通讯模式,通过计算机串口转RS485与外围设备通行通讯,读写外围设备指定地址里的数据,从而达到自动化控制远端设备。

Dim HiByte As Byte

Dim LoByte As Byte

Dim CRC16Lo As Byte

Dim CRC16Hi As Byte

Dim ReturnData(1) As Byte

Dim K As Integer

Dim CmdLenth As Integer

Private Sub Command1_Click()

K = Text9.Text '写6 个字节

Text13.Text = ""

'=========== 数组赋值输入代码 =======================================================================================

'<< 算法一 >>

Dim WriteStr() As Byte

Dim u As Integer

ReDim WriteStr(K + 2)

For u = 0 To K

WriteStr(u) = Val("&H" & Text1(u).Text)

Next

'<< 算法二 >>

Dim CRC_2() As Byte

Dim v As Integer

ReDim CRC_2(K)

For v = 0 To K

CRC_2(v) = Val("&H" & Text1(v).Text)

Next

'==================================================================================================

Call CRC161(CRC_2())

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码本人用的是Modbus RTU通讯模式,通过计算机串口转RS485与外围设备通行通讯,读写外围设备指定地址里的数据,从而达到自动化控制远端设备。

Call CRC16(WriteStr(), K)

MSComm1.InBufferCount = 0

'========== 显示发送代码 ========================================================================================

Dim m As Integer

For m = 0 To 23

If m <= K Then

Text8(m).Text = Hex(WriteStr(m))

Else

Text8(m).Text = ""

End If

Next

'==================================================================================================

WriteStr(K + 1) = LoByte

WriteStr(K + 2) = HiByte

' 发送代码

Text4.Text = ""

Dim g As Integer

For g = 0 To K + 2

Text4.Text = Text4.Text + " " + Hex(WriteStr(g))

Next

'写命令发送后,当接收到8 个字节时中断

CmdLenth = 8

MSComm1.RThreshold = CmdLenth

MSComm1.Output = WriteStr

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Command3_Click()

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码本人用的是Modbus RTU通讯模式,通过计算机串口转RS485与外围设备通行通讯,读写外围设备指定地址里的数据,从而达到自动化控制远端设备。

Label34.Caption = "="

Text13.Text = ""

K = Text9.Text '写6 个字节

'===========

========

'<< 算法 >>

Dim CRC_2() As Byte

Dim v As Integer

ReDim CRC_2(K)

For v = 0 To K

CRC_2(v) = Val("&H" & Text1(v).Text)

Next

'==================================================================================================

Call CRC161(CRC_2())

Call CRC16(WriteStr(), K)

MSComm1.InBufferCount = 0

'========== 显示发送代码 ========================================================================================

Dim m As Integer

For m = 0 To 23

If m <= K Then

Text8(m).Text = Hex(WriteStr(m))

Else

Text8(m).Text = ""

End If

Next

'==================================================================================================

WriteStr(K + 1) = LoByte 数组赋值输入代码 ===============================================================================

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码本人用的是Modbus RTU通讯模式,通过计算机串口转RS485与外围设备通行通讯,读写外围设备指定地址里的数据,从而达到自动化控制远端设备。

WriteStr(K + 2) = HiByte

' 发送代码

Text4.Text = ""

Dim g As Integer

For g = 0 To K + 2

Text4.Text = Text4.Text + " " + Hex(WriteStr(g))

Next

'读命令发送后,当接收 5 + SendStr(5) * 2 个字节时产生中断

CmdLenth = 5 + WriteStr(5) * 2

MSComm1.RThreshold = CmdLenth

MSComm1.Output = WriteStr '发送命令

'****************************************************************************************************************************************

'********************************************************** *********************************************************

'****************************************************************************************************************************************

' Dim sAddr As String

'

' Dim CheckString As String

' Dim CheckCode As String

' Dim CmdCode As String

' Dim Sum As Integer

' Dim a As Integer

' Dim tmp As String

'a = 0

'tmp = 0

'

'

'

' Do While Len(tmp) < 8

'

' tmp = tmp + MSComm1.Input

' testNO.Caption = testNO.Caption + " " + Str(Hex(Asc(tmp)))

' a = a + 1

' If a >= 3000 Then

' MSComm1.PortOpen = False

VB控件Mscomm控件与PLC进行RS485( …… 此处隐藏:5428字,全部文档内容请下载后查看。喜欢就下载吧 ……

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)