From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Communication between NI 9144 EtherCAT Chassis and Real-Time Controller


This article provides options for exchanging data between an NI 9144 EtherCAT slave chassis and a Real-Time controller using LabVIEW.



When using the NI 9144, there are several options for exchanging data between the main Real-Time Controller and the EtherCAT Slave using LabVIEW. Depending on your requirements, you might need to program the FPGA of the NI 9144 for maximum customization and flexibility or use the NI Scan Mode for simplicity. The methods you could use for these two cases are described below.


If you are NOT programming the FPGA of the NI 9144

In this case you can directly access the inputs and outputs of the modules by dragging their corresponding I/O variables to the VI running on the Real-Time Controller. These variables will be updated at the same rate of the Scan Engine.


As there are I/O variables, starting with LabVIEW 2010 you can also access them using the Shared Variable API with the Scanned Read, Scanned Write, Direct Read and Direct Write VIs.


If you ARE programming the FPGA of the NI 9144

The communication with the NI 9144 will always rely on the Scan Engine. Therefore, the only method available to communicate with the FPGA of the NI 9144 to your Real-Time controller will be through User-Defined I/O Variables. You will not be able to use other methods like DMA FIFOs or Read/Write Controls. User Defined I/O Variables will also be updated at the same rate of the Scan Engine.



Please consider the documentation below for more information on setting up the NI 9144 and User Defined I/O Variables.

Note: In versions of LabVIEW older than LabVIEW 2009, the NI 9144 can only be used with the CompactRIO Scan Interface and the FPGA cannot be programmed.


Was this information helpful?