如果出现这个错误,插拔一下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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 近期在做一个金融人才网站 (日志)