ex1.frm
资源名称:modscan32.zip [点击查看]
上传用户:lhxd_sz
上传日期:2008-02-12
资源大小:778k
文件大小:20k
源码类别:
软件工程
开发平台:
Visual C++
- 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