📄 da_form.frm
字号:
VERSION 5.00
Begin VB.Form DA_Form
Caption = "DA 4路模拟输出"
ClientHeight = 8745
ClientLeft = 1380
ClientTop = 1275
ClientWidth = 12120
Icon = "DA_Form.frx":0000
LinkTopic = "Form1"
MDIChild = -1 'True
ScaleHeight = 8745
ScaleWidth = 12120
WindowState = 2 'Maximized
Begin VB.Frame Frame1
Caption = "自动连续输出(正弦波)"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 4575
Left = 720
TabIndex = 0
Top = 840
Width = 9255
Begin VB.ComboBox Combo2
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 360
ItemData = "DA_Form.frx":0CCA
Left = 4440
List = "DA_Form.frx":0CDA
TabIndex = 9
Text = "0"
Top = 720
Width = 1575
End
Begin VB.CommandButton AutoChannel0Start_Cmd
Caption = "开始"
Height = 375
Left = 7080
TabIndex = 6
Top = 3600
Width = 810
End
Begin VB.CommandButton AutoChannel0Stop_Cmd
Caption = "停止"
Height = 375
Left = 8160
TabIndex = 5
Top = 3600
Width = 810
End
Begin VB.PictureBox Picture0
BackColor = &H80000009&
Height = 2295
Left = 240
ScaleHeight = 149
ScaleMode = 3 'Pixel
ScaleWidth = 429
TabIndex = 4
Top = 1920
Width = 6495
End
Begin VB.CheckBox Check1
Caption = "以恒定值输出"
Height = 375
Left = 360
TabIndex = 3
Top = 600
Width = 2655
End
Begin VB.TextBox Text1
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 5280
TabIndex = 2
Text = "2048"
Top = 1320
Width = 735
End
Begin VB.ComboBox Combo1
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 360
ItemData = "DA_Form.frx":0CEA
Left = 1800
List = "DA_Form.frx":0CFD
TabIndex = 1
Text = "128"
Top = 1320
Width = 1335
End
Begin VB.Label Label4
Caption = "Label4"
Height = 15
Left = 5520
TabIndex = 11
Top = 1440
Width = 135
End
Begin VB.Label Label3
Caption = "通道选择:"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 375
Left = 3120
TabIndex = 10
Top = 760
Width = 1215
End
Begin VB.Label Label1
Caption = "正弦波周期(点)"
Height = 375
Left = 360
TabIndex = 8
Top = 1440
Width = 1455
End
Begin VB.Label Label2
Caption = "请输入电压:"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 4080
TabIndex = 7
Top = 1440
Width = 1455
End
End
Begin VB.Menu file
Caption = "文件操作"
Begin VB.Menu Open_SC
Caption = "打开数采系统"
End
Begin VB.Menu Check_IO
Caption = "开关量IO检测"
End
Begin VB.Menu closesystem
Caption = "关闭本系统"
End
Begin VB.Menu exit
Caption = "退出应用程序"
End
End
Begin VB.Menu WindowsListDA
Caption = "窗口列表"
WindowList = -1 'True
End
End
Attribute VB_Name = "DA_Form"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim hCollect As Long
Private WriteDAThread As ThreadObject
Public Cycle0 As Long
Public Cycle1 As Long
Dim SineDataBuffer(4096) As Long
Dim Middata As Long
Dim xlength As Long
Dim i As Integer
Private Sub DAOutput_Click()
DA_Form.Show
End Sub
Private Sub Check_IO_Click()
DIO_Form.SetFocus
End Sub
Private Sub Check1_Click()
If Check1.Value = 0 Then
DA_Form.Combo1.Enabled = True
Combo1.BackColor = &H80000005
Text1.Enabled = False
Text1.BackColor = &H80000008
Else
DA_Form.Combo1.Enabled = False
Combo1.BackColor = &H80000008
Text1.Enabled = True
Text1.BackColor = &H80000005
End If
Call DAWave
End Sub
Private Sub Combo1_Click()
Call DAWave
End Sub
Private Sub Text1_Change()
Call DAWave
End Sub
Private Sub Form_Load()
DA_Form.Combo1.Text = 128 ' 默认周期为128点
Combo1.BackColor = &H80000005
DA_Module.bDeviceRun0 = False
Text1.Enabled = False
Text1.BackColor = &H80000008
Check1.Enabled = True
Check1.Value = 0
Combo2.Enabled = True
AutoChannel0Stop_Cmd.Enabled = False
Text1.Text = 2047
Call DAWave
End Sub
Private Sub AutoChannel0Start_Cmd_Click()
Dim bStatus As Boolean
DA_Module.bDeviceRun0 = True ' 置设备准运行标志
Call DAWave
Set WriteDAThread = New ThreadObject
WriteDAThread.Initialize AddressOf WriteDAFunction0
WriteDAThread.Enable = True
AutoChannel0Start_Cmd.Enabled = Not AutoChannel0Start_Cmd.Enabled
AutoChannel0Stop_Cmd.Enabled = True
DA_Form.Combo1.Enabled = False
Text1.Enabled = False
Combo2.Enabled = False
End Sub
Private Sub AutoChannel0Stop_Cmd_Click()
Dim bStatus As Boolean
DA_Module.bDeviceRun0 = False '置设备停止标志
WriteDAThread.Enable = False
AutoChannel0Stop_Cmd.Enabled = Not AutoChannel0Stop_Cmd.Enabled
AutoChannel0Start_Cmd.Enabled = True
Combo2.Enabled = True
If Check1.Value = 0 Then
DA_Form.Combo1.Enabled = True
Else
Text1.Enabled = True
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Me.Visible = False
End Sub
Private Sub Open_SC_Click()
AD_Form.Show
End Sub
Private Sub closesystem_Click()
Unload Me
End Sub
Private Sub exit_Click()
End
End Sub
Public Sub DAWave()
Dim str As String, str1 As String
str = DA_Form.Combo1.Text
Cycle0 = CLng(str)
str1 = DA_Form.Text1.Text
Cycle1 = CLng(str1)
Picture0.Cls
Picture0.ScaleMode = 3
If Check1.Value = 0 Then
For i = 0 To 4095
Middata = Int(Sin(6.28 * i / Cycle0) * 2048 + 2047)
SineDataBuffer(i) = Middata / 4096 * (Picture0.ScaleHeight - 1)
Next i
Else
For i = 0 To 4095
Middata = Cycle1
SineDataBuffer(i) = Middata * (Picture0.ScaleHeight - 1) / 4096
Next i
End If
If Picture0.Width > 2048 Then
xlength = 2048
Else
xlength = Picture0.Width
End If
For i = 1 To xlength - 1
Picture0.Line (i - 1, Picture0.ScaleHeight - SineDataBuffer(i - 1))-(i, Picture0.ScaleHeight - SineDataBuffer(i))
Next i
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -