⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.frm

📁 F:VB与分布式监控光盘源代码数字输出控制-修正
💻 FRM
字号:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form Form1 
   Caption         =   "7060数字输出控制"
   ClientHeight    =   4170
   ClientLeft      =   45
   ClientTop       =   210
   ClientWidth     =   6675
   LinkTopic       =   "Form1"
   ScaleHeight     =   4170
   ScaleWidth      =   6675
   StartUpPosition =   2  '屏幕中心
   Begin VB.ComboBox cmbNO 
      BeginProperty Font 
         Name            =   "Times New Roman"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   405
      Left            =   1980
      TabIndex        =   10
      Text            =   "Combo1"
      Top             =   405
      Width           =   1140
   End
   Begin VB.CommandButton cmdOpenCOM 
      Caption         =   "打开通信端口"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   600
      Left            =   4440
      TabIndex        =   4
      Top             =   315
      Width           =   1590
   End
   Begin VB.ComboBox cmbCOM 
      BeginProperty Font 
         Name            =   "Times New Roman"
         Size            =   12
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   405
      Left            =   450
      TabIndex        =   3
      Text            =   "Combo1"
      Top             =   405
      Width           =   1140
   End
   Begin VB.CommandButton cmdEnd 
      Caption         =   "结束"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   600
      Left            =   4410
      TabIndex        =   0
      Top             =   2025
      Width           =   1590
   End
   Begin MSCommLib.MSComm MSComm1 
      Left            =   135
      Top             =   1035
      _ExtentX        =   1005
      _ExtentY        =   1005
      _Version        =   393216
      DTREnable       =   -1  'True
   End
   Begin VB.Label lblMsg 
      BackColor       =   &H00C0FFFF&
      BorderStyle     =   1  'Fixed Single
      Caption         =   "Label2"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   420
      Left            =   315
      TabIndex        =   11
      Top             =   3645
      Width           =   5460
   End
   Begin VB.Label Label1 
      Caption         =   "站号"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   330
      Index           =   6
      Left            =   2025
      TabIndex        =   9
      Top             =   90
      Width           =   780
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "RL4"
      BeginProperty Font 
         Name            =   "Tahoma"
         Size            =   12
         Charset         =   136
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   240
      Index           =   5
      Left            =   3375
      TabIndex        =   8
      Top             =   1665
      Width           =   465
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "RL3"
      BeginProperty Font 
         Name            =   "Tahoma"
         Size            =   12
         Charset         =   136
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   240
      Index           =   4
      Left            =   2475
      TabIndex        =   7
      Top             =   1665
      Width           =   465
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "RL2"
      BeginProperty Font 
         Name            =   "Tahoma"
         Size            =   12
         Charset         =   136
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   240
      Index           =   3
      Left            =   1575
      TabIndex        =   6
      Top             =   1665
      Width           =   465
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "RL1"
      BeginProperty Font 
         Name            =   "Tahoma"
         Size            =   12
         Charset         =   136
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   240
      Index           =   2
      Left            =   675
      TabIndex        =   5
      Top             =   1665
      Width           =   465
   End
   Begin VB.Image imgOut 
      Height          =   1095
      Index           =   3
      Left            =   3285
      Stretch         =   -1  'True
      Top             =   1935
      Width           =   690
   End
   Begin VB.Image imgOut 
      Height          =   1095
      Index           =   2
      Left            =   2385
      Stretch         =   -1  'True
      Top             =   1935
      Width           =   690
   End
   Begin VB.Image imgOut 
      Height          =   1095
      Index           =   1
      Left            =   1485
      Stretch         =   -1  'True
      Top             =   1935
      Width           =   690
   End
   Begin VB.Image imgOut 
      Height          =   1095
      Index           =   0
      Left            =   495
      Stretch         =   -1  'True
      Top             =   1935
      Width           =   690
   End
   Begin VB.Image imgOFF 
      Height          =   735
      Left            =   3420
      Picture         =   "frmMain.frx":0000
      Stretch         =   -1  'True
      Top             =   0
      Visible         =   0   'False
      Width           =   780
   End
   Begin VB.Image imgON 
      Height          =   735
      Left            =   3465
      Picture         =   "frmMain.frx":2946
      Stretch         =   -1  'True
      Top             =   855
      Visible         =   0   'False
      Width           =   780
   End
   Begin VB.Label Label1 
      AutoSize        =   -1  'True
      Caption         =   "数字输出控制"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   240
      Index           =   1
      Left            =   1560
      TabIndex        =   2
      Top             =   1395
      Width           =   1440
   End
   Begin VB.Label Label1 
      Caption         =   "通信端口"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   12
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   330
      Index           =   0
      Left            =   450
      TabIndex        =   1
      Top             =   135
      Width           =   1125
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

