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

📄 frmmain.frm

📁 16 relay output channels and 16 isolated digital input channels LED indicators to show activated
💻 FRM
字号:
VERSION 5.00
Begin VB.Form frmMain 
   BorderStyle     =   1  'Fixed Single
   Caption         =   "PWM VB Example"
   ClientHeight    =   4080
   ClientLeft      =   45
   ClientTop       =   390
   ClientWidth     =   7080
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   4080
   ScaleWidth      =   7080
   StartUpPosition =   3  'Windows Default
   Begin VB.Frame frmPluseOutCount 
      Caption         =   "Pulse Out Count"
      Height          =   1170
      Left            =   105
      TabIndex        =   17
      Top             =   2745
      Width           =   5145
      Begin VB.TextBox txtPluseCount 
         Enabled         =   0   'False
         Height          =   315
         Index           =   1
         Left            =   4065
         TabIndex        =   21
         Text            =   "100"
         Top             =   525
         Width           =   990
      End
      Begin VB.TextBox txtPluseCount 
         Enabled         =   0   'False
         Height          =   315
         Index           =   0
         Left            =   1455
         TabIndex        =   20
         Text            =   "100"
         Top             =   533
         Width           =   990
      End
      Begin VB.CheckBox chkPluseEnable 
         Caption         =   "Ch. 1 Enable"
         Height          =   330
         Index           =   1
         Left            =   2820
         TabIndex        =   19
         Top             =   525
         Width           =   1230
      End
      Begin VB.CheckBox chkPluseEnable 
         Caption         =   "Ch. 0 Enable"
         Height          =   330
         Index           =   0
         Left            =   195
         TabIndex        =   18
         Top             =   525
         Width           =   1230
      End
   End
   Begin VB.Frame frmPWMConfiguration 
      Caption         =   "PWM Configuration"
      Height          =   1710
      Left            =   90
      TabIndex        =   6
      Top             =   915
      Width           =   5145
      Begin VB.TextBox txtHiPeriod 
         Enabled         =   0   'False
         Height          =   315
         Index           =   1
         Left            =   3555
         TabIndex        =   16
         Text            =   "50"
         Top             =   1260
         Width           =   915
      End
      Begin VB.TextBox txtHiPeriod 
         Enabled         =   0   'False
         Height          =   315
         Index           =   0
         Left            =   990
         TabIndex        =   15
         Text            =   "50"
         Top             =   1260
         Width           =   915
      End
      Begin VB.TextBox txtPeriod 
         Enabled         =   0   'False
         Height          =   315
         Index           =   1
         Left            =   3555
         TabIndex        =   14
         Text            =   "100"
         Top             =   825
         Width           =   915
      End
      Begin VB.TextBox txtPeriod 
         Enabled         =   0   'False
         Height          =   315
         Index           =   0
         Left            =   990
         TabIndex        =   13
         Text            =   "100"
         Top             =   825
         Width           =   915
      End
      Begin VB.CheckBox chkPWMEnable 
         Caption         =   "Ch.1 PWM Enable"
         Height          =   330
         Index           =   1
         Left            =   2805
         TabIndex        =   8
         Top             =   330
         Width           =   1620
      End
      Begin VB.CheckBox chkPWMEnable 
         Caption         =   "Ch.0 PWM Enable"
         Height          =   330
         Index           =   0
         Left            =   210
         TabIndex        =   7
         Top             =   360
         Width           =   1620
      End
      Begin VB.Label Label4 
         Alignment       =   1  'Right Justify
         Caption         =   "Hi Period:                      0.1mS"
         Height          =   255
         Left            =   2730
         TabIndex        =   12
         Top             =   1290
         Width           =   2205
      End
      Begin VB.Label Label3 
         Alignment       =   1  'Right Justify
         Caption         =   "Hi Period:                      0.1mS"
         Height          =   255
         Left            =   165
         TabIndex        =   11
         Top             =   1290
         Width           =   2205
      End
      Begin VB.Label Label2 
         Alignment       =   1  'Right Justify
         Caption         =   "Period:                      0.1mS"
         Height          =   255
         Left            =   2910
         TabIndex        =   10
         Top             =   855
         Width           =   2025
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Period:                      0.1mS"
         Height          =   255
         Left            =   345
         TabIndex        =   9
         Top             =   855
         Width           =   2025
      End
   End
   Begin VB.CommandButton cmdExit 
      Caption         =   "E&xit"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   9.75
         Charset         =   0
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   5505
      TabIndex        =   5
      Top             =   3180
      Width           =   1425
   End
   Begin VB.CommandButton cmdRun 
      Caption         =   "&Run"
      Height          =   375
      Left            =   5670
      TabIndex        =   4
      Top             =   1335
      Width           =   1095
   End
   Begin VB.CommandButton cmdStop 
      Caption         =   "St&op"
      Enabled         =   0   'False
      Height          =   375
      Left            =   5670
      TabIndex        =   3
      Top             =   1920
      Width           =   1095
   End
   Begin VB.Frame Frame1 
      Caption         =   "Device Name:"
      Height          =   735
      Left            =   105
      TabIndex        =   0
      Top             =   75
      Width           =   6855
      Begin VB.CommandButton btnSelectDevice 
         Caption         =   "Select &Device"
         BeginProperty Font 
            Name            =   "MS Sans Serif"
            Size            =   9.75
            Charset         =   0
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   375
         Left            =   5160
         TabIndex        =   1
         Top             =   240
         Width           =   1575
      End
      Begin VB.Label labDeviceName 
         BorderStyle     =   1  'Fixed Single
         Caption         =   "Device Name"
         BeginProperty Font 
            Name            =   "MS Sans Serif"
            Size            =   9.75
            Charset         =   0
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   375
         Left            =   120
         TabIndex        =   2
         Top             =   240
         Width           =   4935
      End
   End
