introduzione alla norma iec 61131-3 - politecnico di...
TRANSCRIPT
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)
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
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
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)
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
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)
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à
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
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
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
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 *)(*************************)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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.
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
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à
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
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