A few days ago, on the NIWEEK 2018, NI co-founder, Fellow, and Jeff Kodosky, the father of LabVIEW, gave a keynote speech. He talked about the future software architecture of LabVIEW.
In the future, LabVIEW will be able to implement higher-level abstraction to program both the host computer and the FPGA in a program framework. The data interaction between the two parties will be performed under a unified platform instead of the queue. This will bring more convenience to programming, especially in the face of complex systems, the adoption of more advanced programming languages ​​can speed up the user's development cycle.
"It's like driving a car. If you need to speed up, using an automatic gearbox to step on the throttle is much easier than manual shifting. This is to make the software easier and more efficient by increasing the level of abstraction," said Jeff.
NI co-founder, Fellow, father of LabVIEW Jeff Kodosky
The following is the content of its speech.
LabVIEW was originally designed only for scientists and engineers to quickly complete their test and measurement system without the need for a dedicated programmer team.
As Dr. T said, like spreadsheet programs can help financial analysts program, we develop a set of accelerated programming tools for engineers and scientists.
For now, LabVIEW has successfully completed this task.
With LabVIEW, tens of thousands of engineers, scientists, testers, and even medical researchers and other industry experts successfully completed their automated test system. LabVIEW accelerates research and development, reduces test time and costs, and reduces product development cycles.
LabVIEW has a long history of continuous improvement and innovation. Each version maintains backward compatibility while introducing new features.
The most significant advancement in LabVIEW is the introduction of support for real-time systems and FPGAs. Users do not need to be VHDL experts to meet performance requirements by building graphical programs running on FPGAs. Today, as the complexity of systems continues to increase, more parallel processing, more physical I/O, tighter timing and synchronization, and more distributed components are required.
LabVIEW evolution history
So, how will we continue to deal with the complexity of the future?
One approach is to establish good strategies and processes to maintain the full flow management of test suites and documents. The existing software engineering method has successfully built a large-scale test system.
In addition, the software architecture can also follow Patterns that help authenticate by organizing and restricting the design. For example, Project Templates and Actor Framework in LabVIEW are the methods.
Of course, improvements in tools and development environments also help. For example, LabVIEW NXG integrates more closely with DAQmx drivers and DAQ hardware to make interactive exploration and automated measurements easier.
In addition, specialized tools can handle the complexity of the overall process by reducing the need for custom development. Special tools like TestStand can handle the standard part of the application and only develop the custom test steps you need.
Accelerate Software Development and Implementation Cycles with NI-Specific Tools
The second method is to increase the level of abstraction we use to design the system. For today's complex systems, we can use artificial intelligence to increase the level of abstraction and reduce human complexity. Imagine your car. If you want to speed up, using higher levels of abstraction, such as automatic transmissions, is easier than a standard gearbox because the standard gearbox also requires extra hands and feet for clutch shifting.
Two years ago, we introduced Channel Wire in LabVIEW to increase the level of abstraction in communication parallel processing design. It's easier to design than lower-level languages, and it's more obvious and easier to understand. There is actually more work to further increase the level of abstraction in LabVIEW.
With Channel Wire, communication between the host computer and the FPGA requires only a simple connection to achieve
Historically, our development philosophy was to focus on making puzzles possible first and then make them easier.
NI has created measurement applications that span processors and FPGAs. Now is the time to consider raising the level of abstraction to increase convenience.
Suppose we can represent the FPGA as a box in LabVIEW. The internal diagram represents the deployment to the FPGA and the external diagram represents the processor. The channel between them represents the communication path, and the compiler uses the underlying FIFO and DMA resources to implement the connection.
The Target software architecture shows great promise for simplifying cRIO applications and FlexRIO peer-to-peer communication applications, even for distributed applications.
This is an example of our efforts to raise the level of abstraction. If we can truly achieve it, it will become the most advanced technological advancement.
As shown in the figure, in the future, a software system development framework can be used to realize the development of a host computer and an FPGA.
Let me try to describe one of our ongoing research efforts that can speed up our design process with more ambiguous and more advanced processing. Take a microphone measurement system as an example.
Initially, we outlined design concepts that included displaying the microphones to be tested, loudspeakers providing stimulus signals, waveform generators that drive loudspeakers, digitizing instruments that measure response signals, and setting gains and frequencies.
This kind of sketch often needs improvement, for example, when we need to measure the excitation signal in order to obtain higher accuracy.
If we can place an abstract design node in LabVIEW and edit its icon to represent the microphone, use another icon to represent the speaker, and add some clips to the sound waves, we can quickly generate a sketch.
As part of the project, it needs some documentation, but if it also raises the system level, we can use it as the starting point for implementing the entire system.
If we can annotate the wire to display the excitation signal as a continuous stepped frequency waveform and annotate the acquisition output to show the waveform flow to be analyzed, this will make the abstract algorithm clearer.
We can also display the collected signal flow into time interval information.
We can mark this level of abstraction and continue to improve the design by extending the generating node to waveform calculations and waveform output.
The acquisition node is expanded to analog input and the node is divided into blocks.
Now we realize that this only works when we have the same time reference, so we introduce a start time and start generating and collecting synchronization.
At this point, we found that we have overlooked an important issue. Due to sound propagation, the signal from the microphone will be significantly delayed from the stimulus signal. We decided to solve this problem by generating a special pulse at the beginning of the waveform and using it to synchronize the acquired signal.
When we semantically scaled to a higher level of abstraction to add test items, we saw a line showing the common starting time.
We think it is important enough to show at this level, so we can achieve this goal. Then we add the connection to deliver the sync pulse and set it to display at the beginning of the waveform. At this point, you will see new connections that need to be implemented.
We continue to refine the waveform output node and show how to send the sync pulse to the acquisition point.
This node can then be modified to show that the sync pulse is resampled and used to match the synchronization of the acquired signal. We continue to work this way until a working application is completed, zooming in and out, editing at one level, and patching at other levels to be consistent.
Ultimately, only one development software can be used to build the test system.
This rich design environment will enable users to create systems that are easy to understand and maintain.
Working at multiple levels of abstraction is the most effective way to solve complexity. It can gradually expose and abstract semantic details so that you can better design the measurement system and evolve continuously according to your needs.
As Alan Kay said, "The best way to predict the future is to create the future."
The environment we have built is becoming more and more complex, which requires more sophisticated test and measurement systems to match it. More complex tools are needed to reduce the human-induced complexity and provide a more advanced abstraction layer design. Through our continuous improvement of our products, we will further realize this vision.
We want to provide innovative tools to build the systems we need in the future, and NI’s vision has always been the same.
Yuchai 201-400KW Diesel Generato
Yuchai 201-400Kw Diesel Generato,Yuchai Silent Type Diesel Generator,Yuchai Container Type Diesel Generator,Yuchai Super Silent Diesel Generator
Shanghai Kosta Electric Co., Ltd. , https://www.ksdgenerator.com