K-Maps...
A properly designed/utilized K-Map is perfectly well suited for describing a sequence.
A properly designed/utilized K-Map will provide all of the "dynamic" information that any sequential or non-sequential process could require.
I have pre-printed K-Maps in various sizes:
- 2 x 1
- 2 x 2
- 3 x 2
- 3 x 3
- 4 x 3
- 4 x 4
Granted, increasing the number of elements in a K-Map can
very quickly make the process of addressing each particular combination very tedious.
However, this problem can be minimized quite handily if "Modularization" is properly applied to a process. Sadly, too many people do not understand the concept or process of "modularizing".
When asked about modules in their process, some people look at everything on the network (plant-wide) and determine that they have a half-dozen machines on the network and therefore a half-dozen modules.
That would usually be wrong.
Certainly, there a half-dozen machines. But how many "modules" exist within each machine?
Oh... In Machine-1 there is a Loader, a Cutter, an Unloader, a Stacker and a Wrapper. There must be five "modules" in that machine.
This is where a mild "curve-ball" comes in.
Are there any "modules" in the Loader?
How does the Loader obtain material to load?
Once obtained, how does the Loader load the Cutter?
After loading the Cutter, what does the Loader do?
There are
many "modules" in any process, and usually, more modules than initially thought. That is, if one gives some real, carefully considered thought to a process, one can usually find that there are many more... OK, here's the real "curve-ball", "sub-modules" within "modules".
The whole idea behind "modularization" is to determine the smallest, complete set of Inputs and Outputs and
"Conceptual-Conditions" necessary to perform a particular action.
The concept behind "modularization" is to "granulize" the process. That is, work with the smallest functional-chunck and then pass information to the next functional-chunck until the material is ready to move to the next larger module.
Communication between functional-chuncks occurs by means of "flags".
Typically, in well designed programs, material is passed "on-demand". A subsequent-module issues a "call" for material from a previous-module. That is, material is not passed to the following module unless the following module is "calling" for material to be passed.
This follows the "Demand-Side Economic Model".
The alternative is the "Supply-Side Economic Model" where material is shoved down your throat... as in, "Here it comes, I hope you can handle it!"
So... back to K-Maps...
In terms of real modularity, K-Maps can usually be made fairly small; my usual worst-case is 4 x 4. That is not to say that I usually run into 4 x 4 but that I don't usually run into anything worse than 4 x 4.
Now, in those rare cases where the need goes beyond 4 x 4 onto 4 x 5, I simply use one more pre-printed sheet to address the additional case of Element-X. I then identify the first sheet as Element-X = False and the second sheet as Element-X = True. The K-Map then goes beyond two-dimensional into three-dimenensional.
I have never
not been able to modularize to less then 10 Elements. If you find that you can not modularize a portion of the process to less than 10-elements then you are probably not looking very closely.
Just for the exercise, K-Maps can be expanded to an unlimitied number of multiple-dimensions. You can look at those various dimensions as sheets within folders, folders within a drawer, drawers within a cabinet, cabinets within an office, etc., etc., ... ad infininitum.
Any particular set of elements can be a set of steps in a sequential process.
All you need to do is carefully develop the procession through the various steps; much like we already do in automation programming.
BTW (By-the-Way), for those that like to use the term "state-machines", typical state-machines, and I really mean "typical", as in the way that most people develop "state-machines", do NOT cover all cases... that is why some supposed "state-machines" hang.
State-Machines are based on the same logic that a K-Map uses! You are bound to a "HANG" if your State Machine Logic translates into a crappy (ambiguous) K-Map!
(466)