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

📄 frmfx.frm

📁 plcfx VB开发的串口与三菱PLC通讯源码
💻 FRM
📖 第 1 页 / 共 2 页
字号:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form frmfx 
   Caption         =   "三菱FX系列通讯程序"
   ClientHeight    =   4830
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   5220
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   ScaleHeight     =   4830
   ScaleWidth      =   5220
   StartUpPosition =   1  '所有者中心
   Begin VB.Frame Frame1 
      Caption         =   "元件数据读写"
      Height          =   1935
      Left            =   360
      TabIndex        =   8
      Top             =   1320
      Width           =   4455
      Begin VB.OptionButton OptionH 
         Caption         =   "十六进制"
         Height          =   255
         Left            =   3120
         TabIndex        =   15
         Top             =   240
         Width           =   1095
      End
      Begin VB.OptionButton OptionD 
         Caption         =   "十进制"
         Height          =   255
         Left            =   2160
         TabIndex        =   14
         Top             =   240
         Value           =   -1  'True
         Width           =   975
      End
      Begin VB.CheckBox Check1 
         Caption         =   "Check1"
         Height          =   255
         Left            =   1680
         TabIndex        =   13
         Top             =   1080
         Width           =   255
      End
      Begin VB.CommandButton SETRST 
         Caption         =   "SET/RST"
         Height          =   375
         Left            =   240
         TabIndex        =   12
         Top             =   1440
         Width           =   975
      End
      Begin VB.TextBox Text2 
         Height          =   270
         Left            =   2280
         TabIndex        =   11
         Top             =   1080
         Width           =   1935
      End
      Begin VB.TextBox Text1 
         Height          =   270
         Left            =   120
         TabIndex        =   10
         Top             =   1080
         Width           =   1215
      End
      Begin VB.CommandButton cmdPause 
         Caption         =   "暂停"
         Height          =   375
         Left            =   3120
         TabIndex        =   9
         Top             =   1440
         Width           =   1095
      End
      Begin VB.Label Label1 
         Caption         =   "16Bit"
         Height          =   255
         Left            =   1560
         TabIndex        =   18
         Top             =   1320
         Width           =   495
      End
      Begin VB.Label Label2 
         Caption         =   "输入地址后回车(如D10,Y0等)"
         Height          =   495
         Left            =   120
         TabIndex        =   17
         Top             =   600
         Width           =   1455
      End
      Begin VB.Label Label3 
         Caption         =   "返回结果:(可输入你要设置的值后回车,如100,300等)"
         Height          =   495
         Left            =   2040
         TabIndex        =   16
         Top             =   600
         Width           =   2295
      End
   End
   Begin VB.Frame fraComm2 
      Caption         =   "通信参数设置"
      Height          =   615
      Left            =   360
      TabIndex        =   3
      Top             =   3600
      Width           =   4455
      Begin VB.ComboBox cboPort 
         Height          =   315
         Left            =   1080
         TabIndex        =   5
         Text            =   "Combo1"
         Top             =   240
         Width           =   975
      End
      Begin VB.ComboBox cboStation 
         Height          =   315
         Left            =   3360
         TabIndex        =   4
         Text            =   "Combo2"
         Top             =   240
         Width           =   975
      End
      Begin VB.Label Label4 
         Caption         =   "通信口:"
         Height          =   255
         Left            =   120
         TabIndex        =   7
         Top             =   240
         Width           =   855
      End
      Begin VB.Label Label5 
         Caption         =   "PLC站:"
         Height          =   255
         Left            =   2520
         TabIndex        =   6
         Top             =   240
         Width           =   735
      End
   End
   Begin VB.Frame fraComm1 
      Height          =   735
      Left            =   360
      TabIndex        =   0
      Top             =   240
      Width           =   4455
      Begin VB.CommandButton cmdRun 
         Caption         =   "PLC运行"
         Height          =   375
         Left            =   2520
         TabIndex        =   2
         Top             =   240
         Width           =   1695
      End
      Begin VB.CommandButton cmdLoopTest 
         Caption         =   "通信回路测试"
         Height          =   375
         Left            =   360
         TabIndex        =   1
         Top             =   240
         Width           =   1575
      End
   End
   Begin MSCommLib.MSComm CommFX 
      Left            =   4680
      Top             =   4200
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
      DTREnable       =   -1  'True
   End
   Begin VB.Label lblTopic 
      AutoSize        =   -1  'True
      Caption         =   "提示"
      ForeColor       =   &H0080FFFF&
      Height          =   180
      Left            =   360
      TabIndex        =   19
      Top             =   4440
      Width           =   360
   End