'声明记录四个数字输出状态的数组变量
Dim RelayStatus(1 To 4) As Boolean


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'当选择通信端口的Combo控件被选中后触发此事件
'若用户改变通信端口时,关闭通信端口
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmbCOM_Click()
  '若通信端口号码和现在的选择一样时就不处理,直接跳出此子程序
  If cmbCOM.ListIndex + 1 = MSComm1.CommPort Then Exit Sub
  MSComm1.PortOpen = False                    '关闭通信端口
  lblMsg.Caption = "已停止检测并关闭通信端口"
  cmdOpenCOM.Enabled = True     '允许使用【打开通信端口】按钮
End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'单击【结束】按钮后触发此事件
'使用End命令将系统结束
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdEnd_Click()
  End
End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'单击【打开通信端口】按钮后触发此事件
'将MSComm控件的参数设置好,并打开
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdOpenCOM_Click()
  '校验是否开关通信端口
  If cmdOpenCOM.Caption = "关闭通信端口" Then
    MSComm1.PortOpen = False
    cmdOpenCOM.Caption = "打开通信端口"
    Exit Sub
  End If
  '判断端口号码是否落在1--16之间
  If cmbCOM.ListIndex >= 0 And cmbCOM.ListIndex <= 16 Then
    MSComm1.CommPort = cmbCOM.ListIndex + 1
  Else
    MsgBox "指定通信端口时发生错误!", vbCritical + vbOKOnly, "系统信息"
    Exit Sub
  End If
  '触发错误检测机制
  On Error GoTo comErr
  MSComm1.Settings = "9600,n,8,1"  '设置通信参数
  MSComm1.PortOpen = True          '打开通信端口
  cmdOpenCOM.Caption = "关闭通信端口"
  lblMsg.Caption = "可按下ON-OFF开关,执行继电器的控制工作。"
  Exit Sub
comErr:
  MsgBox "打开通信端口时发生错误!请确定通信端口存在且正常。", vbCritical + vbOKOnly, "系统信息"
End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'窗体的Load事件
'输入图形暂时设为灰色,表示无状态信息进入
'将通信端口号码及站号输入Combo控件;并默认两者的选项是第一个
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Form_Load()
  Dim i%
  For i = 0 To 3
    imgOut(i).Picture = imgOFF.Picture
  Next i
  cmbNO.Clear
  For i = 1 To 255
    cmbNO.AddItem CStr(Hex(i))
  Next i
  cmbNO.ListIndex = 0
  cmbCOM.Clear
  cmbCOM.AddItem "COM1"
  cmbCOM.AddItem "COM2"
  cmbCOM.ListIndex = 0
  
End Sub


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'当代表数字输出的Image控件被选中时触发此事件
'将被选中的继电器作转态
'转态后将数字输出的决定送至模块执行
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub imgOut_Click(Index As Integer)
  Dim Buf$, RLOut%, i%
  '将记录转态,并改变ON.OFF按钮的显示
  RelayStatus(Index + 1) = Not RelayStatus(Index + 1)
  If RelayStatus(Index + 1) Then
    imgOut(Index).Picture = imgON.Picture
  Else
    imgOut(Index).Picture = imgOFF.Picture
  End If
  '计算输出值
  RLOut = 0
  For i = 1 To 4
   If RelayStatus(i) Then RLOut = RLOut + 2 ^ (i - 1)
  Next i
  '若通信端口尚未打开,不可发送数据
  If cmdOpenCOM.Caption = "打开通信端口" Then Exit Sub
  Buf = cmbNO.List(cmbNO.ListIndex)
  '若只有一位数,则在此位数的前端加上一个0
  If Len(Buf) = 1 Then
    Buf = "0" & Buf
  End If
  MSComm1.Output = "#" & Buf & "000" & Hex(RLOut) & Chr(13)   '组合完整的命令字符串
  '等到cr的字符返回
  Buf = WaitRS(MSComm1, vbCr, 2000)
 End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -