The Future of Real-time Control

  • September 12, 2011
  • Feature
September 2011
A discussion with Jeff Kodosky, Father of LabVIEW, at NIWeek Worldwide Graphical System Design Conference, August 2-4, 2011 Austin, TX
By Bill Lydon, Editor
Jeff Kodosky, Cofounder and Business and Technology Fellow (aka, Father of LabVIEW) and I had a discussion during the conference about real-time control and particularly his continuing work on the problem of visually programming real-time- control applications. 
The 25th anniversary of LabVIEW was celebrated at the conference. This is Jeff Kodosky in the early days using a Macintosh computer.
I noted that myself and others in the automation industry view NI as a test and measurement company probing at automation applications and it is unclear how aggressive or interested NI is in industrial automation applications.   Kodosky commented, “We are more interested in the more challenging applications.”
Real-Time Synchronization
We spent time discussing real-time programming - Kodosky is deep into this topic.  For example, he described how new multiprocessor designs and FPGA’s with integrated CPUs are creating new environments for parallel architectures.  NI is committed to developing a better way for real-time programming. 
Anyone that has programmed processes and machines has experienced the challenges of finding ways to control multiple operations with the proper sequence and timing. For example, even a simple indexing machine where the operation time at each station varies is a real-time control problem requiring the programming to account for non-deterministic timing.
Jeff Kodosky characterizes the situation this way, “The problem with embedded design is you can’t think of the software by itself, you’ve got to think of it in terms of what hardware it is interacting with, what time is necessary by the physical apparatus it is connected to and all of this information is outside of a traditional programming language.” “We have innovative research going on using an approach which is different from others in our focus on distributed real-time systems and the tight integration of hardware configuration along with timing.”
Kodosky is committed to evolving LabVIEW to a system design language and easy to use tools for programming real-time systems including logic and timing relationships. “That is the next big thing we are working on and call it our system diagram…,” Kodosky said. He believes this next level of abstraction will greatly improve the productivity of system designers.
Kodosky has shown the above graphic to give an insight into NI ideas under development. A unified understanding of the system’s timing is derived from the data relationship specified by the application as well as the schedule of data transferred across the bus.
A core concept at NI is using abstraction so the designer does not have to worry about programming syntax and other issues. Managing logic and timing with easy to use graphical design is not simple. Kodosky described the design process when an engineer is working on a complex control problem that is timing sensitive, “What goes on in the brain is you have all this stuff sitting in the background, stewing around, and your brain actually makes connections that you don’t exert with directed effort to say I want to do this and this and merge them together and come up with a solution.” Kodosky noted that he has been reading a great deal about the brain and there are a number of independent components in the brain that make all types of associations. “We think we have a lot more rational control over what we do but it is our subconscious that is doing a lot of work, but our rational brain spends a lot of time rationalizing what our emotional self is doing.”
Kodosky discussed looking back in his notebooks before the idea for LabVIEW and there were lots of unconnected thoughts that eventually came into focus. He feels the same way about the efforts to create a design tool that makes it easy to incorporate timing into application design.   The goal is to make it obvious for the user to see the dependencies, parallelism, and complexity at a glance rather than having to scrutinize lines of code. He believes the elements of what they have been working on are part of the answer but they are not there yet. He thinks they are at the stage of incubation before clarity leads to the solution.
FPGA Basics
A field programmable gate array (FPGA) is an integrated circuit designed to be configured by the customer or designer using software - "field-programmable". The FPGA configuration requires specialized knowledge and is generally specified using software languages designed for this purpose.   FPGAs contain programmable logic components called logic blocks, and a hierarchy of programmable reconfigurable interconnects that allow the blocks to be "wired together" in different configurations. Logic blocks can be configured to perform logic functions, complex combinational functions, and analog functions. These devices are highly flexible since the inputs and outputs are also configured by software. National Instruments was an early adopter of FPGA technology and they offered the ability to program FPGAs with LabVIEW to provide users with high performance and configurable I/O hardware. 
LabVIEW has always been used with hardware manufactured by National Instruments, with the company always striving for more power and performance. In order to provide high performance, NI was an early adopter of FPGA’s with product offerings starting in 1997. Kodosky related the history, “The FPGA is the fastest growing area with the most potential, the germ of the idea was in 1991.” He explained - they thought when the logic for an application was laid out in software logically, the engineer should be able to map the logic to real hardware automatically. There was no way to make this idea a reality until FPGAs were introduced in 1997 and it took a number of years before National Instruments had delivered a product to program FPGAs in LabVIEW. The next big development is the introduction of FPGA chips that incorporate onboard ARM processors. Beyond this, Kodosky predicts massive parallel computing in the future.
Thoughts &Comments
NI started as a test measurement company and has developed high performance platforms that can be used in a wide range of applications. NI products are being applied in demanding industrial control and automation applications where the cost of the hardware and software is justified.  NI continues to refine their products making them higher performance, easier to use and more cost effective. Control and automation engineers have told me that in high performance applications requiring integrated control, motion, and vision that NI products are an excellent choice and easier to program than other industrial controllers.
NI is a strong innovative company that respects engineering and continues to add and nurture talent so I have no doubt that they will develop a way to more easily program complex real-time systems.
You can get insight into Jeff Kodosky’s thinking on the real-time control challenges by reading: Time in Your Programming Language


Did you enjoy this great article?

Check out our free e-newsletters to read more great articles..