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

📄 ad_da.frm

📁 VB编程RS232串口控制DA数模转换VB编程RS232串口控制DA数模转换VB编程RS232串口控制DA数模转换VB编程RS232串口控制DA数模转换VB编程RS232串口控制DA数模转换VB编程R
💻 FRM
📖 第 1 页 / 共 3 页
字号:
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   315
         Index           =   9
         Left            =   150
         TabIndex        =   20
         Top             =   1080
         Width           =   915
      End
      Begin VB.Label Label1 
         Alignment       =   2  'Center
         Caption         =   "设定值:"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   315
         Index           =   2
         Left            =   90
         TabIndex        =   19
         Top             =   720
         Width           =   915
      End
      Begin VB.Label Label1 
         Alignment       =   2  'Center
         Caption         =   "通道号:"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   315
         Index           =   1
         Left            =   90
         TabIndex        =   18
         Top             =   390
         Width           =   915
      End
   End
   Begin VB.Frame Frame1 
      Caption         =   "单通道控制(设定值必须为4位数,单位为V)"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00FF0000&
      Height          =   1395
      Index           =   0
      Left            =   210
      TabIndex        =   0
      Top             =   390
      Width           =   6165
      Begin VB.CommandButton Command1 
         Caption         =   "发   送"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   525
         Index           =   0
         Left            =   4920
         TabIndex        =   7
         Top             =   420
         Width           =   1155
      End
      Begin VB.CheckBox Check1 
         Caption         =   "输出x2"
         Enabled         =   0   'False
         Height          =   315
         Index           =   0
         Left            =   960
         TabIndex        =   6
         Top             =   960
         Width           =   915
      End
      Begin VB.TextBox Text1 
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   345
         Index           =   1
         Left            =   960
         TabIndex        =   2
         Text            =   "1.100"
         Top             =   600
         Width           =   945
      End
      Begin VB.TextBox Text1 
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   345
         Index           =   0
         Left            =   960
         TabIndex        =   1
         Text            =   "0"
         Top             =   270
         Width           =   945
      End
      Begin VB.Label Label1 
         Caption         =   "增益:"
         Enabled         =   0   'False
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   315
         Index           =   8
         Left            =   150
         TabIndex        =   5
         Top             =   990
         Width           =   915
      End
      Begin VB.Label Label1 
         Alignment       =   2  'Center
         Caption         =   "设定值:"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   315
         Index           =   3
         Left            =   90
         TabIndex        =   4
         Top             =   660
         Width           =   915
      End
      Begin VB.Label Label1 
         Caption         =   "通道号:"
         BeginProperty Font 
            Name            =   "宋体"
            Size            =   10.5
            Charset         =   134
            Weight          =   400
            Underline       =   0   'False
            Italic          =   0   'False
            Strikethrough   =   0   'False
         EndProperty
         Height          =   315
         Index           =   0
         Left            =   120
         TabIndex        =   3
         Top             =   330
         Width           =   1245
      End
   End
   Begin VB.Menu HELP 
      Caption         =   "帮助"
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Command1_Click(Index As Integer)
'方式0 (单通道控制):
'DA转换: 功能号 , 板号, 通道号, 增益, 1, 0.1, 0.01, 0.001, 99999999999999
'功能号:单通道方式为0
'板号:地址编号。用于同一个串口控制多块D/A转换板,单板为0;
'增益:为0输出电压等于设定电压,为1输出电压2倍于设定电压;
'通道号:0-7对应0号到7号8个D/A转换通道;
'1:设定输出电压个位;  0.1:设定输出电压0.1位  0.01:设定输出电压0.01位;  0.001:设定输出电压0.001位;
'999999999999999:保留位

Dim func_num '控制功能号,0是转速控制,2是步进控制
Dim board_num '控制板编号,代表指令发送给哪个控制板,用于扩充一个串口带多个控制板
Dim chan_num '通道号
Dim app_num '增益
Dim vol_val '设定电压

func_num = "0"
board_num = "0"
chan_num = Trim(Text1(0))

If Check1(0).Value = 1 Then
    app_num = "1"
Else
    app_num = "0"
End If

vol_val = Text1(1).Text * 1000
'vol_val = Left$(vol_val, 4)
Select Case Len(vol_val)
    Case 1
        vol_val = "000" & vol_val
    Case 2
        vol_val = "00" & vol_val
    Case 3
        vol_val = "0" & vol_val
