next up previous
Next: Modeling the Two-Pusher Example Up: Net Condition Event Systems Previous: Synthesis of Safety Controller

Synthesis of Sequential Controller

The synthesis of a controller which realizes a specified path is described in more detail in [21]. The procedure was developed for a modified version of our Two-Pusher example, and it works as follows:

  1. Assume that we want to move a token from a specified initial place to a desired goal place.
  2. Determine an ordered set of interim places, tex2html_wrap_inline2857 ,so that the token can move through these places from the initial place to the goal place.
  3. Try to find a set of inputs which must have the value one so that a set of transitions become enabled which eventually bring the token from place tex2html_wrap_inline2859 to place tex2html_wrap_inline2861 . This is called a forward step. Performing a forward step consists of switching on the necessary control inputs and marking the necessary places which enable the desired transitions.
  4. The forward step is ``inadmissible'' if it may lead to an extended forbidden marking. In this case, the forward step is carried out as far as possible, stopping at the transition, say tex2html_wrap_inline2863 , whose firing would bring the system to an extended forbidden marking. Then, determine the control inputs which could remove tokens from other places in tex2html_wrap_inline2851 . That is, ``unlock'' a situation which would be locked by the safety controller by removing a token from some other place in tex2html_wrap_inline2851 before moving a token to our desired place tex2html_wrap_inline2869 .
  5. Update the index of the ordered set of interim places and repeat the forward steps if possible.

There are some limitations of this procedure we must mention: First, it is purely sequential. This means that the procedure travels through the desired sequence, step by step, as opposed to devising perhaps certain strategies which would guarantee the accomplishment of the desired path. Second, if we find a controller with this procedure, then this controller is suitable; but, there is no guarantee that we will find a controller if one exists, or that the one we find is ``optimal'' in any sense. These problems are currently under investigation.

From the results of the above procedure, we can directly derive the controller function and represent it by means of a Sequential Function Chart which can be directly implemented in a Programmable Logic Controller (PLC). Synthesizing the control code automatically from the results of the above algorithm is described in [7].

We will illustrate this procedure for the desired path specification of the Two-Pusher example in Section 6.4.


next up previous
Next: Modeling the Two-Pusher Example Up: Net Condition Event Systems Previous: Synthesis of Safety Controller

Luz E. Pinzon
Wed Oct 15 18:10:49 EDT 1997