zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    1、scala安装和基本语法
    3.12-3.16 Hbase集成hive、sqoop、hue
    3.7-3.9 HBase表属性
    3.4-3.6 依据业务需求分析HBase的表设计
    字符串匹配[原始方法]
    括号匹配[栈]
    13.A={1,2,3,5}和为10的问题
    12.回溯递归
    11.字符串{a,b}的幂集[回溯递归]
    10.N个整数中查找是否相加为K[深度搜索]
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/13031453.html
Copyright © 2011-2022 走看看