End Select

Text1(26).Text = func_num & board_num & chan_num & app_num & vol_val & "99999999999999"

MSComm1.Output = Trim(Text1(26).Text) 'func_num & board_num & bit_direc & bit_free & "0" & freq & "9" '第5位是保留位,固定为“0”;最后一位是保留位,固定为“9”。

End Sub

Private Sub Command2_Click()
Dim func_num '控制功能号,0是转速控制,2是步进控制
Dim board_num '控制板编号,代表指令发送给哪个控制板,用于扩充一个串口带多个控制板
Dim chan_num0, chan_num1, chan_num2, chan_num3 '通道号
Dim app_num0, app_num1, app_num2, app_num3 '增益
Dim vol_val0, vol_val1, vol_val2, vol_val3 '设定电压

func_num = "1"
board_num = "0"
chan_num0 = Trim(Text1(2))
chan_num1 = Trim(Text1(3))
chan_num2 = Trim(Text1(4))
chan_num3 = Trim(Text1(5))

If Check1(1).Value = 1 Then
    app_num0 = "1"
Else
    app_num0 = "0"
End If
If Check1(2).Value = 1 Then
    app_num1 = "1"
Else
    app_num1 = "0"
End If
If Check1(3).Value = 1 Then
    app_num2 = "1"
Else
    app_num2 = "0"
End If
If Check1(4).Value = 1 Then
    app_num3 = "1"
Else
    app_num3 = "0"
End If


vol_val0 = Text1(6).Text * 100
Select Case Len(vol_val0)
    Case 1
        vol_val0 = "00" & vol_val0
    Case 2
        vol_val0 = "0" & vol_val0
End Select

vol_val1 = Text1(7).Text * 100
Select Case Len(vol_val1)
    Case 1
        vol_val1 = "00" & vol_val1
    Case 2
        vol_val1 = "0" & vol_val1
End Select

vol_val2 = Text1(8).Text * 100
Select Case Len(vol_val2)
    Case 1
        vol_val2 = "00" & vol_val2
    Case 2
        vol_val2 = "0" & vol_val2
End Select

vol_val3 = Text1(9).Text * 100
Select Case Len(vol_val3)
    Case 1
        vol_val3 = "00" & vol_val3
    Case 2
        vol_val3 = "0" & vol_val3
End Select


Text1(26).Text = func_num & board_num & chan_num0 & app_num0 & vol_val0 & chan_num1 & app_num1 & vol_val1 & chan_num2 & app_num2 & vol_val2 & chan_num3 & app_num3 & vol_val3 ' & "99999999999999"

MSComm1.Output = Trim(Text1(26).Text) 'func_num & board_num &
End Sub


Private Sub Command3_Click()

'方式2(8通道控制):
'DA转换:功能号,板号,增益0,设定值0,增益1,设定值1,增益2,设定值2,增益3,设定值3,增益4,设定值4,增益5,设定值5,增益6,设定值6,增益7,设定值7,9999
'功能号:2;  板号:单板为0
'增益0 , 设定值0: 通道0的增益和设定输出电压值,其他7个通道以此类推
'9999 为保留位

Dim command_str(21) As Byte '

command_str(0) = Asc("2") '功能号,8通道模式为“2”
command_str(1) = Asc("0") '板号,单板固定为“0”
command_str(2) = Asc("1") '0号通道增益,这里所有通道固定为“1”
command_str(3) = Val(Text1(14).Text)  '1号通道设定值,以下7通道与此相同
command_str(4) = Asc("1") '1号通道
command_str(5) = Val(Text1(15).Text)
command_str(6) = Asc("1") '2号通道
command_str(7) = Val(Text1(16).Text)
command_str(8) = Asc("1") '1号通道
command_str(9) = Val(Text1(17).Text)
command_str(10) = Asc("1") '1号通道
command_str(11) = Val(Text1(22).Text)
command_str(12) = Asc("1") '1号通道
command_str(13) = Val(Text1(23).Text)
command_str(14) = Asc("1") '1号通道
command_str(15) = Val(Text1(24).Text)
command_str(16) = Asc("1") '1号通道
command_str(17) = Val(Text1(25).Text)

command_str(18) = Asc("9") '保留位
command_str(19) = Asc("9") '保留位
command_str(20) = Asc("9") '保留位
command_str(21) = Asc("9") '保留位


