32
Università degli Studi di Modena e Reggio Emilia Automation Robotics and System CONTROL Programming languages for PLC: International Standard IEC61131-3 (part one) Cesare Fantuzzi ([email protected]) Ingegneria Meccatronica AA 2012/2013

International Standard IEC61131-3

Embed Size (px)

Citation preview

Page 1: International Standard IEC61131-3

Università degli Studidi Modena e Reggio Emilia

AutomationRobotics and

SystemCONTROL

Programming languages for PLC:

International Standard IEC61131-3

(part one)

Cesare Fantuzzi ([email protected])

Ingegneria MeccatronicaAA 2012/2013

Page 2: International Standard IEC61131-3

IEC Standards

� The International Electrotechnical Commission(IEC) is a not-for-profit, non-governmental international standards organization that prepares and publishes International Standards for all electrical, electronic and related technologies.

� The IEC held its inaugural meeting on 26 June 1906, following discussions between the British IEE, the American Institute of Electrical and Electronics Engineers (IEEE) (then called AIEE), and others.

� It currently counts more than 130 countries. � Originally located in London, the commission moved to

its current headquarters in Geneva in 1948.

2C. Fantuzzi International Standard IEC61131-3

Page 3: International Standard IEC61131-3

IEC 61131 Standard

- 1 General overview, definitions

- 2 Hardware

- 3 Programming Languages

- 4 User Guidelines

- 5 Messaging Service Specification

- 7 Fuzzy Logic

- 8 Implementation guidelines

IEC 61131 is an IEC standard for Programmable logic controllers(PLCs). It was known as IEC 1131 before the change in numbering

system by IEC.

C. Fantuzzi 3International Standard IEC61131-3

Page 4: International Standard IEC61131-3

Key quality features of IEC

61131-3

• Structured software - through use of Configuration, Resource and Program Organization Units (POUs), that

implements software modularization.

• Data Typing – languages restrict operations to only apply to appropriate types of data

• Execution control - use of tasks

• Discrete event system handling - Sequential Function Charts

• Software encapsulation - through use of POUs, structures and complex data types.

C. Fantuzzi 4International Standard IEC61131-3

Page 5: International Standard IEC61131-3

History of IEC 61131

Source: Dr. J. Christensen

77 78 79 8180 93 94 9570 82 83 84 85 8786 88 89 90 91 92

NEMA Programmable Controllers Committee formed (USA)

GRAFCET (France)

IEC 848, Function Charts

DIN 40719, Function Charts (Germany)

NEMA ICS-3-304, Programmable Controllers (USA)

IEC SC65A/WG6 formed

DIN 19 239, Programmable Controller (Germany)

MIL-STD-1815 Ada (USA)

IEC SC65A(Sec)67

Type 3 report recommendation

96

IEC 65A(Sec)38, Programmable Controllers

IEC 1131-3

IEC SC65A(Sec)49, PC Languages

IEC 64A(Sec)90

IEC 61131-3name change

it took 20 years to make that standard…

C. Fantuzzi 5International Standard IEC61131-3

Page 6: International Standard IEC61131-3

Importance of the IEC61131

� IEC 61131-3 is the most important automation language in industry.

� 80% of all PLCs support it, all new developments base on it.

� Depending on the PLC vendor (and often Country because cultural reasons), some languages are most used.

C. Fantuzzi International Standard IEC61131-3

6

Page 7: International Standard IEC61131-3

Application Configuration

(Hardware)configuration

resource resource

Page 8: International Standard IEC61131-3

Application configuration

(Software)configuration

resource

program

resource

program

FB FB

program

FB FB

program

Page 9: International Standard IEC61131-3

Application Software

(Run Time)configuration

resource

program

resource

task task

program

FB FB

task

program

FB FB

task

program

A Task is a run time(scan) instance of a

program.

Page 10: International Standard IEC61131-3

configuration

resource

program

resource

IEC 61131 – Software Model

(Variable exchange)

task task

program

FB FB

task

execution control path

variable access paths

function block

variable

or

represented variables

communication function legend:

program

FB FB

task

program

global and directly

access paths

C. Fantuzzi 10International Standard IEC61131-3

FB

Page 11: International Standard IEC61131-3

Communication model (a)

C. Fantuzzi 3. I Linguaggi di Programmazione 11

Page 12: International Standard IEC61131-3

Communication model (b)

C. Fantuzzi 3. I Linguaggi di Programmazione 12

Page 13: International Standard IEC61131-3

IEC Programming Model

� Data types� Variables� Program organization units (POU)

– Functions– Function blocks– Programs

� Sequential Function Chart (SFC) elements� Configuration elements

– Global variables– Resources– Access paths– Tasks

C. Fantuzzi 3. I Linguaggi di Programmazione 13

Programming languages}

(Programming language)}

C. Fantuzzi International Standard IEC61131-3 13

Page 14: International Standard IEC61131-3

graphical languages

The five IEC 61131-3 Programming languages

Structured Text (ST)VAR CONSTANT X : REAL := 53.8 ;Z : REAL; END_VARVAR aFB, bFB : FB_type; END_VAR

bFB(A:=1, B:=‘OK’);Z := X - INT_TO_REAL (bFB.OUT1);IF Z>57.0 THEN aFB(A:=0, B:=“ERR”);ELSE aFB(A:=1, B:=“Z is OK”);END_IF

Ladder Diagram (LD)

Function Block Diagram (FBD)

Instruction List (IL)

A: LD %IX1 (* PUSH BUTTON *)

ANDN %MX5 (* NOT INHIBITED *)

ST %QX2 (* FAN ON *)

Sequential Flow Chart (SFC)

START STEP

T1

T2

D1_READY

D2_READY

STEP A ACTION D1N

D ACTION D2

STEP B D3_READY

D4_READY

ACTION D3N

D ACTION D4

T3

textual languagesOUT

PUMPAUTO

MAN_ON

ACT

CALC1

CALC

IN1

IN2

PUMP

AUTO

MAN_ON

ACT

DO

V

DI

V

CALC1

CALC

IN1

IN2

OUT >=1

Page 15: International Standard IEC61131-3

Structured Text (ST)

� ST is a textual language similar to “C”, or (for who might remember it) PASCAL.

� ST can be successfully used to develop complex algorithm, data structure handling, etc.

� ST has the syntactical structure of the procedural programming languages:– Assignment– Choices– Iteration

C. Fantuzzi International Standard IEC61131-3 15

Page 16: International Standard IEC61131-3

Assignment

� The variable on the left side should be of the same type of the result of the expression of the right side.

� on contrary, the ST compiler will introduce a variable casting to set all the variables to the same type.

C. Fantuzzi International Standard IEC61131-3 16

<variable> := <expression>;

Page 17: International Standard IEC61131-3

Choices

C. Fantuzzi International Standard IEC61131-3 17

IF <Boolean_Expr_1> THEN <code>;

ELSIF <Boolean_Expr_2> THEN <code>;

ELSE <code>;END_IF

CASE <integer_expression> OF<integer_value_1> : <code>; <integer_value_2> : <code>;...ELSE

<code>; END_CASE

Page 18: International Standard IEC61131-3

Iteration

C. Fantuzzi International Standard IEC61131-3 18

REPEAT <code>;

UNTIL <Boolean_Expr> END_REPEAT;

WHILE <Boolean_Expr> DO<code>

END_WHILE;

FOR <integer_Variable>:= <initial_value> TO <final_value> BY <step> DO

<code>END_FOR;

Page 19: International Standard IEC61131-3

Warning

� The iteration structure may violate the real time concerns of the program.

� An iteration can’t be done to wait for a external variable changes.

C. Fantuzzi International Standard IEC61131-3

19

Page 20: International Standard IEC61131-3

ST Operators (a)

C. Fantuzzi International Standard IEC61131-3 20

Page 21: International Standard IEC61131-3

ST Operators (b)

C. Fantuzzi International Standard IEC61131-3 21

Page 22: International Standard IEC61131-3

Functional Block Language

� Funktionsblocksprache, Langage de blocs de fonction.

� Also called "Function Chart" or "Function Plan" – FuPla� The function block languages express "combinatorial”

programs in a way similar to electronic circuits. � They draw on a large variety of predefined and custom

functions

C. Fantuzzi International Standard IEC61131-3 22

Page 23: International Standard IEC61131-3

Function Block Examples

Function blocks is a graphical programming language, which is akin to theelectrical and block diagrams of the analog and digital technique.

It mostly expresses combinatorial logic, but its blocks may have a memory(e.g. flip-flops).

&AB C

Example 1:

Trigger T &

Running

Reset

S

R

Spin

Example 2: external inputs external outputs

C. Fantuzzi 23International Standard IEC61131-3

Page 24: International Standard IEC61131-3

Function Block Elements

The block is defined by its:• Data flow interface (number and type of input/output signals)• Black-Box-Behavior (functional semantic, e.g. in textual form).

Connections that carry a pseudo-continuous data flow.Connects the function blocks.

Signals

(set point)

(set point)

set pointExample

"continuously" executing block, independent,no side effects

set point

measurement motor

parametersFunction block

Example PID

C. Fantuzzi 24International Standard IEC61131-3

Page 25: International Standard IEC61131-3

Function Block Example

C. Fantuzzi 25International Standard IEC61131-3

Page 26: International Standard IEC61131-3

Rule of evaluation� Each signal is connected to exactly one source

– This source can be the output of a function block or a plant signal.

� The type of the output pin, the type of the input pin and the signal type.

� The signals flow from left to right and from top to bottom.� Feedback is an exception: the signal direction is from right to

the left, and it is identified by an arrow

C. Fantuzzi 26

ab

y

x

z

c

Page 27: International Standard IEC61131-3

Ladder Diagram

� (Kontaktplansprache, langage à contacts)

� The ladder logic is the oldest programming language for PLC

� it bases directly on the relay intuition of the electricians.� it is widely in use outside Europe.� It is described here but not recommended for new

projects.

C. Fantuzzi 273. I Linguaggi di Programmazione

Page 28: International Standard IEC61131-3

Ladder Logic (1)

0102

03 50

relay coil(bobine)

break contact(contact repos)

make contact

origin:electrical

circuit

01 02

5003

correspondingladder diagram

50 05

44

rung

"coil" 50 is used to move other contact(s)

C. Fantuzzi 28International Standard IEC61131-3

Page 29: International Standard IEC61131-3

Ladder logic (2)

The contact plan or "ladder logic" language allows an easy transition from the traditional relay logic diagrams to the programming of binary functions.

It is well suited to express combinational logic

It is not suited for process control programming (there are no analog elements).

The main ladder logic symbols represent the elements:

make contact

break contact

relay coil

contact travail

contact repos

bobine

Arbeitskontakt

Ruhekontakt

Spule

C. Fantuzzi 29International Standard IEC61131-3

Page 30: International Standard IEC61131-3

Ladder logic (3)Binary combinations are expressed by series and parallel relay contact:

+ 01 02

50

Coil 50 is active (current flows) when 01 is active and 02 is not.

01

02 50

Series

ladder logic representation "CMOS" equivalent

+ 01

40

02

Coil 40 is active (current flows) when 01 is active or 02 is not.

Parallel

01

02 40

C. Fantuzzi 30International Standard IEC61131-3

Page 31: International Standard IEC61131-3

Ladder logic (4)

The ladder logic is more intuitive for complex binary expressions than literal languages textual expressions

%501 2 3 4

5 6!N 1 & 2 STR 3 & N 4 STR N 5 & 6 / STR & STR = %50

%500 1 4 5

6 72 3

10 11

12!0 & 1 STR 2 & 3 / STR STR 4 & 5 STR N 6 & 7

/ STR & STR STR 10 & 11 / STR & 12 = %50

C. Fantuzzi 31International Standard IEC61131-3

Page 32: International Standard IEC61131-3

Ladder logic (5)

Ladder logic stems from the time of the relay technology.

As PLCs replaced relays, their new possibilities could not be expressed any more in relay terms.

The contact plan language was extended to express functions:

literal expression: !00 & 01 FUN 02 = 200200FUN 02

0100

The intuition of contacts and coil gets lost.

The introduction of «functions» that influence the control flow itself, is problematic.

The contact plan is - mathematically - a functional representation.

The introduction of a more or less hidden control of the flow destroys thefreedom of side effects and makes programs difficult to read.

C. Fantuzzi 32International Standard IEC61131-3