07-06-2023 08:45 AM
Hello!
I made a very simple test vi to verify that the stop function of a Timed Loop works correctly. To my surprise, it doesn't work at all! The national instrument example does not work any more! I'm on a recent PC under W10...
What's wrong in my code ?
The error message is (in french, sorry) :
LabVIEW: (Hex 0xFFFFFCDC) La structure cadencée n'existe pas ; il se peut qu'elle n'ait jamais été créée, qu'elle ait été supprimée ou qu'une action illégale ait été tentée.
Error code -804
Thank you for the help !
07-06-2023 08:51 AM - edited 07-06-2023 08:51 AM
07-06-2023 11:49 AM
This is the English error message:
"The timed structure does not exist, possibly because the timed structure has not been created, the timed structure has been cleared, or an illegal operation was attempted."
You say that the NI example doesn't work. Are you talking about the one here?:
<LabVIEW folder>\examples\Structures\Timed Loop\Timed Loop Abort.vi
If not, can you try that one?
What exact LabVIEW version are you running?
07-07-2023 12:24 AM
ok.....
there is a true mistake ...
i make the same vi of you ....it work
I execute the test vi i have done yesterday ...it work
i execute the sample vi (C:\Program Files (x86)\National Instruments\LabVIEW 2023\examples\Structures\Timed Loop) ....it work
The code of my big project doesnt bug anymore ...
I think i will do with another way because if this code doesn't work i'm bolcked in a step vi in testand ......
i'm on laview 2023 ...perhaps a bug ....
07-07-2023 08:42 AM
the error appears only after executing my VI who call the runtime testsand for executing a sequence who call , in a step a vi with this function !
I will try with another methode! i think it's a bug
07-07-2023 08:57 AM
So what are you trying to do in TestStand ?
Remember that Timed While-loop are not for use in Windows, but rather in a RT system.
07-07-2023 09:28 AM
@vincent69 wrote:
Hello!
I made a very simple test vi to verify that the stop function of a Timed Loop works correctly. To my surprise, it doesn't work at all! The national instrument example does not work any more! I'm on a recent PC under W10...
What's wrong in my code ?
The error message is (in french, sorry) :
LabVIEW: (Hex 0xFFFFFCDC) La structure cadencée n'existe pas ; il se peut qu'elle n'ait jamais été créée, qu'elle ait été supprimée ou qu'une action illégale ait été tentée.
Error code -804
Thank you for the help !
How are you going to see a value change event on your boolean control unless you READ it! Stick the terminal in the Value Change Event case or at least inside the event loop somewhere!
07-07-2023 12:07 PM - edited 07-07-2023 12:15 PM
@JÞB wrote:
How are you going to see a value change event on your boolean control unless you READ it! Stick the terminal in the Value Change Event case or at least inside the event loop somewhere!
I reproduced his code to see if that affected the issue. It didn't, but of course the control didn't work properly and stayed latched. Then I tried putting the whole button loop and event code into a disable structure and I still got the same error the OP mentioned about no timed loop found. I made a mistake and connected the loop Source Name instead of the Structure Name, which is an easy mistake since it's the one visible when you drop down a Timed Loop. It's possible OP made the same mistake and the wire is bent under the Input Node, but no telling with just an image.
In any case, he said it's working in LabVIEW now, just not in TestStand so maybe all the timed loop features aren't supported in TestStand, or there is a real bug. I don't use TestStand, and although I thought the timed loop was a really cool addition to LabVIEW, I've never found a use case that actually required it. It wouldn't surprise me at all if there were still issues under the hood.
EDIT: BTW, if you want to see the error just put down a Timed Loop and wire any string to the Source Name input. Loop won't run and throws an error.
EDIT2: LV Help explains that you need create a timing source, so I guess you have to set that up before you use the input.
07-07-2023 12:23 PM
@NIquist wrote:
@JÞB wrote:
How are you going to see a value change event on your boolean control unless you READ it! Stick the terminal in the Value Change Event case or at least inside the event loop somewhere!
I reproduced his code to see if that affected the issue. It didn't, but of course the control didn't work properly and stayed latched. Then I tried putting the whole button loop and event code into a disable structure and I still got the same error the OP mentioned about no timed loop found. I made a mistake and connected the loop Source Name instead of the Structure Name, which is an easy mistake since it's the one visible when you drop down a Timed Loop. It's possible OP made the same mistake and the wire is bent under the Input Node, but no telling with just an image.
In any case, he said it's working in LabVIEW now, just not in TestStand so maybe all the timed loop features aren't supported in TestStand, or there is a real bug. I don't use TestStand, and although I thought the timed loop was a really cool addition to LabVIEW, I've never found a use case that actually required it. It wouldn't surprise me at all if there were still issues under the hood.
EDIT: BTW, if you want to see the error just put down a Timed Loop and wire any string to the Source Name input. Loop won't run and throws an error.
EDIT2: LV Help explains that you need create a timing source, so I guess you have to set that up before you use the input.
As far a TestStand goes, you need to follow the same rules for a named Timed Loop as you would for a Named Queue / Notifier/ DAQmx Task, etc... the Named objects have Context wide scope. They can even fail if you call one instance through the lvproj and not all instances.
07-12-2023 06:45 AM
"How are you going to see a value change event on your boolean control unless you READ it! Stick the terminal in the Value Change Event case or at least inside the event loop somewhere!"
Hello,
I didn't understand. The boolean is read by the event structure. I've always done it that way. as soon as the event is triggered (in this case as soon as the button changes state) we go to the event structure on the case concerned and the code is executed (in this case the timed loop is stopped) no ?