End
Attribute VB_Name = "frmMain"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim ptDevFeatures As DEVFEATURES         ' structure for device features
Dim ptDevGetFeatures As PT_DeviceGetFeatures
Dim ptCounterPWMSetting As PT_CounterPWMSetting

Public DeviceNum As Long
Public DeviceHandle As Long
Public ErrorNum As Long

Public bRun As Boolean

Private Sub btnSelectDevice_Click()
   Dim Description As String

   Description = String(80, vbNullChar)
   ErrorNum = DRV_SelectDevice(hWnd, False, DeviceNum, Description)
   labDeviceName.Caption = Description
End Sub

Private Sub chkPluseEnable_Click(Index As Integer)
   If chkPluseEnable(Index).value = Checked Then
      txtPluseCount(Index).Enabled = True
   Else
      txtPluseCount(Index).Enabled = False
   End If
End Sub

Private Sub chkPWMEnable_Click(Index As Integer)
   If chkPWMEnable(Index).value = Checked Then
      txtPeriod(Index).Enabled = True
      txtHiPeriod(Index).Enabled = True
   Else
      txtPeriod(Index).Enabled = False
      txtHiPeriod(Index).Enabled = False
   End If
End Sub

Private Sub cmdExit_Click()
   End
End Sub

Private Sub cmdRun_Click()
   ErrorNum = DRV_DeviceOpen(DeviceNum, DeviceHandle)
   If CheckError(ErrorNum) <> 0 Then
      Exit Sub
   End If

   ptDevGetFeatures.buffer = DRV_GetAddress(ptDevFeatures)
