Professional Documents
Culture Documents
HOME (//WWW.NI.COM/) / SUPPORT (//WWW.NI.COM/SUPPORT/) / MANUALS (//WWW.NI.COM/MANUALS) / LABVIEW 2018 HELP (/REFERENCE/EN-XX/HELP/371361R-01)
LabVIEW contains many data communication methods, each suited for a certain use case. To ensure you implement the Table of Contents (/reference/en-
correct data communication method for your application, refer to the overview presented in this topic. For detailed XX/help/371361R-01)
information about a particular data communication method, click the title of the data communication method you want to
learn more about. LabVIEW 2018 Help
Data
Dataflow Edition Date: March 2018
Communication Buffer Interfaces Variable Interfaces
Elements Part Number: 371361R-01
Type: View Product Info
Use Case: Sending data Sending data between Storing a readily-accessible value in memory where (http://www.ni.com/en-
between most locations when it is important the latest value is of primary interest. Use carefully to us/shop/select/labview)
Examples: Passing data Acquiring a waveform; sending Monitoring the current temperature; monitoring the
from a VI output a message or command; system state.
LabVIEW 2016 Help
to a VI input. streaming an image. (http://www.ni.com/pdf/manuals/371361n.zip)
Categories: LabVIEW 2017 Help
(http://www.ni.com/pdf/manuals/371361p.zip)
— Wire Intra-Target or PC Intra-Target or PC LabVIEW 2018 Help
— Queue — Local variable (http://www.ni.com/pdf/manuals/371361r.zip)
— Shift register
LabVIEW 2019 Help
— Feedback — RT FIFO — Global variable (http://www.ni.com/pdf/manuals/371361t.zip)
Node LabVIEW 2020 Help
— User events — Functional global variable (FGV)
(http://www.ni.com/pdf/manuals/371361u.zip)
— Channel Wire
— Asynchronous Message — Single-process shared variable
Communication (AMC)
Reference Library
— Data value reference
Networked
— Network streams
Networked
— TCP — Network-published shared variable
— Web services
— UDP
Intra-FPGA
— Target-scoped FIFO
Intra-FPGA
— VI-defined FIFO
— Global variable
— DRAM
— Memory item
— Register item
https://zone.ni.com/reference/en-XX/help/371361R-01/lvconcepts/data_comm/ 1/5
2/9/22, 10:59 AM Data Communication Methods in LabVIEW - LabVIEW 2018 Help - National Instruments
Dataflow Elements
To take advantage of the dataflow programming environment (../block_diagram_data_flow/) in LabVIEW, you should use
wires, shift registers, feedback nodes, and channel wires as the primary data communication methods in your application.
Method Attributes
Wire (../using_wires/) Primary data transfer between block diagram objects
Feedback Node Primary data transfer between iterations of code (does not require a
(../feedback_node_concepts/) loop)
Channel Wire (../channel_wires_intro/) Primary data transfer for asynchronous communication between parallel
sections of code
Buffer Interfaces
Use buffer interfaces when you must send data from one location to another and you do not want to overwrite or lose any
value. A buffer interface is often represented as a FIFO (first-in, first-out) single or multi-element buffer where one or more
writers add data onto one end of the buffer and a reader retrieves data from the other end.
Intra-Target or PC
Method Attributes
Queue (../../glang/queue_vis/) Flexible sizing and access options
Non-deterministic
Asynchronous Messaging Communication Message communication within a process and between processes
(AMC) Library Greater ease of use compared to queues when designing a messaging
(Available at ni.com) framework
Includes the Queued Message Handler (QMH) template
Networked
Method Attributes
Network streams (../networkstreams/) 1:1 communication
Simpler to implement than TCP
Automatically handle disconnections and reconnections
Unidirectional
Available only for Windows and Real-Time systems
Simple TCP Messaging (STM) Reference Message wrapper around low-level TCP functions
Library
Used to implement 1:N, single server to multiple client
(Available at ni.com) communication
This site uses cookies to offer you a better browsing experience. Learn more about our privacy statement
Yes, I accept
(https://www.ni.com/en-us/about-ni/legal/privacy-statement.html) and cookie policy. (https://www.ni.com/en-us/about-
Intra-FPGA
ni/legal/cookies.html)
https://zone.ni.com/reference/en-XX/help/371361R-01/lvconcepts/data_comm/ 2/5
2/9/22, 10:59 AM Data Communication Methods in LabVIEW - LabVIEW 2018 Help - National Instruments
Method Attributes
Target-scoped FIFO (/reference/en- Implementation options specify the type of storage the FIFO uses: Flip-
XX/help/371599P- flops, Look-Up Table, or Block Memory (/reference/en-
01/lvfpgahelp/fpga_creating_fifos/) (FPGA XX/help/371599P-01/lvfpgadialog/fifo_general_page/)
Module)
VI-defined FIFO (/reference/en- Implementation options specify the type of storage the FIFO uses: Flip-
XX/help/371599P- flops, Look-Up Table, or Block Memory (/reference/en-
01/lvfpgahelp/fpga_creating_fifos/) (FPGA XX/help/371599P-01/lvfpgadialog/fifo_general_page/)
Module)
Avoids resource conflicts in reentrant subVIs by replicating the
resource for each instance
Facilitates reusing code for VIs in multiple projects
Not viewable or customizable from the Project Explorer window
DRAM (/reference/en-XX/help/371599P- Interface with dynamic random access memory (DRAM) using a
01/lvfpgaconcepts/fpga_dram_intro/) memory item or CLIP interface
(FPGA Module) Provides a large amount of buffered memory space compared to
Target-scoped and VI-defined FIFOs
Nondeterministic access latency
Not available on all targets
Method Attributes
DMA FIFO (/reference/en- Transfers large amounts of data (/reference/en-XX/help/371599P-
XX/help/371599P- 01/lvfpgaconcepts/fpga_dma_communication/) to/from host using Direct
01/lvfpgahelp/fpga_creating_fifos/) Memory Access (DMA)
(FPGA Module)
FPGA to FPGA
Method Attributes
Peer-to-Peer (P2P) FIFO (/reference/en- 1:1 communication between targets (/reference/en-XX/help/371599P-
XX/help/371599P- 01/lvfpgahelp/fpga_p2p_intro/)
01/lvfpgahelp/fpga_creating_fifos/) (FPGA
Module)
Variable Interfaces
Use variable interfaces when you must store a value in memory that readers and writers can access with minimal or no
flow control. Note that you should use variables in cases where the latest value is of primary interest and it is acceptable to
overwrite previous values. Use carefully to avoid race conditions (../using_local_and_global/).
Intra-Target or PC
Method Attributes
Local variable (../../lvhowto/creating_local_variables/) Stores data accessible from a single VI
Global variable (../../lvhowto/creating_global_variables/) Stores data accessible from multiple VIs in the same
LabVIEW application instance
Functional global variable (FGV) VI that uses uninitialized shift registers to store global data
(../suggestions_for_exec/#Functional_Global_Variables) Capable of implementing simple global variables, as well
as more complex data structures, such as stacks or queue
buffers
Helps prevent race conditions by defining specific
operations that calling code can perform on the variable
This site uses cookies to offer you a better browsing experience. Learn more about our privacy statement
Yes, I accept
(https://www.ni.com/en-us/about-ni/legal/privacy-statement.html) and cookie policy. (https://www.ni.com/en-us/about-
ni/legal/cookies.html)
https://zone.ni.com/reference/en-XX/help/371361R-01/lvconcepts/data_comm/ 3/5
2/9/22, 10:59 AM Data Communication Methods in LabVIEW - LabVIEW 2018 Help - National Instruments
Current Value Table (CVT) Common data repository for variables in applications with
(Available at ni.com) separate components
Uses less computing resources than shared variables by
centralizing I/O operations
Networked
Method Attributes
Network-published shared variable Deterministic option available (/reference/en-XX/help/370715P-
(../sv_publishing_latest_values/) 01/lvrthowto/rt_createprojvariable/)
Ideal for monitoring values
Stores values in a network data server (Shared Variable Engine)
Built-in connection manager for 1:N and N:1 network configurations
Programmatic Shared Variable API Improves design scalability by providing dynamic access to variables
(../sv_usingdynvarapi/) instead of static node-based binding
Access multiple variables with a single variable API function
Access network-published I/O variables
Web services (../webservices/) Network data communication using standard HTTP protocols
Stream standard MIME data types, such as text, images, and videos
Build and deploy web services using LabVIEW VIs
Intra-FPGA
Method Attributes
Global variable (../../glang/global_variable/) Stores data accessible from multiple VIs in the same LabVIEW
application instance
Method Attributes
Read/Write Control (/reference/en-XX/help/371599P- Reads or writes to a control or indicator in the top-level
01/lvfpgahost/readwrite_control/) (FPGA Module) FPGA VI on the FPGA target.
NI Scan Engine and Variables (/reference/en- Simple, periodic communication of FPGA I/O data to/from an
XX/help/371599P- RT host
01/lvfpgaconcepts/fpga_data_transfer_scan_engine/) Reduces code required to transfer I/O data between an
(FPGA Module + NI Scan Engine support on your FPGA target and RT host
target)
User-defined I/O variable Send user-defined data when using the Scan Engine in
(../../lvioscanhelp/io_vars/#user_IOV) (FPGA Module) Hybrid mode
This site uses cookies to offer you a better browsing experience. Learn more about our privacy statement
Data transfer between an FPGA VI and LabVIEW RT host VI Yes, I accept
(https://www.ni.com/en-us/about-ni/legal/privacy-statement.html) and cookie policy. (https://www.ni.com/en-us/about-
ni/legal/cookies.html) Transfer custom FPGA-processed I/O data
https://zone.ni.com/reference/en-XX/help/371361R-01/lvconcepts/data_comm/ 4/5
2/9/22, 10:59 AM Data Communication Methods in LabVIEW - LabVIEW 2018 Help - National Instruments
Engineer
Ambitiously.™ Semiconductor
(//www.ni.com/en-
Find a Distributor
(//www.ni.com/en-
Leadership
(//www.ni.com/en-
Downloads
(//www.ni.com/en-
us/solutions/semiconductor.html)
us/shop/resources/finding- us/about- us/support/downloads.html)
distributor.html) ni/leadership.html)
Transportation Product Documentation
(//www.ni.com/en- Order Status and History Careers (//www.ni.com/manuals/)
us/solutions/transportation.html)(//www.ni.com/status/) (//www.ni.com/en-
Discussion Forums
us/about-ni/careers.html)
Aerospace, Defense, & Retrieve a Quote (//forums.ni.com/t5/Discussion-
Government (//sine.ni.com/apps/utf8/niwq.retrieve_quote)
Investor Relations Forums/ct-p/discussion-
(//www.ni.com/en- (//investor.ni.com/) forums)
Terms of Service
us/solutions/aerospace-
(//www.ni.com/en- Newsroom Activate a Product
defense.html)
us/about-ni/legal/service- (//www.ni.com/en- (//sine.ni.com/myproducts/app/main.xhtml)
Academic & Research terms.html) us/about-
Submit a Service Request
(//www.ni.com/en- ni/newsroom.html)
Order by Part Number or (//sine.ni.com/srm/app/getassistance)
us/innovations/academic-
Request a Quote Corporate Impact
research.html) Site Feedback
(//www.ni.com/en- (//www.ni.com/en-
Wireless us/shop/cart) us/about-ni/corporate-
(//www.ni.com/en- impact.html)
us/innovations/wireless.html)
Supply Chain & Quality (//twitter.com/NI_India_)
Electronics (//www.ni.com/en-
(//www.ni.com/en- us/about-ni/corporate- (//www.youtube.com/user/NatInstIndia)
us/innovations/electronics.html) quality.html)
(//www.facebook.com/NationalInstruments/)
Energy (//www.ni.com/en- Events (//www.ni.com/en-
us/innovations/energy.html) us/events.html) (//www.instagram.com/niglobal/?
hl=en )
Industrial Machinery
(//www.ni.com/en-
us/innovations/industrial-
machinery.html)
Partners
(//www.ni.com/en-
us/partners.html)
This site uses cookies to offer you a better browsing experience. Learn more about our privacy statement
Yes, I accept
(https://www.ni.com/en-us/about-ni/legal/privacy-statement.html) and cookie policy. (https://www.ni.com/en-us/about-
ni/legal/cookies.html)
https://zone.ni.com/reference/en-XX/help/371361R-01/lvconcepts/data_comm/ 5/5