Boolean algebra was developed in the 1800's by James Boole, an Irish mathematician. It was found to be extremely useful for designing digital circuits, and it is still heavily used by electrical engineers and computer scientists. The techniques can model a logical system with a single equation. The equation can then be simplified and/or manipulated into new forms. The same techniques developed for circuit designers adapt very well to ladder logic programming.
Boolean equations consist of variables and operations and look very similar to normal algebraic equations. The three basic operators are AND, OR and NOT; more complex operators include exclusive or (EOR), not and (NAND), not or (NOR). Small truth tables for these functions are shown in Figure 62 Boolean Operations with Truth Tables and Gates. Each operator is shown in a simple equation with the variables A and B being used to calculate a value for X. Truth tables are a simple (but bulky) method for showing all of the possible combinations that will turn an output on or off.
In a Boolean equation the operators will be put in a more complex form as shown in Figure 63 A Boolean Equation. The variable for these equations can only have a value of 0 for false, or 1 for true. The solution of the equation follows rules similar to normal algebra. Parts of the equation inside parenthesis are to be solved first. Operations are to be done in the sequence NOT, AND, OR. In the example the NOT function for C is done first, but the NOT over the first set of parentheses must wait until a single value is available. When there is a choice the AND operations are done before the OR operations. For the given set of variable values the result of the calculation is false.
The equations can be manipulated using the basic axioms of Boolean shown in Figure 64 The Basic Axioms of Boolean Algebra. A few of the axioms (associative, distributive, commutative) behave like normal algebra, but the other axioms have subtle differences that must not be ignored.
An example of equation manipulation is shown in Figure 65 Simplification of a Boolean Equation. The distributive axiom is applied to get equation (1). The idempotent axiom is used to get equation (2). Equation (3) is obtained by using the distributive axiom to move C outside the parentheses, but the identity axiom is used to deal with the lone C. The identity axiom is then used to simplify the contents of the parentheses to get equation (4). Finally the Identity axiom is used to get the final, simplified equation. Notice that using Boolean algebra has shown that 3 of the variables are entirely unneeded.
Design ideas can be converted to Boolean equations directly, or with other techniques discussed later. The Boolean equation form can then be simplified or rearranges, and then converted into ladder logic, or a circuit.
If we can describe how a controller should work in words, we can often convert it directly to a Boolean equation, as shown in Figure 66 Boolean Algebra Based Design of Ladder Logic. In the example a process description is given first. In actual applications this is obtained by talking to the designer of the mechanical part of the system. In many cases the system does not exist yet, making this a challenging task. The next step is to determine how the controller should work. In this case it is written out in a sentence first, and then converted to a Boolean expression. The Boolean expression may then be converted to a desired form. The first equation contains an EOR, which is not available in ladder logic, so the next line converts this to an equivalent expression (2) using ANDs, ORs and NOTs. The ladder logic developed is for the second equation. In the conversion the terms that are ANDed are in series. The terms that are ORed are in parallel branches, and terms that are NOTed use normally closed contacts. The last equation (3) is fully expanded and ladder logic for it is shown in Figure 67 Alternate Ladder Logic. This illustrates the same logical control function can be achieved with different, yet equivalent, ladder logic.
Boolean algebra is often used in the design of digital circuits. Consider the example in Figure 68 Reverse Engineering of a Digital Circuit. In this case we are presented with a circuit that is built with inverters, nand, nor and, and gates. This figure can be converted into a boolean equation by starting at the left hand side and working right. Gates on the left hand side are solved first, so they are put inside parentheses to indicate priority. Inverters are represented by putting a NOT operator on a variable in the equation. This circuit can't be directly converted to ladder logic because there are no equivalents to NAND and NOR gates. After the circuit is converted to a Boolean equation it is simplified, and then converted back into a (much simpler) circuit diagram and ladder logic.
To summarize, we will obtain Boolean equations from a verbal description or existing circuit or ladder diagram. The equation can be manipulated using the axioms of Boolean algebra. after simplification the equation can be converted back into ladder logic or a circuit diagram. Ladder logic (and circuits) can behave the same even though they are in different forms. When simplifying Boolean equations that are to be implemented in ladder logic there are a few basic rules.
These principles are reinforced with another design that begins in Figure 69 A Boolean Equation and Derived Circuit and Ladder Logic. Assume that the Boolean equation that describes the controller is already known. This equation can be converted into both a circuit diagram and ladder logic. The circuit diagram contains about two dollars worth of integrated circuits. If the design was mass produced the final cost for the entire controller would be under $50. The prototype of the controller would cost thousands of dollars. If implemented in ladder logic the cost for each controller would be approximately $500. Therefore a large number of circuit based controllers need to be produced before the break even occurs. This number is normally in the range of hundreds of units. There are some particular advantages of a PLC over digital circuits for the factory and some other applications.
The initial equation is not the simplest. It is possible to simplify the equation to the form seen in Figure 69 A Boolean Equation and Derived Circuit and Ladder Logic. If you are a visual learner you may want to notice that some simplifications are obvious with ladder logic - consider the C on both branches of the ladder logic in Figure 70 The Simplified Form of the Example.
The equation can also be manipulated to other forms that are more routine but less efficient as shown in Figure 71 A Canonical Logic Form. The equation shown is in disjunctive normal form - in simpler words this is ANDed terms ORed together. This is also an example of a canonical form - in simpler terms this means a standard form. This form is more important for digital logic, but it can also make some PLC programming issues easier. For example, when an equation is simplified, it may not look like the original design intention, and therefore becomes harder to rework without starting from the beginning.
There are some common Boolean algebra techniques that are used when simplifying equations. Recognizing these forms are important to simplifying Boolean Algebra with ease. These are itemized, with proofs in Figure 72 Common Boolean Algebra Techniques.
In total there are 16 different possible types of 2-input logic gates. The simplest are AND and OR, the other gates we will refer to as complex to differentiate. The three popular complex gates that have been discussed before are NAND, NOR and EOR. All of these can be reduced to simpler forms with only ANDs and ORs that are suitable for ladder logic, as shown in Figure 73 Conversion of Complex Logic Functions.
Multiplexers allow multiple devices to be connected to a single device. These are very popular for telephone systems. A telephone switch is used to determine which telephone will be connected to a limited number of lines to other telephone switches. This allows telephone calls to be made to somebody far away without a dedicated wire to the other telephone. In older telephone switch boards, operators physically connected wires by plugging them in. In modern computerized telephone switches the same thing is done, but to digital voice signals.
In Figure 74 A Multiplexer a multiplexer is shown that will take one of four inputs bits D1, D2, D3 or D4 and make it the output X, depending upon the values of the address bits, A1 and A2.
Ladder logic form the multiplexer can be seen in Figure 75 A Multiplexer in Ladder Logic.
Problem: Develop Ladder Logic for a car door/seat belt safety system. When the car door is open, and the seatbelt is not done up, the ignition power must not be applied. If all is safe then the key will start the engine.
Problem: Design a motor controller that has a forward and a reverse button. The motor forward and reverse outputs will only be on when one of the buttons is pushed. When both buttons are pushed the motor will not work.
Consider the design of a burglar alarm for a house. When activated an alarm and lights will be activated to encourage the unwanted guest to leave. This alarm be activated if an unauthorized intruder is detected by window sensor and a motion detector. The window sensor is effectively a loop of wire that is a piece of thin metal foil that encircles the window. If the window is broken, the foil breaks breaking the conductor. This behaves like a normally closed switch. The motion sensor is designed so that when a person is detected the output will go on. As with any alarm an activate/deactivate switch is also needed. The basic operation of the alarm system, and the inputs and outputs of the controller are itemized in Figure 80 Controller Requirements List for Alarm.
The next step is to define the controller equation. In this case the controller has 3 different inputs, and a single output, so a truth table is a reasonable approach to formalizing the system. A Boolean equation can then be written using the truth table in Figure 81 Truth Table for the Alarm. Of the eight possible combinations of alarm inputs, only three lead to alarm conditions.
The Boolean equation in Figure 82 A Boolean Equation and Implementation for the Alarm is written by examining the truth table in Figure 81 Truth Table for the Alarm. There are three possible alarm conditions that can be represented by the conditions of all three inputs. For example take the last line in the truth table where when all three inputs are on the alarm should be one. This leads to the last term in the equation. The other two terms are developed the same way. After the equation has been written, it is simplified.
The equation and circuits shown in Figure can also be further simplified, as shown in Figure 83 The Simplest Circuit and Ladder Diagram.