⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module1.bas

📁 vb与台达PLC通讯实例。 利用vb的MSComm端口
💻 BAS
字号:
Attribute VB_Name = "Module1"

'串口初始化

Public Sub INIT_comm()
    
    With BLtx.PLCtx

        .CommPort = 3  '设置通信端口

        .Settings = "9600,E,7,1"  '设置通信端口参数 9600赫兹、偶校验、7个数据位、2个停止位.
        
        .InBufferSize = 80  '设置缓冲区接收数据为80字节

        .InputLen = 0 '设置Input一次从接收缓冲读取字节数为1

       ' .RThreshold = 1  '设置接收一个字节就产生OnComm事件
       ' .RTSEnable = True
    End With

End Sub

'PLC读写子程序。RwD1为读写命令。ModBus  ASCII形式

Public Sub PLCTXio(ByRef RwD1 As String)
  Dim RwD, ReRwD As String
  Dim Fcc As String
  Dim Tim As Long

RwD = ":" + RwD1 + LRC(RwD1) + vbCr + vbLf
  
  If Not BLtx.PLCtx.PortOpen Then

      BLtx.PLCtx.PortOpen = True   '打开通信端口

  End If
    BLtx.PLCtx.InBufferCount = 0
    BLtx.PLCtx.OutBufferCount = 0
 
   Tim = Timer
    With BLtx.PLCtx
            .Output = RwD

        Do

            DoEvents

        Loop Until (.InBufferCount >= 5) Or (Abs(Timer - Tim) > 1) '循环等待接收缓冲区>=5个字节
          Call Sleep(100)

        If .InBufferCount > 1 Then ReRwD = .Input
        
        If Len(ReRwD) < 1 Then ReRwD = "X"
        If Val(Mid(ReRwD, 3, 1)) >= 8 Or ReRwD = "X" Then
          If .PortOpen Then .PortOpen = False
         
       Tim = Timer                        '延时
        Do

            DoEvents

        Loop Until (Abs(Timer - Tim) > 0.6)        '循环等待延时

         If Not .PortOpen Then .PortOpen = True
          
          .InBufferCount = 0
          .OutBufferCount = 0

          .Output = RwD
          
          Tim = Timer
          
          Do

             DoEvents

          Loop Until (.InBufferCount >= 5) Or (Abs(Timer - Tim) > 1) '循环等待接收缓冲区>=5个字节

          Call Sleep(100)
          If .InBufferCount > 1 Then ReRwD = .Input
          
        End If

    End With
        If Len(ReRwD) < 1 Then ReRwD = "X"
        If Mid(ReRwD, 3, 1) >= 8 Then ReRwD = "X"
        RwD1 = ReRwD

      BLtx.PLCtx.PortOpen = False  '关闭通信端口

End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -