Anda di halaman 1dari 42

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.


Ladder Logic
 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
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 operand
Literal, variable, direct address from data type ANY
 S Sets the operand to 1 if the Accumulator content is 1
Literal, 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 Programming
The 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 Value Passed Programmer Selected
without declaring Instance Name

Output can be linked


to multiple inputs
Variable Passed
by linking
and declared

Inverted (Normally Closed) Input.


Outputs can also be inverted.
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 not
fulfilled (false).
ELSE ... Execution of statements, if expressions
of 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
Operator Operand Significance Precedence
() 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
+ 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
XOR ANY_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.

 SFC - Elements Step Jump Transition

S_2_1 S_2_1

Alternative Branch Parallel Branch

Alternative Joint Parallel Joint


Understanding SFC
 SFC Rules
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.


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
Start

Up Limit SW Wait
Slow Speed Limit SW
Bottom Limit SW

Start Pushbutton Pressed


Start

Up Limit SW Lower Fast, drill motor on


Slow Speed Limit SW
Bottom Limit SW

Slow Speed Limit SW reached


Start

Up Limit SW
Lower Slow, drill motor on
Slow Speed Limit SW
Bottom Limit SW

Start
Bottom Limit SW reached

Up Limit SW Raise Drill, drill motor on


Slow Speed Limit SW
Bottom Limit SW

Up Limit SW reached
Programming Example
Objective
Here, 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
PLC 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
Oil Tank Motor will be ON. When they are
immersed in liquid they will be
OFF.
Drain
Design
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 be OFF.

Input Address :
PLC
Low : 0000
High : 0001

Output Address :
Oil Tank Motor
Motor : 0500
Drain
Internal Utility Relay : 1000
The Logic – Electrical Diagram

K1-1 Low K1-2

High

Aux. Contactor – K1 Motor Contactor


The Logic – Ladder Logic

Low High Temp. Bit

0000 0001 1000

1000

Motor
Temp. Bit

1000 0500
Program Scan
1st Scan Start 1st Scan Complete

0000 0001 1000 0000 0001 1000


Low – 0000
1000 1000
High – 0001
Temp. Bit – 1000
1000 0500 1000 0500
Motor – 0500
Program Scan
2st Scan Start 2st Scan Complete

0000 0001 1000 0000 0001 1000


Low – 0000
1000 1000
High – 0001
Temp. Bit – 1000
1000 0500 1000 0500
Motor – 0500
Program Scan
X Scan Start X Scan Complete

0000 0001 1000 0000 0001 1000


Low – 0000
1000 1000
High – 0001
Temp. Bit – 1000
1000 0500 1000 0500
Motor – 0500
Program Scan
X+1 Scan Start X+1 Scan Complete

0000 0001 1000 0000 0001 1000


Low – 0000
1000 1000
High – 0001
Temp. Bit – 1000
1000 0500 1000 0500
Motor – 0500
Questions . . .? ? ? ?

Anda mungkin juga menyukai