Comparison between SIMULINK and LabVIEW

I am trying to determine which of these two to buy for my work. I used SIMULINK, but not LabVIEW. Is there anyone who has used both and would like to provide some details? My research criteria are user friendliness, accessibility of libraries and template functions, the ability to probe in real time, the ability to interact with COTS hardware, the quality of code generation, design for verification (i.e. ease of unit generation / acceptance tests), etc. d. However, if someone would like to teach me other criteria, please do so by all means!

For those who do not know about SIMULINK and LabVIEW, it’s like domain languages ​​(DSL), designed to simulate a graphic data stream (as well as generate code). These are multi-industrial tools and are quite heavily used for engineering design and modeling.

IMPORTANT I am very interested to know if SIMULINK and LabVIEW offer real-time sounding. For example, I have a model that I want to simulate. If this model has variables associated with specific building blocks, can I change them while continuing the simulation? I know this is not possible with SIMULINK, as it has a step-by-step debugger. I do not know anything like this in LabVIEW.

I really did not use LabVIEW and I can’t get it temporarily, since my work on the Internet has limitations on downloading and problems with administrative privileges. It is for this reason that I simply cannot use the NI website alone to draw conclusions. If there is any white paper that relates to this problem, I would also like to know :)

UPDATE AFTER THE LAST MAIL

I used the MATLAB code generator and will not say that it is the best. However, now I hear that SIMULINK Embedded Coder is the best code generator and almost one of a kind. Can anyone confirm whether this is really suitable for critical security systems, for example, for generating code from models of the security subsystem. I know that Mathworks is constantly trying to close the gap to achieve fully flexible generation of C / C ++ code.

I know that the ideal answer would be: "Depending on what you are trying to do, use a little." And interestingly, I think I'm heading in that direction. ATEOTD, this is a lot of money and you need to spend "beautifully."

Thanks in advance.

+6
source share
6 answers

I have absolutely no experience with Simulink, so I will only comment on LV, although a quick introduction to Simulink on Wikipedia seems to indicate that the main focus was on modeling and modeling, which, of course, does not apply to LabVIEW.

OK, therefore, first of all, LV is not a DSL. Although you do not want to use it for any project, it is a universal programming language, and you should keep this in mind. I know that NI has modeling tools for LV that can help you if you do, but I have absolutely no experience. The images I saw seemed to indicate that he was adding a special kind of diagram in LV for modeling.

Secondly, LV is not limited to any equipment. This is a general-purpose language, so you can write code that will not use any equipment whatsoever, code that will be used or run on NI hardware or software that will use any equipment (whether through DLL calls, .NET assemblies , RS232, TCP, GPIB or any other option that you can think of). There is a fairly large collection of LV drivers for various devices, and the quality of the driver usually depends on who wrote it.

Thirdly, you can certainly check in real time in LV. You write your code just like in C or Java, and when you run it, you have several debugging options:

  • One step. In fact, this is not so, because LV is parallel.
  • Highlight execution. This runs the code in slow motion, showing all the values ​​in different wires.
  • Probes that show the last value that each wire has, where wires fill the same function as variables in text languages. This is a real-time update, and I assume you want to.
  • Save wire values ​​that allow you to probe the wire even after data has passed through it. This is similar to what you get in text IDEs with variables. In LV, you usually do not use it because the wire values ​​are temporary, so the value is not supported unless you explicitly request it.

Of course, since you are talking about code, you can also just write code to display values ​​on the screen on a chart or a numerical indicator or write them to a file, so there should be no need for actual sounding. You can also add analysis code, etc.

Fourth, you can try to download and run LV in a fully functional evaluation mode. If I remember correctly, NI currently gives you 7 days, and then 45 days if you sign up for your site. If you cannot do this on a working computer, you can try it at home. If your problem is only downloading, you can try contacting your local NI office and asking them to send you a DVD.

Notice that I don’t know anything about modeling and simulation, so I have no idea what code you really need to write to do what you want. I assume that if NI has a special module for it, then this is not something you can completely cover in regular code (at least if you want the original notation), but I would say that if you could write code , which does what you want in C, there is no reason why you cannot write it in LV (assuming, of course, that you know how to write code in LV).

