06-28-2010 05:28 AM
I have just purchased the PC104 CPU module from RTD technology:
PCI/104-Express cpuModule™ & Controller
Intel® Core™ 2 Duo 1.20 GHz – 1.86 GHz
http://www.rtd.com/PC104/CM/CMA22/CMA22Mxx.htm
I have installed Windows XP and Labview succesfully.
This board has an embedded advanced analog Input Output board with 8 ports.
The Windows Driver has been succesfully installed. Now i would like to use these ports to acquire analog data using labview. However when i open the DAQmax i can't see it. In the Device Manager of Windows is listed as RTD aAIO and is properly working.
What should i do to use this device with labview?
Attached are the Windows Drivers and some example code for the aAIO in case it helps
Thank you,
Christos
06-28-2010
05:36 AM
- last edited on
04-04-2025
11:44 AM
by
Content Cleaner
You will not be able to use DAQmx to talk to a third-party device. It seems like you have DLLs to talk to the card. You can talk to these DLLs using the Call Library Function Node in LabVIEW. The following KB article should help:
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000YGggCAG&l=en-US
06-30-2010 03:04 AM
Thanks a lot for your help. I have identified the dll and header files to use (attached). I tried to call it by Tools/Import/Shared Library but the error in the attached image appears.
Then i tried to call it using the "Call Library function" but i am not sure how do i proceed. I will really appreciate it if anyone who has done this before can help me out. A sample code on calling a simple function like getting status from the hardware will really help. Or if it easy for any of you you may help me on the following
I am trying to do something simple from the manual (also attached) but i can't get any function to work
The simplest operating mode is using software to start the sampling and poll the aAIO for the result. This
mode does not require setting up DMA buffers, or setting up the Scatter-Gather Table. In order to use this
mode, perform the following steps:
1. Open the board
a. Perform a Board Reset to make sure all the registers are default
b. Do a software triggered sample
c. Wait for it to be done
d. Perform a Board Reset to reset the sample counter.
2. Write channel and input configuration in CGT Register if needed (default is +/-10V, single ended)
3. Do a software start conversion
4. Poll A/D done bit (about 20 microseconds) or wait for A/D Done interrupt
5. Read data from A/D Result
Alternately, the continuous sample bit can be set. In this case, the value read from the A/D Result register
is the last captured sample.
Thank you,
Christos
07-01-2010
09:50 AM
- last edited on
04-04-2025
11:45 AM
by
Content Cleaner
Christos-
I would suggest you review the links below from the LabVIEW help. They describe in detail how to use the Call Library Function Node. After looking through them, post whatever questions here and we will be happy to help.
LabVIEW Help: Call Library Function Node
https://www.ni.com/docs/en-US/bundle/labview-api-ref/page/functions/call-library-function-node.html
LabVIEW Help: Configuring the Call Library Function Node
https://www.ni.com/docs/en-US/bundle/labview/page/configuring-the-call-library-function-node.html
LabVIEW Help: Example 1: Call a Shared Library That You Built
https://www.ni.com/docs/en-US/bundle/labview/page/example-1-call-a-shared-library-that-you-built.htm...
07-08-2010 07:00 AM
Thanks for your response.
I have tried the Call Library Function Node to call a function out of the attached DLL. More specifically i have tried to call "aAIO_General_EnumDevices" but i am not able to retreive any values.
It is the first time that i am using this Call Library Function Node and i am not sure if what i am doing is correct.
I am attaching the vi that i am trying to run and i am also including in the lines below the documentation of necessary functions/parameters/structures.
Thank you,
Christos
aAIO_General_EnumDevices | ( | aAIO_Enum_Info * | Info, | |
uint8 | Limit | |||
) |
Enumerates all aAIO devices in the system.
Info | A pointer to an array of aAIO_Enum_Info structures to fill with information about the aAIO devices in the system. | |
Limit | The maximum number of aAIO devices to enumerate. |
Data Fields |
|
uint32 | dev_num |
This is the device number which represents this device. |
|
aAIO_Intrfc_Avail | avail |
This is the current availability of this device. |
|
uint32 | base_addr |
This is the base address of this aAIO device. |
|
uint32 | irq |
This is the IRQ that's been assigned to this aAIO device.
|
07-09-2010 04:40 PM
Christos-
It looks like you aren’t passing in any parameters into the function in your DLL. These parameters typically are necessary to get the required data out. You can simply wire them to the inputs of the Call Library Function node.
07-14-2010 02:09 AM
Dear George,
Thanks for your response, the problem is that my experience in reading and understanding c code is limited that's why i am asking for help to call one function the right way. Hopefully after this happens i will be able to call the other 20 functions of the dll.
Thanks,
CK
07-14-2010 07:42 AM
Please ignore my previous message as i managed to execute the functions from the dll
Thanks,
CK