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

📄 ai&do.frm

📁 利用ActiveDAQ控件实现板卡温度测量与控制
💻 FRM
📖 第 1 页 / 共 2 页
字号:
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   285
         Left            =   2280
         TabIndex        =   16
         Top             =   1560
         Width           =   240
      End
      Begin VB.Label Label5 
         Caption         =   "℃"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   285
         Left            =   2280
         TabIndex        =   15
         Top             =   1035
         Width           =   240
      End
      Begin VB.Label Label8 
         Caption         =   "℃"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   285
         Left            =   2280
         TabIndex        =   14
         Top             =   480
         Width           =   240
      End
      Begin VB.Label Label4 
         Caption         =   "平均值:"
         Height          =   255
         Left            =   225
         TabIndex        =   12
         Top             =   1035
         Width           =   855
      End
      Begin VB.Label Label1 
         Caption         =   "当前值:"
         Height          =   255
         Left            =   225
         TabIndex        =   10
         Top             =   480
         Width           =   855
      End
      Begin VB.Label Label3 
         Caption         =   "最大值:"
         Height          =   255
         Left            =   225
         TabIndex        =   6
         Top             =   2160
         Width           =   855
      End
      Begin VB.Label Label2 
         Caption         =   "最小值:"
         Height          =   255
         Left            =   225
         TabIndex        =   4
         Top             =   1605
         Width           =   855
      End
   End
End
Attribute VB_Name = "DAQForm"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'定义变量
Dim num As Integer                             '采集的数据个数
Dim Data(1000) As Single                       '数据的数值形式
Dim filedata(1000) As String                   '数据的字符串形式
Dim Mindata As Single                          '下限温度报警值
Dim Maxdata As Single                          '上限温度报警值
Dim drawtype As Integer                        '绘图类型选择
'程序初始化
Private Sub Form_Load()
  DAQAI1.SelectDevice                          '选择模拟量输入设备
  DAQDO1.SelectDevice                          '选择数字量输出设备
  DAQAI1.StartChannel = 1                      '通道号1
  DAQAI1.SampleRate = 500                      '采样频率
  DAQAI1.OpenDevice                            '打开模拟量输入端口
  DAQDO1.OpenDevice                            '打开数字量输出端口
  drawtype = 1                                 '初始绘制连续的曲线图
  Mindata = 20: Maxdata = 30                   '下限、上限温度报警初始值
  Tmin.Text = Mindata: Tmax.Text = Maxdata     '显示下限、上限温度值
  alarm1.FillColor = QBColor(10)               '报警指示灯初始颜色
  alarm2.FillColor = QBColor(10)
  Timer1.Enabled = True
  Call tabinit                                 '调用表格初始化子程序
End Sub
'数据表格初始化
Public Sub tabinit()
  Grid.Cols = 2
  Grid.Rows = 200 + 1
  Grid.ColWidth(0) = 700
  Grid.ColWidth(1) = 950
  Grid.Col = 0
  For i = 1 To 200
    Grid.Row = i
    Grid.Text = "  " + Str$(i)
  Next i
  Grid.Row = 0
  Grid.Col = 0: Grid.Text = " 序号"
  Grid.Col = 1: Grid.Text = " 温度值"
  Grid.TopRow = 1                                 '置在第一页
  Grid.LeftCol = 1
End Sub
Private Sub Timer1_Timer()
  Dim u As String
  If num > 199 Then Call renew
  u = DAQAI1.RealInput(1)                    '获取AI1通道数据(电压值)
  Data(num) = (Val(u) - 1) * 150             '标度变换(温度值)
  filedata(num) = Format$(Data(num), "0.0")
  TempText.Text = filedata(num)
  Grid.Col = 1: Grid.Row = num + 1
  Grid.Text = filedata(num)
  Call alarm
  num = num + 1
  Call cal                                  '调用计算极值、平均值子程序
  Call draw                                 '调用绘图子程序
End Sub
'报警指示
Sub alarm()
  If Data(num) <= Mindata Then
    alarm1.FillColor = QBColor(12)
    DAQDO1.Bit = 1
    DAQDO1.BitOutput (1)
  End If
  If Data(num) > Mindata And Data(num) < Maxdata Then
    alarm1.FillColor = QBColor(10)
    alarm2.FillColor = QBColor(10)
    DAQDO1.Bit = 1
    DAQDO1.BitOutput (0)
    DAQDO1.Bit = 2
    DAQDO1.BitOutput (0)
  End If
  If Data(num) >= Maxdata Then
    alarm2.FillColor = QBColor(12)
    DAQDO1.Bit = 2
    DAQDO1.BitOutput (1)
  End If
End Sub
'改变下限报警温度值
Private Sub Tmin_KeyPress(KeyAscii As Integer)
  If KeyAscii = 13 Then
    Mindata1 = Val(Tmin.Text)
    If Mindata1 >= Maxdata Then
      MsgBox ("设定的下限温度不能比上限温度大!")
      Tmin.Text = Str$(Mindata)
    Else
      Mindata = Mindata1
    End If
  End If
End Sub
'改变上限报警温度值
Private Sub Tmax_KeyPress(KeyAscii As Integer)
  If KeyAscii = 13 Then
    Maxdata1 = Val(Tmax.Text)
    If Maxdata1 <= Mindata Then
      MsgBox ("设定的上限温度不能比下限温度小!")
      Tmax.Text = Str$(Maxdata)
    Else
      Maxdata = Maxdata1
    End If
  End If
End Sub
  '计算极值、平均值
Sub cal()
  On Error GoTo hh
  Sum = 0
  Max = Data(0): Min = Max
  For i = 0 To num - 1
    If Data(i) >= Max Then Max = Data(i)
    If Data(i) <= Min Then Min = Data(i)
    Sum = Sum + Data(i)
  Next i
  aver = Sum / num
  MaxText.Text = Format$(Max, "0.0")
  MinText.Text = Format$(Min, "0.0")
  AverText.Text = Format$(aver, "0.0")
hh:  Exit Sub
End Sub
'连续采集数据,绘制曲线图
Private Sub Cmddraw1_Click()
  drawtype = 1
  Timer1.Enabled = True
End Sub
'连续采集数据,绘制散点图
Private Sub Cmddraw2_Click()
  drawtype = 2
  Timer1.Enabled = True
End Sub
'画连续曲线/间断散点图
Sub draw()
On Error GoTo hh
  If num = 0 Then Exit Sub
  Picture1.Cls
  Picture1.DrawWidth = 1
  Picture1.BackColor = QBColor(15)
  Picture1.Scale (0, 50)-(200, 0)
  If drawtype = 1 Then
    For i = 1 To num - 1
      X1 = (i - 1): Y1 = Data(i - 1)
      X2 = i: Y2 = Data(i)
      Picture1.Line (X1, Y1)-(X2, Y2), QBColor(0)
    Next i
  End If
  If drawtype = 2 Then
    For i = 0 To num - 1
      Picture1.PSet (i, Data(i)), QBColor(0)
    Next i
  End If
hh:  Exit Sub
End Sub
'存储数据到文本文件
Private Sub Cmdsave_Click()
  On Error GoTo hh
  If num = 0 Then Exit Sub
  Timer1.Enabled = False
  CDsave.Filter = "*.txt|*.txt|"
  F3 = FreeFile
  CDsave.ShowSave
  fname = CDsave.FileName
  Open fname For Output As #F3
     For j = 0 To num - 1
        Print #F3, filedata(j)
     Next j
  Close #F3
hh: Exit Sub
End Sub
'打开数据文件
Private Sub Cmdopen_Click()
  Dim l As Long
  Dim a As String, b As String, X As String
  On Error GoTo errhandler
  Timer1.Enabled = False
  CDopen.Filter = "*.txt|*.txt|"
  CDopen.FilterIndex = 1
  CDopen.Action = 1
  fname = CDopen.FileName
  Call renew
  F% = FreeFile
  Open fname For Input As #F%
  Do
    Input #F%, filedata(num)
    Data(num) = Val(filedata(num))
    Grid.Col = 1: Grid.Row = num + 1
    Grid.Text = filedata(num)
    num = num + 1
  Loop Until EOF(F%)
  Close #F%
  Call cal
  Call draw
  Exit Sub
errhandler:
  Exit Sub
End Sub
'刷新
Private Sub renew()
  If num = 0 Then Exit Sub
  TempText.Text = "": AverText.Text = ""
  MinText.Text = "": MaxText.Text = ""
  Grid.Clear
  Picture1.Cls
  For i = 0 To num - 1
    Data(i) = 0: filedata(i) = ""
  Next i
  num = 0
  Call tabinit
End Sub
'关闭程序
Private Sub Cmdquit_Click()
  Unload Me
End Sub
'关闭板卡模拟量输入、数字量输出端口
Private Sub Form_Unload(Cancel As Integer)
  DAQDO1.Bit = 1
  DAQDO1.BitOutput (0)
  DAQDO1.Bit = 2
  DAQDO1.BitOutput (0)
  DAQDO1.CloseDevice
  DAQAI1.CloseDevice
End Sub

⌨️ 快捷键说明

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