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

📄 vb9112d.frm

📁 凌华工控控制卡PCI-9112使用例子
💻 FRM
📖 第 1 页 / 共 2 页
字号:
         ForeColor       =   &H0000FFFF&
         Height          =   255
         Index           =   2
         Left            =   120
         TabIndex        =   13
         Top             =   1740
         Width           =   615
      End
      Begin VB.Label labValue 
         Alignment       =   1  'Right Justify
         Appearance      =   0  'Flat
         BackColor       =   &H00C0C0C0&
         Caption         =   "2.50"
         ForeColor       =   &H0000FFFF&
         Height          =   255
         Index           =   1
         Left            =   120
         TabIndex        =   12
         Top             =   1065
         Width           =   615
      End
      Begin VB.Label labValue 
         Alignment       =   1  'Right Justify
         Appearance      =   0  'Flat
         BackColor       =   &H00C0C0C0&
         Caption         =   "5.00"
         ForeColor       =   &H0000FFFF&
         Height          =   255
         Index           =   0
         Left            =   120
         TabIndex        =   11
         Top             =   420
         Width           =   615
      End
      Begin VB.Label labVots 
         Appearance      =   0  'Flat
         BackColor       =   &H00C0C0C0&
         Caption         =   "Vots"
         ForeColor       =   &H0000FFFF&
         Height          =   255
         Left            =   120
         TabIndex        =   10
         Top             =   200
         Width           =   495
      End
      Begin VB.Label labSignal 
         Appearance      =   0  'Flat
         BackColor       =   &H00C0C0C0&
         Caption         =   "Signals"
         ForeColor       =   &H0000FFFF&
         Height          =   300
         Left            =   2800
         TabIndex        =   9
         Top             =   200
         Width           =   780
      End
   End
End
Attribute VB_Name = "dma9112"
Attribute VB_Creatable = False
Attribute VB_Exposed = False
Dim gnADChn As Long
Dim gnCount As Long
Dim gnC2 As Long
Dim gnBuffer(4000) As Integer
Dim nRate As Long
Dim range(8) As Integer
Dim stop_flag As Integer

Private Sub btnExit_Click()
    If card >= 0 Then Release_Card (card)
    End
End Sub

Private Sub btnStart_Click()
    Dim result As Integer
    Dim half_ready As Byte
    Dim fstop As Byte
    Dim access_cnt As Long
    
    result = AI_9112_Config(card, TRIG_INT_PACER)
    result = AI_AsyncDblBufferMode(card, 1)
    result = AI_ContReadChannel(card, gnADChn, range(cobRange.ListIndex), gnBuffer(0), gnCount, CDbl(nRate * 1000), ASYNCH_OP)
    btnStart.Enabled = False
    btnStop.Enabled = True
    stop_flag = 0
    Do
        Do
            result = AI_AsyncDblBufferHalfReady(card, half_ready, fstop)
        Loop Until half_ready
        result = AI_AsyncDblBufferTransfer(card, gnBuffer(0))
        ShowData (gnCount / 2)
        DoEvents
    Loop Until stop_flag = 1
    result = AI_AsyncClear(card, access_cnt)
    btnStart.Enabled = True
    btnStop.Enabled = False
End Sub

Private Sub btnStop_Click()
    stop_flag = 1
End Sub

Private Sub cobData_Click()
    gnCount = Val(Trim$(cobData))
End Sub



