?? frmmain.frm
字號:
VERSION 5.00
Object = "{43715ED3-EE9F-4827-A03F-1C1C99883974}#1.0#0"; "Moubus.ocx"
Begin VB.Form frmMain
BorderStyle = 3 'Fixed Dialog
Caption = "Modbus Client demo"
ClientHeight = 3675
ClientLeft = 735
ClientTop = 330
ClientWidth = 5910
Icon = "frmMain.frx":0000
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 3675
ScaleWidth = 5910
StartUpPosition = 3 '窗口缺省
Begin VB.CommandButton cmdAbout
Caption = "關于"
Height = 375
Left = 3330
TabIndex = 19
Top = 3105
Width = 1005
End
Begin VB.CommandButton cmdClose
Caption = "關閉"
Height = 375
Left = 4455
TabIndex = 18
Top = 3105
Width = 1005
End
Begin VB.Frame Frame4
Caption = "PLC連接"
Height = 795
Left = 180
TabIndex = 14
Top = 90
Width = 5565
Begin VB.PictureBox picFlag
BackColor = &H000000FF&
Height = 315
Left = 150
ScaleHeight = 255
ScaleWidth = 285
TabIndex = 17
Top = 300
Width = 345
End
Begin VB.ComboBox cmbNo
Height = 300
Left = 600
Style = 2 'Dropdown List
TabIndex = 16
Top = 300
Width = 3825
End
Begin VB.CommandButton cmdLogin
Caption = "登錄"
Height = 345
Left = 4560
TabIndex = 15
Top = 270
Width = 795
End
End
Begin VB.Frame Frame2
Caption = "發送數據/修改數據"
Height = 1905
Left = 180
TabIndex = 0
Top = 1050
Width = 5565
Begin ModbusRtus.ModbusRtu ModbusRtu1
Left = 1440
Top = 210
_ExtentX = 3784
_ExtentY = 2672
End
Begin VB.ComboBox cmbLen
Height = 300
ItemData = "frmMain.frx":038A
Left = 4710
List = "frmMain.frx":0394
Locked = -1 'True
Style = 2 'Dropdown List
TabIndex = 8
Top = 330
Width = 645
End
Begin VB.Timer tmrRead
Enabled = 0 'False
Interval = 1000
Left = 5370
Top = 690
End
Begin VB.CheckBox chkRun
Alignment = 1 'Right Justify
Caption = "連續讀"
ForeColor = &H00FF8080&
Height = 345
Left = 3120
TabIndex = 7
Top = 720
Width = 885
End
Begin VB.CommandButton cmdWriteData
Caption = "寫"
Height = 315
Left = 4800
TabIndex = 6
Top = 720
Width = 555
End
Begin VB.ComboBox cmbType
Height = 300
ItemData = "frmMain.frx":039E
Left = 3450
List = "frmMain.frx":03AE
Style = 2 'Dropdown List
TabIndex = 5
Top = 330
Width = 645
End
Begin VB.TextBox txtData
Height = 585
Left = 210
MultiLine = -1 'True
TabIndex = 4
Top = 1110
Width = 5145
End
Begin VB.ComboBox cmbNum
Height = 300
Left = 2130
Style = 2 'Dropdown List
TabIndex = 3
Top = 330
Width = 675
End
Begin VB.CommandButton cmdReadData
Caption = "讀"
Height = 315
Left = 4230
TabIndex = 2
Top = 720
Width = 555
End
Begin VB.TextBox txtAddr
Height = 285
Left = 1080
TabIndex = 1
Text = "0"
Top = 330
Width = 465
End
Begin VB.Label lblLen
Caption = "類別:"
Height = 285
Index = 0
Left = 4200
TabIndex = 13
Top = 390
Width = 1125
End
Begin VB.Label Label1
Caption = "數據:"
Height = 285
Index = 3
Left = 210
TabIndex = 12
Top = 780
Width = 1065
End
Begin VB.Label Label1
Caption = "類型:"
Height = 285
Index = 2
Left = 2940
TabIndex = 11
Top = 390
Width = 705
End
Begin VB.Label lblLen
Caption = "個數:"
Height = 285
Index = 1
Left = 1620
TabIndex = 10
Top = 390
Width = 705
End
Begin VB.Label Label1
Caption = "變量地址:"
Height = 285
Index = 0
Left = 210
TabIndex = 9
Top = 390
Width = 1065
End
End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'*************************************************************************
'**模 塊 名:frmTest
'**說 明:YFsoft 版權所有2005 - 2006(C)
'**創 建 人:葉帆
'**日 期:2005-08-23 14:45:36
'**修 改 人:
'**日 期:
'**描 述:MbClient 控件示例
'**版 本:V1.0.0
'*************************************************************************
'*************************************************************************
'**函 數 名:chkRun_Click
'**輸 入:無
'**輸 出:無
'**功能描述:
'**全局變量:
'**調用模塊:
'**作 者:葉帆
'**日 期:2005-08-28 11:11:25
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'*************************************************************************
Private Sub chkRun_Click()
tmrRead.Enabled = IIf(chkRun.Value = 0, False, True)
End Sub
'*************************************************************************
'**函 數 名:cmbType_Click
'**輸 入:無
'**輸 出:無
'**功能描述:
'**全局變量:
'**調用模塊:
'**作 者:葉帆
'**日 期:2005-08-29 11:42:33
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'*************************************************************************
Private Sub cmbType_Click()
If cmbType.ListIndex < 2 Then
cmbLen.ListIndex = 0
Else
cmbLen.ListIndex = 1
End If
End Sub
'*************************************************************************
'**函 數 名:cmdAbout_Click
'**輸 入:無
'**輸 出:無
'**功能描述:
'**全局變量:
'**調用模塊:
'**作 者:葉帆
'**日 期:2005-11-19 23:48:27
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'*************************************************************************
Private Sub cmdAbout_Click()
ModbusRtu1.About
End Sub
'*************************************************************************
'**函 數 名:cmdClose_Click
'**輸 入:無
'**輸 出:無
'**功能描述:
'**全局變量:
'**調用模塊:
'**作 者:葉帆
'**日 期:2005-11-19 23:48:12
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'*************************************************************************
Private Sub cmdClose_Click()
Unload Me
End Sub
'*************************************************************************
'**函 數 名:cmdLogin_Click
'**輸 入:無
'**輸 出:無
'**功能描述:
'**全局變量:
'**調用模塊:
'**作 者:葉帆
'**日 期:2005-07-26 20:39:33
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'*************************************************************************
Private Sub cmdLogin_Click()
Dim lngData() As Long
Dim lngRet As Long
ModbusRtu1.FixAddr = cmbNo.ListIndex + 1
lngRet = ModbusRtu1.ReadData(Val(txtAddr), lngData(), , , Modbus_V)
If lngRet = 0 Then
picFlag.BackColor = RGB(0, 255, 0)
Else
picFlag.BackColor = RGB(255, 0, 0)
End If
End Sub
'*************************************************************************
'**函 數 名:cmdSendData_Click
'**輸 入:無
'**輸 出:無
'**功能描述:
'**全局變量:
'**調用模塊:
'**作 者:葉帆
'**日 期:2005-08-27 23:59:32
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'*************************************************************************
Private Sub cmdReadData_Click()
On Error GoTo ToExit '打開錯誤陷阱
'------------------------------------------------
Dim i As Long
Dim bytType As Byte
Dim lngData() As Long
Select Case cmbType.ListIndex
Case 0: bytType = Modbus_I
Case 1: bytType = Modbus_Q
Case 2: bytType = Modbus_AI
Case 3: bytType = Modbus_V
End Select
ModbusRtu1.FixAddr = cmbNo.ListIndex + 1
If ModbusRtu1.ReadData(Val(txtAddr), lngData(), Val(cmbNum.Text), Val(cmbLen.ListIndex), Val(bytType)) = 0 Then
txtData = ""
For i = 1 To Val(cmbNum.Text)
txtData = txtData & Format(lngData(i - 1), "0") & " "
Next
Else
txtData = "Error"
End If
' 'modbus 默認最小單位是字(以long型存取,其實只用到低2個字節),所以在獲取其它類型的數據時,要進行適當的轉換
' 'Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
' Dim lngData() As Long
' Dim intData(0 To 1) As Integer
'
' Dim sngData As Single
' Call ModbusRtu1.ReadData(1, lngData(), 2)
' intData(0) = lngData(0)
' intData(1) = lngData(1)
'
'
' CopyMemory ByVal VarPtr(sngData), ByVal VarPtr(intData(0)), Len(sngData) '浮點需要轉換
'
' Dim lngData() As Long
' Dim bytData(0 To 1) As Byte
'
' Dim intData As Integer
' Call ModbusRtu1.ReadData(1, lngData(), 2, , Modbus_Q)
' bytData(0) = lngData(0)
' bytData(1) = lngData(1)
'
'
' CopyMemory ByVal VarPtr(intData), ByVal VarPtr(bytData(0)), Len(intData) '需要轉換
'------------------------------------------------
Exit Sub
'----------------
ToExit:
MsgBox Err.Description
End Sub
'*************************************************************************
'**函 數 名:cmdWriteData_Click
'**輸 入:無
'**輸 出:無
'**功能描述:
'**全局變量:
'**調用模塊:
'**作 者:葉帆
'**日 期:2005-08-28 11:43:08
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'*************************************************************************
Private Sub cmdWriteData_Click()
On Error GoTo ToExit '打開錯誤陷阱
'------------------------------------------------
Dim bytType As Byte
Dim strData() As String
Dim lngData() As Long
Dim i As Long
Select Case cmbType.ListIndex
Case 0: bytType = Modbus_I
Case 1: bytType = Modbus_Q
Case 2: bytType = Modbus_AI
Case 3: bytType = Modbus_V
End Select
If Len(txtData) > 0 Then
strData = Split(txtData, " ")
ReDim lngData(UBound(strData))
For i = 0 To UBound(strData)
lngData(i) = Val(strData(i))
Next
If ModbusRtu1.WriteData(Val(txtAddr), lngData, UBound(strData) + 1, Val(cmbLen.ListIndex), Val(bytType), cmbNo.ListIndex + 1) = 0 Then
'
Else
txtData = "Error"
End If
End If
'------------------------------------------------
Exit Sub
'----------------
ToExit:
MsgBox Err.Description
End Sub
'*************************************************************************
'**函 數 名:Form_Load
'**輸 入:無
'**輸 出:無
'**功能描述:
'**全局變量:
'**調用模塊:
'**作 者:葉帆
'**日 期:2005-08-28 19:07:04
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'*************************************************************************
Private Sub Form_Load()
Dim i As Long
For i = 1 To 222
cmbNo.AddItem Format(i, "0")
Next
For i = 1 To 100
cmbNum.AddItem Format(i, "0")
Next
cmbNum.ListIndex = 0
cmbNo.ListIndex = 0
cmbType.ListIndex = 3
ModbusRtu1.InitRegCompany "普洛塞斯控制技術(天津)有限公司"
ModbusRtu1.OpenPort 1
End Sub
'*************************************************************************
'**函 數 名:Form_Unload
'**輸 入:Cancel(Integer) -
'**輸 出:無
'**功能描述:關閉串口
'**全局變量:
'**調用模塊:
'**作 者:葉帆
'**日 期:2005-08-23 14:40:05
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'*************************************************************************
Private Sub Form_Unload(Cancel As Integer)
ModbusRtu1.ClosePort
End
End Sub
'*************************************************************************
'**函 數 名:tmrRead_Timer
'**輸 入:無
'**輸 出:無
'**功能描述:
'**全局變量:
'**調用模塊:
'**作 者:葉帆
'**日 期:2005-08-28 11:10:58
'**修 改 人:
'**日 期:
'**版 本:V1.0.0
'*************************************************************************
Private Sub tmrRead_Timer()
cmdReadData_Click
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -