112
Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic Controllers 2.3.1 PLCs: Definition and Market 2.3.3 PLCs: Functions and construction 2.3.5 PLC Programming Languages 2.3.5.1 IEC 61131 Languages 2.3.5.2 Function blocks 2.3.5.3 Program Execution 2.3.5.4 Input / Output 2.3.5.5 Structured Text 2.3.5.6 Sequential Function Charts 2.3.5.7 Ladder Diagrams 2.3.5.8 Instruction Lists 2.3.5.9 Programming environment

Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Embed Size (px)

Citation preview

Page 1: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 1Industrial Automation 2013

2.3.1 PLCs: Definition and Market

2.1 Instrumentation2.2 Control2.3 Programmable Logic Controllers

2.3.1 PLCs: Definition and Market2.3.3 PLCs: Functions and construction2.3.5 PLC Programming Languages

2.3.5.1 IEC 61131 Languages2.3.5.2 Function blocks2.3.5.3 Program Execution2.3.5.4 Input / Output2.3.5.5 Structured Text2.3.5.6 Sequential Function Charts2.3.5.7 Ladder Diagrams2.3.5.8 Instruction Lists2.3.5.9 Programming environment

Page 2: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 2Industrial Automation 2013

PLC = Programmable Logic Controller: Definition

Definition: “small computers, dedicated to automation tasks in an industrial environment"

cabled relay control (hence 'logic'), analog (pneumatic, hydraulic) “governors”

real-time (embedded) computer with extensive input/output

Function: Measure, Control, Protect

AP = Automates Programmables industrielsSPS = Speicherprogrammierbare Steuerungen

Formerly:

Today:

Distinguish Instrumentation

flow meter, temperature, position,…. but also actors (pump, …)Control

programmable logic controllers with digital peripherals & field bus

Visualization

Human Machine Interface (HMI) in PLCs (when it exists) is limited to service help and control of operator displays

Page 3: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 3Industrial Automation 2013

Simple PLC

network digital inputs

digital outputs

analog inputs / outputs

Page 4: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 4Industrial Automation 2013

PLC in a cabinet

CPU1

redundant field bus connection

CPU2

inputs/outputs

serial connections

Page 5: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 5Industrial Automation 2013

example: turbine control (in the test lab)

Page 6: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 6Industrial Automation 2013

PLC: functions

Measure

Control (Command and Regulation)

•Event Logging•Communication•Human interface

Protection•

(Messen, Schützen, Regeln = MSR)

PLC = PMC: Protection, Measurement and Control

Page 7: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 7Industrial Automation 2013

PLC: Characteristics

• large number of peripherals: 20..100 I/O per CPU, high density of wiring, easy assembly.

• digital and analog Input/Output with standard levels

• operate under harsh conditions, require robust construction, protection against dirt, water and mechanical threats, electro-magnetic noise, vibration, extreme temperature range (-30C..85C), sometimes directly located in the field.

• programming: either very primitive with hand-help terminals on the target machine itself, or with a laptop

• network connection for programming on workstations and connection to SCADA

• primitive Human-Machine-Interface for maintenance, either through LCD-display or connection of a laptop over serial lines (RS232) or wireless.

• economical - €1000.- .. €15'000.- for a full crate.

• the value is in the application software (licenses €20'000 ..€50'000)

• field bus connection for remote I/Os

Page 8: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 8Industrial Automation 2013

PLC: Location in the control architecture

Enterprise Network

directly connectedI/O

Control Bus(e.g. Ethernet)

Engineerstation

I/O I/O I/O I/OCP

U

Sensor Bus (e.g. ASI)

Field Bus

gateway

Field Stations

Control Station with Field Bus

direct I/O

I/O

Field DevicesFB

gateway

gateway

I/OI/OI/OI/OCP

U

CO

M

I/OI/OI/OCO

M

CP

U

CO

M

CO

M

CO

M

I/O

Field Bus

CP

U

CO

M 2

I/O I/O I/OCP

U

CO

M1

CO

M 2

I/OCP

U

Operatorstation

largePLCs

small PLC

PLCPLC

CO

M1

CO

M1

SupervisorStation

data concentrators,not programmable,but configurable

Page 9: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 9Industrial Automation 2013

Why 24V / 48 V supply ?

… After the plant lost electric power, operators could read instruments only by plugging in temporary batteries…[IEEE Spectrum Nov 2011 about Fukushima]

Photo TEPCO

Page 10: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 10Industrial Automation 2013

Global players

Total sales in 2004: 7’000 Mio €

Source: ARC Research, 2005-10

Page 11: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 11Industrial Automation 2013

Kinds of PLC

Monolithic constructionMonoprocessorFieldbus connection

(1)

Modular construction (backplane)One- or multiprocessor systemFieldbus and LAN connectionSmall Micro Memory Card (MMC) function possible

(2)

Compact

Modular PLC

(3) Soft-PLCLinux or Windows NT or CE-based automation productsDirect use of CPU or co-processors

Page 12: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 12Industrial Automation 2013

Compact PLC

Monolithic (one-piece) constructionFixed casingFixed number of I/O (most of them binary)No process computer capabilities (no MMC)Can be extended and networked by an extension (field) busSometimes LAN connection (Ethernet, Arcnet)Monoprocessor

Typical product: Mitsubishi MELSEC F, ABB AC31, SIMATIC S7

costs: € 2000

courtesy ABBcourtesy ABB courtesy ABB

Page 13: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 13Industrial Automation 2013

Specific Controller (example: Turbine)

Thermocouple

inputs

binary I/Os,

CAN field bus

RS232 to HMI

Relays and fusesProgramming port

cost: € 1000.-

tailored for a specific application, produced in large series

courtesy Turbec

Page 14: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 14Industrial Automation 2013

courtesy ABB

Modular PLC

RS232

CPU CPU Analog I/O Binary I/O

backplaneparallel bus

• housed in a 19" (42 cm) rack (height 6U ( = 233 mm) or 3U (=100mm)

• concentration of a large number of I/O

Power Supply

• high processing power (several CPUs)

• primitive or no HMI

• cost effective if the rack can be filled

• can be tailored to needs of application

• supply 115-230V~ , 24V= or 48V= (redundant)

fieldbus

LAN

• large choice of I/O boards

• interface boards to field busses

• requires marshalling of signals

fieldbus

developmentenvironment

• cost ~ €10’000 for a filled crateTypical products: SIMATIC S5-115, Hitachi H-Serie, ABB AC110

Page 15: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 15Industrial Automation 2013

Small modular PLC

mounted on DIN-rail, 24V supplycheaper (€5000) not water-proof, no ventilatorextensible by a parallel bus (flat cable or rail)

courtesy ABBcourtesy Backmann

Page 16: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 16Industrial Automation 2013

Compact or modular ?

# I/O modules

Limit of local I/O

compact PLC (fixed number of I/Os)

modular PLC (variable number of I/Os

field busextension

Page 17: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 17Industrial Automation 2013

Industry- PC

Wintel architecture (but also: Motorola, PowerPC),HMI (LCD..)Limited modularity through mezzanine boards(PC104, PC-Cards, IndustryPack)Backplane-mounted versions with PCI or Compact-PCI

Competes with modular PLCno local I/O,fieldbus connection instead,

courtesy INOVA courtesy MPI

costs: € 2000.-

Page 18: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 18Industrial Automation 2013

Soft-PLC (PC as PLC)

• PC as engineering workstation• PC as human interface (Visual Basic, Intellution, Wonderware)• PC as real-time processor• PC assisted by a Co-Processor (ISA- or PC104 board)• PC as field bus gateway to a distributed I/O system

2122

33

234

I/O modules

Page 19: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 19Industrial Automation 2013

Protection devices

Protection devices are highly specialized PLCs that measure the current and voltages in an electricalsubstation, along with other statuses (position of the switches,…) to detect situations that could endanger the equipment (over-current, short circuit, overheat) and trigger the circuit breaker (“trip”) to protect the substation.In addition, they record disturbances and send the reports to the substation’s SCADA. Sampling: 4.8 kHz, reaction time: < 5 ms.

Human interfacefor statusand settings

measurement transformers

Ir

Is

It

Ur

Us

UT

Programming interface

trip relay

communication to operator

costs: € 5000

substation

Page 20: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 20Industrial Automation 2013

Comparison Criteria – what matters

Siemens

Number of PointsMemory

Programming Language

Programming ToolsDownload

Real estate per 250 I/O

Label surface

Network

Hitachi

64016 KB

• Ladder Diagrams• Instruction List• Logic symbols• Basic• Hand-terminal

Graphical (on PC)yes

1000 cm2

6 characters6 mm2

19.2 kbit/s

1024

• Ladder Diagrams

• Instruction List

• Logic symbols

• Hand-terminal

Graphical (on PC)no

2678 cm2

5.3 mm27 charactersper line/point

10 Mbit/s

10 KB

Mounting cabinetDIN rail

Brand

Page 21: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 21Industrial Automation 2013

2.3.3 PLCs: Function and construction

2.1 Instrumentation2.2 Control2.3 Programmable Logic Controllers

2.3.1 PLCs: Definition and Market2.3.3 PLCs: Functions and construction2.3.5 PLC Programming Languages

2.3.5.1 IEC 61131 Languages2.3.5.2 Function blocks2.3.5.3 Program Execution2.3.5.4 Structured Text2.3.5.5 Sequential Function Charts2.3.5.6 Ladder Diagrams2.3.5.7 Instruction Lists2.3.5.8 Programming environment

Page 22: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 22Industrial Automation 2013

Implementation

• PLC operates periodically• Samples signals from sensors and converts them to digital form

with A/D converter• Computes control signal and converts it to analog form for the

actuators.

1. Wait for clock interrupt2. Read input from sensor3. Compute control signal4. Send output to the actuator5. Update controller variables7. Communication6. Repeat

Waiwera Organic Winery, Distillation Plant

Page 23: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 23Industrial Automation 2013

The signal chain within a PLC

analogvariable

(e.g. 4..20mA)

filtering&

scaling

analog-digital

converter

processing

digital-analog

converter

analogvariable

e.g. -10V..10V

time

y

time

y(i)

sampling

binaryvariable(e.g. 0..24V)

filtering sampling

time

y

transistoror

relay

binaryvariable

amplifier011011001111

counter

1

non-volatilememory

0001111

time

y(i)

Page 24: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 24Industrial Automation 2013

General PLC architecture

CPUReal-Time

Clockflash

EPROMROM

buffers

signal conditioning

power amplifiers

relayssignal

conditioning

serial portcontroller

Ethernet

parallel bus

ethernetcontroller

RS 232

analog-digital

converters

digital-analog

convertersDigital Output

DigitalInput

fieldbuscontroller

externalI/Os

extensionbus

field bus direct Inputs and Outputs

Page 25: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 25Industrial Automation 2013

Example Architecture: Internals of a protection device

Can you find all the components from the previous slide?In addition this device uses a DSP module for complex computations.

Page 26: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 26Industrial Automation 2013

2.3.5 Programming languages

2.1 Instrumentation2.2 Control2.3 Programmable Logic Controllers

2.3.1 PLCs: Definition and Market2.3.3 PLCs: Functions and construction2.3.5 Programming languages

2.3.5.1 IEC 61131 Languages2.3.5.2 Function blocks2.3.5.3 Program Execution2.3.5.4 Input / Output2.3.5.5 Structured Text2.3.5.6 Sequential Function Charts2.3.5.7 Ladder Diagrams2.3.5.8 Instruction Lists2.3.5.9 Programming environment

Page 27: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 27Industrial Automation 2013

The long march to 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 formedDIN 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…

PLC industry needs aggreement on •Data types (operations may only be executed on appropriate types) •Programming languages•Software structure (program organization units for modularity, encapsulation)•Discrete event system handling•Execution

Page 28: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 28Industrial Automation 2013

Matching the analog and binary world

Analog WorldBinary World

AB

C

continuous processes

P2P1

I1

Regulation, controllers

discrete processes

combinatorial sequential

Relay control, pneumatic sequencer

Pneumatic and electromechanical controllers

PLC

The time constant of the control system must be at least one order

of magnitude smaller than the smallest time constant of the plant.

Described by variables of non-overlapping values. The transition from

one state to another is abrupt, it is caused by an external event.

Page 29: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 29Industrial Automation 2013

"Real-Time" languages

Extend procedural languages to express time

(“introduce programming constructs to influence scheduling and control flow”)

Languages developed for cyclic

execution and real-time("application-oriented languages")

Ladder Diagrams

function block language

instruction lists

GRAFCET

SDL

etc...

wide-spread in the control industry.Now standardized as IEC 61131

ADA

Real-Time Java

MARS (TU Wien) Forth

“C” with real-time features

etc…

could not impose themselves

Page 30: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 30Industrial Automation 2013

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)

OUT

PUMP

http://www.isagraf.com

Function Block Diagram (FBD)

PUMP

AUTO

MAN_ON

ACT

DO

V

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 D4T3

CALC1

CALC

IN1

IN2

OUT >=1

graphical languages

textual languages

AUTO

MAN_ON

ACT

CALC1

CALC

IN1

IN2

OUT

Page 31: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 31Industrial Automation 2013

61131 Elementary Data Types

1 BOOL Boolean 12 SINT Short integer 83 INT Integer 164 DINT Double integer 325 LINT Long integer 646 USINT Unsigned short integer 87 UINT Unsigned integer 168 UDINT Unsigned double integer 329 ULINT Unsigned long integer 6410 REAL Real numbers 3211 LREAL Long reals 6412 TIME Duration variable13 DATE Date (only) variable14 TIME_OF_DAY or TOD Time of day (only) variable15 DATE_AND_TIME or DT Date and time of day variable16 STRING Character string variable17 BYTE Bit string of length 8 818 WORD Bit string of length 16 1619 DWORD Bit string of length 32 3220 LWORD Bit string of length 64 64

No. Keyword Data Type Bits

Page 32: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 32Industrial Automation 2013

Importance of IEC 61131

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

80% of all PLCs support it, all new developments are based on it.

Depending on the country, some languages are more popular than others.

More information:http://www.plcopen.org/pages/tc1_standards/downloads/plcopen_iec61131-3_feb2014.pptxhttp://www.plcopen.org/pages/pc2_training/downloads/index.htm

Page 33: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 33Industrial Automation 2013

2.3.5.2 Input and Output

2.1 Instrumentation2.2 Control2.3 Programmable Logic Controllers

2.3.1 PLCs: Definition and Market2.3.3 PLCs: Functions and construction2.3.5 PLC Programming Languages

2.3.5.1 IEC 61131 Languages2.3.5.2 Input & Output2.3.5.3 Function blocks2.3.5.4 Program Execution2.3.5.5 Structured Text2.3.5.6 Sequential Function Charts2.3.5.7 Ladder Diagrams2.3.5.8 Instruction Lists2.3.5.9 Programming environment

Page 34: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 34Industrial Automation 2013

Connecting to Input/Output, Method 1: dedicated I/O blocks

The Inputs and Outputs of the PLC must be connected to (typed) variables

OUT_1

The I/O blocks are configured to be attached to the corresponding I/O groups.

IN_1

Page 35: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 35Industrial Automation 2013

Connecting to Input / Output, Method 2: Variables configuration

All program variables must be declared with name and type, initial value and volatility.A variable may be connected to an input or an output, giving it an I/O address.Several properties can be set: default value, fall-back value, store at power fail,…These variables may not be connected as input, resp. output to a function block.

predefined addresses

Page 36: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 36Industrial Automation 2013

2.4.2.3 Function Blocks Language

2.1 Instrumentation2.2 Control2.3 Programmable Logic Controllers

2.3.1 PLCs: Definition and Market2.3.3 PLCs: Functions and construction2.3.5 PLC Programming Languages

2.3.5.1 IEC 61131 Languages2.3.5.2 Input / Output2.3.5.3 Function blocks language2.3.5.4 Program Execution2.3.5.5 Structured Text2.3.5.6 Sequential Function Charts2.3.5.7 Ladder Diagrams2.3.5.8 Instruction Lists2.3.5.9 Programming environment

Page 37: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 37Industrial Automation 2013

Function Block Languages

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

This language is similar to the Matlab / Simulink language used for simulations

(Funktionsblocksprache, langage de blocs de fonctions)(Also called "Function Chart" or "Function Plan" - FuPla)

Page 38: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 38Industrial Automation 2013

Function Block Examples

&AB C

Trigger Tempo &

Running

Reset

S

R

Spin

Graphical programming language, similar to electrical and block diagrams. Mostly expresses combinatorial logic, but blocks may have memory (e.g. RS-flip-flops)

Example 1:

Example 2:external inputs external outputs

Q

Page 39: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 39Industrial Automation 2013

Function Block Elements

"continuously" executing block, independent, no side effects

set point

measurement

command

parameters

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).

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

Signals

Function block

(set point)

(set point)

set point

Example

Example

PID

input signals output signals

overflow

Page 40: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 40Industrial Automation 2013

Function Block Example

Page 41: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 41Industrial Automation 2013

Function Block Rules

There exist exactly two rules for connecting function blocks by signals (this is the actual programming):

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 must be identical.

The function plan should be drawn so the signals flow from left to right and from top to bottom. Some editors impose additional rules.

Retroactions are an exception to this rule. In this case, the signal direction is identified by an arrow (forbidden in some editors – use global variables instead).

ab

y

x

z

c

Page 42: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 42Industrial Automation 2013

Types of Programming Organisation Units (POUs)

1) “Functions”- are part of the base library.- have no memory. Examples: and gate, adder, multiplier, selector,....

2) “Elementary Function Blocks” (EFB)- are part of the base library- have a memory ("static" data).- may access global variables (side-effects !)Examples: counter, filter, integrator,.....