Private Sub cobRange_Click()
Select Case cobRange.ListIndex
Case 0
    labValue(0).Caption = "5.00"
    labValue(1).Caption = "2.50"
    labValue(2).Caption = "0.00"
    labValue(3).Caption = "-2.50"
    labValue(4).Caption = "-5.00"
  Case 1
    labValue(0).Caption = "2.50"
    labValue(1).Caption = "2.25"
    labValue(2).Caption = "0.00"
    labValue(3).Caption = "-2.25"
    labValue(4).Caption = "-2.50"
  Case 2
    labValue(0).Caption = "1.250"
    labValue(1).Caption = "0.625"
    labValue(2).Caption = "0.00"
    labValue(3).Caption = "-0.625"
    labValue(4).Caption = "-1.250"
  Case 3
    labValue(0).Caption = "0.6250"
    labValue(1).Caption = "0.3125"
    labValue(2).Caption = "0.0000"
    labValue(3).Caption = "-0.3125"
    labValue(4).Caption = "-0.6250"
  Case 4
    labValue(0).Caption = "10.0"
    labValue(1).Caption = "7.50"
    labValue(2).Caption = "5.00"
    labValue(3).Caption = "2.50"
    labValue(4).Caption = "0.00"
  Case 5
    labValue(0).Caption = "5.00"
    labValue(1).Caption = "3.75"
    labValue(2).Caption = "2.50"
    labValue(3).Caption = "1.25"
    labValue(4).Caption = "0.00"
  Case 6
    labValue(0).Caption = "2.500"
    labValue(1).Caption = "1.875"
    labValue(2).Caption = "1.250"
    labValue(3).Caption = "0.625"
    labValue(4).Caption = "0.000"
  Case 7
    labValue(0).Caption = "1.2500"
    labValue(1).Caption = "0.9375"
    labValue(2).Caption = "0.6250"
    labValue(3).Caption = "0.3125"
    labValue(4).Caption = "0.0000"
  Case 8
    labValue(0).Caption = "10"
    labValue(1).Caption = "5.0"
    labValue(2).Caption = "0.0"
    labValue(3).Caption = "-5.0"
    labValue(4).Caption = "-10"
  End Select
End Sub

Private Sub cobSample_Click()
    nRate = Val(Trim$(cobSample))
End Sub

Private Sub Form_Load()
    Dim bus As Integer, slot As Integer
    
    SettingForm.Show 1
    If card < 0 Then
        MsgBox "Register Card Failed"
        End
    End If
    
    cobRange.AddItem "+/- 5V"
    cobRange.AddItem "+/- 2.5V"
    cobRange.AddItem "+/- 1.25V"
    cobRange.AddItem "+/- 0.625V"
    cobRange.AddItem "0V~10V"
    cobRange.AddItem "0V~5V"
    cobRange.AddItem "0V~2.5V"
    cobRange.AddItem "0V~1.25V"
    cobRange.AddItem "+/- 10V"

    cobRange.ListIndex = 0
    
    cobData.AddItem "500"
    cobData.AddItem "1000"
    cobData.AddItem "2000"
    cobData.AddItem "3000"
    cobData.AddItem "4000"

    cobData.ListIndex = 0

    cobSample.AddItem "10"
    cobSample.AddItem "20"
    cobSample.AddItem "30"
    cobSample.AddItem "40"
    cobSample.AddItem "50"
    cobSample.AddItem "70"
    cobSample.AddItem "90"
    cobSample.AddItem "100"

    cobSample.ListIndex = 0

    gnADChn = 0
    
    'Range values
    range(0) = 2
    range(1) = 3
    range(2) = 4
    range(3) = 5
    range(4) = 15
    range(5) = 16
    range(6) = 17
    range(7) = 18
    range(8) = 1
    
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If card >= 0 Then Release_Card (card)
End Sub



Private Sub ShowData(count As Integer)
    Dim i As Integer, last As Integer, total As Integer
    Dim x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer
    Dim w As Long, h As Long, data As Long
    
    picScreen.Cls
    last = count
    w = picScreen.ScaleWidth
    h = picScreen.ScaleHeight
    'gnBuffer contains 16-bit data, the 4 LSB is channel#
    'VB's integer is signed integer, its range is -32768 to 32767
    'We change the range to 0 to 65535
    If gnBuffer(0) >= 0 Then
        data = gnBuffer(0)
    Else
        data = gnBuffer(0) + 65536
    End If
    x1 = (last * w) / count
    y1 = h - ((((data And &HFFF0) / 16) * h) / 4096)
    last = last - 1
    
    While (last > 0)
        If gnBuffer(count - last) >= 0 Then
            data = gnBuffer(count - last)
        Else
            data = gnBuffer(count - last) + 65536
        End If
        x2 = (last * w) / count
        y2 = h - ((((data And &HFFF0) / 16) * h) / 4096)
        last = last - 1
        picScreen.Line (x1, y1)-(x2, y2), &HFFFF&
        x1 = x2
        y1 = y2
    Wend
End Sub




Private Sub optChn_Click(Index As Integer)
  gnADChn = Index
End Sub


⌨️ 快捷键说明

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