677 lines
20 KiB
Plaintext
677 lines
20 KiB
Plaintext
|
|
VERSION 4.00
|
||
|
|
Begin VB.Form Form1
|
||
|
|
Caption = "Form1"
|
||
|
|
ClientHeight = 6570
|
||
|
|
ClientLeft = 1140
|
||
|
|
ClientTop = 915
|
||
|
|
ClientWidth = 8310
|
||
|
|
Height = 6975
|
||
|
|
Left = 1080
|
||
|
|
LinkTopic = "Form1"
|
||
|
|
ScaleHeight = 6570
|
||
|
|
ScaleWidth = 8310
|
||
|
|
Top = 570
|
||
|
|
Width = 8430
|
||
|
|
Begin VB.Timer Timer1
|
||
|
|
Interval = 1000
|
||
|
|
Left = 1080
|
||
|
|
Top = 360
|
||
|
|
End
|
||
|
|
Begin VB.Frame inputregs
|
||
|
|
Caption = "INPUT REGS"
|
||
|
|
Height = 4575
|
||
|
|
Left = 4320
|
||
|
|
TabIndex = 8
|
||
|
|
Top = 1440
|
||
|
|
Width = 1695
|
||
|
|
Begin VB.TextBox inregsaddress
|
||
|
|
Height = 285
|
||
|
|
Left = 480
|
||
|
|
TabIndex = 9
|
||
|
|
Text = "1"
|
||
|
|
Top = 360
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label inputreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 9
|
||
|
|
Left = 480
|
||
|
|
TabIndex = 20
|
||
|
|
Top = 4080
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label inputreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 8
|
||
|
|
Left = 480
|
||
|
|
TabIndex = 19
|
||
|
|
Top = 3720
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label inputreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 7
|
||
|
|
Left = 480
|
||
|
|
TabIndex = 18
|
||
|
|
Top = 3360
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label inputreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 6
|
||
|
|
Left = 480
|
||
|
|
TabIndex = 17
|
||
|
|
Top = 3000
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label inputreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 5
|
||
|
|
Left = 480
|
||
|
|
TabIndex = 16
|
||
|
|
Top = 2640
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label inputreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 4
|
||
|
|
Left = 480
|
||
|
|
TabIndex = 15
|
||
|
|
Top = 2280
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label inputreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 3
|
||
|
|
Left = 480
|
||
|
|
TabIndex = 14
|
||
|
|
Top = 1920
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label inputreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 2
|
||
|
|
Left = 480
|
||
|
|
TabIndex = 13
|
||
|
|
Top = 1560
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label inputreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 1
|
||
|
|
Left = 480
|
||
|
|
TabIndex = 12
|
||
|
|
Top = 1200
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label inputreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 0
|
||
|
|
Left = 480
|
||
|
|
TabIndex = 11
|
||
|
|
Top = 840
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
End
|
||
|
|
Begin VB.Frame Frame4
|
||
|
|
Caption = "HOLDING REGS"
|
||
|
|
Height = 4575
|
||
|
|
Left = 6360
|
||
|
|
TabIndex = 4
|
||
|
|
Top = 1440
|
||
|
|
Width = 1455
|
||
|
|
Begin VB.TextBox holdingregsaddress
|
||
|
|
Height = 285
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 7
|
||
|
|
Text = "1"
|
||
|
|
Top = 360
|
||
|
|
Width = 855
|
||
|
|
End
|
||
|
|
Begin VB.Label holdingreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 9
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 29
|
||
|
|
Top = 4080
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label holdingreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 8
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 28
|
||
|
|
Top = 3720
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label holdingreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 7
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 27
|
||
|
|
Top = 3360
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label holdingreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 6
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 26
|
||
|
|
Top = 3000
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label holdingreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 5
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 25
|
||
|
|
Top = 2640
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label holdingreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 4
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 24
|
||
|
|
Top = 2280
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label holdingreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 3
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 23
|
||
|
|
Top = 1920
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label holdingreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 2
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 22
|
||
|
|
Top = 1560
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label holdingreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 1
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 21
|
||
|
|
Top = 1200
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
Begin VB.Label holdingreg
|
||
|
|
Alignment = 2 'Center
|
||
|
|
Caption = "0000"
|
||
|
|
Height = 255
|
||
|
|
Index = 0
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 10
|
||
|
|
Top = 840
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
End
|
||
|
|
Begin VB.Frame Frame2
|
||
|
|
Caption = "COILS"
|
||
|
|
Height = 4575
|
||
|
|
Left = 2520
|
||
|
|
TabIndex = 3
|
||
|
|
Top = 1440
|
||
|
|
Width = 1455
|
||
|
|
Begin VB.CheckBox coilstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 9
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 50
|
||
|
|
Top = 4080
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox coilstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 8
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 49
|
||
|
|
Top = 3720
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox coilstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 7
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 48
|
||
|
|
Top = 3360
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox coilstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 6
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 47
|
||
|
|
Top = 3000
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox coilstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 5
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 46
|
||
|
|
Top = 2640
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox coilstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 4
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 45
|
||
|
|
Top = 2280
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox coilstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 3
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 44
|
||
|
|
Top = 1920
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox coilstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 2
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 43
|
||
|
|
Top = 1560
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox coilstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 1
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 42
|
||
|
|
Top = 1200
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox coilstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 0
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 41
|
||
|
|
Top = 840
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.TextBox coiladdress
|
||
|
|
Height = 285
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 6
|
||
|
|
Text = "1"
|
||
|
|
Top = 360
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
End
|
||
|
|
Begin VB.Frame Frame1
|
||
|
|
Caption = "INPUTS"
|
||
|
|
Height = 4575
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 2
|
||
|
|
Top = 1440
|
||
|
|
Width = 1575
|
||
|
|
Begin VB.CheckBox inputstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 9
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 40
|
||
|
|
Top = 4080
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox inputstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 8
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 39
|
||
|
|
Top = 3720
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox inputstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 7
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 38
|
||
|
|
Top = 3360
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox inputstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 6
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 37
|
||
|
|
Top = 3000
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox inputstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 5
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 36
|
||
|
|
Top = 2640
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox inputstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 4
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 35
|
||
|
|
Top = 2280
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox inputstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 3
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 34
|
||
|
|
Top = 1920
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox inputstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 2
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 33
|
||
|
|
Top = 1560
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox inputstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 1
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 32
|
||
|
|
Top = 1200
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.CheckBox inputstatus
|
||
|
|
Enabled = 0 'False
|
||
|
|
Height = 255
|
||
|
|
Index = 0
|
||
|
|
Left = 600
|
||
|
|
TabIndex = 31
|
||
|
|
Top = 840
|
||
|
|
Width = 255
|
||
|
|
End
|
||
|
|
Begin VB.TextBox inputaddress
|
||
|
|
Height = 285
|
||
|
|
Left = 360
|
||
|
|
TabIndex = 5
|
||
|
|
Text = "1"
|
||
|
|
Top = 360
|
||
|
|
Width = 735
|
||
|
|
End
|
||
|
|
End
|
||
|
|
Begin VB.TextBox Device
|
||
|
|
Height = 285
|
||
|
|
Left = 3720
|
||
|
|
TabIndex = 1
|
||
|
|
Text = "1"
|
||
|
|
Top = 720
|
||
|
|
Width = 855
|
||
|
|
End
|
||
|
|
Begin VB.Label statusline
|
||
|
|
Alignment = 2 'Center
|
||
|
|
ForeColor = &H000000FF&
|
||
|
|
Height = 255
|
||
|
|
Left = 840
|
||
|
|
TabIndex = 30
|
||
|
|
Top = 1080
|
||
|
|
Width = 6735
|
||
|
|
End
|
||
|
|
Begin VB.Label Label1
|
||
|
|
Caption = "Device"
|
||
|
|
BeginProperty Font
|
||
|
|
name = "MS Sans Serif"
|
||
|
|
charset = 0
|
||
|
|
weight = 700
|
||
|
|
size = 13.5
|
||
|
|
underline = 0 'False
|
||
|
|
italic = 0 'False
|
||
|
|
strikethrough = 0 'False
|
||
|
|
EndProperty
|
||
|
|
Height = 375
|
||
|
|
Left = 3600
|
||
|
|
TabIndex = 0
|
||
|
|
Top = 240
|
||
|
|
Width = 1095
|
||
|
|
End
|
||
|
|
End
|
||
|
|
Attribute VB_Name = "Form1"
|
||
|
|
Attribute VB_Creatable = False
|
||
|
|
Attribute VB_Exposed = False
|
||
|
|
Public m_svr As IModSca
|
||
|
|
|
||
|
|
Dim PollHandle(4) As Integer
|
||
|
|
Dim status(4) As Integer
|
||
|
|
Dim SlaveDevice As Integer
|
||
|
|
Dim StartAddress(4) As Long
|
||
|
|
|
||
|
|
Dim Modbus_Id(4) As Long
|
||
|
|
Dim Counter As Integer
|
||
|
|
Dim temp As Integer
|
||
|
|
Dim Modbus_Addr As Long
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
Private Sub Text4_Change()
|
||
|
|
|
||
|
|
End Sub
|
||
|
|
|
||
|
|
|
||
|
|
Private Sub coiladdress_Change()
|
||
|
|
|
||
|
|
If (IsNumeric(coiladdress.Text)) Then
|
||
|
|
StartAddress(1) = coiladdress.Text
|
||
|
|
Modbus_Addr = Modbus_Id(1) + StartAddress(1)
|
||
|
|
status(1) = m_svr.ModifyPollRequest(PollHandle(1), SlaveDevice, Modbus_Addr, 10)
|
||
|
|
StatusMsg (status(1))
|
||
|
|
End If
|
||
|
|
|
||
|
|
End Sub
|
||
|
|
|
||
|
|
Private Sub Device_Change()
|
||
|
|
|
||
|
|
If (IsNumeric(Device.Text)) Then
|
||
|
|
SlaveDevice = Device.Text
|
||
|
|
|
||
|
|
Modbus_Addr = Modbus_Id(0) + StartAddress(0)
|
||
|
|
temp = m_svr.ModifyPollRequest(PollHandle(0), SlaveDevice, Modbus_Addr, 10)
|
||
|
|
|
||
|
|
Modbus_Addr = Modbus_Id(1) + StartAddress(1)
|
||
|
|
temp = m_svr.ModifyPollRequest(PollHandle(1), SlaveDevice, Modbus_Addr, 10)
|
||
|
|
|
||
|
|
Modbus_Addr = Modbus_Id(2) + StartAddress(2)
|
||
|
|
temp = m_svr.ModifyPollRequest(PollHandle(2), SlaveDevice, Modbus_Addr, 10)
|
||
|
|
|
||
|
|
Modbus_Addr = Modbus_Id(3) + StartAddress(3)
|
||
|
|
temp = m_svr.ModifyPollRequest(PollHandle(3), SlaveDevice, Modbus_Addr, 10)
|
||
|
|
End If
|
||
|
|
|
||
|
|
End Sub
|
||
|
|
|
||
|
|
Private Sub Form_Load()
|
||
|
|
|
||
|
|
Set m_svr = CreateObject("ModScan32.Document")
|
||
|
|
|
||
|
|
|
||
|
|
Modbus_Id(0) = 10000 'input status prefix
|
||
|
|
Modbus_Id(1) = 0 'coil status prefix
|
||
|
|
Modbus_Id(2) = 30000 'input register prefix
|
||
|
|
Modbus_Id(3) = 40000 'holding register prefix
|
||
|
|
|
||
|
|
SlaveDevice = 1
|
||
|
|
For Counter = 0 To 3
|
||
|
|
StartAddress(Counter) = 1
|
||
|
|
Modbus_Addr = Modbus_Id(Counter) + StartAddress(Counter)
|
||
|
|
PollHandle(Counter) = m_svr.CreatePollRequest(SlaveDevice, Modbus_Addr, 10)
|
||
|
|
Next Counter
|
||
|
|
|
||
|
|
statusline = "** UNINITIALIZED **"
|
||
|
|
End Sub
|
||
|
|
|
||
|
|
|
||
|
|
Private Sub Form_Terminate()
|
||
|
|
|
||
|
|
For Counter = 0 To 4
|
||
|
|
m_svr.DeletePollRequest (PollHandle(Counter))
|
||
|
|
Next Counter
|
||
|
|
|
||
|
|
End Sub
|
||
|
|
|
||
|
|
|
||
|
|
Public Sub StatusMsg(Index As Integer)
|
||
|
|
If Index = 0 Then statusline = ""
|
||
|
|
If Index > 0 And Index < 256 Then statusline = "Slave Device Exception Response"
|
||
|
|
If Index = 256 Then statusline = "Invalid Handle"
|
||
|
|
If Index = 257 Then statusline = "Modbus Message Overrun"
|
||
|
|
If Index = 258 Then statusline = "Invalid Address"
|
||
|
|
If Index = 259 Then statusline = "Invalid Device Address"
|
||
|
|
If Index = 260 Then statusline = "Invalid Length Specification"
|
||
|
|
If Index = 261 Then statusline = "Invalid modbus command"
|
||
|
|
If Index = 262 Then statusline = "Driver Out-Of-Memory"
|
||
|
|
If Index = 263 Then statusline = "** Time-Out **"
|
||
|
|
If Index = 264 Then statusline = "Invalid Protocol Specification"
|
||
|
|
If Index = 265 Then statusline = "** Bad Checksum **"
|
||
|
|
If Index = 266 Then statusline = "Server NOT Connected"
|
||
|
|
If Index = 267 Then statusline = "Invalid Response from Driver"
|
||
|
|
If Index = 268 Then statusline = "Modbus Write Failure"
|
||
|
|
If Index = 269 Then statusline = "Remote Server not Connected"
|
||
|
|
If Index = 270 Then statusline = "** UNINITIALIZED **"
|
||
|
|
If Index = 271 Then statusline = "ModScan Demo Time Expired"
|
||
|
|
|
||
|
|
|
||
|
|
End Sub
|
||
|
|
|
||
|
|
Private Sub holdingregsaddress_Change()
|
||
|
|
|
||
|
|
If (IsNumeric(holdingregsaddress.Text)) Then
|
||
|
|
StartAddress(3) = holdingregsaddress.Text
|
||
|
|
Modbus_Addr = Modbus_Id(3) + StartAddress(3)
|
||
|
|
status(3) = m_svr.ModifyPollRequest(PollHandle(3), SlaveDevice, Modbus_Addr, 10)
|
||
|
|
StatusMsg (status(3))
|
||
|
|
End If
|
||
|
|
|
||
|
|
End Sub
|
||
|
|
|
||
|
|
Private Sub inputaddress_Change()
|
||
|
|
|
||
|
|
If (IsNumeric(inputaddress.Text)) Then
|
||
|
|
StartAddress(0) = inputaddress.Text
|
||
|
|
Modbus_Addr = Modbus_Id(0) + StartAddress(0)
|
||
|
|
status(0) = m_svr.ModifyPollRequest(PollHandle(0), SlaveDevice, Modbus_Addr, 10)
|
||
|
|
StatusMsg (status(0))
|
||
|
|
End If
|
||
|
|
|
||
|
|
End Sub
|
||
|
|
|
||
|
|
Private Sub inregsaddress_Change()
|
||
|
|
|
||
|
|
If (IsNumeric(inregsaddress.Text)) Then
|
||
|
|
StartAddress(2) = inregsaddress.Text
|
||
|
|
Modbus_Addr = Modbus_Id(2) + StartAddress(2)
|
||
|
|
status(2) = m_svr.ModifyPollRequest(PollHandle(2), SlaveDevice, Modbus_Addr, 10)
|
||
|
|
StatusMsg (status(2))
|
||
|
|
End If
|
||
|
|
|
||
|
|
End Sub
|
||
|
|
|
||
|
|
Private Sub Timer1_Timer()
|
||
|
|
|
||
|
|
For Counter = 0 To 9
|
||
|
|
status(0) = m_svr.ReadValue(PollHandle(0), Counter, temp)
|
||
|
|
StatusMsg (status(0))
|
||
|
|
If temp = 0 Then
|
||
|
|
inputstatus(Counter).Value = 0
|
||
|
|
Else
|
||
|
|
inputstatus(Counter).Value = 1
|
||
|
|
End If
|
||
|
|
Next Counter
|
||
|
|
|
||
|
|
For Counter = 0 To 9
|
||
|
|
status(1) = m_svr.ReadValue(PollHandle(1), Counter, temp)
|
||
|
|
StatusMsg (status(1))
|
||
|
|
If temp = 0 Then
|
||
|
|
coilstatus(Counter).Value = 0
|
||
|
|
Else
|
||
|
|
coilstatus(Counter).Value = 1
|
||
|
|
End If
|
||
|
|
Next Counter
|
||
|
|
|
||
|
|
For Counter = 0 To 9
|
||
|
|
status(2) = m_svr.ReadValue(PollHandle(2), Counter, temp)
|
||
|
|
StatusMsg (status(2))
|
||
|
|
inputreg(Counter).Caption = temp
|
||
|
|
Next Counter
|
||
|
|
|
||
|
|
|
||
|
|
For Counter = 0 To 9
|
||
|
|
status(3) = m_svr.ReadValue(PollHandle(3), Counter, temp)
|
||
|
|
StatusMsg (status(3))
|
||
|
|
holdingreg(Counter).Caption = temp
|
||
|
|
Next Counter
|
||
|
|
|
||
|
|
|
||
|
|
End Sub
|
||
|
|
|
||
|
|
|