+5
source

I have been using labVIEW since 1995, and Simulink since 2000. Now I am developing control systems and simulating robotic systems using LabVIEW Real Time and automotive ECUs using MATALAB / Simulink / DSPACE.

LabVIEW focuses on measuring systems and MATLAB / SIMULINK in dynamic modeling, therefore

If you run complex simulations, and your job is to create / debug complex simulation models of controllers or installations, use Simulink + RealTimeWorkShop + StateFlowChart. LabVIEW does not have generation code generators for dynamic modeling. RTW generates faster and faster code.

If your main job is to develop systems with controllers and a graphical interface for machines, or if you want to deploy controllers in a field, use labVIEW.

If your main job is to develop flexible HIL or SIL systems with a good graphical interface, you can use VeriStand. Veristand can combine Simulink and LabVIEW code.

And if you have a large budget (VERY BIG) and you work in prototypes of automotive control, DSPACE equipment is a very good choice for the rapid development of automotive ECUS or OPAL for the development of power schemes. But only for testing prototypes or HIL controllers.

In terms of hardware, COTS: Mathworks does not manufacture hardware β†’ Matlab / Simulink hardware support from multiple vendors.

National Instruments manufactures / sells equipment-> LabVIEW Real Time focuses on NationalInstruments hardware. A complete replacement for COTS is missing.

+13
source

Many of the best answers should have depended on your final design requirements. Are you developing a product? If so, at what stage of development are you? Or are you doing research?

I recently made a comparison just like you did. I know LV, but I wanted to move to a more hardware-scalable option, because NI HW is very expensive in volume. That is, my company wanted to move to the product. What gives LV and NI HW is flexibility. You can quickly change the code compared to C. On the other hand, LV does not work on almost as many different HW platforms as C. Therefore, I wanted to find an inexpensive platform that worked well for managing and collecting real-time data, so if we wanted to sell a product, say, $ 30 thousand, our controller would not cost $ 15 thousand from this. We are done with Diamond Systems Linux SBC. Interestingly, Simulink has finished using the most expensive equipment! He possessed great flexibility and could generate code, as well as model installations and controllers. But then LV can do it too.

As Yair wrote, LV has many good debugging tools. One of the most interesting tools that is not well known is Pause when called for a runway. This allows you to play with runway entrances and exits as much as you want while execution is paused.

+1
source

As I understand it (I never used it in anger), LabView only supports NI hardware and is more hardware oriented. Simulink supports hardware from several vendors, whether for data collection or in real time, but the user may need a little more work to interact with his own equipment (less plug and play than LabView). Simulink, on the other hand, provides tools to support the entire model-based design process: from modeling and modeling, control design, validation and verification, code generation, hardware-in-a-cycle, etc.

Disclaimer: I worked at MathWorks.

0
source

You may be really interested in Control Design and the modular module for LabVIEW . He does a lot of simulations and in the future may be competitive for Simulink. I am not a management specialist, but sometimes I use it for simple testing, and I'm glad that I do not need to study Simulink first to do some work, as I am familiar with the LabVIEW philosophy.

0
source

MATLAB and Simulink are the default standard for the design and simulation of control systems. Simulink controller models can be used for stand-alone modeling in combination with a plant model, right up to real-time implementation on embedded objects. This is a common modeling system with extensive built-in libraries, as well as specialized a la carte libraries and can be expanded by creating custom blocks (S-function blocks) in C and other languages. It includes the ability to display values ​​in graphs, numerical displays, meters, etc., while non-implementation modeling is performed. Mathworks Realtime target support includes x86 (xPC Target) and several built-in targets (MPC555, etc.), and for other purposes, third-party support is supported. The aforementioned dSPACE provides full control over prototype controllers, including support for their fairly powerful hardware. xPC Target includes support for multiple COTS PC data acquisition cards. Real-time targeted support includes GUI elements such as graphs, numeric indicators, etc.

0
source

Source: https://habr.com/ru/post/947624/


All Articles