
- •16. ADVANCED LADDER LOGIC FUNCTIONS
- •16.1 INTRODUCTION
- •16.2 LIST FUNCTIONS
- •16.2.1 Shift Registers
- •16.2.2 Stacks
- •16.2.3 Sequencers
- •16.3 PROGRAM CONTROL
- •16.3.1 Branching and Looping
- •16.3.2 Fault Detection and Interrupts
- •16.4 INPUT AND OUTPUT FUNCTIONS
- •16.4.1 Immediate I/O Instructions
- •16.4.2 Block Transfer Functions
- •16.5 DESIGN TECHNIQUES
- •16.5.1 State Diagrams
- •16.6 DESIGN CASES
- •16.6.1 If-Then
- •16.6.2 Traffic Light
- •16.7 SUMMARY
- •16.8 PRACTICE PROBLEMS
- •16.9 PRACTICE PROBLEM SOLUTIONS
- •16.10 ASSIGNMENT PROBLEMS
- •17. OPEN CONTROLLERS
- •17.1 INTRODUCTION
- •17.3 OPEN ARCHITECTURE CONTROLLERS
- •17.4 SUMMARY
- •17.5 PRACTICE PROBLEMS
- •17.6 PRACTICE PROBLEM SOLUTIONS
- •17.7 ASSIGNMENT PROBLEMS
- •18. INSTRUCTION LIST PROGRAMMING
- •18.1 INTRODUCTION
- •18.2 THE IEC 61131 VERSION
- •18.3 THE ALLEN-BRADLEY VERSION
- •18.4 SUMMARY
- •18.5 PRACTICE PROBLEMS
- •18.6 PRACTICE PROBLEM SOLUTIONS
- •18.7 ASSIGNMENT PROBLEMS
- •19. STRUCTURED TEXT PROGRAMMING
- •19.1 INTRODUCTION
- •19.2 THE LANGUAGE
- •19.3 SUMMARY
- •19.4 PRACTICE PROBLEMS
- •19.5 PRACTICE PROBLEM SOLUTIONS
- •19.6 ASSIGNMENT PROBLEMS
- •20. SEQUENTIAL FUNCTION CHARTS
- •20.1 INTRODUCTION
- •20.2 A COMPARISON OF METHODS
- •20.3 SUMMARY
- •20.4 PRACTICE PROBLEMS
- •20.5 PRACTICE PROBLEM SOLUTIONS
- •20.6 ASSIGNMENT PROBLEMS
- •21. FUNCTION BLOCK PROGRAMMING
- •21.1 INTRODUCTION
- •21.2 CREATING FUNCTION BLOCKS
- •21.3 DESIGN CASE
- •21.4 SUMMARY
- •21.5 PRACTICE PROBLEMS
- •21.6 PRACTICE PROBLEM SOLUTIONS
- •21.7 ASSIGNMENT PROBLEMS
- •22. ANALOG INPUTS AND OUTPUTS
- •22.1 INTRODUCTION
- •22.2 ANALOG INPUTS
- •22.2.1 Analog Inputs With a PLC
- •22.3 ANALOG OUTPUTS
- •22.3.1 Analog Outputs With A PLC
- •22.3.2 Pulse Width Modulation (PWM) Outputs
- •22.3.3 Shielding
- •22.4 DESIGN CASES
- •22.4.1 Process Monitor
- •22.5 SUMMARY
- •22.6 PRACTICE PROBLEMS
- •22.7 PRACTICE PROBLEM SOLUTIONS
- •22.8 ASSIGNMENT PROBLEMS
- •23. CONTINUOUS SENSORS
- •23.1 INTRODUCTION
- •23.2 INDUSTRIAL SENSORS
- •23.2.1 Angular Displacement
- •23.2.1.1 - Potentiometers
- •23.2.2 Encoders
- •23.2.2.1 - Tachometers
- •23.2.3 Linear Position
- •23.2.3.1 - Potentiometers
- •23.2.3.2 - Linear Variable Differential Transformers (LVDT)
- •23.2.3.3 - Moire Fringes
- •23.2.3.4 - Accelerometers
- •23.2.4 Forces and Moments
- •23.2.4.1 - Strain Gages
- •23.2.4.2 - Piezoelectric
- •23.2.5 Liquids and Gases
- •23.2.5.1 - Pressure
- •23.2.5.2 - Venturi Valves
- •23.2.5.3 - Coriolis Flow Meter
- •23.2.5.4 - Magnetic Flow Meter
- •23.2.5.5 - Ultrasonic Flow Meter
- •23.2.5.6 - Vortex Flow Meter
- •23.2.5.7 - Positive Displacement Meters
- •23.2.5.8 - Pitot Tubes
- •23.2.6 Temperature
- •23.2.6.1 - Resistive Temperature Detectors (RTDs)
- •23.2.6.2 - Thermocouples
- •23.2.6.3 - Thermistors
- •23.2.6.4 - Other Sensors
- •23.2.7 Light
- •23.2.7.1 - Light Dependant Resistors (LDR)
- •23.2.8 Chemical
- •23.2.8.2 - Conductivity
- •23.2.9 Others
- •23.3 INPUT ISSUES
- •23.4 SENSOR GLOSSARY
- •23.5 SUMMARY
- •23.6 REFERENCES
- •23.7 PRACTICE PROBLEMS
- •23.8 PRACTICE PROBLEM SOLUTIONS
- •23.9 ASSIGNMENT PROBLEMS
- •24. CONTINUOUS ACTUATORS
- •24.1 INTRODUCTION
- •24.2 ELECTRIC MOTORS
- •24.2.1 Basic Brushed DC Motors
- •24.2.2 AC Motors
- •24.2.3 Brushless DC Motors
- •24.2.4 Stepper Motors
- •24.2.5 Wound Field Motors
plc il - 18.9
Program File 2: |
|
|
|
|
||
Label |
|
Opcode |
|
Operand |
|
Comment |
|
|
|
||||
|
|
|
|
|
|
|
START: |
|
CAL |
|
3 |
|
(* Jump to program file 3 *) |
|
|
|
|
|
|
|
Program File 3: |
|
|
|
|
|
||
Label |
|
Opcode |
|
Operand |
|
Comment |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
TEST: |
|
LD |
|
%I:000 |
|
(* Load the word from input card 000 *) |
|
|
|
BCD_TO_INT |
|
|
|
(* Convert the BCD value to an integer *) |
|
|
|
ST |
|
%N7:0 |
|
(* Store the value in N7:0 *) |
|
|
|
GT |
|
100 |
|
(* Check for the stored value (N7:0) > 100 *) |
|
|
|
JMPC |
|
ON |
|
(* If true jump to ON *) |
|
|
|
CAL |
|
RES(C5:0) |
|
(* Reset the timer *) |
|
ON: |
|
LD |
|
2 |
|
(* Load a value of 2 - for the preset *) |
|
|
|
ST |
|
%C5:0.PR |
|
(* Store 2 in the preset value *) |
|
|
|
|
|
||||
|
|
CAL |
|
TON(C5:0) |
|
(* Update the timer *) |
|
|
|
LD |
|
%C5:0.DN |
|
(* Get the timer done condition bit *) |
|
|
|
ST |
|
%O:001/00 |
|
(* Set the output bit *) |
|
|
|
RET |
|
|
|
(* Return from the subroutine *) |
Figure 18.7 An Example of an IL Program
18.4SUMMARY
•Ladder logic can be converted to IL programs, but IL programs cannot always be converted to ladder logic.
•IL programs use a stack to delay operations indicated by parentheses.

