Date post: | 20-Jan-2016 |
Category: |
Documents |
Upload: | illingworth1000 |
View: | 68 times |
Download: | 2 times |
Various Programming Languages
What is a Program A Program is a user developed series of instructions or commands that
directs the PLC to execute actions.
A Programming Language provides rules for combining the instructions so that they produce the desired actions.
The latest standard (IEC 61131-3) has tried to merge plc programming languages under one international standard. We now have PLCs that are programmable in function block, instruction lists, C and structured text
Various Programming Languages are, Ladder Logic Function Block Structured Text Instruction List. Sequential Function Chart
Ladder Logic Programming
Ladder Logic Programming
The most commonly used Programming Language is ‘LADDER LOGIC’
Ladder Logic is evolved from electrical ladder diagrams, which represents how electrical current flows thru the devices to complete an electrical circuit.
The Ladder logic programming language is an adaptation of an electrical relay wiring diagram, also known as ladder diagram.
Ladder Logic is a graphical system of symbols and terms even those not familiar with relay wiring diagram can easily learn it.
Ladder Logic Each electrical circuit in the diagram is considered a rung. Each Rung must be connected to Power Line on Left side. Each Rung must contain at least one control instruction on Extreme
Right Side. Every rung has two components
It contains at least one device that is controlled It contains the condition(s) that control the device.
Connecting Objects
All contacts can be connected in sequence (AND-BOOL)
All contacts can be connected in parallel (OR-BOOL)
All contacts can be connected in both, parallel and sequence
The network must be connected to the power rail
The power rail refers to the data type BOOL
FFB's can be inserted at any position of the network
Coils have to be connected to contacts or FFB-outputs
Ladder Logic
Instruction List Programming
Instruction List (IL) Instruction List (IL) is a low level textual language which has a
structure similar to a simple machine assembler. The IEC has developed IL by reviewing the many low level languages
offered by PLC manufacturers. IL provides a wide range of operators that represent those most
commonly found in proprietary instruction list languages of current day PLCs
Understanding IL With IL the following operations can be executed:
logical (AND...), arithmetic (ADD...), compare (GT...) operations and assignments (ST, S, R).
Jumps within a section unconditioned / conditioned (JMP / JMP C, JMP CN)
Functions and function blocks unconditioned / conditioned (CAL / CAL C, CAL CN)
Before invoking an FFB, it has to be declared using VAR and END_VAR.
Each FFB instance must be invoked once. FFB-call:
with CAL and a list of input parameters or with CAL and Load/Save of the input parameters or by using the input operators.
Understanding IL – Operators Operator Modifier Operand / Significance
LD N Loads the value of the operand into the Accumulator Literal, variable, direct address from data type ANY
ST N Saves the value of the Accumulator in the operandLiteral, variable, direct address from data type ANY
S Sets the operand to 1 if the Accumulator content is 1Literal, variable, direct address from data type BOOL
R Sets the operand to 0 if the Accumulator content is 1 Literal, variable, direct address from data type BOOL
AND N, N(, ( Logic AND OR N, N(, ( Logic OR XOR N, N(, ( Logic exclusive OR ADD ( Addition SUB ( Subtraction MUL ( Multiplication DIV ( Division GT ( Compare : > EQ ( Compare : = NE ( Compare : <> LT ( Compare : < JMP C, CN Jump to label CAL C, CN FBNAME (name of instance) Invoking a FFB FUNCNAME Executing a function Literal, variable, direct address
(data type is subject to function) ) Editing reset operations
Understanding IL – Rules When entering keywords, separators and
comments, there is an immediate spell check
If a keyword, a separator or a comment is detected, it is identified with a color shading.
If unauthorized keywords (instructions or operators) are entered, this will be identified through color shading as well.
Spaces and tabs have no effect on syntax, they can be used anywhere.
Instruction List Example
IL example
Comments
FFB-Declaration
AND-Function Assignment FFB call
Assignment AND-Function
FFB call
Assignment
Function Block Programming
Function Block ProgrammingThe primary concept behind a FBD is data flow. In these types of programs the values flow from the inputs to the outputs, through function blocks.
A FBD program is constructed using function blocks that are connected together to define the data exchange. The connecting lines will have a data type that must be compatible on both ends.
FBDs use data flow from left to right through function blocks Inputs and outputs can be inverted Function blocks can have variable argument list sizes When arguments are left off default values are used
Understanding FBDs
Execution order Programmer SelectedInstance Name
Inverted (Normally Closed) Input.Outputs can also be inverted.
Value Passedwithout declaring
Variable Passedby linking
and declared
Output can be linkedto multiple inputs
Various Function Blocks Basic Logic Functions
Basic Timing Functions
Basic Math Functions
Various Function Blocks Basic Latches and Comparisons
Basic Counters
FBD Program Example
Structured Text Programming
Structured Text Programming ST is a high level language, similar to PASCAL or BASIC.
ST is a distinct language that has been specifically developed for industrial control applications.
Fairly straight forward and easy to learn and to use.
Compact formulation of a complex programming task.
Powerful constructs for controlling the instruction flow.
Useful for complex mathematic solutions.
Simple solutions for difficult problems in FBD, LD or IL.
Understanding ST Statements, Expressions and Operators
A structured text program contains: statements.
A statement contains: Expressions Keywords
An expression contains one or more: Operators with Operands
Statements must close with semicolons (;) One line may contain several statements, separated by (;)
Understanding ST – Statements The following statements are available:
VAR ... END_VAR Declaration of FFB's Function Block Calls Invoking of FFBs IF ... THEN ... END_IF Conditioned execution of statements ELSIF ... THEN Conditioned execution of statements,
if the preceded expression is notfulfilled (false).
ELSE ... Execution of statements, if expressionsof preceded statements are not fulfilled(false).
CASE ... OF ... END_CASE A list of statements with given labels. Execution, if the label is true. FOR ... TO ... BY ... DO ... END_FOR Repeated execution of statements up to a given number. WHILE...DO...END_WHILE Repeated execution of statements up to preceded condition = 0. REPEAT ... UNTIL ... END_REPEAT Repeated execution of statements up to succeeded condition = 0. EXIT To terminate repeat statements (FOR, WHILE, REPEAT) before
the end condition is true.
Understanding ST - Operators
Operators are generic, i.e. they automatically adjust to the data type of the operand.
The evaluation of an expression consists of applying the operators to the operands in the order defined by the rule of precedence of the operators.
The operator with the highest rule of precedence in an expression will be executed first.
Operators with the same precedence are executed from left to right, as described in the expression.
This order can be changed through the use of parenthesis.
Understanding ST – Operators
( ) Expression Bracketing 1 (highest)
FUNCNAME ANY Function editing (call) 2
* * REAL, ANY_NUM Raising to a power 3
ANY_NUM Negation 4
NOT ANY_BIT Complement 4
* ANY_NUM or TIME Multiplication 5
/ ANY_NUM Division 5
MOD ANY_NUM Modulo 5
Operator Operand Significance Precedence
+ ANY_NUM or TIME Addition 6
ANY_NUM or TIME Subtraction 6
< ANY_ELEM Less than 7
> ANY_ELEM Greater than 7
< = ANY_ELEM Less or equal 7
> = ANY_ELEM Greater or equal 7
= ANY_ELEM Equality 8
< > ANY_ELEM Inequality 8
&, AND ANY_BIT Logic AND 9
XORANY_BIT Logic exclusive OR 10
OR ANY_BIT Logic OR 11
All operands also: Expression, literal, variable, direct address
Structured Text Example
ST Example
Comment
FFB-Declaration
AND-Function with Allocation
FFB call with Allocation
AND-Function with Allocation
FFB call with Allocation
Sequential Function Chart
Sequential Function Chart (SFC) A Sequential Function Chart is a graphic method of representing a
sequential control system by using a sequence of steps and transitions.
Each step is a command or action that is either active or inactive. The flow of control passes from one step to the next through a
conditional transition that is either true or false.
TransitionJump
S_2_1
Step
S_2_1
Parallel Branch
Parallel Joint
Alternative Branch
Alternative Joint
SFC - Elements
Understanding SFC
1. A Sequential Flow Chart section
must have an Initial Step and
only one Initial Step.
2. A Transition must follow a Step.
3. A Step must follow a Transition.
SFC Rules
Understanding SFC SFC - Elements: The Step
Step types are the initial step or steps.
A step becomes active when the prior transition has been satisfied
A step becomes inactive when the succeeding transition has been satisfied AND the step delay time has elapsed.
None, one or multiple actions, with qualifiers, can be declared for each step.
A supervision time can be defined for each step.
Understanding SFC SFC - Elements: The Transition
A transition is the condition that transfers control from one step to another.
Only transitions following active steps are solved / evaluated. When a transition is True on the next scan:
The preceding step(s) is deactivated The following step(s) is activated The True transition between the steps is no longer solved The transition following the new active step is solved
Understanding SFC SFC - Elements: The Jump
The jump allows the program to continue from a different location.
A jump can be used in two ways: sequence jump sequence loop
Jumps into or out of a parallel sequence area are not possible.
SFC Example
Up Limit SW
Slow Speed Limit SWBottom Limit SW
Up Limit SW
Slow Speed Limit SWBottom Limit SW
Up Limit SW
Slow Speed Limit SWBottom Limit SW
Up Limit SW
Slow Speed Limit SWBottom Limit SW
Wait
Up Limit SW reached
Lower Fast, drill motor on
Start Pushbutton Pressed
Lower Slow, drill motor on
Slow Speed Limit SW reached
Raise Drill, drill motor on
Bottom Limit SW reached
Start
Start
Start
Start
Programming Example
ObjectiveHere, we want the fill motor to pump lubricating oil into the tank until the high level sensor turns on. At that point we want to turn off the motor until the level falls below the low level sensor. Then we should turn on the fill motor and repeat the process.
Here we have a need for 3 I/O (i.e. Inputs/Outputs). 2 are inputs (the sensors) and 1 is an output (the fill motor). Both of our inputs will be NC (normally closed) fiber-optic level sensors. When they are NOT immersed in liquid they will be ON. When they are immersed in liquid they will beOFF.
PLC
Motor
Drain
Oil Tank
DesignHere we have a need for 3 I/O (i.e. Inputs/Outputs). 2 are inputs (the sensors) and 1 is an output (the fill motor). Both of our inputs will be NC (normally closed) fiber-optic level sensors. When they are NOT immersed in liquid they will be ON. When they are immersed in liquid they will be OFF.
PLC
Motor
Drain
Oil Tank
Input Address :
Low : 0000High : 0001
Output Address :
Motor : 0500
Internal Utility Relay : 1000
The Logic – Electrical Diagram
Low
High
Aux. Contactor – K1
K1-1 K1-2
Motor Contactor
The Logic – Ladder Logic
Low High Temp. Bit
Motor
0000 0001 1000
1000
1000 0500
Temp. Bit
Program Scan
Low – 0000
High – 0001
Temp. Bit – 1000
0000 0001 1000
1000
1000 0500Motor – 0500
0000 0001 1000
1000
1000 0500
1st Scan Start 1st Scan Complete
Program Scan
Low – 0000
High – 0001
Temp. Bit – 1000
0000 0001 1000
1000
1000 0500Motor – 0500
0000 0001 1000
1000
1000 0500
2st Scan Start 2st Scan Complete
Program Scan
Low – 0000
High – 0001
Temp. Bit – 1000
0000 0001 1000
1000
1000 0500Motor – 0500
0000 0001 1000
1000
1000 0500
X Scan Start X Scan Complete
Program Scan
Low – 0000
High – 0001
Temp. Bit – 1000
0000 0001 1000
1000
1000 0500Motor – 0500
0000 0001 1000
1000
1000 0500
X+1 Scan Start X+1 Scan Complete
Questions . . .? ? ? ?