3) “Programs” (Compound blocks)- user-defined or application-specific blocks- may have a memory- may be configurable (control flow not visible in the FBDExamples: PID controller, Overcurrent protection, Motor sequence(a library of compound blocks may be found in IEC 61804-1)

Page 43: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 43Industrial Automation 2013

Function Block library

The programmer chooses the blocks in a block library, similarly to the hardware engineer who chooses integrated circuits in a catalogue.

The library describes the pinning of each block, its semantics and theexecution time.

The programmer may extend the library by defining function block macroscomposed of library elements.

If some blocks are used often, they will be programmed in an external language (e.g. “C”, micro-code) following strict rules.

Page 44: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 44Industrial Automation 2013

Library functions for discrete and continuous plants

logical operations(AND, OR, …)Flip-flopSelector m-out-of-nMultiplexer m-to-nTimerCounterMemorySequencing

Basic blocks

Display

Manual input, touch-screen

Safety blocks (interlocking)

Logging

Compound blocks

Alarm signaling

Basic blocksSummator / SubtractorMultiplier / DividerIntegrator / DifferentiatorFilter Minimal value, Maximum valueRadixFunction generator

Regulation Functions

P, PI, PID, PDT2 controllerFixed set-pointRatio and multi-component regulationParameter variation / setting2-point regulation3-point regulationOutput value limitationRamp generatorAdaptive regulationDrive Control

Page 45: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 45Industrial Automation 2013

Function Block library for specialized applications

MoveAbsolute

AXIS_REFAxis Axis

AXIS_REF

BOOL Execute Done BOOL

REAL Position BOOLREAL Velocity

CommandAborted

WORDREAL AccelerationBOOL

REAL Deceleration

REAL Jerk

MC_Direction Direction

ErrorErrorID

standardized blocks are defined in libraries, e.g. Motion Control or Robotics

Page 46: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 46Industrial Automation 2013

Specifying the behaviour of Function Block

Time Diagram: 0 T

T

x

y

yx

S

R

x1

0

0

1

1

x2

0

1

0

1

y

previous state

0

1

1

Truth Table:

Mathematical Formula:

x1

x2

Textual Description:

yx

t

idp xdKdt

dxKxK

0

Calculates the root mean square of the input with a filtering constantdefined in parameter „FilterDelay“

Page 47: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 47Industrial Automation 2013

Function Block specification in Structured Text

Page 48: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 48Industrial Automation 2013

IEC 61131-3 library (extract)

CU – input (rising edges count up) R – reset counter (CV:=0) PV – preset value Q – 1 if CV >= PV CV – current value

dominant resetQ:=!R1&(Q|S)

rising edgedetector

dominant setQ:=S1|(Q&!R)

ADD

SUB

MUL

DIV

adder

subtractor

multiplier

divider

INT

PV

Integrator

In

Reset(if reset) Out := PV, else Out:= Δt *In + Out

More details http://calc1.kss.ia.polsl.pl/content/dydaktyka/PC/PLC_IEC61131-3.pdf

Boolean Functions

Select one of N inputs depending on input K

Binary selection

Arithmetic Functions

Flip-flop

Trigger

Up counter

Selector

Page 49: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 49Industrial Automation 2013

CTUCURESETPV

QCV

https://docs.google.com/forms/d/1ynmoXf3JTcRn2yv2_4bKhcK0HJNDYpiTnQQm13lDSso/viewform

1.

DIV

INT

PVIn

Reset = 0

Out

In1

(2) (initially 0)

2.(1024)

In2

3. t1 t2 t3 t4 t5 t6 t7 t8

CU Reset = 0, PV = 3, CV = #up Q = (CV >= PV) ?

Remember: INT If (Reset) : Out := PV, Else: Out := Δt *In + Out

Exercise: What do the following blocks do ? (Δt = 1)

4.S

R

Q

Flipflop: dominant set or reset?

SRS

QR1

dominant resetQ:=!R1&(Q|S)

S1SR

QR

dominant setQ:=S1|(Q&!R)

http://tinyurl.com/IAFunctionBlock

ADD OutIn(10)

(initially 2)

What are the values of Out?What happens if out is initially 1024?

What are the values of Out?

Page 50: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 50Industrial Automation 2013

https://docs.google.com/forms/d/1ynmoXf3JTcRn2yv2_4bKhcK0HJNDYpiTnQQm13lDSso/viewform

3.CV = 1, 1, 2, 2, 3, 3, 4, 4 Q = 0, 0, 0, 0, 1, 1, 1, 1

4.S

R

Q

ftp://advantechdownloads.com/Training/KW%20training/

S1SR

QR

dominant setQ:=S1|(Q&!R)

Exercise: What do the following blocks do ?

1.

2, 12, 22, 32, 42

2.

If out is initially 0: 0, 0, 0, 0, 0If out is initially 1024: 1024, 1024, 1024,

Page 51: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 51Industrial Automation 2013

Exercise: Asymmetric Sawtooth Wave

Build an asymmetric sawtooth wave generator withIEC 61131 function blocks

75

0

-25

5s 12s

Page 52: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 52Industrial Automation 2013

Exercise: Asymmetric Sawtooth Wave

Build an asymmetric sawtooth wave generator withIEC 61131 function blocks

75

0

-25

5s 12s

Hints:- Compute the slopes- Use integrators, comparators, flip-flops and selectors

Page 53: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 53Industrial Automation 2013

Exercise: Saw-tooth FBD

+ 8.3-20.0

0

75.0

-25.0

Other solutions exists.

Out

Page 54: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 54Industrial Automation 2013

Function Block decomposition

A function block describes a data flow interface.Its body can be implemented differently:

The body is implemented in an external language(micro-code, assembler, IEC 61131 ST):

Elementary block

The body is realized as a function block programEach input (output) pin of the interface is implemented asexactly one input (output) of the function block. All signals must appear at the interface to guaranteefreedom from side effects.

. Compound block

procedure xy (a,b:BOOLEAN; VAR b,c: BOOLEAN);begin ...... ....end xy;

=

=

Page 55: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 55Industrial Automation 2013

Function Block segmentation

An application program (task) is decomposed into segments ("Programs")for easier reading, each segment being represented on one (A4) printed page.

• Within a segment, the connections are represented graphically.• Between the segments, the connections are expressed by signal names.

Segment A

Segment B

X1

M2 M1

Y1

Y2

M2

X2

M1

X3

Page 56: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 56Industrial Automation 2013

2.3.5.3 Program execution

2.1 Instrumentation2.2 Control2.3 Programmable Logic Controllers

2.3.1 PLCs: Definition and Market2.3.3 PLCs: Functions and construction2.3.5 PLC Programming Languages

2.3.5.1 IEC 61131 Languages2.3.5.2 Function blocks2.3.5.3 Program Execution2.3.5.4 Input / Output2.3.5.5 Structured Text2.3.5.6 Sequential Function Charts2.3.5.7 Ladder Diagrams2.3.5.8 Instruction Lists2.3.5.9 Programming environment

Page 57: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 57Industrial Automation 2013

Execution of Function Blocks

F1ABX01F2X01XF3BCX02F4XX02Y

Machine Code:functioninput1input2output

AF1 F2

BF4

Y

X01

X02F3

C

XSegment or POU(program organization unit)

The function blocks aretranslated to machine language(intermediate code, IL),that is either interpreted orcompiled to assembly language

Blocks are executed in sequence, normally from upper left to lower right

The sequence is repeated every t ms.

Page 58: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 58Industrial Automation 2013

Input-Output of Function Blocks

execute individual period

I OX I OX I OX

read inputs

writeoutputs

Run-time:

The function blocks are executed cyclically.• all inputs are read from memory or from the plant (possibly cached)• the segment is executed• the results are written into memory or to the plant (possibly to a cache)

The order of execution of the blocks generally does not matter. To speed up algorithms and avoid cascading, it is helpful to impose an execution order to the blocks.

The different segments may be assigned a different individual period.

time

Page 59: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 59Industrial Automation 2013

Program configuration

The programmer divides the program into tasks (sometimes called pages or segments), which may be executed each with a different period.

The programmer assigns each task (each page) an execution period. Since the execution time of each block in a task is fixed, the execution time is fixed.

Event-driven operations are encapsulated into blocks, e.g. for transmitting messages.

If the execution time of these operations take more than one period, they are executed in background.

The periodic execution always has the highest priority.

Page 60: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 60Industrial Automation 2013

IEC 61131 - Execution engine

configuration

resource

task task

program program

FB FB

task

execution control pathvariable access paths

FB function block

variable

represented variables

communication function

Legend:

program

FB FB

resource

task

program

global and directly

access paths

Page 61: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 61Industrial Automation 2013

Parallel execution

Function blocks are particularly well suited for true multiprocessing (parallel processors).

The performance limit is given by the needed exchange of signals by shared memory.

Semaphores are not used since they could block an execution and make the concerned processes non-deterministic.

processor1

processor2

processor3

shared memory

shared memory

shared memory

shared memory

input/output

Page 62: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 62Industrial Automation 2013

2.3.5.5 Structured Text

2.1 Instrumentation2.2 Control2.3 Programmable Logic Controllers

2.3.1 PLCs: Definition and Market2.3.3 PLCs: Functions and construction2.3.5 PLC Programming Languages

2.3.5.1 IEC 61131 Languages2.3.5.2 Function blocks2.3.5.3 Program Execution2.3.5.4 Input / Output2.3.5.5 Structured Text2.3.5.6 Sequential Function Charts2.3.5.7 Ladder Diagrams2.3.5.8 Programming environment

Page 63: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 63Industrial Automation 2013

Structured Text

(Strukturierte Textsprache, langage littéral structuré)

Structured Text is an imperative language similar to Pascal (If, While, etc..)

The variables defined in ST can be used in other languages

ST is used to do complex data manipulation and write blocks

Caution: writing programs in structured text can breach the real-time rules !

Page 64: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 64Industrial Automation 2013

Data Types

binary types: analog types:

•Derived Types are user-defined and must be declared in Structured Textsubrange,enumerated,arrays,structured types(e.g. AntivalentBoolean2)

Variables can receive initial values and be declared as non-volatile (RETAIN), so after restart they contain the last value before power-down or reset.

BOOLBYTEWORDDWORD

181632

REAL (Real32)LREAL (Real64)

Function Blocks are typed: the types of connection, input and output must match.

•Elementary Types are defined either in Structured Text or in the FB configuration.

Page 65: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 65Industrial Automation 2013

Example of Derived Types

TYPE ANALOG_CHANNEL_CONFIGURATION STRUCT RANGE: ANALOG_SIGNAL_RANGE; MIN_SCALE : ANALOG_DATA ; MAX_SCALE : ANALOG_DATA ; END_STRUCT; ANALOG_16_INPUT_CONFIGURATION : STRUCT SIGNAL_TYPE : ANALOG_SIGNAL_TYPE; FILTER_CHARACTERISTIC : SINT (0.99) CHANNEL: ARRAY [1..16] OF ANALOG_CHANNEL_CONFIGURATION; END_STRUCT ;END_TYPE

Page 66: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 66Industrial Automation 2013

Structured Text Examples

IF tank.temp > 200 THEN pump.fast :=1;pump.slow :=0; pump.off :=0;

ELSIF tank.temp > 100 THENpump.fast :=0; pump.slow :=1; pump.off :=0;

ELSE pump.fast :=0; pump.slow :=0; pump.off :=1;

END_IF;

pos := 0; WHILE((pos < 100) & s_arr[pos].value <> target)) DO

pos := pos + 2; String_tag.DATA[pos] :=

SINT_array[pos]; END_WHILE;

[http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm007_-en-p.pdf]

Predefined functions, e.g.:SIZE(SINT_array, 0, SINT_array_size); Count the number of elements in SINT_array (array that contains inputs) and store result in SINT_array_size (DINT tag).

IF( Switch_0 AND Switch_1 ) THEN Start_Motor := 1; Start_Count := Start_Count + 1;

END_IF;

Page 67: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 67Industrial Automation 2013

Structured Text Example

Move ASCII characters from a SINT array into a string tag. (In a SINT array, each element holds one character.) Stop when you reach the carriage return.

element_num := 0; SIZE(SINT_array, 0, SINT_array_size);

WHILE SINT_array[element_num] <> 13 DO String_tag.DATA[element_num] := SINT_array[element_num]; element_num := element_num + 1; String_tag.LEN := element_num; IF element_num = SINT_array_size then

exit; END_IF; END_WHILE;

[http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm007_-en-p.pdf]

Explanations:1.Initialize element_num to 0. 2.Count the number of elements in SINT_array (array that contains the ASCII characters) and store the result in SINT_array_size (DINT tag).3.If the character at SINT_array[element_num] = 13 (carriage return), then stop. 4.Set String_tag[element_num] = the character at SINT_array[element_num]. 5.Add 1 to element_num. This lets the controller check the next character in SINT_array. 6.Set the Length member of String_tag = element_num. (This records the number of characters in String_tag so far.) 7.If element_num = SINT_array_size, then stop. (You are at the end of the array and it does not contain a carriage return.) 8.Go to 3.

Page 68: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 68Industrial Automation 2013

Structured Text Exercise

A user-defined data type (structure) stores information about an item in an Inventory array: • Inventory[i].ID: Barcode ID of the item (string data type) • Inventory[i].Qty: Quantity in stock of the item (DINT data type)An array of the above structure contains an element for each different item in your inventory. You want to search the array for a specific product (by its barcode) and determine the quantity in stock.Pseudocode:1.Get size (number of items) of Inventory array and store result in Inventory_Items (DINT tag). 2.Loop over positions in array. 3.If Barcode matches the ID of an item in the array, then:a. Set the Quantity tag = Inventory[position].Qtyb. Stop.

[http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm007_-en-p.pdf]

Page 69: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 69Industrial Automation 2013

Structured Text Exercise Solution

A user-defined data type (structure) stores information about an item in an Inventory array: • Inventory[i].ID: Barcode ID of the item (string data type) • Inventory[i].Qty: Quantity in stock of the item (DINT data type)An array of the above structure contains an element for each different item in your inventory. You want to search the array for a specific product (by its barcode) and determine the quantity in stock.Pseudocode:1.Get size (number of items) of Inventory array and store result in Inventory_Items (DINT tag). 2.Loop over positions in array. 3.If Barcode matches the ID of an item in the array, then:a. Set the Quantity tag = Inventory[position].Qtyb. Stop.

[http://literature.rockwellautomation.com/idc/groups/literature/documents/pm/1756-pm007_-en-p.pdf]

Solution:SIZE(Inventory,0,Inventory_Items);FOR position:=0 to Inventory_Items - 1 DO

IF Barcode = Inventory[position].ID THENQuantity := Inventory[position].Qty; EXIT;

END_IF; END_FOR;

Page 70: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 70Industrial Automation 2013

2.3.5.6 Sequential Function Charts

2.1 Instrumentation2.2 Control2.3 Programmable Logic Controllers

2.3.1 PLCs: Definition and Market2.3.3 PLCs: Functions and construction2.3.5 PLC Programming Languages

2.3.5.1 IEC 61131 Languages2.3.5.2 Function blocks2.3.5.3 Program Execution2.3.5.4 Input / Output2.3.5.5 Structured Text2.3.5.6 Sequential Function Charts2.3.5.7 Ladder Diagrams2.3.5.8 Programming environment

Page 71: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 71Industrial Automation 2013

SFC (Sequential Flow Chart)

(Ablaufdiagramme, diagrammes de flux en séquence )

• Describes sequences of operations and interactions between parallel processes.• Derived from Grafcet and SDL (Specification and Description Language, used for

communication protocols), mathematical foundation lies in Petri Nets.

START STEP

ACTION D1N D1_READY

D ACTION D2 D2_READY

T1

T2

STEP BSTEP A

Page 72: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 72Industrial Automation 2013

SFC: Elements

The sequential program consists of states connected by transitions. A state is activated by the presence of a token (the corresponding variable becomes TRUE).The token leaves the state when the transition condition (event) on the state output is true.Only one transition takes place at a time, the execution period is a configuration parameter(task to which this program is attached)

Ec = ((varX & varY) | varZ)

token

Sa

Sb

"1"

Ea

Sc

Eb

transitions

states

event condition("1" = always true)

example transition condition

S0

Rule: there is always a transition between two states, there is always a state between two transitions

Page 73: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 73Industrial Automation 2013

SFC: Initial state

State which come into existence with a token are called initial states.

All initial states receive exactly one token, the other states receive none.

Initialization takes place explicitly at start-up.

In some systems, initialization may be triggered in a user program(initialization pin in a function block).

Page 74: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 74Industrial Automation 2013

SFC: Switch and parallel execution

Sa

Sb

"1"

Se

token switch : the token crosses the first active

transition (at random if both Ea and Eb are true)Note: transitions are after the alternance

token forking : when the transition Ee is true, the token

is replicated to all connected statesNote: transition is before the fork

Ed

token join : when all connected states have tokensand transition Eg is true, one single token is forwarded.Note: transition is after the join

Ee

Sc

Sd

SfSg

Eg

E0

Ea Eb

Ec

Ef

Page 75: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 75Industrial Automation 2013

SFC: P1, N and P0 actions

P1 State1_P1: do at enter

N State1_N: do while

P0 State1_P0: do at leaving

State1

P1 (pulse raise) action is executed once when the state is enteredP0 (pulse fall) action is executed once when the state is leftN (non-stored) action is executed continuously while the token is in the state

P1 and P0 actions could be replaced by additional states.

The actions are described by a code block written e.g. in Structured Text.

Page 76: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 76Industrial Automation 2013

Special action: the timer

rather than define a P0 action “ reset timer….”, there is an implicit variable defined as<state name>.t that express the time spent in that state.

Sf

S.t > t#5s

S

Page 77: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 77Industrial Automation 2013

SFC: graphic rules

The input and output flow of a state are always in the same vertical line (simplifies structure)

Alternative paths are drawn such that no path is placed in the vertical flow (otherwise would mean this is a preferential path)

intentional displacement to

avoid optical preference of a

path.

Priority:• The alternative path most to the left has the

highest priority, priority decreases towards the right.

• Loop: exit has a higher priority than loopback.

Page 78: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 78Industrial Automation 2013

SFC: Exercise

Speed = 5 cm/s from I1 to I0 and from I2 to I3, faster otherwise. Initially: move vehicle at reduced speed until it touches I0 and open the trap for 5s(empty the vehicle).

1 - Let the vehicle move from I0 to I32 - Stop the vehicle when it reaches I3.3 - Open the tank during 5s.

4 - Go back to I05 - Open the trap and wait 5s.

repeat above steps indefinitely

I2 I3Inputs generate “1” as long as the tag of the vehicle (1cm) is over the sensor.

Register = {0: closed; 1: open}

I0 I1

trap+speed

Speed = {+20: +1 m/s; +1: +5 cm/s; 0: 0m/s}

negative values: opposite direction

VariablesInput: I0, I1, I2, I3 (boolean);Output:Trap = {0: closed; 1: open}

Register = {0: closed; 1: open}

Page 79: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 79Industrial Automation 2013

Exercise SFC Example Solution

Page 80: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 81Industrial Automation 2013

SFC: Structuring

Every flow chart without a token generator may be redrawn as astructured flow chart (by possibly duplicating program parts)

A

B

C

a

b

d

c

Not structured

A

B

C

a

b

a

bB'

A'

d

c

d

structured

Page 81: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 82Industrial Automation 2013

SFC: Complex structures

Problems with general networks:Deadlocks, uncontrolled token multiplication

These general rules serve to build networks, termed by DIN and IEC as flow charts

Solution:assistance through the flow chart editor.

Page 82: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 83Industrial Automation 2013

Function Blocks And Flow Chart

Function Blocks:

Continuous (time) control

Sequential Flow Charts:

Discrete (time) Control

Many PLC applications mix continuous and discrete control.

A PLC may execute alternatively function blocks and flow charts.

Communication between these program parts must be possible.

Principle:

A flow chart taken as a whole can be considered a function block with binary inputs (transitions) and binary outputs (states).

Page 83: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 84Industrial Automation 2013

Executing Flow Charts As blocks

A function block may be implemented in different ways:

procedure xy(...);begin ...end xy;

extern (ST/IL) function blocks flow chart

Function blocks and flow chart communicate over binary signals.

Page 84: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 85Industrial Automation 2013

Flow Charts or Function Blocks ?

A task can sometimes be written indifferently as function blocs or as flow chart.The application may decide which representation is more appropriate:

c

d

"1"

b

a

a

b c

d

Flow Chart Function Block

NOT

S

R

Page 85: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 86Industrial Automation 2013

Flow Charts Or Blocks ? (2)

In this example, a flow chart seems to be more appropriate:

A

B

C

"1"

a

b

c

S

R

&

S

R&

S

R&

init

a

b

c

A

B

C

Flow Chart Function Blocks

Page 86: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 87Industrial Automation 2013

Exercise: write the SFC for this task

L1

T

V1 V2

open V1 until tank’s L1 indicates upper level open V2 during 25 secondsopen V3 until the tank’s L1 indicates it reached the lower levelwhile stirring. heat mixture during 50 minutes while stirring empty the reactor while the drying bed is movingrepeat

MSV3

MD

temperature(sensor)

H1

upperlower

V4

heater(actor)

Page 87: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 88Industrial Automation 2013

2.3.5.7 Ladder Diagrams

2.1 Instrumentation2.2 Control2.3 Programmable Logic Controllers

2.3.1 PLCs: Definition and Market2.3.2 PLCs: Kinds2.3.3 PLCs: Functions and construction

2.3.5 PLC Programming Languages2.3.5.1 IEC 61131 Languages2.3.5.2 Function blocks2.3.5.3 Program Execution2.3.5.4 Input / Output2.3.5.5 Structured Text2.3.5.6 Sequential Function Charts2.3.5.7 Ladder Diagrams2.3.5.8 Programming environment

Page 88: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 89Industrial Automation 2013

Ladder Diagrams (1)

Ladder Diagrams is the oldest programming language for PLC- based on relay intuition of electricians.- widely in use outside Europe.- not recommended for large new projects.

(Kontaktplansprache, langage à contacts)

Rung 0

Rung 1

Rung 2

Input instructions (conditions) Output (actions)

Page 89: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 90Industrial Automation 2013

Ladder Diagrams (2)

The contact plan or "ladder diagram" 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 Diagrams symbols represent the elements:

make contact

break contact

relay coil

contact travail

contact repos

bobine

Arbeitskontakt

Ruhekontakt

Spule

Page 90: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 91Industrial Automation 2013

Ladder Diagrams Example (3)

01 02

50

0102

03 50

03

relay coil(bobine)

break contact(contact repos)

make contact(contact travail)

correspondingladder diagram

origin:electrical

circuit

50 0544

rung

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

Page 91: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 92Industrial Automation 2013

Ladder Diagrams (4)

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

+ 01

40

02

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

Parallel

Ladder Diagrams representation “logic" equivalent

01

02 40

Page 92: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 93Industrial Automation 2013

Ladder Diagrams (5)

The Ladder Diagrams is more intuitive for complex binary expressions than literal languages

501 2 3 4

5 6

! 1 & 2 & ( 3 & ! 4 | ! 5 & 6 ) = 50

Or

N1 & 2 STR 3 & N4 STR N5 & 6/ STR & STR = 50

500 1 4 5

6 72 3

10 11

12

N0 & 1 STR 2 & 3 / STR STR 4 & 5 STR N 6 & 7

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

textual expression

Page 93: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 94Industrial Automation 2013

Ladder Diagrams (6)

Ladder Diagrams 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 = 200

200FUN 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.

Page 94: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 95Industrial Automation 2013

Ladder Diagrams Example

Source: http://teacher.buet.ac.bd/zahurul/ME6401/ME6401_PLC.pdf

Ladder Diagrams diagram for a batch process: filling a container with a liquid,mixing the liquid, and draining the container. The sequence of events is as follows: 1. fill valve opens and lets the liquid into the container until it is full.2. liquid in the container is mixed for 3 minutes.3. a drain valve opens and drains the tank.

O = output I = input

Address of variable(module number, port number)

Page 95: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 96Industrial Automation 2013

Ladder Diagrams Exercise

Source: http://teacher.buet.ac.bd/zahurul/ME6401/ME6401_PLC.pdf

Consider a PLC with one input module and one output module. Two external switches (SW-0 & SW-1) are connected via terminal IN-0 and In-1 of input module. Two terminals of the output module (OUT-0 & OUT-1) drive two indicator lamps (Lamp-0 & Lamp-1).

Which lamps are lit with the current switch positions? What happens if you change the position of Switch SW-1?

Page 96: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 97Industrial Automation 2013

Ladder Diagrams Exercise Solution

Source: http://teacher.buet.ac.bd/zahurul/ME6401/ME6401_PLC.pdf

The top rung will light Lamp-0 if both SW-0 and SW-1 are closed. The bottom rung will lightLamp-1 if either SW-0 or OUT-0 are closed.

In the current position LAMP-1 is lit.If we change the position of Switch SW-1 then LAMP 0 will be lit too.

Page 97: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 98Industrial Automation 2013

Ladder Diagrams (7)

Ladder Diagrams provides neither:• sub-programs (blocks), nor • data encapsulation nor • structured data types.

It is not suited to make reusable modules.

IEC 61131 does not prescribe the minimum requirements for a compiler / interpreter such as number of rungs per page nor does it specifies the minimum subset to be implemented.

Therefore, it should not be used for large programs made by groups of people

It is very limited when considering analog values (it has only counters)

→ used mostly in manufacturing, not in process control

Page 98: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 99Industrial Automation 2013

2.3.6 Instruction Lists

2.1 Instrumentation2.2 Control2.3 Programmable Logic Controllers

2.3.1 PLCs: Definition and Market2.3.2 PLCs: Kinds2.3.3 PLCs: Functions and construction

2.3.5 PLC Programming Languages2.3.5.1 IEC 61131 Languages2.3.5.2 Function blocks2.3.5.3 Program Execution2.3.5.4 Input / Output2.3.5.5 Structured Text2.3.5.6 Sequential Function Charts2.3.5.7 Ladder Diagrams2.3.5.8 Instructions Lists2.3.5.9 Programming environment

Page 99: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 100Industrial Automation 2013

Instruction Lists (1)

Instruction lists is the machine language of PLC programmingIt has 21 instructions (see table)

Three modifiers are defined:"N" negates the result"C" makes it conditional and "(" delays it.

All operations relate to one result register (RR) or accumulator.

(Instruktionsliste, liste d'instructions)

Page 100: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 101Industrial Automation 2013

Instruction Lists (2)

Accumulator-based pogramming:•First, values are loaded into the accumulator (LD instruction)•Then, operations are executed with first parameter taken out of accumulator and second parameter of operand. •Result put in the accumulator, from where it can be stored (ST instruction)

Conditional executions or loops are supported by comparing operators like EQ, GT, LT, GE, LE, NE and jumps (JMP, JMPC, JMPCN, for the last two the accumulators value is checked on TRUE or FALSE)

Syntax:-each instruction begins on a new line and contains an operator and, depending on the type of operation, one or more operands separated by commas-before an instruction there can be a label, followed by a colon (:), as target for jumps-use brackets to define order of execution-comments must be placed last-empty lines are allowed.

(Instruktionsliste, liste d'instructions)

Page 101: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 102Industrial Automation 2013

Instruction Lists Example (3)

Instructions Lists is the most efficient way to write code, but only for specialists.

Otherwise, IL should not be used, because this language: • provides no code structuring• has weak semantics• is machine-dependent

End: ST speed3 (* result *)

Page 102: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 103Industrial Automation 2013

Instruction Lists Examples (4)

LabelsLD TRUE (*load TRUE into the accumulator*) ANDN BOOL1 (*execute AND with the negated value of the BOOL1 variable*) JMPC mark (*if the result was TRUE, then jump to the label "mark"*) LDN BOOL2 (*load the negated value of BOOL2 into the accumulator*) ST RES (*store the content of the accumulator in RES*) JMP continue (*jump to label “continue"*)

mark: LD BOOL2 (*save the value of *) ST RES (*BOOL2 in RES*)

continue:…

Brackets (without) (with)LD 2 LD 2MUL 2 MUL(2ADD 3 ADD 3

)ST RES (*7 is stored in RES*) ST RES (* 10 is stored in RES*)

Page 103: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 104Industrial Automation 2013

Instruction Lists Exercise(3)

What is the resulting speed3 for the following input?

End: ST speed3 (* result *)

a) Temp1 = 10Temp2 = 15Speed1 = 50Speed2 = 100

b) Temp1 = 10Temp2 = 5Speed1 = 50Speed2 = 100

Page 104: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 105Industrial Automation 2013

Exercise IEC 61131 Languages

http://tinyurl.com/IA61131https://docs.google.com/forms/d/1lGkFXQrlwlnoKc8gUg-_ESAdtVy-RgIOLnFbkIOGNa8/viewform

Instruction List

? ?

? ?

? ?

Function Block Diagram

A C

B

?

C:= ?

Structured Text

A B C

-| |--|/|----------------( )

Ladder Diagram

?

?

Page 105: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 106Industrial Automation 2013

Exercise IEC 61131 Languages

http://tinyurl.com/IA61131https://docs.google.com/forms/d/1lGkFXQrlwlnoKc8gUg-_ESAdtVy-RgIOLnFbkIOGNa8/viewform

Instruction List

LD A

ANDN B

ST C

Function Block Diagram

A C

B

AND

C:= A AND NOT B

Structured Text

A B C

-| |--|/|----------------( )

Ladder Diagram

Page 106: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 107Industrial Automation 2013

2.3.5.9 Programming environment

2.1 Instrumentation2.2 Control2.3 Programmable Logic Controllers

2.3.1 PLCs: Definition and Market2.3.2 PLCs: Kinds2.3.3 PLCs: Functions and construction

2.3.5 PLC Programming Languages2.3.5.1 IEC 61131 Languages2.3.5.2 Function blocks2.3.5.3 Program Execution2.3.5.4 Input / Output2.3.5.5 Structured Text2.3.5.6 Sequential Function Charts2.3.5.7 Ladder Diagrams2.3.5.8 Instructions Lists2.3.5.9 Programming environment

Page 107: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 108Industrial Automation 2013

Programming environment capabilities

A PLC programming environment (e.g. ABB ControlBuilder, Siemens Step 7, CoDeSys,...) allows the programmer to

- program in one of the IEC 61131 languages

- define the variables (name and type)

- bind the variables to the input/output (binary, analog)

- run simulations

- download programs and firmware to the PLC

- upload from the PLC (if provided, rare)

- monitor the PLC

- document and print

Page 108: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 109Industrial Automation 2013

61131 Programming environment

workstation

download

symbols

code

variable monitoring

andforcing

for debugging

firmware

network

configuration, editor, compiler, library

PLC

Page 109: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 110Industrial Automation 2013

Program maintenance

The source of the PLC program is generally on the laptop of the technician.

This copy is frequently modified, it is difficult to track the original in a process database, especially if several people work on the same machine.

Therefore, it would be convenient to be able to reconstruct the source programs out of the PLC's memory (called back-tracking, Rückdokumentation, reconstitution).

This supposes that the instruction lists in the PLC can be mapped directly to graphic representations -> set of rules how to display the information.

Names of variables, blocks and comments must be kept in clear text, otherwise the code, although correct, would not be readable.

For cost reasons, this is rarely implemented.

Page 110: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 111Industrial Automation 2013

Is IEC 61131 FB an object-oriented language ?

Not really: it does not support inheritance.

Blocks are not recursive.

But it supports interface definition (typed signals), instantiation, encapsulation, some form of polymorphism.

Some programming environments offer “control modules” for better object-orientation

Page 111: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 112Industrial Automation 2013

Limitations of IEC 61131

- No support to distribute execution of programs over several devices

- No support for event-driven. Blocks may be triggered by a Boolean variable (intentionally, for good reasons).

- If structured text increases in importance, better constructs are required (object-orientation)

Page 112: Programmable Logic Controllers 2.3 - 1 Industrial Automation 2013 2.3.1 PLCs: Definition and Market 2.1 Instrumentation 2.2 Control 2.3 Programmable Logic

Programmable Logic Controllers 2.3 - 113Industrial Automation 2013

Assessment

Which are programming languages defined in IEC 61131 and for what are they used ?

In a function block language, which are the two elements of programming ?

How is a PLC program executed and why is it that way ?

Draw a ladder diagram and the corresponding function block chart.

Draw a sequential chart implementing a 2-bit counter

Program a saw tooth waveform generator with function blocks

How are inputs and outputs to the process treated in a function block language ?

Write a program for a simple chewing-gum coin machine

Program a ramp generator for a ventilator speed control (soft start and stop in 5s)