07-18-2017 09:07 AM
07-18-2017 09:16 AM
07-18-2017 09:23 AM
07-18-2017 09:23 AM
07-18-2017 09:33 AM - edited 07-18-2017 09:34 AM
Hi Amanda,
I'm sorry, but I'm out of business when looking at the blockdiagram of your VI!
Please clean it up before asking anymore questions!
Btw. I don't see any reason why all those charts shouldn't update their display as long as the loop runs…
Hints:
- Whenever you need to replicate code several times you should think of "how to use a loop here?"!
- All terminals in the block diagram should show their label!
- You really need 18 ExpressVIs to send emails? Why not have one Email-ExpressVI and a simple FormatIntoString to generate the email content???
- The main part inside the loop seems to benefit massively from a state machine approach!
- You really need to iterate that FOR loop 1000 times? With atleast 6 times delays of 1s inside? So the loop will run 6000s=100min=1h40min - without any possibility for the user to stop it?
Have you ever heard of Rube-Goldberg before?
07-18-2017 09:45 AM
I don't need the time delays nor the 1000 for loop. And each email reports a different thing. Sorry it's a mess. Would adding references to waveform chart be beneficial?
07-18-2017 09:51 AM - edited 07-18-2017 09:52 AM
Hi Amanda,
Would adding references to waveform chart be beneficial?
So you want to improve that VI by throwing even more stuff on it? I don't think so…
Transferring data using control references is considered "slow"…
Btw. I still don't see the problem here! The charts will/do update with each iteration of your FOR loop…
I don't need the time delays nor the 1000 for loop.
Then why did you program them?
And each email reports a different thing.
That's why I suggested to create the email content programmatically!
07-18-2017 10:12 AM
So whatever you have attached is the subVI? How exactly are you calling it? There are no connectors defined.
It will take at least 6 seconds to update all charts because of all the delays. This VI is just a mess with many instances of pure Rube Goldberg constructs. So you have a 1D array of unspecified length and reshape it into a 1x3 2D array (!!!) (several instances) and then your are indexing out each of the three rows with three individual index array operations. Why??? What prevents you from indexing out the first 3 elements of the 1D array directly using a single index array resized to three outputs? All these little "one iteration" while loops are just plain silly. Since your shift registers are not initialized, very high or low values will survive between runs and possibly mess with your data. There is plenty more seriously wrong with this and I think the chart updates are the least of your problems.
07-18-2017 10:32 AM
@altenbach wrote:
So you have a 1D array of unspecified length and reshape it into a 1x3 2D array (!!!) (several instances) and then your are indexing out each of the three rows with three individual index array operations.
Here's what I meant. Below is an alternative with basically the same functionality. You might want to add some code to reset the min/max values.
Note that a complete redesign could simplify it much more and e.g. carry arrays of min/max for all instances in a single feedback node overall for orders of magnitude less code.
07-18-2017 10:45 AM
Thank you I will try simplifying. Just found out that graphing function works well and it's now the table that's giving me issues