随笔 - 435  文章 - 0  评论 - 111  阅读 - 62万 

 

如果出现这个错误,插拔一下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
复制代码

 

posted on   Gu  阅读(545)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
历史上的今天:
2004-06-02 近期在做一个金融人才网站 (日志)
点击右上角即可分享
微信分享提示