📄 frmfx.frm
字号:
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -