I am using LabVIEW's Statechart Module to build a synchronus statechart
that is called within a Timed Loop from another VI. Within the statechart,
each transition is configured to occur on the NULL trigger, but can only
take place if its guard evaluates to true. I have a state that has 2
transitions out of it, where each transition has a different guard. Since
my Timed Loop executes relatively slowly (once every few seconds), it is
likely that both guards could become true between subsequent calls to the
statechart. If this happens, which transition will occur? Does LabVIEW
have some kind of priority that I can assign to transitions to ensure that
if multiple transitions are possible, a particular transition will execute
rather than another?I have attached a simple example that should
illustrate my point. In this example, if the statechart is in State 1, and
both Input A and Input B change from false to true within the same 3000ms
period, will Transition A or Transition B take place? More im****tantly,
how can I force a particular transitions to occur in these
circumstances?NOTE: The Run Statechart function in Example Caller VI.vi
may need to be re-linked to Example Statechart.lvsc by right-clicking and
selecting "Link to Statechart...".I would greatly appreciate it if someone
could shed some light on this subject. I have found nothing about this on
the web, but maybe I'm just not looking in the right place?
Example Caller VI.vi:
http://forums.ni.com/attachments/ni/170/323332/1/Example
Caller VI.vi
Example Statechart.lvsc:
http://forums.ni.com/attachments/ni/170/323332/2/Example
Statechart.lvsc


|