Let's now look at what are called master controls. Master controls can be thought of as "emergency stop switches". An emergency stop switch typically is a big red button on a machine that will shut it off in cases of emergency. Next time you're at the local gas station look near the door on the outside to see an example of an e-stop.
*IMPORTANT- We're not implying that this instruction is a substitute for a "hard wired" e-stop switch. There is no substitute for such a switch! Rather it's just an easy way to get to understand them.
The master control instruction typically is used in pairs with a master control reset. However this varies by manufacturer. Some use MCR in pairs instead of teaming it with another symbol. It is commonly abbreviated as MC/MCR (master control/master control reset), MCS/MCR (master control set/master control reset) or just simply MCR (master control reset).
Here is one example of how a master control symbol looks.
Below is an example of a master control reset.
To make things interesting, many manufacturers make them act differently. Let's now take a look at how it's used in a ladder diagram.
Consider the following example:
Here's how different PLCs will run this program:
Manufacturer X- In this example, rungs 2 and 3 are only executed when input 0000 is on (true). If input 0000 is not true the plc pretends that the logic between the mc and mcr instructions does not exist. It would therefore bypass this block of instructions and immediately go to the rung after the mcr instruction.
Conversely, if input 0000 is true, the plc would execute rungs 2 and 3 and update the status of outputs 0500 and 0501 accordingly. So, if input 0000 is true, program execution goes to rung 2. If input 0001 is true 0500 will be true and hence it will turn on when the plc updates the outputs. If input 0002 is true (i.e. physically off) 0501 will be true and therefore it will turn on when the plc updates the outputs.
MCR just tells the plc "that's the end of the mc/mcr block".
In this plc, scan time is not extended when the mc/mcr block is not executed because the plc pretends the logic in the block doesn't exist. In other words, the instructions inside the block aren't seen by the plc and therefore it doesn't execute them.
In the example above, we can see the effects of the mc/mcr on an outb(outbar) instruction. Remember that if the mc/mcr block were not there 0500 would be physically on only when input 0001 was false(physically off). But since the mc/mcr block is there, this happens only when input 0000 is true. When input 0000 is false it is impossible for 0500 above to be on.
Manufacturer Y- In this example, rungs 2 and 3 are always executed regardless of the status of input 0000. If input 0000 is not true the plc executes the MC instruction. (i.e. MC becomes true) It then forces all the input instructions inside the block to be off. If input 0000 is true the MC instruction is made to be false.
Then, if input 0000 is true, program execution goes to rung 2. If input 0001 is true 0500 will be true and hence it will turn on when the plc updates the outputs. If input 0002 is true (i.e. physically off) 0501 will be true and therefore it will turn on when the plc updates the outputs. MCR just tells the plc "that's the end of the mc/mcr block". When input 0000 is false, inputs 0001 and 0002 are forced off regardless if they're physically on or off. Therefore, outputs 0500 and 0501 will be false.
The difference between manufacturers X and Y above is that in the Y scheme the scan time will be the same (well close to the same) regardless if the block is on or off. This is because the plc sees each instruction whether the block is on or off.
Most all manufacturers will make a previously latched instruction (one that's inside the mc/mcr block) retain its previous condition.
If it was false before, it will remain false.
Timers should not be used inside the mc/mcr block because some manufacturers will reset them to zero when the block is false whereas other manufacturers will have them retain the current time state.
Counters typically retain their current counted value.
Here's the part to note most of all. When the mc/mcr block is off, (i.e. input 0000 would be false in the ladder example shown previously) an OUTB (OutBar or OutNot) instruction would not be physically on. It is forced physically off.