End
Attribute VB_Name = "frmfx"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False



Option Explicit

Dim DevAdd As String, SetIn As String
Dim DevDat As String
Dim DevDat1 As String
Dim DevDatTC As String
Dim start As Boolean
Dim Tim As Single
Dim DevType As String
Dim DevDData As Double
Dim DevDataStr As String
Dim setaddr As String, setad As String, char As String
Dim Device As String
Dim blnExit As Boolean

Private Sub cboPort_Click()
    Call CommSet
End Sub

Private Sub Check1_Click()
    If Check1.Value = 1 Then
        Label1.Caption = "32Bit"
    Else
        Label1.Caption = "16Bit"
    End If
    Text1_KeyPress (13)
End Sub


Private Sub Check1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        lblTopic = "数据以16bit或32bit(双字节)形式读取或设置"
End Sub

Private Sub cmdLoopTest_Click()
    On Error Resume Next
    Dim LoopData As String
    Dim Tim As Single

    CommFX.InBufferCount = 0
    CommFX.OutBufferCount = 0
    LoopData = cboStation.Text + "FFTT008ABCDEFGH"
    CommFX.Output = Chr(5) + LoopData + SumChk(LoopData)
          If Err Then
        MsgBox Error$, 48, "回路检测"
        Exit Sub
    End If

    Tim = Timer
    Do
       If Timer > Tim + 1 Then MsgBox "没有与远程连接!": Exit Sub
    Loop Until CommFX.InBufferCount > 17
    If Left$(CommFX.Input, 16) = Chr(2) + cboStation.Text + "FF08ABCDEFGH" + Chr(3) Then
       MsgBox "接通正常...", , "回路检测"
    Else
        MsgBox "通信出错!!", 48, "回路检测"
    End If
End Sub

Private Sub cmdLoopTest_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    lblTopic = "检测通信回路是否连接,参数设置是否正确"
End Sub

Private Sub cmdPause_Click()
    start = False
    fraComm1.Visible = True
    fraComm2.Visible = True
End Sub

Private Sub cmdPause_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        lblTopic = "暂停实时监控,可以进行通信参数修改等其他操作"
End Sub



'此子程序用来使PLC运行/停止
Private Sub cmdRun_Click()
    Dim RSStr As String
    Dim dat As String
    Dim WTim As Single
    If MsgBox("改变运行可能造成危险,是否继续?", vbOKCancel + vbCritical) = vbCancel Then Exit Sub
    CommFX.OutBufferCount = 0
    CommFX.InBufferCount = 0
    If cmdRun.Caption = "PLC运行" Then
        dat = cboStation.Text + "FFRR0"
        cmdRun.Caption = "PLC停止"
    Else
        dat = cboStation.Text + "FFRS0"
        cmdRun.Caption = "PLC运行"
    End If
    CommFX.Output = Chr$(5) + dat + SumChk(dat)
    WTim = Timer
    Do
        If Timer > WTim + 1 Then: Exit Do
    Loop Until CommFX.InBufferCount = 7
    RSStr = CommFX.Input
    If Len(RSStr) < 5 Then
        MsgBox "状态无法改变,通讯出错!", vbOKOnly + vbExclamation
    ElseIf RSStr <> Chr(6) + cboStation.Text + "FF" Then
        MsgBox "状态无法改变,PLC运行开关常闭或已处于该状态!", vbOKOnly + vbExclamation
    Else
        MsgBox "状态改变!", vbOKOnly
    End If
End Sub

Private Sub cmdRun_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    lblTopic = "将所连接的PLC的运行状态软改变"
End Sub

Private Sub Form_Load()
    Dim i As Integer
    For i = 1 To 10
        cboPort.AddItem "Com" & Trim$(Str$(i))
        cboPort.ListIndex = 0
    Next i
    For i = 0 To 15
        cboStation.AddItem "0" + Trim$(Hex(i))
        cboStation.ListIndex = 0
    Next i

    'Call CommSet
End Sub



Private Sub Form_Activate()
    start = False
    blnExit = False
    SETRST.Enabled = False
    
    '进入实时监控状态
    Do While Not blnExit
FirstLoop:
        DoEvents
        If start Then
            CommFX.InBufferCount = 0
            CommFX.OutBufferCount = 0
            CommFX.Output = Chr(5) + DevDat + SumChk(DevDat)

⌨️ 快捷键说明

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