LabVIEW 8 Delivers Distributed Intelligence for Test, Control, and Design

What comes to mind when you hear distributed system? Sharing processing tasks with a computer grid? E-commerce systems processing global orders? Wireless sensor networks monitoring the status of a building? All of these examples share a fundamental theme -- distributed systems using multiple processors to solve a problem. Because of the reduced cost and tremendous performance improvements in semiconductor technology, engineers and scientists are finding effective ways to meet application challenges by adding more processors and more intelligence to their systems. As a result, the products designed, as well as the systems developed for testing and controlling these products, are becoming more distributed.
Designing multiple computing engines into a test or control system is not as easy as you might hope. Distributed system development brings to light an entirely new set of programming challenges that traditional tools do not properly address. National Instruments LabVIEW 8 introduces distributed intelligence technology to address these challenges with the:
- Ability to program multiple targets such as desktop, industrial, mobile, and embedded devices
- New LabVIEW Project to provide an intuitive system view for navigating and managing distributed systems from a single environment
- New communication interface, called the LabVIEW shared variable, to simplify data communication among distributed devices and systems
- Tools for timing and synchronizing within and between distributed devices and systems
Distributed Systems in Design, Control, and Test
Developing a distributed system requires unique programming approaches. For instance, in sensor networks, wireless sensors are self-organizing units that organically connect to other sensors in the vicinity to build a communication fabric. Obviously, the advanced researchers working on this technology face completely new software challenges. These advanced concepts are not yet commonplace, but engineers and scientists are beginning to face many of the same programming challenges in distributed systems today. Examples include designing automobile electronic stability systems and smart phones, controlling visual inspection machines and industrial monitoring systems, as well as conducting structural and synchronized ATE tests.

Figure 1. From automobile stability controls to hardware-in-the-loop tests, engineers and scientists are facing many advanced programming challenges in the systems
they are designing, controlling, and testing today.
Distributed System Development Challenges
You can find distributed applications in various industries and different product life-cycle phases, but these applications involve similar challenges, such as:
- Programming applications that take advantage of multiple processors based on the same or mixed architectures such as microprocessors, FPGAs, or DSPs
- Efficiently sharing data among multiple processors that are either directly connected on a single PCB, within a single chassis, or remotely connected on a network
- Coordinating all nodes as a single system, including the timing and synchronization among nodes
- Integrating different types of I/O such as high-speed digital, analog, motion, and vision
- Incorporating additional services to the data shared among nodes, such as logging, alarming, and integration with enterprise systems
Using the new features in NI LabVIEW 8, you can address these challenges.
Programming Distributed, Heterogeneous Computing Nodes
Distributed systems often include nodes such as sensors, devices, or systems, which perform different functions. Additionally, all of these nodes might communicate to a host supervisory system that logs data. Today, architects of distributed systems use different tools to program each node. Furthermore, the system may have advanced requirements that you cannot meet with off-the-shelf hardware, requiring configurable hardware such as FPGAs to execute complex mathematical algorithms. Learning and using different tools for programming FPGAs, real-time systems, and desktop systems leads to longer, more complex development timelines for engineers.
LabVIEW 8 addresses this programming challenge by providing the tools to program dissimilar nodes from a single development environment. Using LabVIEW, you can develop code to run on computing devices including desktop PCs, real-time-based devices, and FPGA-based measurement and control systems. In addition, LabVIEW includes, in a single platform, the specialized functions for image pattern matching for automated inspection, trajectory generation for motion control, and measurement and digital logic for environmental control, which often requires expertise in separate custom applications. LabVIEW also provides advanced signal processing libraries and direct connectivity to the Web for local and remote operator interfaces. With LabVIEW, you have one platform that transcends the boundaries of desktop, real-time, and embedded systems and that significantly simplifies the development process.

