📄 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 = 1 '所有者中心
Begin ModbusRtus.ModbusRtu ModbusRtu1
Left = 90
Top = 2115
_ExtentX = 3784
_ExtentY = 2672
End
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 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
'**修 改 人:
'**日 期:
'**描 述:Modbus Client 控件示例(需连接西门子200PLC)
'** 非注册版本只能读取变量区的前10个地址,注册用户读写数据无限制,也无用户个数限制
'** 获取注册图片后,直接拷贝到控件的当前目录即可完成注册,注意在程序中添加下面一行代码:
'** ModbusRtu1.RegCompany="×××公司" 公司名称要和你注册提交的公司名称一致
'** 最新版本请关注:http://blog.csdn.net/yefanqiu
'**在线注册:http://www.softreg.com.cn/shareware_view.asp?id=/268087AD-2589-4D03-831B-85ED1BDEDE84/
'**描 述: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
'------------------------------------------------
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 + -