?? 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 'CenterOwner
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
'網址:http://szgkw.51.net
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 + -