introduzione alla norma iec 61131-3 - politecnico di...

34
1 22-23 Maggio 2001 1 Introduzione alla norma IEC 61131 Introduzione alla norma IEC 61131-3 Marco Mauri Politecnico di Milano P.zza Leonardo da Vinci, 32 Tel. 02-2399 3752 Fax: 02-2399 3703 E-mail: [email protected] 22-23 Maggio 2001 2 Introduzione alla norma IEC 61131 Sommario delle lezioni Breve introduzione alla norma Elementi sintattici introduttivi (Common Elements) SFC (Sequential Function Chart) I linguaggi di programmazione IL (Instruction List) ST (Structured Text) LD (Ladder Diagram) FBD (Function Block Diagram)

Upload: others

Post on 23-Sep-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

1

22-23 Maggio 2001 1

Introduzione alla norma IEC 61131

Introduzione alla norma IEC 61131-3

Marco MauriPolitecnico di Milano

P.zza Leonardo da Vinci, 32Tel. 02-2399 3752 Fax: 02-2399 3703

E-mail: [email protected]

22-23 Maggio 2001 2

Introduzione alla norma IEC 61131

Sommario delle lezioni• Breve introduzione alla norma • Elementi sintattici introduttivi (Common

Elements)• SFC (Sequential Function Chart)• I linguaggi di programmazione

– IL (Instruction List)– ST (Structured Text)– LD (Ladder Diagram)– FBD (Function Block Diagram)

Page 2: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

2

22-23 Maggio 2001 3

Introduzione alla norma IEC 61131

Introduzione• La norma IEC 61131 è una norma internazionale

applicabile ai controllori programmabili (PC)• Obiettivi della IEC 61131:

– Stabilire e identificare le principali caratteristiche dei PC e delle loro periferiche

– Specificare i requisiti minimi per le caratteristiche di funzionamento

– Definire una serie di linguaggi standard utilizzabili per la programmazione

– Fornire informazioni per l’utente– Definire le comunicazioni tra i PC e gli altri sistemi elettronici

22-23 Maggio 2001 4

Introduzione alla norma IEC 61131

Struttura della norma• Part 1: General Information (1992)• Part 2: Equipment requirements and tests (1992)• Part 3: Programmable Languages (1993)• Part 4: User Guidelines (1995)• Part 5: Messaging Service Specification (1998)• Part 6: Communication via Fieldbus (-)• Part 7: Fuzzy Control Programming (1997)• Part 8: Guidelines for the Implementation of (1998)

Languages for Programmable Controllers

Page 3: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

3

22-23 Maggio 2001 5

Introduzione alla norma IEC 61131

Lo scopo

• Armonizzare il modo in cui differenti progettisti vedono il controllo.

• Aumentare il numero di persone in grado di capire un programma PLC.

• Aumentare la qualità, affidabilità e riusabilitàdel software.

22-23 Maggio 2001 6

Introduzione alla norma IEC 61131

IEC 1131-3 Programming languagesUn linguaggio di programmazione rappresenta l’interfaccia tra il programmatore e il sistema di controllo. In altre parole quello che vede sullo schermo

Persone con formazione differente usano differenti approcci al controllo.

La norma IEC 1131-3 fornisce il supporto adeguato per team con persone di differenti livelli o background

Page 4: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

4

22-23 Maggio 2001 7

Introduzione alla norma IEC 61131

Il significato degli standard

�����������������������������������������������������������������������������������������������������������������������

��������������������������������������������������������������������

����������������������������������

��������������������������������������������������� �����������������

��������������������������������������������������� �����������������

����������������������������������

����������������������������������

��������������������������������������������������������������������

�����������������������������������������������������������������������������������������������������������������������

P a s t P re s e n t F u tu re

�����In te rn a tio n a lS ta n d a rd s�����

�����N a tio n a lS ta n d a rd s�����C o m p a n yS ta n d a rd s

Lo sviluppo della tecnologia ha bisogno degli standard

22-23 Maggio 2001 8

Introduzione alla norma IEC 61131

I benefici dello standard• Riduce lo spreco di risorse umane (nel training,

debugging, manutenzione e consulenza)

Page 5: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

5

22-23 Maggio 2001 9

Introduzione alla norma IEC 61131

I benefici dello standard• Riduce lo spreco di risorse umane (nel training,

debugging, manutenzione e consulenza)

Si focalizza sulla risoluzione dei problemi attraverso la riusabiltà del software (riduce investimento per le applicazioni e la dipendenza dai fornitori)

22-23 Maggio 2001 10

Introduzione alla norma IEC 61131

I benefici dello standard• Riduce lo spreco di risorse umane (nel training,

debugging, manutenzione e consulenza)• Si focalizza sulla risoluzione dei problemi

attraverso la riusabiltà del software (riduce investimento per le applicazioni e la dipendenza dai fornitori)

Riduce gli errori e le incomprensioni

Page 6: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

6

22-23 Maggio 2001 11

Introduzione alla norma IEC 61131

I benefici dello standard

Definisce tecniche di programmazione utilizzabili in più ambienti (controlli industriali)

• Riduce lo spreco di risorse umane (nel training,debugging, manutenzione e consulenza)

• Si focalizza sulla risoluzione dei problemi attraverso la riusabiltà del software (riduce investimento per le applicazioni e la dipendenza dai fornitori)

• Riduce gli errori e le incomprensioni

22-23 Maggio 2001 12

Introduzione alla norma IEC 61131

I benefici dello standard

Combina armonicamente differenti componenti provenienti da diversi compagnie,stati o progetti

• Riduce lo spreco di risorse umane (nel training,debugging, manutenzione e consulenza)

• Si focalizza sulla risoluzione dei problemi attraverso la riusabiltà del software (riduce investimento per le applicazioni e la dipendenza dai fornitori)

• Riduce gli errori e le incomprensioni• Definisce tecniche di programmazione utilizzabili

in più ambienti (controlli industriali)

Page 7: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

7

22-23 Maggio 2001 13

Introduzione alla norma IEC 61131

I benefici dello standard

Aumenta la connettività

• Riduce lo spreco di risorse umane (nel training,debugging, manutenzione e consulenza)

• Si focalizza sulla risoluzione dei problemi attraverso la riusabiltà del software (riduce investimento per le applicazioni e la dipendenza dai fornitori)

• Riduce gli errori e le incomprensioni• Definisce tecniche di programmazione utilizzabili

in più ambienti (controlli industriali)• Combina armonicamente differenti componenti

provenienti da diversi compagnie,stati o progetti

22-23 Maggio 2001 14

Introduzione alla norma IEC 61131

I benefici dello standard

Function "LIMIT"

Function "TEST"

Function Block"Turning"

Function Block"Feeding"

Function Block"Heating"

SoftwareLibrary

• Riduce lo spreco di risorse umane (nel training, debugging, manutenzione e consulenza)

• Si focalizza sulla risoluzione dei problemi attraverso la riusabiltà del software (riduce investimento per le applicazioni e la dipendenza dai fornitori)

• Riduce gli errori e le incomprensioni• Definisce tecniche di programmazione

utilizzabili in più ambienti (controlli industriali)• Combina armonicamente differenti

componenti provenienti da diversi compagnie,stati o progetti

• Aumenta la connettività

Page 8: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

8

22-23 Maggio 2001 15

Introduzione alla norma IEC 61131

La norma IEC 61131-3

Common Elements

Programming Languages

22-23 Maggio 2001 16

Introduzione alla norma IEC 61131

I linguaggi di programmazioneStructured Text (ST) : Linguaggio testuale di alto livello. Ha una sintassi simile al PASCAL

IF SPEED1 > 100.0 THENFlow_rate := 50.0 + offest_A1;

ELSEFlow_rate := 100.0; steam := ON

END_IF

Istruction List (IL) : Linguaggio testuale “Assembler like” di basso livello.

LD R1JMPC RESETLD PRESS1ST MAX_PRESS

RESET: LD 0ST A_X43

Page 9: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

9

22-23 Maggio 2001 17

Introduzione alla norma IEC 61131

I linguaggi di programmazione

Function Block Diagram (FBD) : Linguaggio grafico per raffigurare i segnali che entrano e escono dai function block

Ladder Diagram (LD) : Linguaggio grafico. Utilizza la logica a contatti

TONINPT

Q1High_press

T#30sOver_press

SW1

SW2

OVR1 RSTART

22-23 Maggio 2001 18

Introduzione alla norma IEC 61131

I linguaggi di programmazione

Sequential Function Chart (SFC) : Linguaggio grafico per raffigurare il comportamento del sistema di controllo

START N PUMPS Ready

Vacuum S DEPRESS Checks N PRESS_CHK

Page 10: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

10

22-23 Maggio 2001 19

Introduzione alla norma IEC 61131

La norma IEC 61131-3

Elementi sintattici introduttivi(Common Elements)

22-23 Maggio 2001 20

Introduzione alla norma IEC 61131

Aspetti della presentazione• Ci concentreremo su tutti gli aspetti sintattici

che non sono strettamente legati a un particolare linguaggio

• Questi aspetti fanno parte della sezione della norma detta Common Elements

• Ci si concentra quindi su: gestione delle variabili, Data Types, Definizione della Configurazione, concetto di POU(Programming Organisation Units) e Function Blocks

Page 11: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

11

22-23 Maggio 2001 21

Introduzione alla norma IEC 61131

Elementi introduttivi• Il set di caratteri che è possibile usare è definito nello

standard ISO 646 “Basic Code Table”• Gli identificatori che devono essere usati nel

linguaggio:– Non ammettono come primo carattere un numero– Non ci sono 2 o più caratteri di sottolineatura consecutivi– Non sono ammessi spazi

W123_PW W12_3PV aTemp1 _PROG1

W123__PW W12 3PV 1aTemp Q%TY12

22-23 Maggio 2001 22

Introduzione alla norma IEC 61131

Elementi introduttivi

• I commenti possono essere inseriti in tutti i linguaggi della norma

• Non sono ammessi commenti annidati

(* Activate pump *)(*************************)(* End of comments *)(*************************)

Page 12: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

12

22-23 Maggio 2001 23

Introduzione alla norma IEC 61131

Tipi di datoSINT Short int. 8 bit -128 a +127INT Integer 16 bit -32768 a 32767DINT Double int. 32 bit -231 a +231-1LINT Long int. 64 bit -263 a +263-1USINT Unsigned sh. Int 8 bit 0 a 255UINT Unsigned Int 16 bit 0 a 216-1UDINT Unsigned double Int 32 bit 0 a 232-1ULINT Unsigned long Int 64 bit 0 a 264-1

Se un tipo di dato è ambiguo si può far precedere da un prefissoINT#12Esempio:

22-23 Maggio 2001 24

Introduzione alla norma IEC 61131

Tipi di datoREAL real number 32 bit ± 10 ±38

LREAL Long real number 64 bit ± 10 ±308

STRING Stringa di caratteri (i.d.)

• Stringhe di bitBOOL stringa di 1 bitBYTE stringa di 8 bitWORD stringa di 16 bitDWORD stringa di 32 bitLWORD stringa di 64 bit

Page 13: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

13

22-23 Maggio 2001 25

Introduzione alla norma IEC 61131

Tipi di dato• DurataTIME time duration (i.d.)

es: T#12d3h3s36ms• Data e orarioDATE data (i.d.)TIME_OF_DAY ora (i.d)DATE_AND_TIME data e ora (i.d.)

es: D#1994-06-10TOD#10:10:30DT#2000-10-12-15:15:55.40

22-23 Maggio 2001 26

Introduzione alla norma IEC 61131

Tipi di dato

• La norma definisce per ogni tipo di dato un valore iniziale

• Per i tipi standard:– 0 per tutti i valori numerici– stringa vuota per le stringhe– 0001-01-01 per le date

• Nella dichiarazione di una variabile è comunque possibile sovrascrivere il valore iniziale di default del tipo

Page 14: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

14

22-23 Maggio 2001 27

Introduzione alla norma IEC 61131

Tipi di dato

• Si possono definire alcuni tipi derivati– Semplici– Structured data types– Enumerated data types– Sub-ranges data types– Array data types

• Per i tipi derivati si possono definire valori iniziali che modificano il valore di default definito dalla norma.

22-23 Maggio 2001 28

Introduzione alla norma IEC 61131

Tipo di dato - DERIVATITYPE PRESSURE: REAL := 1.0 Tipo derivato sempliceEND_TYPE

TYPE PRESSURE SENSOR: Tipo derivato strutturatoSTRUCT

INPUT: PRESSURE := 2.0;STATUS: BOOL:= 0;CALIBRATION: DATE := DT#1994-01-10;HIGH_LIMIT: REAL := 30.0;ALARM_COUNT: INT := 0;

END_STRUCTEND_TYPE

Page 15: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

15

22-23 Maggio 2001 29

Introduzione alla norma IEC 61131

Tipo di dato - DERIVATI

TYPE DEVICE_MODE: Tipo derivato enumerativo(INITIALISING, RUNNING, STANDBY, FAULTY):= STANDBY;

END_TYPE

TYPE MOTOR_VOLTS: Tipo derivato subrangeINT(-6..+12);

END_TYPE

TYPE VESSEL_PRESS_DATA: Tipo derivato arrayARRAY[1..20] OF PRESSURE

END_TYPE

22-23 Maggio 2001 30

Introduzione alla norma IEC 61131

Variabili

• La norma definisce un vasto set di tipi di variabili ma ammette anche la definizione di nuovi tipi da parte dell’utente

• Si possono poi individuare poi diverse categorie secondo cui organizzare i vari tipi di variabili

Page 16: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

16

22-23 Maggio 2001 31

Introduzione alla norma IEC 61131

Variabili• All’inizio di ogni POU è possibile dichiarare nuove

variabili• Le variabili locali, cioè visibili solo all’interno della

POU, sono dichiarate utilizzando la keyword VAR

VARvel : REAL;allarme: BOOL;

END_VAR

22-23 Maggio 2001 32

Introduzione alla norma IEC 61131

Variabili• Variabili di ingresso: variabili che consentono alle

POU di ricevere dati dall’esternoVAR_INPUT

ERRORE: REAL;VAL_MASSIMO: REAL;

END_VAR

• Variabili di uscita: variabili che consentono di alle POU di scambiare dati con l’esterno

VAR_OUTPUTPOSIZIONE_VALVOLA: BOOL;

END_VAR

Page 17: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

17

22-23 Maggio 2001 33

Introduzione alla norma IEC 61131

Variabili• Alcune variabili possono sia essere in ingresso che

poi essere il risultato dell’elaborazione della POU. Si parla allora di input_output variables

VAR_IN_OUTSTATO: REAL;

END_VAR

• Sono variabili globali quelle definite a livello diconfiguration, resource, o program

VAR_GLOBALCONTATORE: INT;

END_VAR

22-23 Maggio 2001 34

Introduzione alla norma IEC 61131

Variabili• E’ possibile definire delle variabili external per

accedere a variabili globali definite a livello di configurazione

VAR_EXTERNALCONTATORE: INT;

END_VAR

• E’ possibile definire delle variabili temporanee che vengono poste in un area temporanea della memoria (es. uno stack)

VAR_TEMPRESULT : REAL

END_VAR

Page 18: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

18

22-23 Maggio 2001 35

Introduzione alla norma IEC 61131

Variabili• E’ poi anche possibile direttamente referenziare l’allocazione in

memoria%I100 (* Input memory bit 100 *)%IW122 (* Input memory word 122 *)%MW150 (* Memory location word 150 *)

Memoria internaM

Locazione di memoria di outputQLocazione di memoria di inputI

Long Word (64 bits)LDouble Word(32 bits)DWord(16 bit)W

Byte (8bit)BBitX

22-23 Maggio 2001 36

Introduzione alla norma IEC 61131

Variabili - ATTRIBUTI• RETAIN : il valore di questa variabile viene mantenuto anche in

mancanza di alimentazione del PLCVAR_OUT RETAIN

Speed_profile: ARRAY[1..4] OF REAL;END_VAR

• CONSTANT: la variabile non può essere modificataVAR CONSTANT

Gear_ratio : SINT := 12;END_VAR

• AT : serve ad allocare la variabile ad un preciso indirizzoVAR

SCAN_DATA AT %IW10: ARRAY[1..8] OF SINT;END_VAR

Page 19: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

19

22-23 Maggio 2001 37

Introduzione alla norma IEC 61131

Il Modello Software

Elementi sintattici introduttivi(Common Elements)

22-23 Maggio 2001 38

Introduzione alla norma IEC 61131

Il modello software - CONFIGURATIONConfiguration

Communication Function

Page 20: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

20

22-23 Maggio 2001 39

Introduzione alla norma IEC 61131

Il modello software - CONFIGURATION• La configurazione definisce il software per un PLC

completo o di un sistema di controllo programmabile• Una configurazione è specifica per un particolare tipo

di PLC e per una particolare configurazione hardware che include:– Risorse di calcolo (schede con certi tipi di microprocessore)– Indirizzi di memoria per i canali di input o output– Caratteristiche di sistema (es. numero max di task diversi

ammissibili e tempo di esecuzione delle istruzioni)• La definizione della configurazione comincia con la

parola chiave CONFIGURATION e termina con la parola chiave END_CONFIGURATION

22-23 Maggio 2001 40

Introduzione alla norma IEC 61131

Il modello software - CONFIGURATIONCONFIGURATION unit_1_config

VAR_GLOBALG_speed_setpoint : REAL;G_RUNuP_Time : TIME;G_Log_Data : ARRAY[1..100] OF INT;

END_VARRESOURCE Res1 ON Proc_386VAR_GLOBAL

ALARM_FLAG : BOOL;END_VARTASK IO_SCAN_TASK

(INTERVAL:=t#100ms, PRIORITY:=0);TASK CONTROL_TASK

(INTERVAL:=t#200ms, PRIORITY:=1);TASK PROG_TASK

(INTERVAL:=t#400ms, PRIORITY:=2);

PROGRAM turbine1 WITH PROG_TASK: turbine(speed_setpoint := G_speed_setpoint,runUp_time := G_runUp_time,speed_pv := %ID200,loop1 WITH CONTROL_TASK,ramp1 WITH CONTROL_TASK,io_scanner1 WITH IO_SCAN_TASK);END_RESOURCERESOURCE Res2 ON Proc_8044…..END_RESOURCEVAR_ACCESS…END_VAR

END_CONFIGURATION

Page 21: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

21

22-23 Maggio 2001 41

Introduzione alla norma IEC 61131

Il modello software - RESOURCEConfiguration

Communication Function

Resource Resource

22-23 Maggio 2001 42

Introduzione alla norma IEC 61131

Il modello software - RESOURCE• Una risorsa definisce il supporto per l’esecuzione dei programmi

IEC.• Una risorsa è definita all’interno di una configurazione usando la

parola RESOURCE seguita da un identificatore e dal tipo di processore sulla quale la risorsa deve essere caricata.

• La definizione di risorsa contiene la definizione di:– Variabili globali– Acces path ovvero le variabili che permettono l’accesso remoto– Programmi– Task e function blocks

• La definizione è conclusa dalla parola chiave END_RESOURCE

Page 22: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

22

22-23 Maggio 2001 43

Introduzione alla norma IEC 61131

Il modello software - TASK

Task Task Task Task

Resource ResourceConfiguration

Communication Function

22-23 Maggio 2001 44

Introduzione alla norma IEC 61131

Il modello software - TASK • Generalmente le differenti parti di un programma sono eseguite

a differenti velocità determinate dalle caratteristiche del sistema.

• La dichiarazione di una task è introdotta dalla parola chiave TASK, dall’identificatore della task e dal valore dei seguenti parametri:

La priorità del task. 0 è la più alta.UINTPRIORITY

Il periodo che passa tra due esecuzioni successive

TIMEINTERVAL

Passando da 0 a 1 causa l’esecuzione del task una volta sola

BOOLSINGLEParametro Tipo Descrizione

Page 23: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

23

22-23 Maggio 2001 45

Introduzione alla norma IEC 61131

Il modello software - TASK

TASK IO_SCAN_TASK (INTERVAL:=t#100ms, PRIORITY:=0);TASK CONTROL_TASK (INTERVAL:=t#200ms, PRIORITY:=1);TASK PROG_TASK (SINGLE := LogFlag , PRIORITY:=2);

Esempio di dichiarazione dei task:

22-23 Maggio 2001 46

Introduzione alla norma IEC 61131

Il modello software - SCHEDULING• Non-preemptive Scheduling: quando un task è in

esecuzione non può essere interrotto. Al termine viene eseguito il task in attesa a priorità più alta. – E’ possibile che alcuni task non vengano eseguiti– La progettazione di un sistema di questo tipo è molto più facile– Ha caratteristiche scarse per creare controlli stabili

• Preemptive Scheduling: i task a priorità più bassa possono essere interrotti da task ad alta priorità che sono pronti per l’esecuzione– E’ adatto ai sistemi di controllo in cui è necessario che alcuni

algoritmi vengano eseguiti in istanti regolari e precisi

Page 24: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

24

22-23 Maggio 2001 47

Introduzione alla norma IEC 61131

Il modello software - SCHEDULING

100 200 300 400 500 600

100 200 300 400 500 600

Task A, Priority 0,Interval 100msTask B, Priority 1,Interval 200msTask C, Priority 2,Interval 300ms

Non-preemptive Scheduling

Preemptive Scheduling Task C interrotto

22-23 Maggio 2001 48

Introduzione alla norma IEC 61131

Il modello software - PROGRAM

Task

Program Program

Task

Program

Task

Program

Task

Resource ResourceConfiguration

Communication Function

Page 25: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

25

22-23 Maggio 2001 49

Introduzione alla norma IEC 61131

Il modello software - PROGRAM• Il concetto di programma è quello di un blocco

software di considerevoli dimensioni (ad es.il controllo di una parte dell’impianto)

• Può contenere la dichiarazione di variabili globali e ad allocazione fissa

• Può anche fare riferimento ad access variables• Non può contenere istanze di altri programmi• Può contenere istanze di Function Blocks che

possono essere eseguiti da task diversi• Il corpo del programma può essere definito con uno

dei linguaggi definiti dalla norma.

22-23 Maggio 2001 50

Introduzione alla norma IEC 61131

Il modello software - PROGRAM• La definizione è introdotta con le parole chiave

PROGRAM e END_PROGRAM• L’istanza di un programma può operare utilizzando

come variabili di ingresso variabili dichiarate a livello di risorsa o globali

• Può anche avere come ingresso variabili che sono state dichiarate ad allocazione fissa

Page 26: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

26

22-23 Maggio 2001 51

Introduzione alla norma IEC 61131

Il modello software - PROGRAMPROGRAM fermeter

VAR_INPUTReagent_Code : INT;Sterilise : BOOL;FermentPeriod : TIME;

END_VARVAR_OUTPUT

Yield : REAL;Status : WORD;

END_VARVARPh_loop, Temp_Loop : PID;Phase : INT :=1;END_VAR…END_PROGRAM

22-23 Maggio 2001 52

Introduzione alla norma IEC 61131

Il modello software - FB

Global and direct variables

Access path

Executioncontrolpath

VariableaccesspathFBTask

Program ProgramFB FB

Task

Program

Task

ProgramFB FB

Task

Resource ResourceConfiguration

Communication Function

FunctionBlock

Variable

Page 27: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

27

22-23 Maggio 2001 53

Introduzione alla norma IEC 61131

Il modello software - FB• Un FUNCTION BLOCK (FB) è caratterizzato da:

– variabili di ingresso– variabili di uscita– variabili locali– variabili locali che identificano il suo stato– un algoritmo espresso utilizzando uno dei linguaggi

permessi dalla norma • Le variabili interne del FB non sono accessibili

dall’esterno• E’ possibile accedere ai valori correnti delle variabili

di ingresso e uscita di un FB

22-23 Maggio 2001 54

Introduzione alla norma IEC 61131

Il modello software - FB• Si deve distinguere tra dichiarazione e istanziazione

del FB• Istanze di un FB possono essere usate all’interno di

altri FB• Le istanze sono dichiarate come dichiarazione di

variabili• Un’istanza può essere passata ad un altra POU

come parametro• La norma definisce una serie di FB standard che

dovrebbero essere presenti in ogni sw.• Possono essere definiti dei FB dall’utente

Page 28: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

28

22-23 Maggio 2001 55

Introduzione alla norma IEC 61131

Il modello software – FB: un esempio

COUNTER

MODE OUTModeType

FUNCTION_BLOCK COUNTERVAR_INPUT

MODE: Mode_Type := RESET;END_VARVAR_OUTPUT

OUT : INT := 0;END_VAR

(* Definizione dell’algoritmo *)IF MODE = RESET THEN

OUT:=0;ELSEIF MODE = COUNT THEN

OUT := OUT + 1;END_IF;

END_FUNCTION_BLOCK

TYPEMode_Type: (RESET, COUNT, HOLD) := RESET;

END_TYPE

…VAR

C1 : COUNTER;END_VAR… ecc.

Istanziazione:

22-23 Maggio 2001 56

Introduzione alla norma IEC 61131

Il modello software – FUNCTION• Spesso le FUNCTION sono scambiate per FB• Una FUNCTION è un elemento software che con un

particolare set di input produce un risultato primario. (ad es. la funzione SIN())

• Le FUNCTION a differenza dei FB non hanno uno stato interno: producono sempre lo stesso risultato per medesimi ingressi.

• Una funzione ha solo un output (per controllare il flusso dati nei linguaggi grafici ci sono un input e output addizionali, EN ed ENO)

Page 29: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

29

22-23 Maggio 2001 57

Introduzione alla norma IEC 61131

Il modello software – FUNCTIONAdd

EN ENO

A1

B1

Sqrt

EN ENO

X1

CalcDone

Controllo flusso dati

Un emendamento del 1993 consente anche ai FB di avere a disposizione gli ingressi e uscite addizionali EN e ENO

22-23 Maggio 2001 58

Introduzione alla norma IEC 61131

Il modello software – FUNCTION• I parametri ad una funzione possono essere passati

“by reference” usando la parola chiave VAR_IN_OUT• E’ consentito l’overload delle FUNCTION. Per

prodotti PLC che non supportano questa funzionalità lo standard specifica di far seguire al nome della funzione il tipo trattato (es. SQRT_REAL o SQRT_LREAL)

• La norma specifica un insieme di FUNCTION standard che ogni programma commerciale dovrebbe prevedere

Page 30: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

30

22-23 Maggio 2001 59

Introduzione alla norma IEC 61131

Il modello software – FUNCTION• Quando una funzione deve essere chiamata (in ST) il

nome del parametro deve essere specificato:FUNCTION AVE_REAL : REAL

VAR_INPUTINPUT1, INPUT2 : REAL

END_VARAVE_REAL := (INPUT1 + INPUT2)/2

END_FUNCTION

Esempio:

…AVE1 = AVE_REAL( INPUT1 := 3.1, INPUT2 := 10.0 )…

• Molte delle funzioni standard non hanno dei nomi dei parametri formali e quindi possono essere chiamate semplicemente con una lista di valori.

22-23 Maggio 2001 60

Introduzione alla norma IEC 61131

Il modello software - POU• Lo standard definisce program, function blocks e function come

Program Organisation Units (POU).• Le POU sono componenti dal comportamento ripetitivo che

possono essere usate in differenti parti di una applicazione• Le POU incoraggiano la riusabilità del codice dal macro-livello

con i program al micro-livello con le function• A differenza dei linguaggi di alto livello, la IEC 1131-3

impedisce l’utilizzo di POU ricorsive. Questo perché è difficile testare il software ricorsivo e non è predicibile il suo comportamento real-time.

• Program e Function blocks possono essere descritte con ST, IL, FBD, LD, SFC. Le function con ST, IL, FBC, LD.

Page 31: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

31

22-23 Maggio 2001 61

Introduzione alla norma IEC 61131

Il modello software - POU

Elaborazione di dati frequentemente utilizzata (es. SIN)

FunzioneFunction

Strumento per il riutilizzo del codice degli algoritmi di controllo (es. PID)

Istanza di un Function block

Function Blocks

Fornisce un riutilizzo del software ad alto livello (es. il controllo di una caldaia)

Istanza di programmaProgram

Tipo Replicata come :

22-23 Maggio 2001 62

Introduzione alla norma IEC 61131

Il modello software – DIFFERENZE

Global and direct variables

Access path

Executioncontrolpath

Variableaccess pathFBTask

Program ProgramFB FB

Task

Program

Task

ProgramFB FB

Task

Resource ResourceConfiguration

Communication Function

FunctionBlock

Variable

Page 32: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

32

22-23 Maggio 2001 63

Introduzione alla norma IEC 61131

Il modello software – DIFFERENZE• La struttura tradizionale di un PLC era composta da

una unica risorsa, un unico task e un unico programma.

• La struttura proposta dalla norma è molto più generale e si può applicare anche a sistemi molto evoluti.

PLC singolo

Configuration ResourceProgram

22-23 Maggio 2001 64

Introduzione alla norma IEC 61131

Il modello software - MAPPING

Configuration ResourceProgram

Multi processor PLC PLC distribuiti su una rete ad alta velocità

Page 33: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

33

22-23 Maggio 2001 65

Introduzione alla norma IEC 61131

Il modello software – APPLICAZIONE• Il concetto di APPLICAZIONE non è definito nella

norma, ma è una importante parte del modello software se consideriamo PLC che sono in grado di controllare diversi parti del sistema.

• Un applicazione ad esempio potrebbe includere tutti i controlli necessari per lo start-up o lo shut-down di una parte del sistema

• Le applicazioni possono essere eseguite indipendentemente solo se caricate su differenti RESOURCE.

22-23 Maggio 2001 66

Introduzione alla norma IEC 61131

Il modello software – APPLICAZIONE

Configuration

Resource Resource Resource Resource

Program Program Program Program Program

Application A Application B Application C

Page 34: Introduzione alla norma IEC 61131-3 - Politecnico di Milanodocenti.etec.polimi.it/IND32/Didattica...Introduzione alla norma IEC 61131 Lo scopo • Armonizzare il modo in cui differenti

34

22-23 Maggio 2001 67

Introduzione alla norma IEC 61131

Una progettazione gerarchica

Automation

application

Start : BOOL;Emergency : BOOL;Limit : INT;

PROGRAM

GLOBAL

LocalType

FUNCTION

INPUT

LocalType

FUNCTION_BLOCK

INPUT OUTPUT IN_OUT EXTERNAL

LocalType