• NiDaq 测振动加速度


    如果出现这个错误,插拔一下usb口

     1mV=100 mm/s2 ,NiDAQ的震动测试仪有一个毫伏和震动加速度的对应值 约等于10, 但每个仪器都会校准

    Public Function GetVibrationData(ByRef Wave, ByRef msg As String, Optional ByVal Slot As Integer = 0) As Integer
    '测试振动数据
     On Error GoTo ErrorHandler
                Dim taskHandle As Long
                Dim sampsPerChanRead As Long
                Dim numchannels As Long
                Dim fillMode As DAQmxFillMode
                Dim numSampsPerChannel As Long
                Dim numSampsFreq As Long
                Dim arraySizeInSamps As Long
                Dim StrChance As String
                Dim AdjustValue As Single
                Dim taskIsRunning As Boolean
                
                Dim nGain As Double
                Dim Data() As Double
    
                'If scanOrderOption.value = True Then
                    fillMode = DAQmx_Val_GroupByScanNumber
                'Else
                '   fillMode = DAQmx_Val_GroupByChannel
                'End If
                
                 
                        numSampsFreq = 51200
                        numSampsPerChannel = 51200 / 3
    
                
    '            numSampsFreq = 51200 '8192  ' 8192 ' 8000 '8192  '8192  '4096 '50000 '2048 '10240 '4096
    '            numSampsPerChannel = 12800 ' 8192 ' 51200  '34200 ' 32768  '16384 ' 32768 ' 8192 ' 8000 ' 20000 ' 8000 ' 2048 '' 10240 '4096 '10240  '8000 'CLng(samplesPerChannelTextBox.Text)
    '
    
                'StrChance = "cDAQ1Mod1/ai0:3"
                StrChance = "cDAQ1Mod1/ai" & CStr(Slot)
                
                taskHandle = OpenMyCard(StrChance)
                taskIsRunning = True
             
                DAQmxErrChk DAQmxCfgSampClkTiming(taskHandle, "OnboardClock", CLng(numSampsFreq), DAQmx_Val_Rising, _
                                DAQmx_Val_AcquisitionType_FiniteSamps, CLng(numSampsPerChannel))
                
                DAQmxErrChk DAQmxGetTaskNumChans(taskHandle, numchannels)
                arraySizeInSamps = numSampsPerChannel * numchannels
                ReDim Data(arraySizeInSamps - 1)
    
                 DoEvents
                 Dim nSamptimes As Double
                 nSamptimes = timeGetTime
                 DAQmxErrChk DAQmxReadAnalogF64(taskHandle, numSampsPerChannel, 10#, _
                                fillMode, Data(0), arraySizeInSamps, sampsPerChanRead, ByVal 0&)
                 
    
                 Do While sampsPerChanRead < numSampsPerChannel - 1
                    
                    DoEvents
                    If timeGetTime - nSamptimes > 3000 Then
                        Exit Do
                    End If
                 
                 Loop
                
                Dim fMax, fMin As Variant
                Dim nMaxIndex  As Variant, nMinIndex As Variant
                Dim nMaxValueFre As Single, sngAccelerationValue As Single
    
                
                DAQmxErrChk DAQmxStopTask(taskHandle)
                DAQmxErrChk DAQmxClearTask(taskHandle)
                taskIsRunning = False
                
                Wave = Data
                Exit Function
    ErrorHandler:
                Dim nData(0) As Integer
                Wave = nData
                msg = "Error: " & Err.Number & " " & Err.Description
    End Function
    Public Sub DAQmxErrChk(errorCode As Long)
    '
    '   Utility function to handle errors by recording the DAQmx error code
    '   and message.
    '
    
        Dim errorString As String
        Dim bufferSize As Long
        Dim Status As Long
        If (errorCode < 0) Then
            ' Find out the error message length.
            bufferSize = DAQmxGetErrorString(errorCode, 0, 0)
            ' Allocate enough space in the string.
            errorString = String$(bufferSize, 0)
            ' Get the actual error message.
            Status = DAQmxGetErrorString(errorCode, errorString, bufferSize)
            ' Trim it to the actual length, and display the message
            errorString = Left(errorString, InStr(errorString, Chr$(0)))
            Err.Raise errorCode, , errorString
        End If
    
    End Sub
  • 相关阅读:
    (Vue中)cehart在同一个dom上画图图切换时饼图有折线图的坐标系
    linux(centos7)修改服务器时间
    centos6 yum源不能使用
    Linux 使用 history 来减少重复命令的几个实用技巧。
    7个Shell 拿来就用脚本实例!
    keepalived的配置解析&安装与爬坑
    linux最全命令使用手册
    linux各种误删文件恢复方法(经典强推)
    位运算符
    SQL 书写、执行顺序
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/13031453.html
Copyright © 2020-2023  润新知