'   ptDevGetFeatures.size = sizeof(ptDevFeatures)

   ErrorNum = DRV_DeviceGetFeatures(DeviceHandle, ptDevGetFeatures)
   If CheckError(ErrorNum) <> 0 Then
      DRV_DeviceClose (DeviceHandle)
      Exit Sub
   End If

   ' check number of counter channels
   If ptDevFeatures.usMaxTimerChl = 0 Then
      MsgBox "No Counter Channel", vbInformation, "Driver Message"
      DRV_DeviceClose (DeviceHandle)
      Exit Sub
   End If
   ' Enable channel 0 PWM
   If chkPWMEnable(0).value = Checked Then
      ptCounterPWMSetting.Port = 0
      ptCounterPWMSetting.Period = Val(txtPeriod(0).Text)
      ptCounterPWMSetting.HiPeriod = Val(txtHiPeriod(0).Text)
      ptCounterPWMSetting.GateMode = 0
      If chkPluseEnable(0).value = Checked Then
         ptCounterPWMSetting.OutCount = Val(txtPluseCount(0).Text)
      Else
         ptCounterPWMSetting.OutCount = 0
      End If

      ErrorNum = DRV_CounterPWMSetting(DeviceHandle, ptCounterPWMSetting)
      If CheckError(ErrorNum) <> 0 Then
         DRV_DeviceClose (DeviceHandle)
         Exit Sub
      End If
   End If
   ' Enable channel 1 PWM
   If chkPWMEnable(1).value = Checked Then
      ptCounterPWMSetting.Port = 1
      ptCounterPWMSetting.Period = Val(txtPeriod(1).Text)
      ptCounterPWMSetting.HiPeriod = Val(txtHiPeriod(1).Text)
      ptCounterPWMSetting.GateMode = 0
      If chkPluseEnable(1).value = Checked Then
         ptCounterPWMSetting.OutCount = Val(txtPluseCount(1).Text)
      Else
         ptCounterPWMSetting.OutCount = 0
      End If

      ErrorNum = DRV_CounterPWMSetting(DeviceHandle, ptCounterPWMSetting)
      If CheckError(ErrorNum) <> 0 Then
         DRV_DeviceClose (DeviceHandle)
         Exit Sub
      End If
   End If
   ' Start Channel 0 PWM
   If chkPWMEnable(0).value = Checked Then
      ErrorNum = DRV_CounterPWMEnable(DeviceHandle, 1)
      If CheckError(ErrorNum) <> 0 Then
         DRV_DeviceClose (DeviceHandle)
         Exit Sub
      End If
   End If
   ' Start Channel 1 PWM
   If chkPWMEnable(1).value = Checked Then
      ErrorNum = DRV_CounterPWMEnable(DeviceHandle, 2)
      If CheckError(ErrorNum) <> 0 Then
         DRV_DeviceClose (DeviceHandle)
         Exit Sub
      End If
   End If

   cmdRun.Enabled = False
   cmdStop.Enabled = True
   cmdExit.Enabled = False
   frmPWMConfiguration.Enabled = False
   frmPluseOutCount.Enabled = False
   bRun = True
End Sub

Private Sub cmdStop_Click()
   frmPWMConfiguration.Enabled = True
   frmPluseOutCount.Enabled = True
   ' Stop Channel 0 PWM
   If chkPWMEnable(0).value = Checked Then
      ErrorNum = DRV_CounterReset(DeviceHandle, 1)
   End If
   ' Stop Channel 1 PWM
   If chkPWMEnable(1).value = Checked Then
      ErrorNum = DRV_CounterReset(DeviceHandle, 2)
   End If
   
   DRV_DeviceClose DeviceHandle

   cmdRun.Enabled = True
   cmdStop.Enabled = False
   cmdExit.Enabled = True
   bRun = False
End Sub

Private Sub Form_Load()
   bRun = False
   Call btnSelectDevice_Click
End Sub

Private Sub Form_Unload(Cancel As Integer)
   If bRun = True Then
      Call cmdStop_Click
   End If
End Sub

Public Function CheckError(ByVal lErrCde As Long) As Boolean
   Dim szErrMsg As String * 80

   If (lErrCde <> 0) Then
      DRV_GetErrorMessage lErrCde, szErrMsg
      Response = MsgBox(szErrMsg, vbOKOnly, "Error!!")
      CheckError = True
   Else
      CheckError = False
   End If
End Function

⌨️ 快捷键说明

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