Jump to content

Dynamic dispatch simulation subsystem


Recommended Posts

Dear audience,

I am trying to design an LVOOP wrapper around some simulation (control and simulation loop). The idea is that I want to have a base class which will define interface to a number of simulations (basic actions etc), and then derived classes, which will actually define a particular simulation to execute. I wanted to have control and simulation loop and some auxilitary stuff as a part of basic class implementation, so that I can set up the simulation parameters in the base class methods. So I want to define a dynamic dispatch simulation subsystem. At the moment when I define input and output terminals as "dynamic dispatch" the arrow breaks, "Error compiling a VI". I am using 2010f4 32 bit.

Is it a feature or a bug? Any suggested workarounds?

Link to comment

Is it a feature or a bug? Any suggested workarounds?

Sounds like a bug to me. Make sure that if you already setup your class hierarchy and are now 'adding' dynamic dispatching, that all dynamic dispatched methods with the same name in your class hierarchy have dynamic dispatch terminals and the same conn pane.

Link to comment

Sounds like a bug to me. Make sure that if you already setup your class hierarchy and are now 'adding' dynamic dispatching, that all dynamic dispatched methods with the same name in your class hierarchy have dynamic dispatch terminals and the same conn pane.

I think I just post the sequence of actions to recreate the described situation here:

  1. Launch LabVIEW
  2. File->New Project
  3. RMB->new class
  4. accept the default name ("Class 1" in my case)
  5. My computer->RMB->New simulation subsystem
  6. drag 2 instances of the class to "Subsystem 1" front panel
  7. change one of them to indicator
  8. connect them on BD
  9. Icon->RMB->show connector
  10. Link control with topmost left terminal
  11. Link indicator with topmost right terminal
  12. In project explorer move the subsystem inside the class
  13. input terminal->RMB->this connection is-> dynamic dispatch input
  14. output terminal->RMB->this connecton is-> dynamic dispatch output
  15. labview thinks for 2 seconds
  16. Push an arrow button - it becomes broken

Can anybody confirm?

as soon as you change connection back to, say, required-recommended and recompile the vi it starts to work normally

If you close the project, LabVIEW shuts down by itself without going to the start dialogue

Edited by mzu
Link to comment

Been working on LV for 10 years, but I have no idea what "New simulation subsystem" means. Is this some module or toolkit addon? If so, which one?

Simulation subsytem is a modular unit of simulation diagram, which can be excuted inside control and simulation loop, using "Control Design and Simulation Module", URL. It is graphical representation of dynamical systems. Some people use Mathworks Simulink for the purpose. (There was some patent dispute if my memory serves me well).

I wanted to develop an LVOOP wrapper around the simulation diagram, so that I can delegate the simulation diagram development to my colleagues.

Link to comment

Simulation subsytem is a modular unit of simulation diagram, which can be excuted inside control and simulation loop, using "Control Design and Simulation Module", URL. It is graphical representation of dynamical systems. Some people use Mathworks Simulink for the purpose. (There was some patent dispute if my memory serves me well).

I wanted to develop an LVOOP wrapper around the simulation diagram, so that I can delegate the simulation diagram development to my colleagues.

I've heard of that module but never worked with it. Let me ask around and see what I find out.
Link to comment
I've heard of that module but never worked with it. Let me ask around and see what I find out.
Ok. Turns out no user has ever asked to do that before, and since the Sim team wasn't aware of OO features and the OO team wasn't aware of Sim features, no one knew to proactively add the feature. So simulation diagrams do not support dynamic dispatching. I filed the CAR (#280810) so that it gets attention. I tagged the CAR for LV 2011, but because we are fairly late in the dev cycle for the release, it wouldn't surprise me if the fix has to wait for a future release.

I'm sorry you got burned by this communication failure on our part.

  • Like 2
Link to comment

Ok. Turns out no user has ever asked to do that before, and since the Sim team wasn't aware of OO features and the OO team wasn't aware of Sim features, no one knew to proactively add the feature. So simulation diagrams do not support dynamic dispatching. I filed the CAR (#280810) so that it gets attention. I tagged the CAR for LV 2011, but because we are fairly late in the dev cycle for the release, it wouldn't surprise me if the fix has to wait for a future release.

I'm sorry you got burned by this communication failure on our part.

Wow, that was a fast reply! Thanks, Aristos, I will be waiting for a future release.

I the meanwhile I will have to include control and simulation loop for each of the child classes.

Link to comment
  • 3 months later...

This is exciting news!! Thank you for your efforts! I got so tired designing the workarounds, when single wrong step crashes LabVIEW.

The resolution of this CAR It is a reason enough for me to participate in 2011 beta. I filled out the application, got no answer yet.

Link to comment

AQ, what version of beta do you refer to as to the second one. The latest beta 11.0b79 contains same bug (I go through the sequence of actions above verbatim and get the same result).

Link to comment
  • 2 weeks later...

I'm sorry to be the bearer of bad news, but it doesn't appear this feature will make it into the 2011 version. There seems to be too much disconnect between the two pieces to be sure of a quality integration at this point in the release cycle. It will be a high priority going forward from here. Thank you for bringing this to our attention and I am very sorry that it's not working yet.

  • Like 1
Link to comment

I'm sorry to be the bearer of bad news, but it doesn't appear this feature will make it into the 2011 version. There seems to be too much disconnect between the two pieces to be sure of a quality integration at this point in the release cycle. It will be a high priority going forward from here. Thank you for bringing this to our attention and I am very sorry that it's not working yet.

Thank you for an answer... Will look for the next release. Back to designing workarounds ...

I understand that it is impossble to make it work properly now for 2011 release, but is it posible to make it so that LabVIEW 2011 spits out a meaningful error, instead of "VI failed to comiple"? And does not crash afterwards?

Edited by mzu
Link to comment

I understand that it is impossble to make it work properly now for 2011 release, but is it posible to make it so that LabVIEW 2011 spits out a meaningful error, instead of "VI failed to comiple"? And does not crash afterwards?

The crash is fixed. Due to the implementation details I highly doubt we'll be able to update the error message. Sorry about that. We will be sure to include this issue in the Knowledge Base.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.