ScottFSM Posted December 12, 2023 Posted December 12, 2023 (edited) Hello, I have been using DAS4020-12 on Win 10 32bit. but need to convert 64bit. So does DAS4020-12 support Win10 Pro 64bit? Edited December 13, 2023 by ScottFSM
0 Fausto Posted December 13, 2023 Posted December 13, 2023 (edited) Hello @ScottFSM. The PCI-DAS4020/12 is an obsolete product. The board is not supported under Windows 10. Use the current version of InstaCal, if you do attempt to install and use the PCI-DAS4020/12 with a Windows 10 64-bit system. 64-bit support for this board was added back with InstaCal v6.20. Regards, Fausto Edited December 13, 2023 by Fausto additional info
0 ScottFSM Posted January 12 Author Posted January 12 Which function I can use instead of cbAInScan() in Windows 64bit OS? Hello? I have been use cbAInScan() in Windows x86 OS for a while. I need to transport my system to x64 and did it one by one. However, I found that cbAInScan() didn't work correctly in x64 OS. I compared at x86 and x64. The cbAInScan returned data correctly in x86, but returned 0 in x64 OS. Is there any other proper function to get Analog Input function instead of cbAInScan in x64 OS? Best Regards, Scott
0 Fausto Posted January 12 Posted January 12 Hello @ScottFSM. The MCC Universal Library (UL) function, cbAInScan(), is supported in a Windows 64-bit OS. Did you rebuild your application with the current cbw64.dll or cbw32.dll and for an ANY CPU platform? What is the sampling rate range being used? UL Help Regards, Fausto
0 ScottFSM Posted January 13 Author Posted January 13 (edited) 6 hours ago, Fausto said: Hello @ScottFSM. The MCC Universal Library (UL) function, cbAInScan(), is supported in a Windows 64-bit OS. Did you rebuild your application with the current cbw64.dll or cbw32.dll and for an ANY CPU platform? What is the sampling rate range being used? UL Help Regards, Fausto Hi Fausto, Yes we rebuild our application with cbw64.dll. We are using 3,600,000 Hz for rate and BIP5VOLTS for range. And we are using UL Ver 6.74. with Win 10 64bit. Thanks for your support. Best Regards, Scott //------------------------------------------------------------------------------ // This is the code we have been using in 32bit application.... //----------------------------------------------------------------------------- BOOL CEchoProbe::StartMeasurement(/*short MeSet, */BOOL bFilter, float fGuessThick, float fGuessRange) { SetStatus(BUSY_STATUS); short nCurScanStatus; long CurCount, CurIndex; short MCBoardNo = p413App->MCBoardNo; // Grab a set of data from measurement computing card [9/29/2012 Yuen] SetEvent(m_hCalculatingEvent); cbGetStatus(MCBoardNo, &nCurScanStatus, &CurCount, &CurIndex, AIFUNCTION); if (nCurScanStatus == RUNNING) { return FALSE; } int ErrStatus; if (!bEventSet) { if (!SetupEvents(ErrStatus, MCBoardNo)) { return FALSE; } } long lRate = EPMAX_RATE; int AInStatus = cbAInScan(MCBoardNo, 0, 3, NUMBER_OF_INTEREST_DATASETS * 4, &lRate, m_nRangeLevel, (HGLOBAL)pRawDataArraySpaceA, BACKGROUND | EXTTRIGGER | CONVERTDATA); if (AInStatus != NOERRORS) { cbMemReset(MCBoardNo); ClearEcho(MCBoardNo); SetStatus(ERROR_STATUS); if (m_lpfnReadingErrorProc) { m_lpfnReadingErrorProc(AInStatus, m_lpReadingErrorParam); } if (pGenMessage) { CString str; str.Format("AIStatus: %d", AInStatus); pGenMessage->SetWindowText(str); } return FALSE; } return TRUE; } Edited January 13 by ScottFSM
0 Fausto Posted January 15 Posted January 15 Hello @ScottFSM. Does your code use cbWinBufAlloc32() or cbWinBufAlloc64() to allocate the memory buffer? What size is your memory buffer? What is the total number of samples to be collected? UL Help Regards, Fausto
0 ScottFSM Posted January 18 Author Posted January 18 (edited) On 1/16/2024 at 4:41 AM, Fausto said: Hello @ScottFSM. Does your code use cbWinBufAlloc32() or cbWinBufAlloc64() to allocate the memory buffer? What size is your memory buffer? What is the total number of samples to be collected? UL Help Regards, Fausto Hi Fausto, I'm so sorry to bother you again. Please check my answer below. We are using cbWinBufAlloc ( 125000 * 4 ) for memory allocation. So memory buffer size is 500,000 bytes for each buffer. There are two data buffer. pRawDataArraySpaceA = cbWinBufAlloc(125000 * 4); pRawDataArraySpaceB = cbWinBufAlloc(125000 * 4); As a result, we are using 1,000,000 bytes for data collection totally. Best Regards Scott Edited January 18 by ScottFSM
0 Fausto Posted January 18 Posted January 18 Hello @ScottFSM. That bit of code looks fine. I do not see where you use pRawDataArraySpaceB in the snippet of code provided earlier in this post. Were there any changes made to the code involving MCC's UL function calls? If you reduce the size of both buffers, does that work? Do you get any errors or just '0' data values? Try slowing your sampling rate and reducing the number of A/D samples to collect, NUMBER_OF_INTEREST_DATASETS. Try running the ULAI04.C example (located in the C:\Users\Public\Documents\Measurement Computing\DAQ\C\Sample32 directory) with your device in the Windows 10 64-bit system. Do you receive valid data with that example? Regards, Fausto
0 ScottFSM Posted January 18 Author Posted January 18 9 hours ago, Fausto said: Hello @ScottFSM. That bit of code looks fine. I do not see where you use pRawDataArraySpaceB in the snippet of code provided earlier in this post. Were there any changes made to the code involving MCC's UL function calls? If you reduce the size of both buffers, does that work? Do you get any errors or just '0' data values? Try slowing your sampling rate and reducing the number of A/D samples to collect, NUMBER_OF_INTEREST_DATASETS. Try running the ULAI04.C example (located in the C:\Users\Public\Documents\Measurement Computing\DAQ\C\Sample32 directory) with your device in the Windows 10 64-bit system. Do you receive valid data with that example? Regards, Fausto There is another routine to use pRawDataArraySpaceB. We get just '0' data without errors. There was no change in case of sampling rate reducing. I'll test with reduced number of A/D sample. I'll test with ULAI04.C. and let you know the result. Thanks for your help. Best Regards,
0 ScottFSM Posted January 23 Author Posted January 23 On 1/18/2024 at 11:09 PM, Fausto said: Hello @ScottFSM. That bit of code looks fine. I do not see where you use pRawDataArraySpaceB in the snippet of code provided earlier in this post. Were there any changes made to the code involving MCC's UL function calls? If you reduce the size of both buffers, does that work? Do you get any errors or just '0' data values? Try slowing your sampling rate and reducing the number of A/D samples to collect, NUMBER_OF_INTEREST_DATASETS. Try running the ULAI04.C example (located in the C:\Users\Public\Documents\Measurement Computing\DAQ\C\Sample32 directory) with your device in the Windows 10 64-bit system. Do you receive valid data with that example? Regards, Fausto Dear Fausto, I could get correct data using sample ULAI04.C. I compared the sample and my code. The sample code doesn't use EXTTIRGGER option. But my code is using EXTTRIGGER as an option with TRIG_HIGH. BOOL CEchoProbe::SetupEvents(int& ErrStatus, short BoardNum) { cbMemReset(BoardNum); ClearEcho(BoardNum); ErrStatus = cbEnableEvent(BoardNum, ON_END_OF_AI_SCAN, 0, OnReadingEnd, this); if (ErrStatus == NOERRORS) { ErrStatus = cbEnableEvent(BoardNum, ON_SCAN_ERROR, 0, OnReadingError, this); if (ErrStatus == NOERRORS) { ErrStatus = cbSetTrigger(BoardNum, TRIG_HIGH, 1000, 4095); bEventSet = TRUE; return TRUE; } } cbMemReset(BoardNum); ClearEcho(BoardNum); SetStatus(ERROR_STATUS); if (m_lpfnReadingErrorProc) { m_lpfnReadingErrorProc(ErrStatus, m_lpReadingErrorParam); } bEventSet = FALSE; return FALSE; } cbSetTrigger() return NOERRORS in 32bit OS, However it returns 49 (BADTRIGTYPE) in 64bit OS. UL help file is recommending to use TRIGABOVE or TRIGBELOW What do we need to do to use TRIGABOVE analog signal instead of TRIG_HIGH digital signal? Best Regards, Scott
0 Fausto Posted January 23 Posted January 23 Hello @ScottFSM. The TRIGABOVE and TRIGBELOW trigger types are used for analog hardware triggering. If your external trigger is a digital (TTL) signal connected to the Trig/Ext Clk BNC input or the A/D Start Trigger input on the 40-pin connector (P3), then use TRIG_POS_EDGE or TRIG_NEG_EDGE as the trigger type. The LowThreshold and HighThreshold arguments in cbSetTrigger() are ignored. UL Help Regards, Fausto
Question
ScottFSM
Hello,
I have been using DAS4020-12 on Win 10 32bit. but need to convert 64bit. So does DAS4020-12 support Win10 Pro 64bit?
10 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now