Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programmable Logic Controllers

Similar presentations


Presentation on theme: "Programmable Logic Controllers"— Presentation transcript:

1 Programmable Logic Controllers
Third Edition Frank D. Petruzella McGraw-Hill

2 Chapter 9 Program Control Instructions

3 Program Control Instructions
Program control instructions are used to alter the program scan from its normal sequence. Sometimes referred to as override instructions, they provide a means of executing sections of the control logic if certain conditions are met. They allow for greater program flexibility and greater efficiency in the program scan.

4 Typical Program Control Instructions Based On The SLC 500 And Associated RSLogix Software
TND TND Temporary End Makes a temporary end that halts program execution RET RET Return from Subroutine Exits current subroutine and returns to previous condition MCR MCR Master Control Reset Clears all set outputs between the paired MCR instruction SUS SUS Suspend Identifies specific conditions for program debugging and system troubleshooting JMP JMP Jump to Label Jump forward/backward to a corresponding label instruction JSR Jump to Subroutine Jump to a designated subroutine instruction JSR SBR SBR Subroutine Identifies the subroutine program LBL LBL Label Specifies label location Program Control

5 Hardwired Master Control Relay Circuit
Hardwired master control relays are used in relay circuitry to provide input/output power shutdown of an entire circuit.

6 Hardwired Master Control Relay Circuit

7 MCR Instruction MCR The master control reset (MCR) instruction can be programmed to control an entire circuit or to control only selected rungs of a circuit. When the MCR instruction is false, or de-energized, all nonretentive (nonlatched) rungs below the the MCR will be de-energized even if the programmed logic for each rung is true. All retentive rungs will remain in their last state. The MCR instruction establishes a zone in the user program in which all nonretentive outputs can be turned off simultaneously. Therefore, retentive instructions should not normally be placed within an MCR zone because the MCR zone maintains retentive instructions in the last active state when the instruction goes false.

8 MCR Instruction Programmed To Control An
Entire Circuit

9 MCR Instruction Programmed To Control A Fenced Zone
The Master Control Reset (MCR) instruction is used in pairs to disable or enable a zone within a ladder program and has no address. You program the first MCR with input instructions in the rung and the ending MCR without any other instructions in the rung. Fenced Zone

10 MCR Instruction Programmed To Control A Fenced Zone
MCR Zone True

11 MCR Instruction Programmed To Control A Fenced Zone
MCR Zone False

12 Programming MCR Instructions
If you start instructions such as timers and counters in an MCR zone, instruction operation ceases when the zone is disabled. The TOF timer will activate when placed inside a false MCR zone. When troubleshooting a program that contains an MCR zone you need to be aware of which rungs are within zones in order to correctly edit the circuit. MCR controlled areas must contain only two MCR instructions – one to define the start and one to define the end.

13 JMP Jump Instruction As in computer programming, it is sometimes desirable to be able to jump over certain program instructions. The jump instruction (JMP) is an output instruction used for this purpose. The advantages to the jump instruction include: the ability to reduce the processor scan time by jumping over instructions not pertinent to the machines operation at that instant The PLC can hold more than one program and scan only the program appropriate to operator requirements Sections of a program can be jumped when a production fault occurs

14 Jump Operation By using the jump instruction, you can branch or skip to different portions of a program and freeze all affected outputs in their last state. Jumps are normally allowed in both the forward and backward directions. Jumping over counters and timers will stop them from being incremented.

15 Jump-To-Label With Allen-Bradley PLCs the jump (JMP) instruction and the label (LBL) instruction are employed together so the scan can jump over a portion of the program. The label is a target for the jump, it is the first instruction in the rung, and it is always true. A jump jumps to a label with the same address. The area that the processor jumps over is defined by the locations of the jump and label instructions in the program. If the jump coil is energized, all logic between the jump and label instructions is bypassed and the processor continues scanning after the LBL instruction.

16 Jump To Label Program Jumped program
Timers should be programmed outside the jumped section Input conditions are not examined and outputs remain in their last state Jumped program rungs (5,6,7) are not scanned by the processor

17 Jump-To-Label From Two Locations
20

18 Jump-To-Label Instructions
In a SLC 500 or PLC-5 the JMP will have a number from 0 to 255, and the corresponding LBL will have the same number. In the ControlLogix controller the JMP and LBL have the same number. Avoid jumping backwards in the program too many times as this may increase the scan beyond the maximum allowable time. The processor has a watchdog timer that sets the maximum time for a total program scan. If this time is exceeded, the processor will indicate a fault and shut down. You should never jump into an MCR zone. Instructions that are programmed within the MCR zone starting at the LBL instruction and ending at the end MCR instruction will always be evaluated as though the MCR zone is true, without consideration to the state of the start MCR instruction.

19 Jump - To - Subroutine Another valuable tool in PLC programming is to be able to escape from the main program and go to a program subroutine to perform certain functions and then return to the main program.

20 Allen-Bradley Subroutine-Related Instructions
The JSR instruction causes the scan to jump to the program file designated in the instruction. It is the only parameter entered in the instruction. When rung conditions are true for this output instruction, it causes the processor to jump to the targeted subroutine file. Each subroutine must have a unique file number (decimal 3-255).

21 Allen-Bradley Subroutine-Related Instructions
The SBR instruction is the first instruction on the first rung in the subroutine file. It serves as an identifier that the program file is a subroutine. This is the file number that is used in the JSR instruction to identify the target to which the program should jump. It always true and although its use is optional, it is still recommended.

22 Allen-Bradley Subroutine-Related Instructions
The RET instruction is an output instruction that marks the end of the subroutine file. It causes the scan to return to the main program at the instruction following the JSR instruction where it exited the program. The scan returns from the end of the file if there is no RET instruction. The rung containing the RET instruction may be conditional if this rung precedes the end of the subroutine. In this way, the processor omits the balance of a subroutine only if its rung condition is true.

23 Flashing Pilot Light Subroutine
If the weight on the conveyor exceeds a preset value, the solenoid is de-energized and the alarm light will begin flashing. Process When the weight sensor switch closes, the JSR is activated and the processor scan jumps to the subroutine area. The subroutine is continually scanned and the light flashes. When the sensor switch opens, the processor will no longer scan the subroutine area and will return to the on state.

24 Flashing Pilot Light Subroutine Program

25 Setting Up A Subroutine File
PLC-5 and SLC-500 controller subroutines are located in different program files from the main program. The main program is located in program file 2, whereas subroutines are assigned to program file numbers 3 to 255. Note each ladder location where a subroutine should be called. Create a subroutine file for each location. Each subroutine file should begin with an SBR instruction. At each ladder location where a subroutine is called, program a JSR instruction specifying the subroutine file number. The RET instruction is optional as the end of a subroutine program will cause a return to the main program.

26 Setting Up A Subroutine File

27 Passing Subroutine Parameters
An optional SBR instruction is the header instruction that stores incoming parameters. This feature lets you pass selected values to a subroutine before execution so the subroutine can perform mathematical or logical operations on the data and return the results to the main program.

28 Nested Subroutines Nesting subroutines allow you to direct program flow from the main program to a subroutine and then to another subroutine. Nested subroutines make complex programming easier and program operation faster because the programmer does not have to continually return from one subroutine to enter another.

29 Nested Subroutines

30 1. Program control instructions are used to alter the program scan from its normal sequence.
(True/False) 2. Hardwired master control relays are used in relay circuitry to provide input/output power shutdown of an entire circuit. (True/False) 3. The master control reset (MCR) instruction can be programmed to control an entire circuit or to control only selected rungs of a circuit. (True/False)

31 4. When the MCR in the start fence is false
a. all rungs within the zone are treated as false b. all non-retentive outputs within the zone are de-energized c. the scan ignores all of the inputs within the zone d. all of these

32 5. When the MCR instruction in the start rung is
true, all rung outputs below the MCR will be controlled by their respective input conditions. (True/False) 6. The MCR instruction requires no address. (True/False) 7. Jumps are normally only allowed in the forward direction. (True/False)

33 8. The label (LBL) instruction is :
(a) always logically true. (b) has the same address as the jump instruction with which it is used. (c) is used to identify the ladder rung that is the target destination of the JMP instruction. (d) all of these.

34 9. A subroutine is a section of program that is not scanned unless there is:
a. a fault b. a request for the scan to go to that particular subroutine. c. a need to execute a section of the program on a time basis rather than on an event basis d. a forced input or output condition

35 10. Which of the following instructions would most likely be programmed outside the jumped area of a program? (a) Latch and unlatch instructions (b) Timer and counter instructions (c) Immediate inputs and outputs (d) Forced inputs and outputs

36 Forcing External I/O Addresses
The forcing capability of a PLC allows the user to turn an external input or output "on" or "off" from the keyboard of the programmer. L1 L2 Input "off" False Output Forced "on" Program

37 Forcing Inputs Overriding of physical inputs on conventional relay control systems can be accomplished by installing hardwire jumpers. With PLC control this is not necessary as the input data table values can be forced to an "on" or "off" state. Forcing inputs manipulates the input image table file bits and thus affects all areas of the program that uses those bits. The forcing of inputs is done just after the input scan.

38 Forcing An Input Address On
1

39 Forcing An Input Address On
Force> ON Forcing inputs affects all areas of the program that uses that bit.

40 Forcing Outputs Forcing outputs affects only the addressed output terminal. When we force an output address we are forcing only the output terminal to an on or off state. The output image table file bits are unaffected, therefore, your program will be unaffected. The forcing of outputs is done just before the output image table file is updated. By forcing outputs "off" you can prevent the controller from energizing those outputs, even though the ladder logic, which normally controls them, may be true.

41 Forcing An Output Address On

42 Forcing An Output Address On
Forcing outputs affects only the addressed output terminal.

43 Using Forcing Functions
The Force function can not be applied when the processor is in the run mode. An understanding of the potential effect that forcing given inputs or outputs will have on the machine operation is essential to avoid possible personal injury and equipment damage. Most programming terminals provide some visible means of alerting the user that a force is in effect.

44 Enter And Enable Or Disable Forces
Using RSLogix software the steps are as follows: Open the program file in which you want to force the logic on or off. With the right mouse button, click the I/O bit you want to force. From the menu that appears select "Goto Data Table". From the associated data table that appears click on the "Forces" button. The Forces version of the data table appears with the selected bit highlighted. Click on this bit with the right mouse button. From the menu that appears you can force the selected bit "on“ or "off".

45 Enter And Enable Or Disable Forces
Forced Version Of The Data Table

46 Safety Circuitry Sufficient emergency circuits must be provided to stop either partially or totally the operation of the controller or the controlled machine or process. These circuits should be hardwired outside the controller so that, in the event of total controller failure, independent and rapid shutdown is available.

47 Typical PLC Safety Wiring Diagram
A main disconnect switch is installed on the incoming power lines as a means of removing power from the entire programmable controller system. An isolation transformer is used to isolate the controller from the main power distribution system and step the voltage down to 120 VAC. A hardwired master control relay is included to provide a convenient means for emergency controller shutdown.

48 Motor Starter Program Using The Auxiliary Contact
An important safety consideration involves the use of a motor starter seal-in contact in place of a programmed contact referenced to the output coil instruction. The use of the field-generated starter auxiliary contact status in the program is more costly in terms of field wiring and hardware, but is safer because it provides a positive feedback to the processor about the exact status of the motor.

49 Motor Starter Program Using The Auxiliary Contact
Motor overload occurs Motor operating normally If a programmed NO contact referenced to the M coil is used for the seal-in contact (in place of starter auxiliary contact) the processor would never know power has been lost to the motor. When the OL was reset, the motor would restart instantly, creating a potentially unsafe operating condition.

50 Wiring of Stop Pushbuttons
The wiring of stop buttons is another important safety consideration. A stop button is generally considered a safety function as well as an operating function. As such, it should be wired using a NC contact and programmed to examine for an on condition. Using an NO contact programmed to examine for an off condition will produce the same logic, but is not considered to be as safe. Always use a NC button for a stop button NC Pushbutton

51 Wiring of Stop Pushbuttons
Normally open pushbutton stop configuration NO Pushbutton NEVER use the NO button for a stop button. If a NO button is used and the circuit between the button and the input point were to be broken the PLC logic control could never react to the stop command - since the input would never be true.


Download ppt "Programmable Logic Controllers"

Similar presentations


Ads by Google