MSComm1.Output = command_str '保留位
'Text1(26).Text = command_str
End Sub


Private Sub Command4_Click()
MSComm1.Output = "U"
End Sub

Private Sub Form_Load()

'串口输入数据格式如下:(每条指令固定长度为22位)

'方式0 (单通道控制):
'DA转换: 功能号 , 板号, 通道号, 增益, 1, 0.1, 0.01, 0.001, 99999999999999
'功能号:单通道方式为0
'板号:地址编号。用于同一个串口控制多块D/A转换板,单板为0;
'增益:为0输出电压等于设定电压,为1输出电压2倍于设定电压;
'通道号:0-7对应0号到7号8个D/A转换通道;
'1:设定输出电压个位;  0.1:设定输出电压0.1位  0.01:设定输出电压0.01位;  0.001:设定输出电压0.001位;
'999999999999999:保留位

'方式1(4通道控制):
'DA转换:功能号,板号,通道号,增益,1,0.1,0.01,通道号,增益,1,0.1,0.01,通道号,增益,1,0.1,0.01,通道号,增益,1,0.1,0.01
'功能号:1;  板号:单板为0
'通道号,增益,1,0.1,0.01:分别为一条指令改变输出电压的4个通道对应设定值


'方式2(8通道控制):
'DA转换:功能号,板号,增益0,设定值0,增益1,设定值1,增益2,设定值2,增益3,设定值3,增益4,设定值4,增益5,设定值5,增益6,设定值6,增益7,设定值7,9999
'功能号:2;  板号:单板为0
'增益0 , 设定值0: 通道0的增益和设定输出电压值,其他7个通道以此类推
'9999 为保留位


Dim cur_state

' 使用 COM1。
    MSComm1.CommPort = 1 ' 9600 波特,无奇偶校验,8 位数据,一个停止位。
    MSComm1.Settings = "9600,N,8,1"
    On Error GoTo change_com
    MSComm1.PortOpen = True
    cur_state = "ok"
change_com:
    If cur_state = "ok" Then
        Exit Sub
    Else
        MSComm1.CommPort = 2 ' 9600 波特,无奇偶校验,8 位数据,一个停止位。
        MSComm1.Settings = "9600,N,8,1"
        MSComm1.PortOpen = True
    End If
End Sub

Private Sub HELP_Click()
MsgBox ("本控制板带有8路8位D/A转换专用芯片和精密电压基准,控制输出电压精度误差不大于0.01V。通过电脑串口(或其他具有串口的单片机、PLC、DSP)发个简单的指令,便可以方便地控制8个数模转换通道输出设定的电压值。输出电压范围:0-5V(指令控制)。波特率9600,也可按用户要求定制。广泛用于通过电压控制的各个工控领域,如电机调速、压控振荡、伺服控制等。工作方式有3种:1、 单通道控制模式:通过串口发送一条指令,一次控制一个数模转换通道输出设定的电压值。2、 4通道控制模式:串口发送一条指令,一次可以控制四个数模转换通道分别输出各自设定的电压值。同于同步设定4路输出电压。3、 8通道控制模式:串口发送一条指令,一次可以控制八个数模转换通道分别输出各自设定的电压值。同于同步设定8路输出电压。  所有模数转换输出通道均带有射极跟随缓冲。其中有2路带有可调运算放大器,输出电压可以按要求进行放大(比如放大倍数调为2倍的话,则输出电压可以在1-10V之间进行变化)。随板带有VB演示源代码。用户稍微进行修改即可用于各种复杂的实际控制中。.帮你在VB下轻松搞定自动化控制。联系电话:05522055903 http://www.lcwin5888.com.cn/  商务QQ:965042285.技术:415810948")

End Sub

Private Sub MSComm1_OnComm()
Dim d
d = 1
d = 2
Select Case MSComm1.CommEvent '串口事件
    Case comEvReceive '接收到数据
        Dim Buffer As Variant '存储数据的缓冲区
        Dim StringBuf(21) As String '数据数组
        Buffer = MSComm1.Input '
        Text1(27).Text = Buffer
        'If Text4(0).Text = "UUUUUUUUUUUU" Then
        '    Label7.Caption = "复位情况:" & "成功"
        'End If
End Select
End Sub


⌨️ 快捷键说明

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