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

时间:2025-04-21

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文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    Copyright © 2023-2025 学科文库 版权所有
    本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
    客服QQ:370150219 邮箱:370150219@qq.com
    苏ICP备16052595号-5

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219