K-maps

Terry Woods

Member
Join Date
Apr 2002
Posts
3,170
Bob O sent the following through Private Mail:

Bob O wrote on Today 08:22 AM:
Terry,

I am trying to develop a standardized approach to logic problems for my own peace of mind. I would like to address my logic problems the same (if possible) every time. I read from other post that others have their methods that work for them and I am trying to find one that works for me.
Do you think K-Maps would be a good way to do this? I have worked with them a long time ago in the academic world but never in a real application. If I remember, I didn’t find them too difficult.

Thanks for your time.
Bob O.



Hi Bob,

I use K-Maps all the time. I find them to be very, very good for ensuring that I have the opportunity to consider all aspects of the particular situation. They also help to indicate any lackings.

In theory, a K-MAP can be constructed to handle any automated process, no matter how large, no matter how complicated.

The problem, of course, is that K-MAPs become unwieldy very quickly. That is, a K-Map with four elements can be handled quite easily, while a K-Map with eight elements, while still manageable, is much more complicated than a map with four elements. A K-Map with 1000 elements is absurdly difficult (virtually impossible for my weak mind). I consider eight elements to be the maximum number.

The secret to keeping K-Maps manageable is "Modularity". That is, take any process and break it down into major-modules. Then take those major-modules and further break those down into sub-modules. Continue breaking down the sub-modules into lesser and lesser modules. At some point, you will have small modules that are manageable by K-Map.

If you consider carefully, you can see that each individual output is the lowest form of a module. The output is either driven ON, or driven OFF. Whether or not the output of a particular module is driven ON depends on the conditions input to that module. Those conditions might be either actual inputs from the field, or "flags" from other modules.

I don't use K-Maps to develop a process.

I use K-Maps to control the modules within the process. I have plenty of 4-by-4 maps where only one of the particular combinations controls an output. The rest of the combinations are for tracking progress and maintaining a memory of the progression.

To maintain "modularity", I tend to create modules in terms of their dependencies on other modules. Of course, the field inputs have to be used somewhere. However, I use them as sparingly as possible. I try to use them only once and then pass information along to various modules in terms of what the input means to the process.

I use both the static-model K-Map and the dynamic-model K-Map. I rarely use the static-model. I prefer the dynamic-model.

The static-model is simply a switch-handler. "If input combination is such-n-such then do such-n-such". The static-model typically responds to a particular set of input conditions and then acts on an output. This type of design might be fine for a very small process. However, if the process moves material through various stages (operations) then it is more effective to have modules communicating with each other.

It is all too common to find code where programmers control a process strictly by field-input conditions rather than dependent-module conditions. In this case, the outputs are simply looking for a particular set of input conditions to occur. This is minimalist engineering.

For example, after completing its particular function, a module could send a signal (flag) to the previous module indicating that the particular module is waiting for the next item. When the previous module gets the "call" (flag) it sends an item. It then notifies the following module (via flag) that an item is coming. In this case, the particular module "knows" that an item is coming and that it should see such-n-such events occur. If any of those events occur unexpectedly, then the module "knows" that something is wrong.

The dynamic-model is much more than a switch-handler; it has "intelligence". In the dynamic-model, the K-Map not only acts on outputs (when required) based on input conditions, but also maintains a "memory" of how it came to be in such-n-such condition. This more closely resembles how "we" (humans) make decisions based on our memories. Coming to Condition-Z from Condition-X might mean one thing while coming to Condition-Z from Condition-W might mean something entirely different.

This is a discussion that can go on, and on, and on...
 

Similar Topics

Anyone know where I can get maps jr software? I have an older omron CQM1-CPU43 that was Programmed using maps jr! Help!!!
Replies
8
Views
2,423
I got a request from our IT dept asking about our factory floor SCADA system IP addresses. He wants to know if certain processes are fully...
Replies
0
Views
1,423
I'd like to pull in an Autocad P&ID to one of my C-more screens. It appears a bitmap is all that is allowed. First time working with one of...
Replies
4
Views
2,198
I would like to take a bitmap (symbol) and edit it. Is there a way to export them. Or can Redlion give me a copy...... I want to change the...
Replies
5
Views
2,367
The Micrologix Programmable Controllers - Instruction Set Reference Manual describes analog input data files for two different modules and analog...
Replies
16
Views
15,855
Back
Top Bottom