Figure 2. With the wide array of LabVIEW computing targets, you can choose the right run-time device for your applications and scale as your needs change. Now, with LabVIEW 8, you can easily communicate among all of these devices.
Communication and Data Transfer
Distributed applications require various forms of communication and data sharing. Communicating between processors, particularly real-time and embedded systems, without impacting performance can be a challenge. While various standards and protocols exist for communication – such as TCP/IP, UDP, Modbus, and OPC -- one protocol usually cannot meet all of your needs, and each protocol has a different API. This forces system integrators to use multiple communication protocols to complete the entire system. For deterministic data transfer among nodes, you often must use expensive solutions based on technologies such as reflective memory. One way to address these competing needs is to abstract the specific transport layer and protocol from the development API. By doing this, you can use multiple protocols under the hood, dramatically saving development time.
LabVIEW 8 with distributed intelligence addresses these challenges with one flexible, open communication interface that provides data sharing among different processors and real-time controller nodes as well as integrates third-party devices. The new LabVIEW 8 shared variables, an abstraction layer for protocol transport, can handle complex data types required for advanced distributed applications and can scale to include high-level functions such as logging and alarming. You can use LabVIEW shared variables to share data to and from any node in the system, including real-time nodes, historical databases, and Web-based supervisory consoles.
You can easily configure shared variables through interactive dialogs, making it simple to bind controls and indicators to data sources across any network.
Navigate, Debug, and Deploy Code to Distributed Nodes
Moving data and commands among different computing nodes in a distributed system is only one of the challenges involved in developing a distributed system. Managing and deploying the source code that runs on these distributed nodes is a fundamental challenge system developers face. In the simplest distributed case, where homogenous computing nodes execute the same source code, you can maintain the master source in one place and then distribute it to all nodes when the code changes. In the advanced distributed case, each node has dissimilar executable code running on mixed architectures, and all nodes may not be online simultaneously.
The new LabVIEW 8 Project stores the source code and settings for all nodes used in the distributed system, including PCs, real-time controllers, FPGA processors, and handheld devices. The project also hosts a number of tools that developer teams can use to manage a large application, including:
- Integrated source code control compatible with the leading source code control tools such as Visual SourceSafe, Perforce, Rational ClearCase, PVCS, MKS, and CVS
- Project libraries that package code as modular, reusable functions that you easily can reference from multiple systems
- System hardware configuration for project-specific acquisition and control I/O setup on any remote node
- Build specifications to define and save multiple settings for source code distribution, debugging, component building, or final deployment

Figure 3. The new LabVIEW Project stores the source code and settings for all nodes in a distributed system, including PCs, real-time controllers, FPGA processors, and handheld devices.
Using LabVIEW 8 with distributed intelligence, you can significantly simplify distributed system development. All real-time, FPGA, stand-alone instrumentation, OPC, and handheld devices in the system are visible in the LabVIEW Project, making it easy for you to manage the system. You can add targets to the LabVIEW Project even if they are off-line, making it simpler to architect and develop the system even with missing components. From the intuitive LabVIEW Project, you can view, edit, deploy, execute, and debug code running on any node in the system. You can observe the interaction among all distributed system nodes in real time, allowing intelligent nodes to execute simultaneously. This ability improves communication and synchronization design, development, and debugging while significantly reducing overall development time.
Synchronizing the System across Multiple Processors and Targets
An important component of many distributed systems is coordination and synchronization across intelligent nodes of a network. For many test and control systems, the interface to the external system is through I/O -- sensors, actuators, or direct electronic signals. Oftentimes, engineers use built-in hardware approaches for routing timing and synchronization signals through FPGA devices and integrated backplanes. LabVIEW 8 introduces a new deterministic Ethernet solution for reliable synchronization among distributed systems. The new, time-triggered LabVIEW shared variable addresses advanced distributed applications including distributed control and correlated data acquisition across networks. Instead of expensive reflective memory card solutions, LabVIEW 8 provides an easy, cost-effective, off-the-shelf solution to achieve network cycle rates of 100 µs with ±5 µs clock synchronization between nodes.

Figure 4. LabVIEW 8 facilitates dedicated deterministic communication for advanced distributed applications.
LabVIEW 8 Introduces Distributed Intelligence
Test and control systems are evolving into distributed systems with tightly integrated computing power. LabVIEW 8 delivers a powerful framework for you to easily design, manage, deploy, and synchronize distributed systems. To meet your distributed development challenges today and in the future, the LabVIEW platform:
- Targets multiple architectures, including desktop, industrial, mobile, and embedded devices such as MPUs, DSPs, and FPGAs
- Introduces the LabVIEW Project, an intuitive system view for navigating and managing distributed devices from a single environment
- Simplifies data communication among different computing engines with the new LabVIEW 8 shared variable
- Supports numerous approaches for timing and synchronizing systems, including a new, deterministic Ethernet technology for network synchronization
From the simplest benchtop test lab to the advanced world of embedded design, the LabVIEW graphical development platform is driving productivity for engineers and scientists. The combination of the intuitive graphical programming language, compatibility with a wide variety of I/O, easy-to-develop distributed systems, and growing community of users building on the LabVIEW platform is driving innovation in test, control, and design.
Shelley Gretlein
LabVIEW Real-Time and Embedded Product Manager
shelley.gretlein@ni.com
Buy LabVIEW 8 and begin developing distributed intelligence applications today.
This article first ran in the October 3, 2005, issue of NI News and the Q4 2005 LabVIEW Special Edition issue of Instrumentation Newsletter.
Reader Comments | Submit a comment »
Legal
This material is protected under the copyright laws of the U.S. and other countries and any uses not in conformity with the copyright laws are prohibited, including but not limited to reproduction, DOWNLOADING, duplication, adaptation and transmission or broadcast by any media, devices or processes.
