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

📄 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    =   3540
   ClientLeft      =   45
   ClientTop       =   390
   ClientWidth     =   7080
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   3540
   ScaleWidth      =   7080
   StartUpPosition =   3  'Windows Default
   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          =   375
      Left            =   5280
      TabIndex        =   5
      Top             =   3000
      Width           =   1065
   End
   Begin VB.CommandButton cmdRun 
      Caption         =   "&Run"
      Height          =   375
      Left            =   720
      TabIndex        =   4
      Top             =   3000
      Width           =   1095
   End
   Begin VB.CommandButton cmdStop 
      Caption         =   "St&op"
      Enabled         =   0   'False
      Height          =   375
      Left            =   3000
      TabIndex        =   3
      Top             =   3000
      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
   Begin VB.Frame frmPWMConfiguration 
      Caption         =   "PWM Configuration"
      Height          =   1815
      Left            =   120
      TabIndex        =   6
      Top             =   960
      Width           =   6825
      Begin VB.CheckBox chkPWMEnable 
         Caption         =   "Ch.2 PWM Enable"
         Height          =   330
         Index           =   2
         Left            =   4875
         TabIndex        =   19
         Top             =   360
         Width           =   1620
      End
      Begin VB.TextBox txtPeriod 
         Enabled         =   0   'False
         Height          =   315
         Index           =   2
         Left            =   5475
         TabIndex        =   18
         Text            =   "100"
         Top             =   825
         Width           =   915
      End
      Begin VB.TextBox txtHiPeriod 
         Enabled         =   0   'False
         Height          =   315
         Index           =   2
         Left            =   5475
         TabIndex        =   17
         Text            =   "50"
         Top             =   1260
         Width           =   915
      End
      Begin VB.CheckBox chkPWMEnable 
         Caption         =   "Ch.1 PWM Enable"
         Height          =   330
         Index           =   1
         Left            =   2475
         TabIndex        =   14
         Top             =   360
         Width           =   1620
      End
      Begin VB.TextBox txtPeriod 
         Enabled         =   0   'False
         Height          =   315
         Index           =   1
         Left            =   3075
         TabIndex        =   13
         Text            =   "100"
         Top             =   825
         Width           =   915
      End
      Begin VB.TextBox txtHiPeriod 
         Enabled         =   0   'False
         Height          =   315
         Index           =   1
         Left            =   3075
         TabIndex        =   12
         Text            =   "50"
         Top             =   1260
         Width           =   915
      End
      Begin VB.TextBox txtHiPeriod 
         Enabled         =   0   'False
         Height          =   315
         Index           =   0
         Left            =   840
         TabIndex        =   11
         Text            =   "50"
         Top             =   1260
         Width           =   915
      End
      Begin VB.TextBox txtPeriod 
         Enabled         =   0   'False
         Height          =   315
         Index           =   0
         Left            =   840
         TabIndex        =   10
         Text            =   "100"
         Top             =   825
         Width           =   915
      End
      Begin VB.CheckBox chkPWMEnable 
         Caption         =   "Ch.0 PWM Enable"
         Height          =   330
         Index           =   0
         Left            =   240
         TabIndex        =   7
         Top             =   360
         Width           =   1620
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Period:                      mS"
         Height          =   255
         Index           =   2
         Left            =   4860
         TabIndex        =   21
         Top             =   840
         Width           =   1785
      End
      Begin VB.Label Label2 
         Alignment       =   1  'Right Justify
         Caption         =   "Hi Period:                      mS"
         Height          =   255
         Index           =   2
         Left            =   4680
         TabIndex        =   20
         Top             =   1290
         Width           =   1965
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Period:                      mS"
         Height          =   255
         Index           =   1
         Left            =   2460
         TabIndex        =   16
         Top             =   840
         Width           =   1785
      End
      Begin VB.Label Label2 
         Alignment       =   1  'Right Justify
         Caption         =   "Hi Period:                      mS"
         Height          =   255
         Index           =   1
         Left            =   2280
         TabIndex        =   15
         Top             =   1290
         Width           =   1965
      End
      Begin VB.Label Label2 
         Alignment       =   1  'Right Justify
         Caption         =   "Hi Period:                      mS"
         Height          =   255
         Index           =   0
         Left            =   45
         TabIndex        =   9
         Top             =   1290
         Width           =   1965
      End
      Begin VB.Label Label1 
         Alignment       =   1  'Right Justify
         Caption         =   "Period:                      mS"
         Height          =   255
         Index           =   0
         Left            =   225
         TabIndex        =   8
         Top             =   840
         Width           =   1785
      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 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()
   Dim i As Integer

   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
   
   For i = 0 To 2
      If chkPWMEnable(i).value = Checked Then
         ' Config Channel i PWM
         ptCounterPWMSetting.Port = i
         ptCounterPWMSetting.Period = Val(txtPeriod(i).Text)
         ptCounterPWMSetting.HiPeriod = Val(txtHiPeriod(i).Text)
         ptCounterPWMSetting.GateMode = 0
         ptCounterPWMSetting.OutCount = 0

         ErrorNum = DRV_CounterPWMSetting(DeviceHandle, ptCounterPWMSetting)
         If CheckError(ErrorNum) <> 0 Then
            DRV_DeviceClose (DeviceHandle)
            Exit Sub
         End If
      
         ' Enable Channel i PWM
         ErrorNum = DRV_CounterPWMEnable(DeviceHandle, i)
         If CheckError(ErrorNum) <> 0 Then
            DRV_DeviceClose (DeviceHandle)
            Exit Sub
         End If
      End If
   Next i
   
   cmdRun.Enabled = False
   cmdStop.Enabled = True
   cmdExit.Enabled = False
   btnSelectDevice.Enabled = False
   frmPWMConfiguration.Enabled = False
   bRun = True
End Sub

Private Sub cmdStop_Click()
   Dim i As Integer
   
   frmPWMConfiguration.Enabled = True
   
   For i = 0 To 2
      ' Stop Channel i PWM
      If chkPWMEnable(i).value = Checked Then
         ErrorNum = DRV_CounterReset(DeviceHandle, i)
      End If
   Next i

   DRV_DeviceClose DeviceHandle

   cmdRun.Enabled = True
   cmdStop.Enabled = False
   cmdExit.Enabled = True
   btnSelectDevice.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 + -