LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Labview Drivers for a PC104 board


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

0 Kudos
Message 1 of 8
(3,799 Views)

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

Adnan Zafar
Certified LabVIEW Architect
Coleman Technologies
0 Kudos
Message 2 of 8
(3,793 Views)

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

0 Kudos
Message 3 of 8
(3,764 Views)

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...



Regards,

Mike S
NI AE
0 Kudos
Message 4 of 8
(3,714 Views)

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.

 

Parameters:

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.

 

Download All
0 Kudos
Message 5 of 8
(3,671 Views)

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.  

Regards,

Mike S
NI AE
0 Kudos
Message 6 of 8
(3,643 Views)

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

 

0 Kudos
Message 7 of 8
(3,609 Views)

Please ignore my previous message as i managed to execute the functions from the dll

 

Thanks,

 

CK

0 Kudos
Message 8 of 8
(3,594 Views)