<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Introducing &#8220;Questions&#8221;</title>
	<atom:link href="http://www.stateworks.net/2009/03/introducing-questions/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stateworks.net/2009/03/introducing-questions/</link>
	<description>StateWORKS blog about software engineering using virtual finite state machines</description>
	<lastBuildDate>Wed, 15 Sep 2010 17:51:43 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: John M</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-1454</link>
		<dc:creator>John M</dc:creator>
		<pubDate>Tue, 30 Mar 2010 04:48:21 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-1454</guid>
		<description>I see what you mean about increasingly diminished comprehensibility.  (I have enough trouble remembering the scenario of a controller watching a panel of instruments and taking actions iteratively and in a possibly non-linear / sequential manner.  The &#039;sequential programmer&#039; nature runs deep!)  A changeable execution engine would be unworkable!

To move to a Moore model, an input condition of the Mealy (mixed?) model would be tested in a transition condition and if True the to-state entry actions would execute the input actions?  I&#039;ll take a look at it - thanks.</description>
		<content:encoded><![CDATA[<p>I see what you mean about increasingly diminished comprehensibility.  (I have enough trouble remembering the scenario of a controller watching a panel of instruments and taking actions iteratively and in a possibly non-linear / sequential manner.  The &#8217;sequential programmer&#8217; nature runs deep!)  A changeable execution engine would be unworkable!</p>
<p>To move to a Moore model, an input condition of the Mealy (mixed?) model would be tested in a transition condition and if True the to-state entry actions would execute the input actions?  I&#8217;ll take a look at it &#8211; thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ferdinand</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-1415</link>
		<dc:creator>ferdinand</dc:creator>
		<pubDate>Sun, 28 Mar 2010 08:50:59 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-1415</guid>
		<description>The present VFSM execution model is a result of several years of discussion and practical experiences. Your ideas could be implemented but there is one basic difficulty: the comprehensibility, especially if the model could be changed at any time. We allow it with the break state but we use it with care. Imagine that you have several possibilities to change the model according to problems you presented. The state machine will become as difficult to read as a coded implementation.
I believe you should just use a simple model like a a Moore one to solve your problem. It will increase the number of states but you will understand what you are doing. The combination of Moore and Mealy model seems to be attractive but all experiences show that the design becomes complicated in spite of less states.</description>
		<content:encoded><![CDATA[<p>The present VFSM execution model is a result of several years of discussion and practical experiences. Your ideas could be implemented but there is one basic difficulty: the comprehensibility, especially if the model could be changed at any time. We allow it with the break state but we use it with care. Imagine that you have several possibilities to change the model according to problems you presented. The state machine will become as difficult to read as a coded implementation.<br />
I believe you should just use a simple model like a a Moore one to solve your problem. It will increase the number of states but you will understand what you are doing. The combination of Moore and Mealy model seems to be attractive but all experiences show that the design becomes complicated in spite of less states.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John M</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-1364</link>
		<dc:creator>John M</dc:creator>
		<pubDate>Thu, 25 Mar 2010 06:19:18 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-1364</guid>
		<description>Technical Note 25 re &quot;break states&quot; looks very useful!   I am wondering whether the idea could be applied to each transition rather than all the transitions from the _B_ tagged state?

Anyway, how about the similar idea of a state change that executes the input actions of the to- state rather than the entry actions - or maybe the entry actions then immediately the input actions before the transitions?  

I&#039;m trying handle 2 disjoint sets of logic via a &quot;switch state&quot; - rather than have a single state and pre-fix every condition expression with either &quot;LogicSwitch_HIGH&quot; or &quot;LogicSwitch_LOW&quot;.   So the switcher state has only transitions to either a LogicHigh or LogicLow state.  

Now the &#039;real&#039; stuff in those 2 states is in input condition /actions but to execute those I need to make some kind of &quot;change VI just to get input actions to execute&quot; entry action .... and also make sure none of the LogicXxxx state transitions trigger until I want them to (ie after the input actions have executed).

Some kind of &quot;let transition to- state handle the latest VI change&quot; transition would make life easier .... or is there another better way to handle this?</description>
		<content:encoded><![CDATA[<p>Technical Note 25 re &#8220;break states&#8221; looks very useful!   I am wondering whether the idea could be applied to each transition rather than all the transitions from the _B_ tagged state?</p>
<p>Anyway, how about the similar idea of a state change that executes the input actions of the to- state rather than the entry actions &#8211; or maybe the entry actions then immediately the input actions before the transitions?  </p>
<p>I&#8217;m trying handle 2 disjoint sets of logic via a &#8220;switch state&#8221; &#8211; rather than have a single state and pre-fix every condition expression with either &#8220;LogicSwitch_HIGH&#8221; or &#8220;LogicSwitch_LOW&#8221;.   So the switcher state has only transitions to either a LogicHigh or LogicLow state.  </p>
<p>Now the &#8216;real&#8217; stuff in those 2 states is in input condition /actions but to execute those I need to make some kind of &#8220;change VI just to get input actions to execute&#8221; entry action &#8230;. and also make sure none of the LogicXxxx state transitions trigger until I want them to (ie after the input actions have executed).</p>
<p>Some kind of &#8220;let transition to- state handle the latest VI change&#8221; transition would make life easier &#8230;. or is there another better way to handle this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ferdinand</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-933</link>
		<dc:creator>ferdinand</dc:creator>
		<pubDate>Mon, 15 Feb 2010 08:02:50 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-933</guid>
		<description>Exactly. The changes of the virtual input can be done by the I/O Handler and by the outputs of the executed state machine.</description>
		<content:encoded><![CDATA[<p>Exactly. The changes of the virtual input can be done by the I/O Handler and by the outputs of the executed state machine.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John M</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-930</link>
		<dc:creator>John M</dc:creator>
		<pubDate>Mon, 15 Feb 2010 03:37:54 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-930</guid>
		<description>Thanks - must confess I was thinking single state machine only.  I suppose in any case one needs to be aware of the principle of *continuous* monitoring of inputs?  The input values to even a single state machine could change in the middle of control logic execution - yes?</description>
		<content:encoded><![CDATA[<p>Thanks &#8211; must confess I was thinking single state machine only.  I suppose in any case one needs to be aware of the principle of *continuous* monitoring of inputs?  The input values to even a single state machine could change in the middle of control logic execution &#8211; yes?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ferdinand</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-888</link>
		<dc:creator>ferdinand</dc:creator>
		<pubDate>Wed, 10 Feb 2010 12:54:56 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-888</guid>
		<description>John,
Yes, there is a reason for this solution. While the Executor is processing a state machine the virtual input of this state machine may change. Thus this state machine will be put into Executor queue. If the Executor uses the virtual input (and not the copy) the situation will be ambiguous. For a single state machine it is irrelevant. For a system of a state machine we get a different behavior.
Thank you for a comment to this quite sophisticated issue.</description>
		<content:encoded><![CDATA[<p>John,<br />
Yes, there is a reason for this solution. While the Executor is processing a state machine the virtual input of this state machine may change. Thus this state machine will be put into Executor queue. If the Executor uses the virtual input (and not the copy) the situation will be ambiguous. For a single state machine it is irrelevant. For a system of a state machine we get a different behavior.<br />
Thank you for a comment to this quite sophisticated issue.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John M</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-885</link>
		<dc:creator>John M</dc:creator>
		<pubDate>Wed, 10 Feb 2010 01:12:02 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-885</guid>
		<description>Ferdinand - 
Wrt comments 1 &amp; 2 (Gustavo &amp; your response in March &#039;09 re control logic execution sequences and &#039;break states&#039;) : is there an inherent and strong reason that a copy of the VI with values at entry is used throughout the whole sequence of execution to &quot;no more transitions&quot;?

Sure the alternatives beg the question of when a control values change where to loop back to in the condition evaluation sequence (and doubtless would allow for creation of nasty little in-state loops).  Possibly there is no good answer to this question?</description>
		<content:encoded><![CDATA[<p>Ferdinand &#8211;<br />
Wrt comments 1 &amp; 2 (Gustavo &amp; your response in March &#8216;09 re control logic execution sequences and &#8216;break states&#8217;) : is there an inherent and strong reason that a copy of the VI with values at entry is used throughout the whole sequence of execution to &#8220;no more transitions&#8221;?</p>
<p>Sure the alternatives beg the question of when a control values change where to loop back to in the condition evaluation sequence (and doubtless would allow for creation of nasty little in-state loops).  Possibly there is no good answer to this question?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dominique</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-331</link>
		<dc:creator>Dominique</dc:creator>
		<pubDate>Wed, 16 Sep 2009 12:35:53 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-331</guid>
		<description>Mike, Ferdinand,
Thanks for the quick reaction.
That&#039;s what I was hoping for, we could run the exe on our hosted server.
I guess now we have to finish reading the book and download the software to test it. I will probably contact you then if we have any questions.</description>
		<content:encoded><![CDATA[<p>Mike, Ferdinand,<br />
Thanks for the quick reaction.<br />
That&#8217;s what I was hoping for, we could run the exe on our hosted server.<br />
I guess now we have to finish reading the book and download the software to test it. I will probably contact you then if we have any questions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Tommasi STATEWORKS</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-323</link>
		<dc:creator>Mike Tommasi STATEWORKS</dc:creator>
		<pubDate>Tue, 15 Sep 2009 12:58:30 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-323</guid>
		<description>Ferdinand, thinking out loud: maybe it could work like this: Dominique defines behaviour of web application using Stateworks, obtains the executable data file, uploads it to a server , then we make a PHP class that he can run on his host to send via TCP/IP all requests (page and HTML object state), and get the result.

The Stateworks server could even be a dedicated remote server that we could host, something secure in a suitable colocation rack, maybe on our stateworks.com hosting service. This avoids him having to worry about how to run an exe somewhere.</description>
		<content:encoded><![CDATA[<p>Ferdinand, thinking out loud: maybe it could work like this: Dominique defines behaviour of web application using Stateworks, obtains the executable data file, uploads it to a server , then we make a PHP class that he can run on his host to send via TCP/IP all requests (page and HTML object state), and get the result.</p>
<p>The Stateworks server could even be a dedicated remote server that we could host, something secure in a suitable colocation rack, maybe on our stateworks.com hosting service. This avoids him having to worry about how to run an exe somewhere.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ferdinand</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-322</link>
		<dc:creator>ferdinand</dc:creator>
		<pubDate>Tue, 15 Sep 2009 12:42:57 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-322</guid>
		<description>It is obvious that you can use StateWORKS development tools to specify your control problem and to test it. The answer to the “implementation in the web environment” question is more difficult. Our run-time system is an EXE running under Windows (or Linux) operating system. The communication with the system is done using tcp/ip as the run-time system is a tcp/ip server. So writing a client you can access the system. Originally the client server application has been developed for User Interfaces and other monitoring purposes. “Classical” industrial control applications need I/O handler to communicate with the run-time system. A web application is a kind of User Interface. You can have a look at our case study &quot;Calculator&quot; that shows this kind of example (which is probably even more complex due to the calculations that require Output Functions).
As you can access all object in the run-time system you can realize a control using our standard executor without writing I/O Handler or Output Functions. The question is where will the EXE run?</description>
		<content:encoded><![CDATA[<p>It is obvious that you can use StateWORKS development tools to specify your control problem and to test it. The answer to the “implementation in the web environment” question is more difficult. Our run-time system is an EXE running under Windows (or Linux) operating system. The communication with the system is done using tcp/ip as the run-time system is a tcp/ip server. So writing a client you can access the system. Originally the client server application has been developed for User Interfaces and other monitoring purposes. “Classical” industrial control applications need I/O handler to communicate with the run-time system. A web application is a kind of User Interface. You can have a look at our case study &#8220;Calculator&#8221; that shows this kind of example (which is probably even more complex due to the calculations that require Output Functions).<br />
As you can access all object in the run-time system you can realize a control using our standard executor without writing I/O Handler or Output Functions. The question is where will the EXE run?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