plc il - 18.10
• The Allen Bradley version is similar, but not identical to the IEC 61131 version of IL.
18.5PRACTICE PROBLEMS
18.6PRACTICE PROBLEM SOLUTIONS
18.7ASSIGNMENT PROBLEMS
1.Explain the operation of the stack.
2.Convert the following ladder logic to IL programs.
|
A |
|
C |
|
|
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
|
C |
D |
|||||
|
|
|
|
|
|
|
|
|
Y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
|
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LD 001 |
LD 001 |
LD NOT 001 |
|
AND 002 |
AND 002 |
||
OR 003 |
|||
LD 004 |
LD 004 |
||
LD 002 |
|||
AND 005 |
OR 007 |
||
OR 004 |
|||
OR LD |
AND 005 |
||
AND LD |
|||
OR 007 |
OR LD |
||
LD 005 |
|||
LD 003 |
LD 003 |
||
OR 007 |
|||
OR NOT 006 |
OR NOT 006 |
||
AND 006 |
|||
AND LD |
AND LD |
||
OR LD |
|||
|
|
|
OR NOT 008 |
3. Write the ladder diagram programs that correspond to the following Boolean programs. |
|
OUT 204 |
OUT 204 |
|
|
|
AND 009 |
|
OUT 206 |
|
AND NOT 010 |
|
OUT 201 |