Schneider Electric PL7 Micro/Junior/Pro, Descrizione del software PL7 Guida utente
تبلیغات
تبلیغات
Manuale di riferimento
PL7 Micro/Junior/Pro
Descrizione del software PL7
07/2008 ita www.schneider-electric.com
2
Struttura della documentazione
Struttura della documentazione
In breve Questo manuale si compone di due volumi: z z z
Volume 1: Descrizione del software PL7 z z
Generalità
Ladder z z z
Linguaggio lista d'istruzioni
Linguaggio letterale strutturato
Linguaggio Grafcet
Blocchi funzione DFB z z Moduli funzionali
Volume 2: Descrizione dettagliata di istruzioni e funzioni z z
Istruzioni di base
Istruzioni avanzate z Oggetti bit e parole sistema
Volume 3: Appendici z z z z z z
Differenze tra PL7-2/3 e PL7 Micro/Junior
Promemoria
Parole riservate
Conformità con la norma CEI1131-3
Serveur OLE Automation
Prestazioni
35015370.01 07/2008
3
Struttura della documentazione
4
35015370.01 07/2008
Indice
35015370.01 07/2008
Informazioni su... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Parte I
Descrizione del software PL7 . . . . . . . . . . . . . . . . . . . . . 13
Capitolo 1
Presentazione del software PL7 . . . . . . . . . . . . . . . . . . . . . . . . 15
Capitolo 2
Descrizione degli oggetti linguaggi PL7. . . . . . . . . . . . . . . . . . 25
Indirizzamento degli oggetti di moduli di ingressi/uscite del TSX 37. . . . . . . . . . 31
Indirizzamento degli oggetti dei moduli di ingresso/uscita in rack. . . . . . . . . . . . 34
Indirizzamento degli oggetti linguaggio dei moduli remoti su bus FIPIO. . . . . . . 37
Indirizzamento degli oggetti di linguaggio associati al bus AS-i . . . . . . . . . . . . . 40
Capitolo 3
Memoria utente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5
6
Caratteristiche della memoria dei PLC TSX 37 . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Caratteristiche della memoria dei PLC TSX/PCX 57 10/15/20/25/26/28 . . . . . . . 72
Caratteristiche della memoria dei PLC TSX/PCX 57 30/35/36 . . . . . . . . . . . . . . 75
Caratteristiche della memoria dei PLC TSX 57 453/4823 . . . . . . . . . . . . . . . . . . 77
Capitolo 4
Modalità di funzionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Trattamento su interruzione e ripresa alimentazione. . . . . . . . . . . . . . . . . . . . . . 80
Capitolo 5
Struttura software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.1
Descrizione delle sezioni e dei sottoprogrammi. . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.2
5.3
Esecuzione in sequenza dei task in una struttura multitask . . . . . . . . . . . . . . . 110
Assegnazione dei canali di ingressi/uscite ai task master e rapido . . . . . . . . . . 111
5.4
Parte II
Descrizione dei linguaggi PL7 . . . . . . . . . . . . . . . . . . . . 119
Capitolo 6
Ladder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Presentazione generale del linguaggio Ladder . . . . . . . . . . . . . . . . . . . . . . . . . 122
35015370.01 07/2008
Regola di programmazione dei blocchi funzione. . . . . . . . . . . . . . . . . . . . . . . . 130
Regole di programmazione dei blocchi operazione . . . . . . . . . . . . . . . . . . . . . 131
Capitolo 7
Linguaggio lista d'istruzioni . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Presentazione generale del linguaggio lista d'istruzioni . . . . . . . . . . . . . . . . . . 136
Commento di una frase in linguaggio lista d'istruzioni . . . . . . . . . . . . . . . . . . . 139
Presentazione delle istruzioni in linguaggio lista d'istruzioni . . . . . . . . . . . . . . . 140
Regola di utilizzo delle parentesi in linguaggio lista d'istruzioni . . . . . . . . . . . . 144
Descrizione delle istruzioni MPS, MRD e MPP . . . . . . . . . . . . . . . . . . . . . . . . . 146
Principi di programmazione dei blocchi funzione predefiniti . . . . . . . . . . . . . . . 148
Regole di esecuzione di un programma lista d'istruzioni . . . . . . . . . . . . . . . . . 150
Capitolo 8
Langage litteral structuré. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Presentazione del linguaggio letterale strutturato . . . . . . . . . . . . . . . . . . . . . . . 152
Struttura di un programma in linguaggio letterale strutturato . . . . . . . . . . . . . . 153
Label di una frase in linguaggio letterale strutturato . . . . . . . . . . . . . . . . . . . . . 154
Commento di una frase in linguaggio letterale strutturato. . . . . . . . . . . . . . . . . 155
Istruzioni su programma e istruzioni specifiche. . . . . . . . . . . . . . . . . . . . . . . . . 163
Struttura di controllo condizionale WHILE...END_WHILE. . . . . . . . . . . . . . . . . 167
Struttura di controllo condizionale REPEAT...END_REPEAT. . . . . . . . . . . . . . 168
Struttura di controllo condizionale FOR...END_FOR . . . . . . . . . . . . . . . . . . . . 169
Regole di esecuzione di un programma letterale strutturato. . . . . . . . . . . . . . . 171
Capitolo 9
Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
9.1
9.2
Utilizzo delle divergenze e delle convergenze OR . . . . . . . . . . . . . . . . . . . . . . 186
35015370.01 07/2008
7
8
Utilizzo delle divergenze e delle convergenze AND . . . . . . . . . . . . . . . . . . . . . 187
9.3
Programmazione delle azioni e delle condizioni . . . . . . . . . . . . . . . . . . . . . . . . 193
Programmazione delle azioni associate alle fasi . . . . . . . . . . . . . . . . . . . . . . . . 194
Programmazione delle azioni all'attivazione o alla disattivazione . . . . . . . . . . . 196
Programmazione delle ricettività associate alle transizioni . . . . . . . . . . . . . . . . 199
Programmazione delle ricettività in linguaggio lista d'istruzioni . . . . . . . . . . . . . 201
Programmazione delle ricettività in linguaggio letterale strutturato . . . . . . . . . . 202
9.4
9.5
Funzionamento del trattamento sequenziale . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
35015370.01 07/2008
Capitolo 10
Blocchi funzione DFB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Definizione degli oggetti dei blocchi funzione tipo DFB. . . . . . . . . . . . . . . . . . . 228
Regola di utilizzo dei DFB in un programma . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Utilizzo di un DFB in un programma in linguaggio Ladder . . . . . . . . . . . . . . . . 239
Utilizzo di un DFB in un programma in linguaggio lista d'istruzioni o letterale . 241
Esempio di programmazione del blocco funzione DFB. . . . . . . . . . . . . . . . . . . 243
Indice analitico
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
35015370.01 07/2008
9
10
35015370.01 07/2008
Informazioni su...
In breve
Scopo del documento
Nota di validità
Questo manuale descrive le istruzioni e gli oggetti indirizzabili del linguaggio di programmazione dei PLC programmabili Micro, Premium e Atrium.
L'aggiornamento di questa pubblicazione integra le funzionalità di PL7 V4.5 e consente inoltre di utilizzare quelle delle versioni precedenti di PL7.
Commenti utente Inviare eventuali commenti all'indirzzo e-mail [email protected]
35015370.01 07/2008
11
Informazioni su...
12
35015370.01 07/2008
Descrizione del software PL7
I
In breve
Contenuto di questa parte
Contenuto di questa parte
Questa parte presenta il software PL7. Descrive le nozioni elementari necessarie alla programmazione dei PLC Micro e Premium.
Questa parte contiene i seguenti capitoli:
Capitolo
1
2
3
4
5
Titolo del capitolo
Presentazione del software PL7
Descrizione degli oggetti linguaggi PL7
Memoria utente
Modalità di funzionamento
Struttura software
Pagina
13
35015370.01 07/2008
Descrizione del software PL7
14
35015370.01 07/2008
Presentazione del software PL7
1
In breve
Contenuto di questo capitolo
Contenuto di questo capitolo
Questo capitolo presenta le caratteristiche principali del software PL7.
Questo capitolo contiene le seguenti sottosezioni:
Argomento
Presentazione del software PL7
Presentazione dei linguaggi PL7
Struttura software PL7
Moduli funzionali
Pagina
35015370.01 07/2008
15
Presentazione del software PL7
Presentazione del software PL7
Generalità La progettazione e l'attuazione delle applicazioni per i PLC Micro e Premium avvengono tramite il software PL7.
Vengono proposti 3 tipi di software PL7: z z z
PL7 Micro
PL7 Junior
PL7 Pro
Software PL7
Convenzioni di scrittura
La tabella seguente mostra le differenze tra i 3 tipi di software.
Utilità PL7 Micro
Programmazione/Ottimizzazione/Uso M
Blocchi funzione utente Creazione -
Utilizzo -
Runtime Display Creazione
Utilizzo
-
-
Moduli funzionali -
Blocco funzione DFB di diagnostica -
PL7 Junior
M/P/A
-
P/A
-
-
-
M/P/A
Leggenda:
A = PLC Atrium
M = PLC Micro
P = PLC Premium
- = non disponibile
PL7 Pro
M/P/A
P/A
P/A
M/P/A
M/P/A
P/A
P/A
Nel seguito del documento: z z l'annotazione PL7 o software PL7 viene utilizzata per designare indifferentemente i 3 tipi di software PL7 Micro, PL7 Junior e PL7 Pro, l'annotazione Premium è utilizzata per designare indifferentemente i processori
TSX 57, PMX 57 e PCX 57.
16
35015370.01 07/2008
Presentazione del software PL7
Presentazione dei linguaggi PL7
Generalità Il software PL7 propone 4 linguaggi di programmazione.
z z z z
Ladder lista d'istruzioni letterale strutturato
Grafcet
La tabella seguente riporta l'uso possibile dei linguaggi a seconda del tipo di PLC.
Linguaggio
Ladder
Lista d'istruzioni X
Letterale strutturato X
Grafcet
PLC Micro
X
X (tranne le macrofasi)
X
X
PLC Premium
X
X
Leggenda:
X = disponibile
- = non disponibile
Questi linguaggi possono essere utilizzati contemporaneamente nella stessa applicazione. Una sezione di programma può essere scritta in Ladder, un'altra in letterale…
Questi linguaggi attuano: z z z dei blocchi funzione predefiniti (Temporizzazioni, Contatori,…), delle funzioni specifiche (analogica, comunicazione, conteggio…), delle funzioni specifiche (gestione del tempo, stringa di caratteri…).
Gli oggetti del linguaggio possono essere simboleggiati tramite l'editor di variabili, oppure in linea negli editor di programma.
Il software PL7 è conforme alla norma IEC 1137-3 (si veda (Vedere Manuale de riferimento, Volume 2 e 3) ).
35015370.01 07/2008
17
Presentazione del software PL7
Ladder Il linguaggio Ladder (LD) è un linguaggio grafico. Permette di trascrivere schemi con relè e si adatta al trattamento combinatorio.
Offre i simboli grafici di base: contatti, bobine, blocchi.
La scrittura dei calcoli numerici è possibile all'interno dei blocchi operazioni.
Esempio di rung
LD : MAST - CHART
%L100
(* Attesa di
%I1.0
%M12 %I1.7
%TM4.Q %M17
%I1.10
%Q2,3 %M27 %TM0
IN TM Q
MODE TON
TB: 1 min
TMP: 9999
MODIF: Y
%M25 %MW0.X
OPERATE
%MW15:=%MW18+500
%M2 %I1.4
%Q2,5
SR2
C
F2 F3
P
F4
N
F5 F6 F7
X
F8 F9 F10 F11
S
F12
R
S.F1
S.F2
OPER
S.F3
COHP
H
S.F4
COHP
S.F5
S.F6
FB
S.F7
F (...)
S.F8
18
35015370.01 07/2008
Presentazione del software PL7
Linguaggio lista d'istruzioni
Il linguaggio lista d'istruzioni (IL) è un linguaggio "macchina" booleano che consente di scrivere i trattamenti logici e numerici.
Esempio di programma in linguaggio lista d'istruzioni
IL : MAST - SR1
! %L0 :
! %L5 :
! %L10 :
LD
ANDN
OR (
AND
)
AND
ST
LD
ANDN
ANDN
IN
LD
AND
AND
[ %MW15 :=
LD
AND
SR2
%I1.0
%M12
%TM4.Q
%M17
%I1.7
%Q2,5
%I1.10
%Q2,3
%M27
%TM0
%TM0.Q
%M25
%MW0:X5
%MW18+500]
%I1.2
%I1.4
Linguaggio letterale strutturato
Il linguaggio letterale strutturato (ST) è un linguaggio di tipo "informatico" che consente la scrittura strutturata dei trattamenti logici e numerici.
Esempio di programma in linguaggio letterale strutturato
!
ST : MAST - SR10
( * Ricerca del primo elemento non nullo in una tabella di 32 parole
Determinazione del suo valore (%MW10), del suo rango (%MW11).
Questa ricerca avviene se %M0 è impostato a 1
%M1 è impostato a 1 se esiste un elemento non nullo, altrimenti è impostato a 0 * )
IF %M0 THEN
FOR %MW 99 := 0 TO 31 DO
IF %MW100 [%MW99]< > 0 THEN
%MW 10 : =%MW100 [%MW99];
%MW 11 : =%MW 99;
%M1 : = TRUE;
EXIT; ( *Uscita dal loop FOR*)
ELSE
%M1 : = FALSE;
END_IF;
END_FOR;
ELSE
%M1 : = FALSE;
END_ IF;
35015370.01 07/2008
19
Presentazione del software PL7
Linguaggio
Grafcet
Il linguaggo Grafcet consente di rappresentare graficamente e in modo strutturato il funzionamento di un'automazione sequenziale.
Esempio di programma in linguaggio Grafcet.
0
1
2
4
5
8
GRAFCET : MAST - CHART
6
7
3
10
11
12
15
13
14
F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
20
35015370.01 07/2008
Presentazione del software PL7
Struttura software PL7
Generalità Il software PL7 propone due tipi di struttura: z z
Monotask: si tratta della struttura semplificata proposta per impostazione predefinita, in cui viene eseguito un solo task master composto da un programma, costituito da più sezioni e da sottoprogrammi.
Mutitask: questa struttura, che si adatta meglio ad applicazioni in tempo reale di prestazioni elevate, si compone di un task master, di uno rapido e di trattamenti eventi prioritari.
35015370.01 07/2008
21
Presentazione del software PL7
Principio I task master e rapido di un programma PL7 si compongono di più parti dette sezioni e sottoprogrammi.
Ogni sezione può essere programmata nel linguaggio adatto al trattamento da realizzare.
L'illustrazione seguente riporta un esempio di come è strutturato un programma
PL7.
Task master MAST Task rapido FAST trattamenti eventi
Sas (LD)
Sezione in
Ladder Alarm_sas (ST)
Sezione in letterale
EVT0
Forno_1
Sorv_Sec (LD)
Sezione in
Ladder
Sas (LD)
CHART
Sas (LD)
Sezione in
Grafcet Allarm_Forno
(ST)
Sezione in letterale
Sas (LD)
Sezione in
Ladder
Pulizia (ST)
Sezione in letterale
Sottoprogr ammi
SR0
Sottoprogr ammi
SR0
Tale struttura si compone di sezioni e consente di creare un programma strutturato e di generare o incorporare facilmente dei moduli di programma.
I sottoprogrammi possono essere chiamati da qualsiasi sezione del task a cui appartengono o da altri sottoprogrammi dello stesso task.
22
35015370.01 07/2008
Presentazione del software PL7
Moduli funzionali
Generalità Il software PL7 Pro permette di strutturare un'applicazione per PLC Premium in moduli funzionali.
Un modulo funzionale è un raggruppamento di elementi di programma destinati a realizzare una funzione di automazione.
Indipendentemente dalla struttura multitask dei PLC, è possibile definire una struttura ad albero multilivelli dell'applicazione di automazione.
Ad ogni livello, è possibile collegare delle sezioni di programma scritte in linguaggio
Ladder, letterale, lista di istruzioni o Grafcet, e le tabelle di animazione e i Runtime
Display.
Visualizzazione funzionale
La visualizzazione funzionale in moduli permette di ottenere una strutturazione per funzioni coerenti relativamente alla procedura da comandare.
La visualizzazione strutturale dà una visione dell'ordine di esecuzione delle sezioni di programma con il PLC.
La seguente illustrazione riporta 2 visualizzazioni possibili di un'applicazione.
Navigatore applicazione
Visualizzazione strutturale
MACHINE_DOSAGE
Configurazione
Programma
Task Mast
Task Fast
Eventi
Tipi DFB
Variabili
Tabelle d'animazione
Documentazione
Runtime Display
Visualizzazione funzionale
MACHINE_DOSAGE
Md_march
Programma
Tabella d'animazione
Procedimento
Programma
Tabella d'animazione
Riempire
Programma
Tabella d'animazione
Dosare
Programma
Tabella d'animazione
Mescolare
Programma
Tabella d'animazione
Vuoto
Programma
Tabella d'animazione
35015370.01 07/2008
23
Presentazione del software PL7
Servizi associati alla visualizzazione funzionale
I servizi di utilizzazione sono disponibili in una visualizzazione o nell'altra. In particolare, con un solo comando, è possibile forzare l'esecuzione o meno di un modulo funzionale.
In tal caso, tutte le sezioni collegate al modulo funzionale vengono forzate automaticamente.
Esportazione/
Importazione dei moduli funzionali
È inoltre possibile esportare totalmente o parzialmente la struttura ad albero in moduli funzionali.
In tal caso, vengono esportate tutte le sezioni del programma dei vari livelli dei moduli.
24
35015370.01 07/2008
Descrizione degli oggetti linguaggi PL7
2
In breve
Contenuto di questo capitolo
Contenuto di questo capitolo
Questo capitolo descrive tutti gli oggetti dei linguaggi PL7. Questi oggetti sono utilizzati come operandi nelle istruzioni.
Questo capitolo contiene le seguenti sottosezioni:
Argomento
Definizione dei principali oggetti booleani
Definizione dei principali oggetti parola
Indirizzamento degli oggetti bit
Indirizzamento degli oggetti di moduli di ingressi/uscite del TSX 37
Indirizzamento degli oggetti dei moduli di ingresso/uscita in rack
Indirizzamento degli oggetti linguaggio dei moduli remoti su bus FIPIO
Indirizzamento degli oggetti di linguaggio associati al bus AS-i
Indirizzamento degli oggetti parola
Regola di sovrapposizione
Oggetti di blocco funzione
Oggetti PL7 di tipo tabella
Oggetti indicizzati
Oggetti Grafcet
Simbolizzazione
Oggetti presimbolizzati
Pagina
35015370.01 07/2008
25
Oggetti linguaggi PL7
Definizione dei principali oggetti booleani
Descrizione
Bit
La tabella seguente descrive i principali oggetti booleani.
Descrizione Esempi
Valori immediati
0 o 1 (False o True) 0
Ingressi/uscite Questi bit sono le "immagini logiche" degli stati elettrici di ingressi/ uscite.
Sono classificati nella memoria dei dati e aggiornati ad ogni esame del task in cui sono configurati.
%I23.5
%Q51.2
Interni
Sistema
Blocchi funzione
Estratti da parole
Nota: i bit degli I/O non utilizzati non possono essere impiegati come bit interni.
I bit interni permettono di memorizzare degli stati intermediari durante l'esecuzione del programma.
I bit di sistema da %S0 a %S127 sorvegliano il corretto funzionamento del PLC e lo svolgimento del programma applicazione.
%M200
%S10
I bit dei blocchi funzione corrispondono alle uscite dei blocchi funzione standard o all'istanza di DFB.
Queste uscite non possono essere collegate direttamente e vengono utilizzate come oggetto.
%TM8.Q
Il software PL7 offre la possibilità di estrarre uno dei 16 bit di un oggetto parola.
%MW10:X5
Fasi e macrofasi
Grafcet
I bit di stato consentono di verificare lo stato di una fase, di una macrofase oppure di un passo di una macrofase.
%X21
%X5.9
Accesso in scrittura
_
No
Sì
Sì
Secondo i
No
Secondo il tipo di parole
Sì
Sì
26
35015370.01 07/2008
Oggetti linguaggi PL7
Definizione dei principali oggetti parola
Descrizione
Parole
Valori immediati
Ingressi/ uscite
Interni
Costanti
Sistema
Blocchi funzione
Comuni
Grafcet
La tabella seguente descrive i principali oggetti parola.
Descrizione Esempi
Si tratta di valori algebrici di formato omogeneo a quello delle parole lunghezza semplice e parola lunghezza doppia (16 o 32 bit), che consentono di assegnare dei valori a queste parole.
2542
Si tratta di "immagini logiche" dei valori elettrici degli ingressi/uscite
(esempio: ingressi/uscite analogici).
Sono classificati nella memoria dei dati e aggiornati ad ogni esame del task in cui sono configurati.
Sono destinati a memorizzare i valori in corso di programma. Sono classificati all'interno dello spazio Dati nella stessa zona memoria.
%IW23.5
%QW51.1
%MW10
%MD45
Memorizzano le costanti o i messaggi alfanumerici. Il loro contenuto può essere scritto o modificato solo con il terminale.
Sono memorizzate nello stesso punto che il programma e possono pertanto avere come supporto la memoria FLASH EPROM.
%KW30
Accesso in scrittura
_ no sì sì sì sì
(esclusiva mente tramite terminale) secondo i Queste parole svolgono svariate funzioni: z alcune specificano lo stato del sistema (tempo di funzionamento sistema z e applicazione).
altre permettono di agire sull'applicazione (modalità di funzionamento, ).
%SW5
Queste parole corrispondono ai parametri o ai valori correnti dei blocchi funzione standard o istanza di DFB.
%TM2.P
Sono destinate ad essere scambiate automaticamente su tutte le stazioni collegate alla rete di comunicazione.
%NW2.3
Le parole Grafcet consentono di conoscere il periodo di attività delle fasi.
%X5.T
sì sì sì
35015370.01 07/2008
27
Oggetti linguaggi PL7
Formato dei valori
I valori delle parole possono essere codificati nei seguenti formati:
Tipo Dimensioni
Intero base 10 Lunghezza semplice
Esempio di valore
1506
Lunghezza doppia 578963
Intero base 2 Lunghezza semplice
2#1000111011111011011
Intero base 16
Lunghezza doppia 2#10001110111110110111111
111011111011111
Lunghezza semplice
16#AB20
Virgola mobile
Lunghezza doppia 16#5AC10
-1.32E12
Limite inferiore
-32768
-2 147 483 648
2#10...0
2#10...0
16#0000
16#000000000
-3.402824E+38 (1)
1.175494E-38 (1)
Leggenda
(1) limiti esclusi
Limite superiore
+32767
2 147 483 647
2#01...1
2#01...1
16#FFFF
16#FFFFFFFF
-1.175494E-38 (1)
3.402824E+38 (1)
28
35015370.01 07/2008
Oggetti linguaggi PL7
Indirizzamento degli oggetti bit
In breve
Sintassi
Famiglia
Simbolo
Tipo di oggetto
Numero
L'indirizzamento dei bit interni, sistema e fasi segue le seguenti regole:
% M, S o X i
Simbolo Tipo di oggetto Numero
La seguente tabella descrive i vari elementi che costituiscono l'indirizzamento.
i
Elemento Valori
% -
M -
S
X
-
-
-
Descrizione
-
Bit interni destinati a memorizzare gli stati intermedi durante l'esecuzione del programma. Sono classificati all'interno dello spazio dati nella stessa zona memoria.
Bit sistema (Vedere Manuale de riferimento, Volume 2), questi bit svolgono più funzioni: z alcuni specificano lo stato del sistema tramite lettura dei bit %Si z
(superamento del watchdog, …), altri permettono di agire sull'applicazione (inizializzazione
Grafcet, …).
Bit di fase , i bit di fase (vedi
Oggetti Grafcet, p. 55 ) riportano lo
stato delle attività delle fasi.
Il valore massimo del numero dipende dal numero di oggetti configurati.
Esempi: z z z
%M25 = bit interno numero 25
%S20 = bit sistema numero 20
%X6 = bit fase numero 6
35015370.01 07/2008
29
Oggetti linguaggi PL7
Bit estratti da parole
Il software PL7 consente di estrarre uno dei 16 bit dalle parole lunghezza semplice.
La variabile della parola viene così completata dal rango del bit estratto secondo la sintassi riportata qui di seguito:
PAROLA : X
Indirizzo della parola j
Posizione j= 0 a 15 rango del bit nella parola.
Esempi: z z
%MW10:X4 = bit numero 4 della parola interna %MW10
%QW5.1:X10 = bit numero 10 della parola di uscita %QW5.1
Nota: L'estrazione dei bit dalle parole può essere eseguita anche sulle parole indicizzate.
30
35015370.01 07/2008
Oggetti linguaggi PL7
Indirizzamento degli oggetti di moduli di ingressi/uscite del TSX 37
In breve
Illustrazione
L'indirizzamento dei principali oggetti bit e parola di modulo di ingressi/uscite è di tipo geografico. Ovvero dipende da: z z z il numero (indirizzo) del rack, la posizione fisica del modulo nell'alloggiamento, il numero di canale del modulo.
L'indirizzamento viene definito come segue:
% I,Q,M,K X, W, D, F
Simbolo Tipo di oggetto Formato
X
Posizione
• i
• r
N. di canale Posizione
35015370.01 07/2008
31
Oggetti linguaggi PL7
Sintassi La seguente tabella descrive i vari elementi che costituiscono l'indirizzamento.
Famiglia
Simbolo
Tipo di oggetto I
Q
Formato
(dimensioni)
Posizione modulo
N. di canale
Posizione
I i
Elemento
%
M
K
X
W
F x r
Valori
-
-
-
-
-
-
16 bit
32 bit
32 bit
Descrizione
-
Immagine dell'ingresso fisico del modulo
Immagine dell'uscita fisica del modulo
Queste informazioni vengono scambiate in modo implicito ad ogni ciclo del task a cui sono assegnate.
Variabile interna
Queste informazioni di lettura o di scrittura vengono scambiate su richiesta dell'applicazione.
Costante interna
Queste informazioni di configurazione sono disponibili in sola lettura.
Booleano
Per gli oggetti di tipo booleano, la X può essere omessa.
Lunghezza semplice.
Lunghezza doppia.
Virgola mobile. Il formato virgola mobile utilizzato è quello della norma
IEEE Std 754-1985 (equivalente IEC 559). da 0 a 8 da 0 a 10
0 - 31 o
MOD
TSX 37-10
TSX 37-21/22
Nota: un modulo in formato standard (che occupa 2 posizioni) viene indirizzato come 2 moduli in 1/2 formato sovrapposti (vedere le spiegazioni qui di seguito).
Numero di canale del modulo.
MOD: canale riservato alla gestione del modulo e dei parametri comuni a tutti i canali.
0 - 127 o
ERR
Posizione del bit nella parola.
ERR: indica un errore del modulo o del canale.
Esempi
Oggetto
%I1.5
%MW2.0.3
%I5.MOD.ERR
La tabella seguente riporta alcuni esempi di indirizzamento di oggetti.
Descrizione
Canale di ingresso numero 5 del modulo di ingressi/uscite che si trova in posizione 1.
Parola di stato di posizione 3 del canale 0 del modulo di ingressi/uscite che si trova in posizione 2.
Informazione sull'errore del modulo di ingressi/uscite situato in posizione 5.
32
35015370.01 07/2008
Oggetti linguaggi PL7
Caso dei moduli in formato standard
Modulo
Numero di canale
Sono indirizzati come 2 moduli in 1/2 formato sovrapposti.
Ad esempio, un modulo di 64 I/O che occupa le posizioni 5 e 6, è visto come 2 moduli 1/2 formato: z z un 1/2 modulo di 32 ingressi in posizione 5, un 1/2 modulo di 32 ingressi in posizione 6,
La tabella seguente descrive la codifica Posizione/Numero di canale a seconda del modulo.
1/2 formato
4U 8I da 0 a 3 da 0 a 7
Indirizzamento:
Posizione/Numero di canale
(x=posizione) x.0
verso x.3
x.0
verso x.7
12I
Formato standard
28I/U 32I 32U da 0 a 11 da 0 a 15 (I) da 0 a 15 (I) da 0 a 15
(U) x.0
verso x.11
da 0 a 11
(U) x.0
verso x.15
(x+1).0
verso
(x+1).11
da 0 a 15 (I) da 0 a 15 x.0
verso x.15
(x+1).0
verso
(x+1).15
(U) x.0
verso x.15
(x+1).0
verso
(x+1).15
64I/U da 0 a 31 (I) da 0 a 31
(U) x.0
verso x.31
(x+1).0
verso
(x+1).31
Esempi
Oggetto
%I3.6
%Q4.2
La tabella seguente riporta due esempi di indirizzamento di oggetti di un modulo standard 28 I/U che occupa le posizioni 3 e 4.
Descrizione
Canale di ingresso numero 6 del modulo.
Canale di uscita numero 2 del modulo
35015370.01 07/2008
33
Oggetti linguaggi PL7
Indirizzamento degli oggetti dei moduli di ingresso/uscita in rack
In breve
Illustrazione
L'indirizzamento dei principali oggetti bit e parola dei moduli di ingresso/uscita è di tipo geografico e quindi dipende: z z z dal numero (indirizzo) del rack, dalla posizione fisica del modulo nel rack, dal numero di canale del modulo.
L'indirizzamento viene definito nel modo seguente:
%
Simbolo
I, Q, M, K
Tipo di oggetto
X, W, D, F
Formato
X
Rack
Y
Posizione
• i
N. canale
• r
Posizione
34
35015370.01 07/2008
Oggetti linguaggi PL7
Sintassi La tabella che segue descrive i diversi elementi dell'indirizzamento:
Famiglia
Simbolo
Formato
(dimensione)
Elemento Valori
%
Tipo di oggetto I
Q
M
K
X
W
D
F
-
-
-
-
-
-
16 bit
32 bit
32 bit
Descrizione
-
Immagine dell'ingresso fisico del modulo,
Immagine dell'uscita fisica del modulo,
Queste informazioni vengono scambiate in modo automatico a ogni ciclo del task al quale sono allegate.
Variabile interna
Queste informazioni di lettura o di scrittura vengono scambiate su richiesta dell'applicazione.
Costante interna
Queste informazioni di configurazione sono disponibili soltanto in lettura.
Booleano
Per gli oggetti di tipo booleano, questo elemento può essere omesso.
Lunghezza semplice.
Lunghezza doppia.
Virgola mobile. Il formato a virgola mobile utilizzato è quello definito dalla norma IEEE Std 754-1985 (equivalente a IEC 559).
Indirizzo rack
Posizione modulo x y
0 o 1 da 0 7 da 00 a
14 (1)
TSX 5710/102/103/153, PMX 57102, PCX 571012).
Altri processori.
Numero di posizione nel rack.
Quando il numero di rack (x) è diverso da 0, la posizione (y) è codificata su 2 cifre: da 00 a 14; se invece il numero di rack (x) = 0, vengono eliminati gli zeri non significativi (eliminazione da sinistra) di "y" ("x" non appare e "y" è a una sola cifra per i valori inferiori a 9).
N. canale
Posizione i r da 0 a
127 oppure
MOD da 0 a
127 oppure
ERR
MOD: canale riservato alla gestione del modulo e dei parametri comuni a tutti i canali.
Posizione del bit nella parola.
ERR: indica un guasto del modulo o del canale.
(1) : il numero di alloggiamenti massimo richiede l'utilizzo di 2 rack allo stesso indirizzo.
35015370.01 07/2008
35
Oggetti linguaggi PL7
Esempi
Oggetto
%MW2.0.3
%MW103.0.3
%I102.MOD.ERR
%I204.3.ERR
La tabella seguente descrive alcuni esempi di indirizzamento di oggetti.
Descrizione
Parola di stato di posizione 3 del canale 0 del modulo degli ingressi digitali nella posizione 2 del rack 0.
Illustrazione
Parola di stato di posizione 3 del canale 0 del modulo delle uscite digitali nella posizione 3 del rack 1.
0
P
S
Y
6
0 Informazioni sul guasto del modulo degli ingressi analogici nella posizione 2 del rack 1.
Informazioni sul guasto del canale 3 del modulo delle uscite analogiche nella posizione 4 del rack 2.
P
S
Y
1
6
0
5
7
S
X
0
3
0
0 1
L p s o o o o o m
2
R
5
0
8
S
Y
2
0
8
0
E
Y
3
3
D
S
Y
5
8
R
4
4
2
0
0
2
6
S
Y
0 1 2 3 4
A
S
Y
0
0
8
36
35015370.01 07/2008
Oggetti linguaggi PL7
Indirizzamento degli oggetti linguaggio dei moduli remoti su bus FIPIO
Presentazione
Illustrazione
L'indirizzamento dei principali oggetti bit e parola dei moduli remoti su bus FIPIO è di tipo geografico e quindi dipende: z z z dal punto di connessione, dal tipo di modulo (base o estensione), dal numero di canale.
L'indirizzamento è definito nel modo seguente:
%
Simbolo
I, Q, M, K X, W, D, F
Tipo di oggetto
Formato
\ p.2.c
\ m
Indirizzo modulo/canale e punto di connessione
N. di modulo
• i • r
N. canale Posizi one
35015370.01 07/2008
37
Oggetti linguaggi PL7
Sintassi La tabella che segue descrive i diversi elementi dell'indirizzamento:
Famiglia
Simbolo
Tipo di oggetto I
Q
Formato
(dimensione)
Indirizzo modulo/ canale e punto di connessione
Posizione modulo
N. canale
Posizione i
Elemento
%
M
K
X
W
D
F p
2 c m r
Valori
-
-
-
-
-
-
16 bit
32 bit
32 bit
Significato
-
Immagine dell'ingresso fisico del modulo,
Immagine dell'uscita fisica del modulo,
Queste informazioni vengono scambiate in modo automatico a ogni ciclo del task al quale sono allegate.
Variabile interna
Queste informazioni di lettura o di scrittura vengono scambiate su richiesta dell'applicazione.
Costante interna
Queste informazioni di configurazione sono disponibili soltanto in lettura.
Booleano
Per gli oggetti di tipo booleano, la X può essere omessa.
Lunghezza semplice.
Lunghezza doppia.
Virgola mobile. Il formato a virgola mobile utilizzato è quello definito dalla norma IEEE Std 754-1985 (equivalente a IEC 559).
0 oppure
1
Numero di posizione del processore nel rack.
da 1 a
127
Numero di canale del collegamento FIPIO integrato nel processore.
Numero del punto di connessione.
0 oppure
1
0 : modulo di base, 1: modulo di estensione.
da 0 a
127 oppure
MOD da 0 a
255 oppure
ERR
MOD: canale riservato alla gestione del modulo e dei parametri comuni a tutti i canali.
ERR: indica un guasto del modulo o del canale.
38
35015370.01 07/2008
Esempi
Oggetti linguaggi PL7
La tabella seguente descrive alcuni esempi di indirizzamento di oggetti.
Oggetto
%MW\0.2.1\0.5.2
%I\0.2.1\0.7
%Q\0.2.1\1.2
Significato
Parola di stato in posizione 2 del bit di immagine dell'ingresso 5 del modulo di base relativo agli ingressi remoti nel punto di connessione
1 del bus FIPIO.
Bit di immagine dell'ingresso 7 del modulo di base relativo agli ingressi remoti nel punto di connessione 1 del bus FIPIO.
Bit di immagine dell'uscita 2 del modulo di estensione relativo alle uscite remote nel punto di connessione 1 del bus FIPIO.
%I\0.2.2\0.MOD.ERR Informazioni di default del modulo Momentum nel punto di connessione 2 del bus FIPIO.
%Q\1.2.3\0.0.ERR
Informazioni di default del canale 0 del modulo CCX17 nel punto di connessione 3 del bus FIPIO.
0
Gestore FIPIO TSX 57253
1 TBX LEP 030 0 TBX DES 1622 1 TBX DSS 1622
2 170 FNT 110 01 0 170 AAI 030 00
3 TSX FPP 010 0 T CCX 17 20 F
35015370.01 07/2008
39
Oggetti linguaggi PL7
Indirizzamento degli oggetti di linguaggio associati al bus AS-i
In breve
Illustrazione
L'indirizzamento dei principali oggetti bit e parola associati al bus AS-i è di tipo geografico e quindi dipende: z z z dal numero (indirizzo) del rack in cui si trova il modulo, dalla posizione fisica del modulo nel rack, dal numero (indirizzo) dell'apparecchiatura slave sul bus AS-i.
L'indirizzamento viene definito nel modo seguente:
%
Simbolo
I o Q
Tipo di oggetto
\ xy.0
Rack/modulo/canale del
TSX SAY 100
\ n
N° slave
• i
Posizione
Sintassi La tabella che segue descrive i diversi elementi dell'indirizzamento:
Famiglia
Simbolo
Indirizzo rack
Posizione modulo
Elemento
%
Tipo di oggetto I
Q x y
Valori
-
-
-
0 o 1 da 0 7 da 00 a
14 (1)
Descrizione
-
Immagine dell'ingresso fisico del modulo,
Immagine dell'uscita fisica del modulo,
Queste informazioni vengono scambiate in modo automatico a ogni ciclo del task al quale sono allegate.
TSX 5710/102/103/153, PMX 57102, PCX 571012).
Altri processori.
Numero di posizione nel rack.
Quando il numero di rack (x) è diverso da 0, la posizione (y) è codificata su 2 cifre: da 00 a 14; se invece il numero di rack (x) = 0, vengono eliminati gli zeri non significativi (eliminazione da sinistra) di "y" ("x" non appare e "y" è a una sola cifra per i valori inferiori a 9).
N. canale
N° dello slave
Posizione i
0 n
da 0 31 da 0 3
Il modulo TSX SAY 100 possiede un solo canale.
Indirizzo fisico dello slave.
Posizione del bit immagine dell'ingresso o dell'uscita.
(1) : Il numero di alloggiamenti massimo richiede l'utilizzo di un rack di estensione.
40
35015370.01 07/2008
Esempio
Oggetti linguaggi PL7
La tabella seguente descrive alcuni esempi di indirizzamento di oggetti.
Oggetto
%I3.0\2.1
%Q3.0\4.3
Descrizione
Ingresso 1 dello slave 2, con il modulo TSX SAY 100 posizionato nell'alloggiamento 3 del rack 0.
Uscita 3 dello slave 4, con il modulo TSX SAY 100 posizionato nell'alloggiamento 3 del rack 0.
0
0
0
2
6
S
Y
0
T
S
X
0
3
7
1 o
C o m m
1 2 3
0
1
0
S
A
Y
4
0
1
2
3
P ABE-8R44SB11
4 P
XVA-S102
35015370.01 07/2008
41
Oggetti linguaggi PL7
Indirizzamento degli oggetti parola
In breve
Illustrazione
L'indirizzamento delle parole (escluse le parole dei moduli di ingressi/uscite e blocchi funzione) seguono la stessa sintassi che è descritta qui di seguito.
L'indirizzamento delle parole interne, costanti e sistema segue le seguenti regole:
% M, K ou S B, W, D o F i
Simbolo Tipo di oggetto Formato Numero
Sintassi
Famiglia
Simbolo
Tipo di oggetto
La seguente tabella descrive i vari elementi che costituiscono l'indirizzamento.
Elemento Valori
% -
M -
K
S
-
-
Descrizione
-
Parole interne destinate a memorizzare valori in corso di programma. Sono classificati all'interno dello spazio dati nella stessa zona memoria.
Parole costanti memorizzano i valori costanti o i messaggi alfanumerici. Il loro contenuto può essere scritto o modificato solo con il terminale. Sono memorizzate nello stesso punto che il programma e possono pertanto avere come supporto la memoria
FLASH EPROM.
Parole sistema (Vedere Manuale de riferimento, Volume 2), queste parole svolgono più funzioni: z alcune specificano lo stato del sistema tramite la lettura delle parole %SWi (tempo di funzionamento sistema e applicazione…).
z altre permettono di agire sull'applicazione (modalità di funzionamento, …).
42
35015370.01 07/2008
Famiglia
Formato
Numero
35015370.01 07/2008
Oggetti linguaggi PL7
I
Elemento Valori
B 8 bit
W 16 bit
32 bit
Descrizione
Byte , questo formato viene utilizzato esclusivamente per le operazioni sulle stringhe di caratteri.
Lunghezza semplice : queste parole a 16 bit possono contenere un valore algebrico compreso tra -32 768 e 32 767,
15 14 13 12
0 1 1 1
11 10 9 8
0 1 1 1
Peso piu significativo
7 6 5 4
Rango di bit
3 2 1 0
0 0 1 1 0 1 0 0
Peso meno significativo
Lunghezza doppia : queste parole a 32 bit possono contenere un valore algebrico compreso tra -2 147 483 648 e 2 147 483 647.
Esse vengono memorizzate in memoria su due parole di lunghezza semplice consecutive.
F 32 bit
15 14 13 12
0 1 1 1
11 10 9 8
0 1 1 1
0 0 1 1 0 1 1 0
Peso piu significativo
Peso meno significativo
7 6 5 4
0 0 1 1
0 1 0 1
3 2 1 0
0 1 0 0
0 0 1 0
Virgola mobile : il formato virgola mobile utilizzato è quello della norma IEEE Std 754-1985 (equivalente IEC 559). La lunghezza delle parole è di 32 bit, il che corrisponde a numeri in virgola mobile semplice precisione.
i -
Esempi di valori in virgola mobile:
1285.28
12.8528E2
Il valore massimo del numero dipende dal numero di oggetti configurati.
Esempi: z z z z
%MW15 = parola interna lunghezza semplice numero 15
%MF20 = parola interna virgola mobile numero 20
%KD26 = parola doppia costante numero 26
%SW30 = parola sistema numero 30
43
Oggetti linguaggi PL7
Indirizzamento delle parole in rete
L'indirizzamento delle parole in rete viene descritto nel manuale Funzioni specifiche comunicazione.
Le reti utilizzano inoltre oggetti specifici: le parole comuni che sono oggetti parola lunghezza semplice (16 bit) comuni a tutte le stazioni collegate alla rete di comunicazione.
Indirizzamento: %NW{i.j}k con: i = 0 - 127 numero di rete, j = 0 - 31 numero di stazione e k= 0 - 3 numero di parola
44
35015370.01 07/2008
Oggetti linguaggi PL7
Regola di sovrapposizione
Principi
Illustrazione
I byte, parole semplici, lunghezza doppia e virgola mobile sono classificati all'interno dello spazio dati nella stessa zona memoria.
Pertanto, esiste una sovrapposizione tra: z z z la parola lunghezza doppia %MDi e le parole lunghezza semplice %MWi e
%MWi+1 (la parola %MWi racchiude le meno significative e la parola %MWi+1 i più significativi della parola %MDi), la parola lunghezza semplice %MWi e i byte %MBj e %MBj+1 (con j = 2x i), la virgola mobile %MFk e le parole lunghezza semplice %MWk e %MWk+1
Quest'illustrazione riporta la sovrapposizione delle parole interne.
%MD1
%MD0
%MD2
%MW0
%MW1
%MW2
%MW3
%MB1
%MB3
%MB5
%MB7
%MB0
%MB2
%MB4
%MB6
%MD3
%MDi
%MWi
%MWi+1
%MFk
%MWk
%MWk+1
Esempi z z z z
%MD0 corrisponde a %MW0 e %MW1 (si veda l'illustrazione precedente).
%MW3 corrisponde a %MB7 e %MB6 (si veda l'illustrazione precedente).
%KD543 corrisponde a %KW543 e %KW544.
%MF10 corrisponde a %MW10 e %MW11.
35015370.01 07/2008
45
Oggetti linguaggi PL7
Oggetti di blocco funzione
Generalità I blocchi funzione attivano gli oggetti bit e le parole specifiche accessibili da programma.
Esempio di blocco funzione
L'illustrazione seguente presenta un blocco funzione computo/scomputo.
%Ci
R
S
%C.P:9999
CU
CD
MODIF:Y
E
I
F
Blocco contatore avanti/contatore indietro
Oggetti bit
Oggetti parola
Corrispondono alle uscite dei blocchi. Questi bit sono accessibili tramite le istruzioni booleane di test.
Corrispondono a: z z i parametri di configurazione del blocco a cui è possibile accedere (esempio: parametro di preselezione) oppure no (esempio: base di tempo) tramite programma, i valori correnti (esempio: %Ci.V valore di conteggio in corso).
46
35015370.01 07/2008
Oggetti linguaggi PL7
Elenco degli oggetti di blocchi funzione accessibili da programma
Blocchi funzioni
Contatore avanti/contatore indietro
%Ci
La tabella seguente descrive l'insieme degli oggetti di blocchi funzione.
Simbolo N. massim o Micro
N. massimo
Premium
Tipo di oggetti
Temporizzatore %TMi 64
32
255
(128 per impostazione predefinita)
Parola
Bit
255
(64 per impostazione predefinita)
Parola
Bit
Descrizione
Valore corrente
Valore preselezione
Uscita temporizzatore
Variabile Access o in scrittur a
%TMi.V
%TMi.P
%TMi.Q
no sì no
%Ci.V
%Ci.P
%Ci.E
no sì no
Monostabile %MNi 8 255
(32 per impostazione predefinita)
Parola
Bit
Valore corrente
Valore preselezione
Uscita superamento
(vuoto)
Uscita preselezione raggiunta
Uscita superamento
(pieno)
Valore corrente
Valore preselezione
Uscita superamento
(vuoto)
%Ci.D
%Ci.F
no no
%MNi.V
%MNi.P
no sì
%MNi.R
no
Registro parola %Ri 4 255
(4 per impostazione predefinita)
Parola
Bit
Programmatore a tamburo
%DRi 8 255
(8 per impostazione predefinita)
Parola
Bit
Accesso al registro
Uscita del registro
Uscita registro pieno
Uscita registro vuoto
Numero di passo in corso
Stati del passo j
Periodo di attività del passo
Ultimo passo definito in corso
%Ri.I
%Ri.O
%Ri.F
%Ri.E
%DRi.S
%DRi.Wj
no
%DRi.V
no
%DRi.F
no sì sì no no sì
35015370.01 07/2008
47
Oggetti linguaggi PL7
Blocchi funzioni
Temporizzatore serie 7
Simbolo N. massim o Micro
N. massimo
Premium
Tipo di oggetti
%Ti 64 255
(0 per impostazione predefinita)
Parola
Bit
Descrizione
Valore corrente
Valore preselezione
Uscita in corso
Uscita temporizzatore trascorsa
Variabile Access o in scrittur a
%Ti.V
%Ti.P
no sì
%Ti.R
%Ti.D
no no
Nota: Il numero totale di temporizzatori %TMi + %Ti è limitato a 64 per un Micro e a 255 per un Premium.
48
35015370.01 07/2008
Oggetti linguaggi PL7
Oggetti PL7 di tipo tabella
Tabelle di bit Le tabelle di bit sono serie di oggetti bit adiacenti dello stesso tipo e di lunghezza definita: L.
Esempio di tabelle di bit: %M10:6
%M10 %M11 %M12 %M13 %M14 %M15
%M10:6
Questa tabella definisce gli oggetti bit che possono essere messi sotto forma di tabella di bit.
Tipo Indirizzo Esempio
Bit di ingressi digitali
Bit di uscite digitali
Bit interni
Bit Grafcet
%Ix.i:L
%Qx.i:L
%Mi:L
%Xi:L, %Xj.i:L
%I25.1:8
%Q34.0:16
%M50:20
%X50:30
Accesso in scrittura
No
Sì
Sì
No
Nota: Le lunghezze massime delle tabelle dipendono dai tipi di oggetto z Per i bit di ingressi/uscite digitali : le dimensioni massime dipendono dalla modularità (numero di ingressi/uscite del modulo).
z Per i bit interni o Grafcet : le dimensioni massime dipendono dalle dimensioni definite in configurazione.
35015370.01 07/2008
49
Oggetti linguaggi PL7
Tabelle di parole Le tabelle di parole sono serie di parole adiacenti dello stesso tipo e di lunghezza definita: L.
Esempio di tabelle parole: %KW10:5
%KW10 16 bit
%KW14
Questa tabella definisce gli oggetti parole che possono essere messi sotto forma di tabella di parole.
Tipo Formato Variabile Esempio Accesso in scrittura
Sì Parole interne Lunghezza semplice
%MWi:L
Lunghezza doppia %MDi:L
Virgola mobile %MFi:L
Parole costanti Lunghezza semplice
%KWi:L
%MW50:20
%MD30:10
%MF100:20
%KW50:20
Lunghezza doppia %KDi:L
Virgola mobile %KFi:L
Parole Grafcet Parole Grafcet
Parole di sistema
Parole di sistema
%Xi.T:L, %Xj.i.T:L
%SWi:L
%KD30:10
%KF100:20
%X12.T:8
%SW50:4
No
No
No
Sì
Sì
Sì
No
Nota: Le lunghezze massime delle tabelle dipendono dai tipi di oggetto.
z Per le parole interne, costanti o Grafcet : le dimensioni massime dipendono dalle dimensioni definite in configurazione.
z Per le parole di sistema : solo le parole da %SW50 a 53 possono essere indirizzate sotto forma di tabella.
50
35015370.01 07/2008
Stringhe di caratteri
Oggetti linguaggi PL7
Le stringhe di caratteri sono serie di byte adiacenti dello stesso tipo e di lunghezza definita: L.
Esempio di stringhe di caratteri: %MB10:5
%MB10 8 bit
%MB14
Questa tabella definisce gli oggetti che possono essere messi sotto forma di stringa di caratteri.
Tipo Indirizzo
Parole interne
Parole costanti
%MBi:L
%KBi:L
Exemple«Esempio Accesso in scrittura
%MB10:8
%KB20:6
Sì
Sì
Nota: L'indice i deve essere pari.
35015370.01 07/2008
51
Oggetti linguaggi PL7
Oggetti indicizzati
Indirizzamento diretto
Indirizzamento indicizzato
L'indirizzamento degli oggetti viene detto diretto, quando l'indirizzo di questi oggetti
è fisso e definito alla scrittura del programma.
Esempio: %MW26 (parola interna con indirizzo 26)
In indirizzamento indicizzato, l'indirizzo diretto dell'oggetto è completato da un indice: all'indirizzo dell'oggetto viene aggiunto il contenuto dell'indice.
La seguente tabella presenta il tipo d'indice che può essere utilizzato in funzione del tipo di PLC:
Tipo d'indice una parola interna %MWi una parola costante %KWi un valore immediato
X
X
PLC Premium/Atrium
X
-
-
PLC Micro
X
Legenda
X : utilizzabile
- : non utilizzabile
Il numero di "parole indice" è illimitato.
Questo tipo di indirizzamento permette di scorrere successivamente una serie di oggetti della stessa natura (parole interne, parole costanti): all'indirizzo dell'oggetto viene aggiunto il contenuto dell'indice.
Esempio:
MW108[%MW2] : parola d'indirizzo diretto 108 + contenuto della parola %MW2.
Se la parola %MW2 ha come contenuto il valore 12, scrivere %MW108[%MW2] equivale a scrivere %MW120.
52
35015370.01 07/2008
Oggetti linguaggi PL7
Descrizione degli oggetti indicizzabili
La tabella seguente definisce gli oggetti che possono essere indicizzati.
Tipo
Bit di ingresso
Bit di uscita
Bit interno
Bit Grafcet
Formato
Booleano
Booleano
Booleano
Booleano
Indirizzo
%Ixy.i[indice]
%Qxy.i[indice]
%Mi[indice]
%Xi[indice]
%Xj.i[indice]
Esempio
%I21.3[%MW5]
%Q32.4[%MW5]
%M10[%MW5]
%X20[%MW5]
%X2.3[%MW5]
%MW30[%MW5] Parole interne
Parole costanti
Parole Grafcet
Tabella di parole
Lunghezza semplice
%MWi[indice]
Lunghezza doppia %MDi[indice]
Virgola mobile %MFi[indice]
Lunghezza semplice
%KWi[indice]
%MD15[%MW5]
%MF15[%MW5]
%KW50[%MW5]
Lunghezza doppia %KDi[indice]
Virgola mobile %KFi[indice]
Lunghezza semplice
%Xi .T[indice]
%KD50[%MW5]
%KF50[%MW5]
%X20 .T[%MW5]
No
No
No
%Xj.i .T[indice] %X2.3 .T[%MW5] No
%MWi[indice]:L %MW50[%MW5]:10 Sì
%MDi[indice]:L %MD40[%MW5]:10 Sì
%KWi[indice]:L %KW50[%MW5]:20 No
%KDi[indice]:L %KD80[%MW5]:10 No
Sì
Sì
No
Sì
No
No
Sì
Accesso in scrittura
No
Sì
Nota: Le lunghezze massime degli indici dipendono dai tipi di oggetto indicizzati.
z Per i bit di ingressi/uscite digitali di ingressi/uscite del modulo).
: <i+indice<m (ove m è il numero massimo z Per tutti gli altri oggetti (tranne gli oggetti lunghezza doppia o in virgola mobile): 0<i+indice<Nmax , Nmax = dimensioni massime dipendono dalle dimensioni definite in configurazione.
Per le parole lunghezza doppia o virgola mobile: 0<i+index<Nmax-1.
35015370.01 07/2008
53
Oggetti linguaggi PL7
Indicizzazione delle parole doppie
L'indirizzo reale = indirizzo diretto o parola doppia indicizzata + 2 volte il contenuto della parola indice.
Esempio: %MD6[%MW100]
Se %MW100=10, la parola indirizzata sarà 6 + 2 x 10 -->%MD26.
Supero d'indice Vi è supero d'indice non appena l'indirizzo di un oggetto indicizzato supera i limiti della zona che include questo stesso tipo di oggetto, ovvero quando: z z indirizzo oggetto + contenuto dell'indice inferiore al valore zero, indirizzo oggetto + contenuto dell'indice superiore al limite massimo configurato
In caso di supero d'indice, il sistema pone il bit di sistema %S20 in stato 1 e l'assegnazione dell'oggetto avviene con un valore d'indice pari a 0.
La seguente tabella riporta le varie condizioni per porre il bit sistema %S20 a 1 o a 0.
Stato 1 z messa allo stato 1 da parte del sistema su supero d'indice
Stato 0 z messa allo stato 0 da parte dell'utente, dopo avere modificato l'indice
54
35015370.01 07/2008
Oggetti linguaggi PL7
Oggetti Grafcet
Oggetti bit
Oggetti parola
La tabella seguente riepiloga tutti gli oggetti bit Grafcet disponibili e ne descrive la funzione.
Tipo
%Xi
%XMj
%Xj.i
Descrizione stato della fase i del grafico principale (Chart).
stato della macrofase j del Grafcet.
stato della fase i della macrofase j del Grafcet.
%Xj.IN
stato della fase d'ingresso della macrofase.
%Xj.OUT
stato della fase di uscita della macrofase.
Questi bit sono a 1 quando la fase o la macrofase è attiva, a 0 quando è inattiva.
La tabella seguente riepiloga tutti gli oggetti parole Grafcet disponibili e ne descrive la funzione.
Tipo Descrizione
%Xi.Ti
%Xj.i.T
%Xj.IN.T
tempo di attività della fase i del Grafcet.
tempo di attività della fase i della macrofase j del Grafcet.
tempo di attività della fase i della macrofase j che consentono di conoscere lo stato della fase i della macrofase j del Grafcet.
%Xj.OUT.T
tempo di attività della fase d'ingresso della macrofase.
%Xj.OUT
tempo di attività della fase di uscita della macrofase.
Queste parole sono incrementate ogni 100 ms e acquisiscono un valore compreso tra 0 e 9999.
35015370.01 07/2008
55
Oggetti linguaggi PL7
Simbolizzazione
Funzione
Sintassi
Caratteri utilizzabili
Edizione dei simboli
I simboli consentono di indirizzare gli oggetti linguaggio PL 7 tramite nomi o tasti di scelta rapida personalizzati.
Un simbolo è una stringa di 32 caratteri alfanumerici massimo, di cui il primo è alfabetico.
Un simbolo comincia con una maiuscola, gli altri sono in minuscole (ad esempio:
Bruleur_1 ).
Quando viene digitato, il simbolo può essere scritto in maiuscole o in minuscole (ad esempio: BRULEUR_1 ), il software mette automaticamente il simbolo nella sua forma corretta.
La tabella seguente fornisce i caratteri utilizzabili nella creazione dei simboli.
Tipo
Lettere alfabetiche maiuscole lettere alfabetiche minuscole numeriche il carattere di sottolineatura "_"
Descrizione
"da A a Z" e lettere seguenti
"ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏDÑÒÓÓÕÖØÙÚÛÜYp"
"da A a Z" e lettere accentate: àáâãäåæçèéêëìíîïñòóôõöØùúûüypßÿ numeri da 0 a 9 (non possono essere posti all'inizio del simbolo).
non può essere posto né all'inizio, né alla fine del simbolo.
Un certo numero di parole è riservato dal linguaggio e non può essere utilizzato come simbolo, si veda (Vedere Manuale de riferimento, Volume 3).
I simboli vengono definiti ed associati agli oggetti linguaggio con l'editor delle variabili, un commento di 508 caratteri può essere associato ad ogni simbolo.
I simboli e i loro commenti vengono salvati sul disco del terminale e non nel PLC.
56
35015370.01 07/2008
Oggetti linguaggi PL7
Oggetti che possono essere trasformati in simboli
Tutti gli oggetti PL7 possono essere trasformati in simboli tranne gli oggetti strutturati di tipo tabelle e oggetti indicizzati, ma se l'oggetto di base o l'indice viene simboleggiato, il simbolo viene utilizzato nell'oggetto strutturato.
Esempi: z z se la parola %MW0 ha come simbolo "Temperatura", la tabella delle parole
%MW0:12 è simboleggiato con Temperatura:12 , la parola %MW10 ha come simbolo Forno_1 , la parola indicizzata
%MW0[%MW10] è simbolizzata da Temperatura[Forno_1] .
Gli oggetti bit estratti dalle parole, bit o parole di blocchi funzione possono essere trasformati in simboli, ma non sono simboleggiati in quanto recuperano il simbolo dall'oggetto di base.
Esempi: z z se la parola %MW0 ha come simbolo Stato_pompa e se il bit estratto dalla parola %MW0:X1 non viene simboleggiato, recupera il simbolo dalla parola,
%MW0:X1 ha come simbolo: Stato_pompa:X1 , se il blocco funzione %TM0 ha come simbolo Tempo_forno1 e se l'uscita
%TM0.D non è trasformata in simbolo, questa lo recupera dal blocco, %TM0.D ha come simbolo: Tempo_forno.D
.
Oggetti soltanto simbolici
I parametri di blocchi funzione DFB sono accessibili solo sotto forma di simboli.
Questi oggetti sono definiti dalla sintassi seguente:
Nome_DFB.Nome_parametro
Gli elementi hanno il significato ed i caratteri seguenti.
Elemento
Nome_DFB
Nome_parametro
N. massimo di caratteri
32
8
Descrizione nome dato al blocco funzione DFB utilizzato.
nome attribuito al parametro delle uscite o alla variabile pubblica.
Esempio: Controllo.Divario
per l'uscita Divario dell'istanza DFB denominata Controllo .
35015370.01 07/2008
57
Oggetti linguaggi PL7
Oggetti presimbolizzati
Ruolo
Sintassi
Alcuni moduli di funzione specifica (esempio: conteggio, comandi d'assi, …) permettono una simbolizzazione automatica degli oggetti associati.
Se si fornisce il simbolo generico del canale %CHxy.i del modulo, tutti i simboli degli oggetti associati a questo canale possono essere generati automaticamente a richiesta.
Questi oggetti vengono simbolizzati con la sintassi seguente:
Prefisso_utente_Suffisso_produttore
Gli elementi presentano significato e caratteristiche seguenti:
Elemento Num. massimo di caratteri
Prefisso_utente 12
Suffisso_produttore 20
Descrizione simbolo generico fornito al canale dall'utente parte del simbolo corrispondente all'oggetto bit o parola del canale fornito dal sistema
Esempio
Nota: Oltre al simbolo, viene generato automaticamente un commento del produttore che indica, in breve, il ruolo dell'oggetto.
Questo esempio descrive il caso di un modulo di conteggio nell'alloggiamento 3 del rack PLC.
Se il simbolo generico (prefisso-utente) dato al canale 0 è Cont_pezzi , vengono generati automaticamente i simboli seguenti.
Commento Variabile Tipo
%CH3.0
CH
Simbolo
%ID3.0
DWORD Cont_pezzi_cur_meas
%ID3.0.4
DWORD Cont_pezzi_capt
%I3.0
%I3.0.1
EBOOL
EBOOL
Cont_pezzi_enab_activ
Cont_pezzi_pres_done
Valore corrente di conteggio
Valore catturato del contatore
Convalida attiva
Preselezione eseguita
58
35015370.01 07/2008
Memoria utente
3
In breve
Contenuto di questo capitolo
Contenuto di questo capitolo
Questo capitolo descrive la struttura della memoria dei PLC Micro e Premium.
Questo capitolo contiene le seguenti sottosezioni:
Argomento
Struttura di memoria dei controller Micro
Struttura memoria dei PLC Premium
Descrizione della memoria bit
Descrizione della memoria parole
Caratteristiche della memoria dei PLC TSX 37
Caratteristiche della memoria dei PLC TSX/PCX 57 10/15/20/25/26/28
Caratteristiche della memoria dei PLC TSX/PCX 57 30/35/36
Caratteristiche della memoria dei PLC TSX 57 453/4823
Pagina
35015370.01 07/2008
59
Memoria utente
Struttura di memoria dei controller Micro
Generalità
Memoria bit
Ruolo della memoria di parole
Lo spazio di memoria dei controller Micro accessibile all'utilizzatore è suddiviso in due insiemi distinti: z z memoria di bit memoria di parole
La memoria bit è posta nella memoria RAM integrata al modulo processore. Essa contiene l'immagine di 1280 oggetti bit.
La memoria di parole (a 16 bit) supporta: z z z i dati : dati dinamici dell'applicazione e dati di sistema, il programma : descrittori e codice eseguibile dei task, le costanti : parole costanti, valori iniziali e configurazione degli I/O.
Struttura senza scheda di memoria d'estensione
I dati, il programma e le costanti sono supportate dalla memoria RAM interna al modulo processore.
Il seguente schema descrive la struttura della memoria.
RAM interna
Flash
EPROM interna
Dati di programma
Costanti
Backup del programma e delle costanti
Backup di
%MW
La memoria Flash EPROM integrata al modulo processore può essere utilizzata per il backup: z z del programma applicativo (da 9 a 15Kparole, in funzione del tipo di processore), di 1000 parole interne %MWi.
60
35015370.01 07/2008
Struttura con scheda di memoria d'estensione
Memoria utente
I dati sono supportati dalla memoria RAM interna al modulo processore.
Il programma e le costanti sono supportate dalla scheda di memoria d'estensione.
Il seguente schema descrive la struttura della memoria.
RAM interna Dati di
Flash
EPROM interna
Zona non utilizzabile
Backup di
%MW
Scheda di memoria RAM o
Flash EPROM esterna programma
Costanti
Backup della memoria
Una memoria di 10/16 Kparole Flash EPROM (dipende dal tipo di processore) integrata al modulo processore può essere utilizzata per il backup di 1000 parole interne %MWi.
Le memorie RAM possono essere mantenute attive con delle batterie al Cadmiumnickel: z z supportata dal modulo processore per la memoria bit e RAM interna, inserita nella scheda per la scheda di memoria RAM.
La duplicazione dell'applicazione nella memoria FLASH EPROM interna richiede che il controller non possieda delle schede PCMCIA e che la dimensione dell'applicazione sia inferiore o uguale a 9/15 Kparole (a seconda del tipo di processore).
Il trasferimento dell'applicazione nella memoria FLASH EPROM interna verso la memoria RAM si effettua automaticamente quando di verifica la perdita dell'applicazione nella RAM (errore di backup o batteria scarica).
È possibile richiedere anche un trasferimento manuale, tramite un terminale di programmazione.
35015370.01 07/2008
61
Memoria utente
Struttura memoria dei PLC Premium
Generalità
Funzione della memoria parole
Lo spazio memoria dei PLC Premium comporta un solo insieme.
La memoria bit è integrata alla memoria parole (nella zona dei dati) ed è limitata a
4096 bit.
La memoria parole (16 bit) supporta: z z z i dati : dati dinamici dell'applicazione e dati sistema (il sistema riserva una zona memoria RAM di 5 Kparole minimo) il programma : descrittori e codice eseguibile dei task, le costanti : parole costanti, valori iniziali e configurazione degli ingressi/uscite.
Struttura senza scheda memoria di espansione
I programmi, i dati e le costanti sono supportati dalla memoria RAM interna al modulo processore.
Lo schema seguente descrive la struttura memoria.
RAM interna
Dati
Programma
Costanti
Struttura con scheda memoria di espansione
I dati sono supportati dalla memoria RAM interna al modulo processore.
I programmi e le costanti sono supportati dalla scheda memoria di espansione.
Lo schema seguente descrive la struttura memoria.
RAM interna Dati
Scheda memoria
RAM o
Flash
EPROM esterna
Programma
Costanti
62
35015370.01 07/2008
Backup della memoria
Memoria utente
La memoria bit e RAM interna può essere alimentata in backup da una pila cadmionickel supportata dal modulo processore.
La scheda memoria RAM interna è alimentata in backup da una pila cadmio-nickel.
35015370.01 07/2008
63
Memoria utente
Descrizione della memoria bit
Generalità Per i PLC Micro: questa memoria contiene 1280 oggetti bit indipendentemente dal tipo di PLC.
Per i PLC Premium: questa memoria bit non esiste e il suo contenuto si trova nella memoria parole nella zona dei dati dell'applicazione.
La codifica degli oggetti bit PL7 consente il test di fronte di salita o di discesa su: z z i bit di ingressi/uscite, i bit interni.
Funzionamento Ciascun oggetto bit contenuto nella memoria bit è memorizzata tramite 3 bit assegnati come segue:
F A C
Stato corrente (solo bit accessibile dal programma applicativo)
Stato anteriore
Stato di forzatura
All'aggiornamento della memoria bit, il sistema svolge le funzioni seguenti:
Fase
1
2
Descrizione
Il trasferimento dell'immagine dallo stato corrente in quello precedente.
L'aggiornamento dello stato corrente con il programma, il sistema o il terminale
(caso di forzatura di un bit).
64
35015370.01 07/2008
Memoria utente
Stato di forzatura Su richiesta di forzatura da parte del terminale: z z lo stato di forzatura F è posto sullo stato 1 lo stato corrente C è posto sullo stato: z 1 se è richiesta la forzatura a 1 z 0 se è richiesta la forzatura a 0
Questi stati non evolvono più finché: z z la forzatura viene eliminata e il bit in questione aggiornato, viene richiesta la forzatura inversa, viene modificato solo lo stato 1 corrente.
35015370.01 07/2008
65
Memoria utente
Consigli sull'uso dei fronti di salita o di discesa
Le istruzioni contatti fronte di salita o di discesa funzionano correttamente solo se vengono seguite le regole seguenti: z z z z z in ogni caso, per uno stesso oggetto, trattare: z bit d'ingresso: il contatto di fronte nel task in cui il modulo d'ingresso rimane z immutato, bit di uscita o interna: trattare la lettura e la scrittura di questo all'interno di uno stesso task, scrivere una sola volta la bobina di un oggetto quando in un programma viene utilizzato un contatto di fronte di questo oggetto.
non eseguire un SET o un RESET di un oggetto di cui si verifica il fronte in quando anche se il risultato dell'equazione che condiziona il SET/RESET vale 0, l'azione corrispondente non viene eseguita, ma la cronologia dell'oggetto viene aggiornata (perdita del fronte), non verificare il fronte di ingressi/uscite utilizzati in un task di evento, in un task master o in uno rapido, per i bit interni: il rilevamento di un fronte è indipendentemente dal ciclo del task, un fronte su bit interno %Mi viene rilevato quando il suo stato è cambiato tra 2 letture.
Questo fronte rimane rilevato finché il bit interno non viene esaminato in zona azione.
Esempio : Pertanto, nell'esempio che segue, se si forza a 1 il bit %M0 in una tabella di animazione, il fronte rimane permanente.
%M0
P INC %M0
Affinché il fronte venga rilevato una sola volta, occorre utilizzare un bit interno intermedio. In questo caso, la cronologia di %M1 è aggiornata, pertanto il fronte è presente una sola volta.
%M0 %M1
%M1
P INC %M0
66
35015370.01 07/2008
Memoria utente
Descrizione della memoria parole
Generalità Questa memoria parole di 16 bit è strutturata in 3 spazi logici: z z z
Dati,
Programma,
Costanti, le cui dimensioni sono definite alla configurazione.
Nota: I simboli e i commenti associati agli oggetti non sono salvati nella memoria del PLC, ma memorizzati nell'applicazione locale (disco fisso del terminale).
Memoria Dati applicazione
Memoria
Programma applicazione
La memoria Dati comprende le zone seguenti:
Tipo di parole
Sistema
Blocchi funzione
Interni
Ingressi/uscite
Comuni rete
Descrizione
Numero fisso
Corrisponde alle parole e ingressi/uscite di questi blocchi (valori correnti, di regolazione).
Il numero di ogni tipo di blocco funzione viene fissato al momento della configurazione
Dimensioni definite dal numero dichiarato in configurazione.
Corrisponde alle parole associate a ciascun modulo. Il loro numero dipende dai moduli configurati.
4 parole comuni per stazione PLC (disponibili solo se il modulo di comunicazione è presente ed è configurato in scambio di parole comuni).
Questa zona comprende il codice programma eseguibile, le informazioni grafiche
(rung) e i commenti del programma.
Nota: Qualunque sia il tipo di linguaggio utilizzato o le dimensioni della zona programma, il numero di elementi di programmazione (rung, frasi letterali...) è limitato. Prima di raggiungere il limite, PL7 avvertirà l'utente tramite una finestra di avvertenza.
35015370.01 07/2008
67
Memoria utente
Memoria costante applicazione
Questa zona comprende i parametri dei blocchi funzione e dei moduli di ingressi/ uscite definiti durante la configurazione e le parole costanti %KW.
68
35015370.01 07/2008
Memoria utente
Caratteristiche della memoria dei PLC TSX 37
Dimensioni della memoria bit
La tabella seguente descrive la ripartizione memoria degli oggetti bit.
Processore TSX
Dimensioni disponibili su processore
Tipo
di oggetti bit sistema %Si bit ingressi/uscite %I/Qx.i
bit interni %Mi bit di fasi %Xi
Leggenda
(1)
37 05/08/10
1280
128
(1)
256
96
37 21/22
1280
128
(1)
256
128 dipende dalla configurazione hardware dichiarata (moduli di ingressi/uscite, apparecchiature su bus AS-i)
Dimensioni della memoria parole
La tabella seguente descrive la ripartizione memoria degli oggetti parole
Processore TSX 3705/08
Piè di pagina -
3710
-
3721
-
RAM interna
Dati (%MWi)
9 Kparole 14
Kparole
0,5
Kparole
(1)
0,5
Kparole
(1)
Programma 100% booleano
• Linguaggio LD
• Linguaggio IL
1,6 Ki
2 Ki
• Linguaggio ST
Programma 90% booleano
• Linguaggio LD
1,3 Ki
1,1 Ki
• Linguaggio IL
• Linguaggio ST
Programma 65% booleano
• Linguaggio LD
• Linguaggio IL
1,4 Ki
1,1 Ki
0,9 Ki
1,0 Ki
3,8 Ki
4,9 Ki
3,3 Ki
3,1 Ki
3,8 Ki
2,9 Ki
2,2 Ki
2,5 Ki
20
Kparole
0,5
Kparole
(1)
6,6 Ki
8,4 Ki
5,6 Ki
5,4 Ki
6,6 Ki
5,1 Ki
4,0 Ki
4,6 Ki
32 Kparole 64 Kparole 128
Kparole
52 Kparole 84 Kparole 148
Kparole
17,5
Kparole
17,5
Kparole
17,5
Kparole
13,7 Ki
17,5 Ki
11,7 Ki
11,8 Ki
14,3 Ki
11,1 Ki
9,1 Ki
10,3 Ki
28,5 Ki
36,3 Ki
24,2 Ki
24,7 Ki
30,0 Ki
23,3 Ki
18,9 Ki
21,3 Ki
58,2 Ki
74,2 Ki
49,5 Ki
50,1 Ki
61 Ki
47,3 Ki
38,4 Ki
43,4 Ki
35015370.01 07/2008
69
Memoria utente
Processore TSX 3705/08
• Linguaggio ST
Costanti (1)
1,0 Ki
128 parole
Leggenda
(1)
Ki
3710
2,5 Ki
128 parole
3721
4,6 Ki
128 parole
10,3 Ki 21,3 Ki 43,4 Ki
256 parole 512 parole 512 parole
Dimensioni predefinite, possono essere estese a discapito delle dimensioni programma applicativo.
Kistruzioni (1024 istruzioni)
La tabella seguente descrive la ripartizione memoria degli oggetti parole
Processore TSX 37 22
Piè di pagina -
RAM interna 20 Kparole
32 Kparole
52 Kparole
Dati (%MWi)
Programma 100% booleano
0,5 Kparole (1) 17,5 Kparole
• Linguaggio LD
• Linguaggio IL
6,3 Ki
8,1 Ki
13,6 Ki
17,3 Ki
• Linguaggio ST
Programma 90% booleano
• Linguaggio LD
5,4 Ki
5,2 Ki
11,5 Ki
11,6 Ki
6,3 Ki
4,9 Ki
14,2 Ki
11,0 Ki
• Linguaggio IL
• Linguaggio ST
Programma 65% booleano
• Linguaggio LD
• Linguaggio IL
• Linguaggio ST
Costanti (1)
Leggenda
(1)
Ki
3,9 Ki
4,4 Ki
4,4 Ki
128 parole
8,9 Ki
10,1 Ki
10,1 Ki
256 parole
64 Kparole
84 Kparole
17,5 Kparole
28,4 Ki
36,1 Ki
24,1 Ki
24,5 Ki
29,8 Ki
23,2 Ki
18,8 Ki
21,2 Ki
21,2 Ki
512 parole
128 Kparole
148 Kparole
17,5 Kparole
57,6 Ki
73,5 Ki
49 Ki
50 Ki
60,8 Ki
47,2Ki
38,4 Ki
43,4 Ki
43,4 Ki
512 parole
Dimensioni predefinite, possono essere estese a discapito delle dimensioni programma applicativo.
Kistruzioni (1024 istruzioni)
70
35015370.01 07/2008
Memoria utente
Nota: Il comando AP/Bilancio risorse del software PL7 consente di conoscere la ripartizione memoria dell'applicazione nella memoria del PLC.
35015370.01 07/2008
71
Memoria utente
Caratteristiche della memoria dei PLC TSX/PCX 57 10/15/20/25/26/28
Dimensioni della memoria in bit
Questa tabella descrive la ripartizione della memoria degli oggetti parole dei PLC
TSX 57 1••, TSX 57 2••, TSX 57 2•23 e PCX 57 203.
Tipo
di oggetto bit di sistema %Si bit di ingresso/uscita %I/Qx.i
bit interni %Mi (n. max.) bit di fase %Xi (n. max.)
Legenda
(1) e PCX 57 203
128
(1)
3962
1024
253/2623/2823
128
(1)
8056
1024 dipende dalla configurazione hardware dichiarata (moduli di ingresso/uscita, apparecchiature sul bus AS-i)
72
35015370.01 07/2008
Memoria utente
Dimensioni della memoria in parole
La seguente tabella descrive la ripartizione della memoria degli oggetti parole dei
PLC TSX 57 1••, TSX 57 2••, TSX 57 2•23 e PCX 57 203.
Processore TSX 57-103 - TSX 57 153 TSX-
Cartuccia -
RAM interna 32K
32K
32K
Dati (%MWi) 0,5 K (1) 26 K
Programma 100% booleano
64K
32K
26 K
PCX 57
203/
2623
TSX- 57
253/
2823
-
TSX-PCX
57 203/
TSX 57
253/2623/
2823
32K -
48K/64K 48K/64K 48K/64K
1K (1) 1K (1) 30,5K
• Linguaggio
LD
8,8 Ki 12,3 Ki 26,9 Ki 15,5 Ki 22,8 Ki 12,3 Ki
• Linguaggio
IL
11,2 Ki 15,6 Ki 34,3 Ki 19,7 Ki 29,1 Ki 15,6 Ki
• Linguaggio
ST
7,6 Ki 10,5 Ki 22,9 Ki 13,1 Ki 19,4 Ki 10,4 Ki
Programma 90% booleano
• Linguaggio
LD
5,2 Ki 8,6 Ki 21,4 Ki 11,0 Ki 17,4 Ki 8,6 Ki
TSX-PCX
57 203/
TSX 57
253/2623/
2823
64K
48K/64K
30,5K
26,6 Ki
33,9 Ki
22,6 Ki
21,1 Ki
TSX-PCX
57 203/
TSX 57
253/2623/
2823
128K
48K/64K
30,5K
56,5 Ki
71,6 Ki
47,8 Ki
46,9 Ki
TSX-PCX
57 203/
TSX 57
253/2623/
2823
256K
48K/64K
30,5K
115,3 Ki
147,1 Ki
98,0 Ki
98,4 Ki
• Linguaggio
IL
6,2 Ki 10,3 Ki 25,6 Ki 13,1 Ki 20,7 Ki 10,3 Ki
• Linguaggio
ST
5,0 Ki 8,3 Ki
Programma 65% booleano
20,5 Ki 10,5 Ki 16,6 Ki 8,3 Ki
6,7 Ki 16,7 Ki 8,1 Ki 13,1 Ki 6,6 Ki • Linguaggio
LD
3,6 Ki
• Linguaggio
IL
3,7 Ki 6,8 Ki 17,0 Ki 8,3 Ki 13,4 Ki 6,8 Ki
25,2 Ki
20,2 Ki
16,4 Ki
16,8 Ki
56,0 Ki
44,9 Ki
36,6 Ki
37,5 Ki
117,4 Ki
94,2 Ki
77,0 Ki
78,8 Ki
• Linguaggio
ST
4,2 Ki
Costanti (1) 128 parole
Legenda
(1)
7,9 Ki
256 parole
19,7 Ki
512 parole
9,6 Ki
256 parole
15,5 Ki
256 parole
7,8 Ki 19,4 Ki 43,3 Ki
256 parole 512 parole 512 parole
Dimensioni predefinite; possono essere estese a scapito delle dimensioni del programma applicazione.
91,1 Ki
1024 parole
Ki
K
Kistruzioni
Kparole
35015370.01 07/2008
73
Memoria utente
Nota: z Quando questa tabella indica per una caratteristica 2 valori separati da uno "/", tali valori si riferiscono rispettivamente ai due tipi di processore indicati nell'intestazione della tabella e separati da una barra obliqua "/".
z Il comando PLC/gestione memoria del software PL7 permette di conoscere la ripartizione della memoria dell'applicazione nella memoria PLC.
74
35015370.01 07/2008
Memoria utente
Caratteristiche della memoria dei PLC TSX/PCX 57 30/35/36
Dimensioni della memoria bit
Questa tabella descrive la ripartizione memoria degli oggetti parole dei
PLC TSX 57 3•3, TSX 57 3623 e PCX 57 353.
Processore TSX/PCX
Tipo
di oggetti bit sistema %Si bit ingressi/uscite %I/Qx.i
bit interni %Mi (n. massimo) bit di fasi %Xi (n. massimo)
Leggenda
(1)
57 303/353/3623
128
(1)
16250
1024 dipende dalla configurazione hardware dichiarata (moduli di ingressi/ uscite, apparecchiature su bus AS-i)
35015370.01 07/2008
75
Memoria utente
Dimensioni della memoria parole
La tabella seguente descrive la ripartizione memoria degli oggetti parole dei PLC
TSX 57 3•3, TSX 57 3623 e PCX 57 353.
Processore
Piè di pagina
RAM interna
Dati (%MWi)
TSX 57
303/3623
1K (1)
Programma 100% booleano
TSX/
PCX57
353
TSX 57 303/
3623 / TSX/
PCX57 353
32K
64K/80K 64K/80K 80K/96K
1K (1) 30,5K
• Linguaggio LD
• Linguaggio IL
28,8 Ki
36,7 Ki
• Linguaggio ST 24,5 Ki
Programma 90% booleano
30,1 Ki
38,4 Ki
25,6 Ki
12,3 Ki
15,6 Ki
10,4 Ki
TSX 57 303/
3623 / TSX/
PCX57 353
64K
80K/96K
30,5K
26,6 Ki
33,9 Ki
22,6 Ki
TSX 57 303/
3623 / TSX/
PCX57 353
128K
80K/96K
30,5K
56,2 Ki
71,6 Ki
47,8 Ki
TSX 57 303/
3623 / TSX/
PCX57 353
256K
80K/96K
30,5K
115,3 Ki
147,1 Ki
98,0 Ki
TSX 57 303/
3623 / TSX/
PCX57 353
384K
80K/96K
30,5K
150,5 Ki
150,5 Ki
148,3 Ki
• Linguaggio LD 22,6 Ki
• Linguaggio IL 27,1 Ki
• Linguaggio ST 21,7 Ki
Programma 65% booleano
• Linguaggio LD 17,4 Ki
• Linguaggio IL 17,8 Ki
• Linguaggio ST 20,5 Ki
Costanti (1) 256 K
Leggenda
(1)
23,8 Ki
28,4 Ki
22,7 Ki
18,2 Ki
18,6 Ki
21,5 Ki
256 K
8,6 Ki
10,3 Ki
8,3 Ki
6,6 Ki
6,8 Ki
7,8 Ki
256 K
21,1 Ki
25,2 Ki
20,2 Ki
16,4 Ki
16,8 Ki
19,4 Ki
1024 K
46,9 Ki
56,0 Ki
44,9 Ki
36,6 Ki
37,5 Ki
43,3 Ki
1024 K
98,4 Ki
117,5 Ki
94,2 Ki
77,0 Ki
78,8 Ki
91,1 Ki
1024 K
149,9 Ki
157,6 Ki
142,9 Ki
117,4 Ki
120,1 Ki
138,8 Ki
1024 K
Dimensioni predefinite, possono essere estese a discapito delle dimensioni programma applicativo.
Ki
K
Kistruzioni
Kparole
Nota: z Quando questa tabella riporta per una caratteristica 2 valori separati da una "/", essi sono associati rispettivamente ad ogni tipo di processore (separati da una z
"/" nell'intestazione della tabella).
Il comando AP/Bilancio risorse del software PL7 consente di conoscere la ripartizione memoria dell'applicazione nella memoria del PLC.
76
35015370.01 07/2008
Memoria utente
Caratteristiche della memoria dei PLC TSX 57 453/4823
Dimensioni della memoria bit
Questa tabella descrive la ripartizione memoria degli oggetti parole dei
PLC TSX 57 453/4823.
Processore TSX
Tipo
di oggetti bit sistema %Si bit ingressi/uscite %I/Qx.i
bit interni %Mi (n. massimo) bit di fasi %Xi (n. massimo)
Leggenda
(1)
57 453/4823
128
(1)
32634
1024 dipende dalla configurazione hardware dichiarata (moduli di ingressi/ uscite, apparecchiature su bus AS-i)
35015370.01 07/2008
77
Memoria utente
Dimensioni della memoria parole
La tabella seguentedescrive la ripartizione memoria degli oggetti parole dei PLC
TSX 57 453/4823.
Processore
Piè di pagina
TSX 57 453/4823
-
RAM interna 96K
Dati (%MWi) 1K (1)
Programma 100% booleano
• Linguaggio LD 37,5 Ki
32K
176K
30,5K
64K
176K
30,5K
128K
176K
30,5K
256K
176K
30,5K
384K (2) 512K (2) 2*480K
(2)
176K 176K 176K
30,5K 30,5K 30,5K
• Linguaggio LD
• Linguaggio IL
• Linguaggio ST
(2)
Ki
K
• Linguaggio IL
• Linguaggio ST
47,8 Ki
31,9 Ki
Programma 90% booleano
30,2 Ki
36,0 Ki
28,9 Ki
12,3 Ki
15,6 Ki
10,4 Ki
8,6 Ki
10,3 Ki
8,3 Ki
26,6 Ki
33,9 Ki
22,6 Ki
21,1 Ki
25,2 Ki
20,2 Ki
56,2 Ki
71,6 Ki
47,8 Ki
46,9 Ki
56,0 Ki
44,9 Ki
115,3 Ki 150,5Ki 150,5 Ki 150,5 Ki
147,1 Ki 150,5 Ki 150,5 Ki 150,5 Ki
98,0 Ki 148,3 Ki 150,7 Ki 150,7 Ki
98,4 Ki 149,9 Ki 157,6 Ki 157,6 Ki
117,5 Ki 157,6 Ki 157,6 Ki 157,6 Ki
94,2 Ki 142,9 Ki 157,8 Ki 157,8 Ki
Programma 65% booleano
• Linguaggio LD
• Linguaggio IL
• Linguaggio ST
Costanti (1)
23,2 Ki
23,7 Ki
6,6 Ki
6,8 Ki
27,4 Ki 7,8 Ki
256 parole 256 parole
Leggenda
(1)
16,4 Ki
16,8 Ki
19,4 Ki
1024 parole
36,6 Ki
37,5 Ki
43,3 Ki
1024 parole
77,0 Ki
78,8 Ki
91,1 Ki
1024 parole
117,4 Ki
120,1 Ki
138,8 Ki
1024 parole
157,8 Ki
161,3 Ki
171,3 Ki
1024 parole
157,8 Ki
161,3 Ki
171,3 Ki
1024 parole
Dimensioni predefinite, possono essere estese a discapito delle dimensioni programma applicativo.
Il numero degli elementi di programmazione è raggiunto.
Kinstructions
Kparole
Nota: z Quando questa tabella riporta per una caratteristica 2 valori separati da una "/", essi sono associati rispettivamente ad ogni tipo di processore (separati da una z
"/" nell'intestazione della tabella).
Il comando AP/Bilancio risorse del software PL7 consente di conoscere la ripartizione memoria dell'applicazione nella memoria del PLC.
78
35015370.01 07/2008
Modalità di funzionamento
4
In breve
Contenuto di questo capitolo
Contenuto di questo capitolo
Questo capitolo tratta il comportamento del programma utente in seguito a un riavvio a caldo e a un avvio a freddo.
Questo capitolo contiene le seguenti sottosezioni:
Argomento
Trattamento su interruzione e ripresa alimentazione
Trattamento su riavvio a caldo
Gestione dell'avvio a freddo
Pagina
35015370.01 07/2008
79
Modalità di funzionamento
Trattamento su interruzione e ripresa alimentazione
Illustrazione L'illustrazione presenta tutte le riprese dell'alimentazione rilevate dal sistema. Se la durata dell'interruzione è inferiore al tempo di filtraggio dell'alimentazione (circa 10 ms per le alimentazioni alternative o a 1 ms per le alimentazioni continue), questa non viene vista dal programma la cui esecuzione continua normalmente.
RUN
Applicazione
Guasto alimentazione
Attesa alimentazione
Ritorno alimentazione
Interruzione rilevata
Sì
No
Esecuzione normale del programma
Salvataggio
Contesto OK
Sì
Noni
Scheda di memoria
identica
Sì
Riavvio a caldo
No
Riavvio a freddo
80
35015370.01 07/2008
Modalità di funzionamento
Funzionamento La tabella seguente descrive le fasi del trattamento delle interruzioni di alimentazione.
Fase
1
2
3
Descrizione
Quando si verifica un'interruzione di alimentazione, il sistema memorizza il contesto applicazione e l'ora dell'interruzione.
Posiziona tutte le uscite in stato di sicurezza (stato definito con la configurazione).
Quando torna l'alimentazione, il contesto salvato viene confrontato con quello in corso per determinare il tipo di avvio da eseguire: z se il contesto applicazione è cambiato (perdita del contesto sistema o nuova applicazione), il PLC esegue un'inizializzazione dell'applicazione: avvio a z freddo, se il contesto applicazione è identico, il PLC esegue un reset senza inizializzare i dati: riavvio a caldo.
Interruzione dell'alimentazion e su un rack che non sia il rack 0
Tutti i canali di questo rack vengono visti in errore dal processore, ma gli altri rack non vengono disturbati, i valori degli ingressi in errore non vengono più aggiornati nella memoria applicazione e vengono posti a 0 nel caso di un modulo d'ingresso digitale a meno che non siano stati forzati; in tal caso, vengono mantenuti i valori di forzatura.
Se la durata dell'interruzione è inferiore a 10 ms per le alimentazioni alternative o a
1 ms per le alimentazioni continue, questa non viene vista dal programma la cui esecuzione continua normalmente.
35015370.01 07/2008
81
Modalità di funzionamento
Trattamento su riavvio a caldo
Causa di un riavvio a caldo
Illustrazione
Il riavvio a caldo può essere provocato da: z z z z una ripresa di alimentazione senza perdita del contesto, posizionamento a 1 tramite programma del bit sistema %S1, dal PL7 tramite il terminale, azionando il pulsante RESET del modulo di alimentazione del rack 0 (tranne su stazione dotata di processore PCX 57).
Il disegno seguente descrive il funzionamento di un riavvio a caldo.
Acquisizione degli
Esecuzione del programma TOP
Arresto del processore
Salvataggio del
Si %S1=1, trattamento eventuale del riavvio a caldo
Ripresa
Interruzione
Autotest della configurazione
Impostazione a 1 del
Impostazione a 0 del
Aggiornamento delle
82
35015370.01 07/2008
Funzionamento
Modalità di funzionamento
La tabella seguente descrive le fasi di ripresa dell'esecuzione del programma in seguito a un riavvio a caldo.
Fase
1
2
3
Descrizione
L'esecuzione del programma riprende dall'elemento su cui si è verificata l'interruzione di alimentazione, senza aggiornamento delle uscite.
Alla fine del ciclo di ripresa, il sistema esegue: z z l'inizializzazione di file di messaggi e di eventi, l'invio dei parametri di configurazione a tutti i moduli di ingressi/uscite digitali e funzioni specifiche, z la disattivazione del task rapido e dei trattamenti di eventi (fino alla fine del primo ciclo del task master).
Il sistema esegue un ciclo di riavvio in cui: z z z z riprende tutti i moduli di ingressi, riavvia il task master con il bit %S1 (riavvio a caldo) posizionato a 1, rimette allo stato 0 il bit %S1 alla fine di questo primo ciclo del task master riattiva il task rapido e i trattamenti eventi alla fine di questo primo ciclo del task master.
Nota generale sul riavvio a caldo
Nota: Quando un riavvio a caldo è provocato dall'impostazione a 1 del bit di sistema %S1 o con il tasto di riavvio a caldo della schermata di debug del PLC, il bit di sistema %S1 rimane a 1 per 2 cicli PLC.
Funzionamento tramite programma del riavvio a caldo
In caso di riavvio a caldo, se si desidera un funzionamento particolare nei confronti dell'applicazione, occorre scrivere il programma corrispondente su test di %S1 a 1 all'inizio del programma del task master.
Cambiamenti nelle uscite
Fin dal rilevamento dell'interruzione della corrente, le uscite vengono poste in posizione di sicurezza: z z
prendono il valore di sicurezza, oppure
viene conservato il valore in corso,
secondo la scelta eseguita in configurazione.
Alla ripresa dell'alimentazione, le uscite si trovano a zero fino a quando vengono aggiornate con il task.
35015370.01 07/2008
83
Modalità di funzionamento
Gestione dell'avvio a freddo
Causa di un avvio a freddo
La tabella seguente descrive le varie cause possibili di un avvio a freddo.
Cause
Caricamento di un'applicazione
Caratteristiche dell'avviamento
Avvio a freddo forzato a STOP
Azione sul pulsante RESET del processore Avvio a freddo forzato a STOP o a RUN secondo la definizione della configurazione
Azione sul pulsante RESET del processore in seguito ad un errore bloccante
Avvio a freddo forzato a STOP
Avvio a freddo forzato a STOP o a RUN secondo la definizione della configurazione
Manipolazione del dispositivo di presa o inserimento/estrazione di una scheda memoria PCMCIA
Inizializzazione da un PL7 Junior o un PL7
Pro
Forzatura del bit sistema %S0
Riavvio dopo un'interruzione dell'alimentazione con perdita del contesto
Avvio a freddo forzato a STOP o a RUN secondo la definizione della configurazione, senza inizializzazione dei moduli di ingressi/ uscite digitali e funzioni specifiche
Avvio a freddo forzato a STOP o a RUN secondo la definizione della configurazione
84
35015370.01 07/2008
Illustrazione
Modalità di funzionamento
Il disegno qui di seguito descrive un riavvio a freddo.
Acquisizione degli ingressi
Esecuzione del programma TOP
Arresto dell'applicazione di salvataggio del contesto del processore
Si %S0=1, trattamento eventuale dell'avvio a freddo
Ripristino dell'alimentazione elettrica
Abbassamento di tensione>interruzione
No
BOT
Impostazione a 0 del
bit %S0
Sì
Autotest della configurazione
Inizializzazione dell'applicazione
Impostazione a 1 del bit %S0
Aggiornamento delle uscite
35015370.01 07/2008
85
Modalità di funzionamento
Operazione La tabella seguente descrive le fasi di riavvio dell'esecuzione del programma in seguito a un riavvio a freddo.
Fase
1
2
3
Descrizione
L'avviamento avviene in RUN o in STOP a seconda dello stato del parametro
Avvio automatico in RUN definito nella configurazione, oppure se l'utilizzo dipende dallo stato dell'ingresso RUN/STOP.
L'esecuzione del programma riprende all'inizio del ciclo.
z z z z z z z z
Il sistema esegue: z la reinizializzazione dei bit, l'azzeramento dell'assegnazione degli I/O e delle parole interne (se l'opzione RESET di %MW su riavvio a freddo è stata selezionata nella schermata Configurazione del processore); se la reinizializzazione di %MW non è attiva e se delle parole interne %MWi sono state salvate nella memoria interna Flash EPROM (TSX 37), queste vengono ripristinate al momento di un avvio a freddo; l'inizializzazione dei bit e delle parole sistema; l'inizializzazione dei blocchi funzione sulla base dei dati di configurazione; la disattivazione dei task, che non siano il task master, fino alla fine del primo ciclo del task master; la regolazione del Grafcet sulle fasi iniziali; l'annullamento delle forzature; l'inizializzazione dei dati dichiarati nei DFB: sia a 0, sia al valore iniziale dichiarato nel codice, ossia con il valore salvato via la funzione SAVE; l'inizializzazione dei file di messaggi e di eventi; l'invio dei parametri di configurazione a tutti i moduli di ingressi/uscite digitali e funzioni specifiche.
Per questo primo ciclo di riavvio, il sistema esegue: z il rilancio del task master con il bit %S0 (riavvio a freddo) definito a 1, con la parola %SW10 (rilevamento di un riavvio a freddo al primo giro di un task) impostata a 0; z l'azzeramento del bit %S0 e il ritorno a 1 di ogni bit della parola %SW10 alla z fine del primo ciclo del task master; attiva il task veloce e le elaborazioni eventi alla fine di questo primo ciclo del task master.
Gestione dell'avvio a freddo per ogni programma
Per eseguire un'elaborazione dell'applicazione dopo un avvio a freddo del controller
PL7, è possibile verificare con il programma il bit %SW10:X0 (se %SW10:X0=0, vuol dire che si è verificato un riavvio a freddo).
86
35015370.01 07/2008
Modalità di funzionamento
Nota sull'Avvio a freddo
Quando viene effettuato un avvio a freddo, sia con %S0 impostato a 1, sia con il pulsante di avvio a freddo nella schermata del PLC, il bit di sistema %S13 non può passare a 1 e il PLC rimane in funzione. L'effetto principale è l'inizializzazione delle variabili dell'applicazione.
Cambiamenti nelle uscite
Fin dal rilevamento dell'interruzione dell'alimentazione, le uscite vengono poste in posizione di sicurezza: z z
prendono il valore di sicurezza, oppure
mantengono il valore corrente
in base alla scelta impostata nella configurazione.
Quando l'alimentazione elettrica è ristabilita, le uscite sono rimesse a zero fino a quando non vengono aggiornate dal task.
35015370.01 07/2008
87
Modalità di funzionamento
88
35015370.01 07/2008
Struttura software
5
In breve
Contenuto di questo capitolo
Contenuto di questo capitolo
Questo capitolo descrive i task e la loro esecuzione nel PLC.
Questo capitolo contiene le seguenti sezioni:
Sezione
5.1
5.2
5.3
5.4
Argomento
Descrizione dei task
Struttura monotask
Struttura multitask
Moduli funzionali
Pagina
35015370.01 07/2008
89
Struttura software
5.1
Descrizione dei task
In breve
Contenuto di questa sezione
Contenuto di questa sezione
Questa sezione descrive la funzione ed il contenuto di ogni task che può costituire un programma PL7.
Questo sezione contiene le seguenti sottosezioni:
Argomento
Presentazione del task master
Descrizione delle sezioni e dei sottoprogrammi
Presentazione del task rapido
Presentazione dei trattamenti eventi
Pagina
90
35015370.01 07/2008
Struttura software
Presentazione del task master
Generalità
Illustrazione
Il task master rappresenta il programma principale ed è obbligatorio indipendentemente dalla struttura adottata monotask o multitask.
Il programma del task master (MAST) è costituito da più moduli di programmi chiamati sezioni (vedi
Descrizione delle sezioni e dei sottoprogrammi, p. 92 ) e da
sottoprogrammi.
È possibile scegliere l'esecuzione del task master (in configurazione) come ciclica
(vedi
Esecuzione ciclica, p. 101 ) o come periodica (vedi
Esecuzione periodica,
).
L'illustrazione seguente riporta un esempio di task master che contiene 4 sezioni e
3 sottoprogrammi.
Sezioni
Sas (LD)
Forno_1 (Grafcet)
PRL (LD)
CHART
POST (IL)
Asciugatura (LD)
Pulizia (ST)
Sottoprogrammi
SR0
35015370.01 07/2008
91
Struttura software
Descrizione delle sezioni e dei sottoprogrammi
Presentazione delle sezioni
Le sezioni sono entità di programmazione autonome. Le label che individuano le righe di istruzioni, dei rung… sono specifiche alla sezione e non è possibile eseguire un salto programma verso un'altra sezione.
Sono programmabili sia in: z z z z
Ladder, lista d'istruzioni, letterale strutturato,
Grafcet.
Le sezioni vengono eseguite nel loro ordine di programmazione nella finestra del browser (vista strutturale).
Le sezioni sono associate ad un task e una stessa sezione non può appartenere contemporaneamente a più task.
Presentazione dei sottoprogrammi
I moduli sottoprogrammi si programmano anch'essi come entità separate in: z z z
Ladder lista d'istruzioni letterale strutturato
Le chiamate ai sottoprogrammi avvengono nelle sezioni o da un altro sottoprogramma (massimo 8 livelli di annidamento).
I sottoprogrammi sono anch'essi associati a un task, uno stesso sottoprogramma non può essere chiamato da più task.
92
35015370.01 07/2008
Esempio
Struttura software
Il seguente disegno riporta l'esempio di struttura di un task in più sezioni e sottoprogrammi.
Mast
+
Sezioni
+
Sas
Forno_1
Prl
Chart
Post
Asciugatura
Pulizia
+
SR
SR0
SR1
SR2
35015370.01 07/2008
93
Struttura software
Caratteristiche di una sezione
La tabella seguente descrive le caratteristiche di una sezione.
Caratteristica
Nome
Linguaggio
Task
Condizione
(opzionale)
Descrizione
24 caratteri al massimo
Linguaggio Ladder, Lista d'istruzioni , Letterale strutturato o Grafcet
Master o rapido
Oggetti autorizzati come condizione: z z z
%M,%S,%X bit indicizzato, bit estratti dalle parole
%I , %Q
Tutti questi oggetti possono essere forzati dal terminale, tranne i bit %S, bit indicizzati, bit estratti, %Ixy.i.ERR, e %I xy.MOD.ERR.
Commento
Protezione
La condizione deve essere impostata a 1 affinché la sezione possa essere eseguita.
250 caratteri al massimo.
Protezione in scrittura, protezione in lettura/scrittura. La protezione può essere globale o parziale.
Nota: Ad un avvio a freddo, le condizioni di esecuzione sono impostate a 0 e tutte le sezioni a cui sono associate le condizioni sono bloccate.
Sezione Grafcet La tabella seguente descrive gli elementi di programma di una sezione Grafcet.
Trattamento
Preliminare
Grafcet
Posteriore
Designazione Caratteristiche
PRL Programmato il linguaggio Ladder LD, Lista d'istruzioni IL o Letterale strutturato ST ed eseguito prima del Grafcet.
CHART
POST
Nelle pagine Grafcet, sono programmate le ricettività associate alle transizioni e le azioni associate alle fasi o alle fasi di macrofasi.
Programmato il linguaggio Ladder LD, Lista d'istruzioni IL o Letterale strutturato ST ed eseguito dopo il Grafcet.
94
35015370.01 07/2008
Struttura software
Caratteristiche di un sottoprogramma
La tabella seguente descrive le caratteristiche di un programma SRi.
Caratteristica
Numero
Linguaggio
Task
Commento
Descrizione da 0 a 253
Linguaggio Ladder, Lista d'istruzioni , Letterale strututrato.
Master o rapido
250 caratteri al massimo.
35015370.01 07/2008
95
Struttura software
Presentazione del task rapido
Generalità
Periodo del task rapido
Il periodo del task rapido FAST è fissato in configurazione, da 1 a 255 ms. Può essere definito superiore a quello del task master MAST in modo che possa adattarsi a trattamenti periodici lenti, ma con priorità alta.
Il programma eseguito deve tuttavia rimanere breve per evitare il superamento dei task con priorità più bassa.
Il task rapido è controllato da un watchdog che consente di rilevare una durata anormale del programma applicativo. In caso di superamento, il bit sistema %S11 è impostato a 1 e l'applicazione viene dichiarata in errore bloccante per il PLC.
Controllo del task rapido
Questo task, che è prioritario rispetto al task master MAST, è periodico per lasciare il tempo necessario all'esecuzione del task con priorità meno alta.
Inoltre, i trattamenti ad esso associati devono essere brevi per non penalizzare il task master. Come per il task master, il programma associato si compone di sezioni e di sottoprogrammi.
La parola sistema %SW1 contiene il valore del periodo, viene inizializzata ad un riavvio a freddo dal valore definito in configurazione e può essere modificata dall'utente tramite il programma o il terminale.
I bit e le parole sistema consentono di controllare l'esecuzione di questo task: z z
%S19: segnala un superamento di periodo, è impostato a 1 dal sistema, quando la durata del ciclo diventa superiore al periodo del task.
%S31: permette di convalidare o di bloccare il task rapido, viene impostato a 0 dal sistema ad un avvio a freddo dell'applicazione, alla fine del primo ciclo del task master. Viene impostato a 1 o a 0 per convalidare o bloccare il task master.
Visualizzazione dei tempi di esecuzione del task rapido
Le parole sistema seguenti permettono di ottenere informazioni sulle durate dei cicli: z z z
%SW33 contiene il tempo di esecuzione dell'ultimo ciclo.
%SW34 contiene il tempo di esecuzione del ciclo più lungo.
%SW35 contiene il tempo di esecuzione del ciclo più breve.
96
35015370.01 07/2008
Struttura software
Presentazione dei trattamenti eventi
Generalità I trattamenti di eventi consentono di abbreviare i tempi di risposta del software in seguito ad eventi di comando provenienti da alcuni moduli di funzioni specifiche.
Questi trattamenti vengono eseguiti con priorità su tutti gli altri task. Si adattano ai trattamenti che richiedono tempi di reazione molto brevi rispetto all'evento verificatosi.
Il numero di trattamenti di eventi programmabili dipende dal tipo di processore.
Tipi di PLC
Micro TSX 37-05/08/10
Micro TSX 37-21/22
Premium TSX/PCX 57-1•
Premium TSX/PCX 57-2•/3•/4•
Numero di trattamenti
8
16
32
64
Designazione
EVT1 - EVT8
EVT0 - EVT15
EVT0 - EVT31
EVT0 - EVT63
Funzionamento L'apparizione di un evento devia il programma applicativo verso il trattamento associato al canale di ingressi/uscite che ha provocato l'evento.
Gli ingressi (%I, %IW, %ID) associati al canale di I/O che ha provocato l'evento vengono aggiornati dal sistema prima della chiamata del trattamento evento.
L'associazione tra un canale e un numero di evento avviene nella schermata di configurazione dei canali.
35015370.01 07/2008
97
Struttura software
Evento di comando
Gestione dei trattamenti di eventi
Priorità dei trattamenti
Si tratta di eventi esterni legati alle funzioni specifiche.
Sui PLC Micro, i trattamenti eventi possono essere attivati da: z z z z gli ingressi a 0 a 3 del modulo di posizione 1, su fronte di salita o di discesa, il canale o i canali di conteggio dei moduli di conteggio, i canali di conteggio del modulo 1 (se questo è configurato in contatore), il ricevimento dei telegrammi in un TSX 37-21/22 dotato di un modulo
TSX FPP20.
Sui PLC Premium, i trattamenti eventi possono essere attivati da: z z z z z z gli ingressi dei moduli DEY 16 FK, DMY 28 FK, DMY 28 RFK i canali dei moduli di conteggio, i canali dei moduli di comando d'asse TSX CAY •, i canali dei moduli di comando passo a passo TSX CFY •, i canali di comunicazione "FPP20",
...
I trattamenti di eventi possono essere convalidati o bloccati globalmente dal programma applicativo, oppure tramite il bit sistema %S38.
Se uno o più eventi intervengono mentre sono bloccati, i trattamenti associati vanno persi.
Due istruzioni del linguaggio PL7, MASKEVT() e UNMASKEVT() , utilizzate nel programma applicativo, consentono di mascherare o smascherare i trattamenti eventi.
Se intervengono più eventi mentre sono mascherati, essi vengono memorizzati dal sistema e i trattamenti associati vengono eseguiti solo dopo che vengono smascherati.
PLC Micro TSX 37-05/08/10
Gli 8 eventi di comando possibili hanno tutti lo stesso livello di priorità e pertanto, un trattamento evento non può essere interrotto da un altro.
PLC Micro TSX 37-21/22 o Premium
Esistono due livelli di priorità per gli eventi di comando: l'evento 0 (EVT0) ha una priorità più alta rispetto agli altri eventi.
98
35015370.01 07/2008
Struttura software
5.2
Struttura monotask
In breve
Contenuto di questa sezione
Contenuto di questa sezione
Questa sezione descrive le modalità di esecuzione di un'applicazione monotask.
Questo sezione contiene le seguenti sottosezioni:
Argomento
Struttura software monotask
Esecuzione ciclica
Esecuzione periodica
Controllo della durata del ciclo
Pagina
35015370.01 07/2008
99
Struttura software
Struttura software monotask
Descrizione Il programma di un'applicazione monotask è associato a un task utente unico, ovvero il task master MAST (si veda
Presentazione del task master, p. 91 ).
Il programma associato al task master (MAST) è costituito da più sezioni e sottoprogrammi.
L'esecuzione del task master può essere scelta in configurazione. z z ciclica (vedi
) oppure periodica (vedi
Esecuzione periodica, p. 103 )
100
35015370.01 07/2008
Struttura software
Esecuzione ciclica
Descrizione
Funzionamento
Questo tipo di funzionamento corrisponde ad una normale esecuzione del ciclo PLC
(scelta predefinita).
Consiste nel concatenare i cicli del task master (MAST) uno dopo l'altro.
Dopo avere eseguito l'aggiornamento delle uscite, il sistema realizza i trattamenti ad esso specifici e poi concatena un altro ciclo del task.
Il disegno che segue riporta le fasi di esecuzione del ciclo PLC.
T.I.
%I
Trattamento del programma
%Q T.I.
%I
Trattamento del programma
%Q
Ciclo n Ciclo n+1
Descrizione delle varie fasi
La tabella seguente descrive le fasi di funzionamento.
Variabile
T.I
%I
-
%Q
Fase
Trattamento interno
Descrizione
Il sistema realizza implicitamente la sorveglianza del PLC
(gestione dei bit e parole sistema, aggiornamento dei valori correnti dell'orodatario, aggiornamento delle spie di stato, rilevamento dei passaggi RUN/STOP,…) e il trattamento delle query provenienti dal terminale (modifiche e animazione).
Nel caso del Premium, il trattamento interno viene realizzato parallelamente ai trattamenti di ingressi e uscite.
Acquisizione degli ingressi
Scrittura in memoria dello stato delle informazioni presenti sugli ingressi dei moduli digitali e funzioni specifiche associati al task.
Esecuzione del programma applicazione, scritto dall'utente, Trattamento del programma
Aggiornamento delle uscite
Scrittura dei bit o delle parole di uscita associate ai moduli digitali e funzioni specifiche associate al task secondo lo stato definito dal programma applicativo.
35015370.01 07/2008
101
Struttura software
Modo di funzionamento:
PLC in RUN, il processore esegue nell'ordine il trattamento interno, l'acquisizione degli ingressi, il trattamento del programma applicativo e l'aggiornamento delle uscite.
PLC in STOP, il processore esegue: z z z il trattamento interno, l'acquisizione degli ingressi, e a seconda della configurazione prescelta: z z
Mod. default: le uscite sono messe in posizione di "sicurezza", mod. mantenimento: le uscite vengono lasciate sull'ultimo valore.
Illustrazione La seguente illustrazione riporta i cicli di funzionamento.
Trattamento interno
Acquisizione degli ingressi
RUN
Trattamento del programma
Aggiornamento delle uscite
STOP
Controllo del ciclo
Il controllo del ciclo avviene tramite il watchdog (vedi Controllo della durata del ciclo,
).
102
35015370.01 07/2008
Struttura software
Esecuzione periodica
Descrizione
Funzionamento
In questo modo di funzionamento, l'acquisizione degli ingressi, il trattamento del programma applicativo e l'aggiornamento delle uscite avvengono in modo periodico secondo un tempo predefinito in configurazione (da 1 a 255 ms).
All'inizio di un ciclo PLC, un temporizzatore il cui valore corrente è inizializzato al periodo definito durante la configurazione, comincia lo scomputo.
Il ciclo PLC deve concludersi prima della scadenza di questo temporizzatore che riavvia un nuovo ciclo.
Il disegno che segue riporta le fasi di esecuzione del ciclo PLC.
Trattamento del programma
Trattamento del programma
T.I.
%I
%Q T.I. T.I. %I %Q T.I.
Ciclo n Ciclo n+1
35015370.01 07/2008
103
Struttura software
Descrizione delle varie fasi
La tabella seguente descrive le fasi di funzionamento.
Variabile
T.I
%I
-
%Q
Fase
Trattamento interno
Acquisizione degli ingressi
Descrizione
Il sistema realizza implicitamente la sorveglianza del PLC
(gestione dei bit e parole sistema, aggiornamento dei valori correnti dell'orodatario, aggiornamento delle spie di stato, rilevamento dei passaggi RUN/STOP,…) e il trattamento delle query provenienti dal terminale (modifiche e animazione).
Nel caso del Premium, il trattamento interno viene realizzato parallelamente ai trattamenti di ingressi e uscite.
Scrittura in memoria dello stato delle informazioni presenti sugli ingressi dei moduli digitali e funzioni specifiche associati al task.
Trattamento del programma
Esecuzione del programma applicazione, scritto dall'utente,
Aggiornamento delle uscite
Scrittura dei bit o delle parole di uscita associate ai moduli digitali e funzioni specifiche associate al task secondo lo stato definito dal programma applicativo.
Modo di funzionamento:
PLC in RUN, il processore esegue nell'ordine il trattamento interno, l'acquisizione degli ingressi, il trattamento del programma applicativo e l'aggiornamento delle uscite. z z
Se il periodo non è ancora scaduto, il processore completa il suo ciclo di funzionamento fino alla fine del periodo tramite trattamento interno.
Se il tempo di funzionamento diventa superiore a quello assegnato al periodo, il
PLC segnala un superamento del periodo tramite impostazione a 1 del bit sistema %S19 del task, il trattamento continua e viene eseguito integralmente
(non deve comunque superare il tempo limite del watchdog). Il ciclo seguente viene concatenato dopo la scrittura implicita delle uscite del ciclo in corso.
PLC in STOP, il processore esegue: z z z il trattamento interno, l'acquisizione degli ingressi, e a seconda della configurazione prescelta: z z mod. default: le uscite sono messe in posizione di "sicurezza", mod. mantenimento: le uscite vengono lasciate sull'ultimo valore.
104
35015370.01 07/2008
Illustrazione La seguente illustrazione riporta i cicli di funzionamento.
Lancio del periodo
Trattamento interno
Acquisizione degli ingressi
RUN
Trattamento del programma
Aggiornamento delle uscite
Trattamento interno
STOP
Fine del periodo
Struttura software
Controllo del ciclo
Vengono eseguiti due controlli: z z superamento del periodo (vedi
Controllo della durata del ciclo, p. 106
), con watchdog (vedi
Controllo della durata del ciclo, p. 106
),
35015370.01 07/2008
105
Struttura software
Controllo della durata del ciclo
Generalità La durata di esecuzione del task master in funzionamento ciclico o periodico viene controllata dal PLC (watchdog) e non deve superare il valore definito in configurazione Tmax (250 ms per impostazione predefinita, 500 ms massimo).
Watchdog software
(funzionamento periodico o ciclico)
Nel caso di un superamento, l'applicazione viene dichiarata in errore, il che provoca l'arresto immediato del PLC. z z sul Micro , l'impostazione a 0 dell'uscita allarme %Q2.0 se è stata configurata, sul Premium , l'impostazione a 0 del relè allarme sull'alimentazione.
Il bit %S11 permette di controllare l'esecuzione di questo task. Segnala il superamento del watchdog, viene posto a 1 dal sistema, se la durata del ciclo diventa superiore al watchdog.
Nota: Sul Premium, il valore del watchdog deve essere superiore al periodo.
Controllo in funzionamento periodico
In funzionamento periodico, un controllo supplementare consente di rilevare un superamento del periodo: z z
%S19: segnala un superamento di periodo, è impostato a 1 dal sistema, quando la durata del ciclo diventa superiore al periodo del task.
%SW0: questa parola contiene il valore del periodo (in ms), viene inizializzata ad un riavvio a freddo dal valore definito in configurazione e può essere modificato dall'utente.
Utilizzo dei tempi di esecuzione del task master
Le parole sistema seguenti permettono di ottenere informazioni sulle durate dei cicli: z z z
%SW30 contiene il tempo di esecuzione dell'ultimo ciclo.
%SW31 contiene il tempo di esecuzione del ciclo più lungo,
%SW32 contiene il tempo di esecuzione del ciclo più breve.
Nota: Queste informazioni sono accessibili anche dall'editor di configurazione in modo esplicito.
106
35015370.01 07/2008
Struttura software
5.3
Struttura multitask
In breve
Contenuto di questa sezione
Contenuto di questa sezione
Questa sezione descrive le modalità di esecuzione di un'applicazione multitask.
Questo sezione contiene le seguenti sottosezioni:
Argomento
Struttura software multitask
Esecuzione in sequenza dei task in una struttura multitask
Assegnazione dei canali di ingressi/uscite ai task master e rapido
Scambi di ingressi/uscite nei trattamenti eventi
Pagina
35015370.01 07/2008
107
Struttura software
Struttura software multitask
Descrizione La struttura in task di tale applicazione è la seguente:
Task
Master
Veloce
Evento
Designazione Descrizione
MAST
FAST
EVTi
Sempre presente e può essere ciclico o periodico.
Opzionale e sempre periodico.
Chiamati dal sistema quando si verifica un evento su un accoppiatore di ingressi/uscite.
Questi trattamenti sono opzionali e servono alle applicazioni che hanno bisogno di tempi di risposta brevi per agire sugli ingressi/uscite.
Illustrazione Il disegno seguente riporta i task di una struttura multitask e il loro livello di priorità.
Task principale Task veloce Trattamenti eventi
Priorità
+
108
35015370.01 07/2008
Esempio
Struttura software
L'esempio seguente presenta una struttura multitask composta da un task master
MAST, da uno rapido FAST e da 2 trattamenti eventi EVT0 e EVT1.
MAST FAST
Sas (LD) Alarm_Sas (LD)
EVT0
Forno_1 (Grafcet)
Sorv_Sec (LD)
Allarm_Forno (ST)
PRL (LD)
Allarm_Pulizia (ST)
CHART
POST (IL)
SR0
Asciugatura (LD)
SR0
Pulizia (ST)
35015370.01 07/2008
109
Struttura software
Esecuzione in sequenza dei task in una struttura multitask
Generalità
Funzionamento
Il task master è attivo per impostazione predefinita.
Il task rapido è attivo per impostazione predefinita se è stato programmato.
Il trattamento di eventi è attivo quando appare l'evento a cui è associato.
La tabella seguente descrive l'esecuzione dei task primari.
Fase
1
2
3
4
Descrizione
Arrivo di un evento o inizio di ciclo del task rapido.
Arresto dell'esecuzione dei task in corso e con priorità più bassa.
Esecuzione del task prioritario.
Il task interrotto ricomincia quando termina il trattamento del task prioritario.
Descrizione dell'esecuzione in sequenza dei task
Il disegno seguente illustra l'esecuzione in sequenza dei task di un trattamento multitask che contiene un task master ciclico, uno rapido con periodo di 20 ms e un trattamento eventi.
E v e n t o
Ve l o c e
E T S E T S E T S E
E
T S E T S
E T T S E T T S E T Ma s t e r
Si s t e m a
2 0 m s 2 0 m s 2 0 m s 2 0 m s
Controllo dei task
Leggenda:
E: Acquisizione degli ingressi
T: Trattamento del programma
S: Aggiornamento delle uscite
L'esecuzione dei task rapido e eventi può essere controllata dal programma tramite l'utilizzo di bit sistema: z z z
%S30 consente di attivare o meno il task master MAST.
%S31 consente di attivare o meno il task rapido FAST.
%S38 consente di attivare o meno i trattamenti eventi EVTi.
110
35015370.01 07/2008
Assegnazione dei canali di ingressi/uscite ai task master e rapido
Struttura software
Generalità
Moduli digitali
Moduli di conteggio
Oltre al programma applicativo, i task master MAST e rapido FAST eseguono delle funzioni sistema legate alla gestione degli ingressi/uscite impliciti ad essi associati.
L'associazione di un canale o di un gruppo di canali a un task è definito nella schermata di configurazione dell'accoppiatore corrispondente. Il task associato per impostazione predefinita è il task MAST.
Poiché la modularità dei moduli digitali è a 8 canali successivi (da 0 a 7, da 8 a
15,…), gli ingressi/uscite possono essere assegnati per gruppi di 8 canali, indifferentemente al task MAST o al task FAST.
Esempio: è possibile assegnare i canali di un modulo a 28 ingressi/uscite nel modo seguente: z z z z ingressi da 0 a 7 al task MAST, ingressi da 8 15 al task FAST, uscite da 0 a 7 al task MAST, uscite da 8 15 al task FAST.
Ciascun canale di un modulo di conteggio può essere assegnato indifferentemente al task MAST o al task FAST.
Esempio: per un modulo di conteggio a 2 canali, è possibile assegnare: z z il canale 0 al task MAST, il canale 1 al task FAST.
35015370.01 07/2008
111
Struttura software
Moduli analogici I canali dei moduli d'ingressi analogici del Micro sono assegnati obbligatoriamente al task MAST. Invece, è possibile assegnare i canali o i gruppi di canali di uscite analogiche indifferentemente al task MAST o FAST, con una modularità di 2 canali.
Esempio : per un modulo di 4 uscite analogiche, è possibile assegnare: z z i canali da 0 a 1 al task MAST e, i canali 2 e 3 al task FAST.
I canali dei moduli di ingressi e uscite analogici del Premium possono essere assegnati al task MAST o FAST. Tale assegnazione è individuale per ogni canale dei moduli di ingressi o di uscite analogici isolati (4 canali isolati) e con una modularità di 4 canali per gli altri moduli.
Nota: Per ottenere i migliori risultati, è preferibile raggruppare i canali di un modulo nello stesso task.
112
35015370.01 07/2008
Struttura software
Scambi di ingressi/uscite nei trattamenti eventi
Generalità
Funzionamento
È possibile utilizzare ad ogni trattamento evento dei canali di ingressi/uscite che non siano quelli relativi all'evento.
Gli scambi vengono realizzati in modo implicito dal sistema prima (%I) e dopo (%Q) il trattamento applicativo.
Questi scambi possono essere relativi a un canale (esempio modulo di conteggio) oppure a un gruppo di canali (modulo digitale). Nel secondo caso, se il trattamento modifica ad esempio le uscite 2 e 3 di un modulo digitale, sarà l'immagine delle uscite da 0 a 7 ad essere trasferita verso il modulo.
La tabella seguente descrive gli scambi e i trattamenti realizzati.
Fase
1
2
3
4
5
Descrizione
L'apparizione di un evento devia il programma applicativo verso il trattamento associato al canale di ingresso/uscita che ha provocato l'evento.
Tutti gli ingressi associati al canale che ha provocato l'evento vengono acquisiti automaticamente.
Vengono acquisiti tutti gli ingressi utilizzati dall'utente nel trattamento EVTi.
Viene eseguito il trattamento eventi che deve essere quanto più breve possibile.
Vengono aggiornate tutte le uscite utilizzate dall'utente nel trattamento EVTi. Le uscite associate al canale che ha provocato l'evento devono essere anch'esse utilizzate, per essere aggiornate.
35015370.01 07/2008
113
Struttura software
Regola di programmazione
Regola generale:
Gli ingressi scambiati (ed il gruppo dei canali associati) al momento dell'esecuzione del trattamento evento vengono aggiornati (perdita di valori di cronologia e quindi dei fronti), occorre pertanto evitare di verificare dei fronti su questi ingressi nei task master (MAST) o rapido (FAST).
Nel caso dei moduli digitali TSX DEY16FK, TSX DMY28FK o TSX DMY28RFK :
L'ingresso che ha attivato l'evento non va verificato nel trattamento evento (il valore non viene aggiornato).
Il test del fronte che ha attivato l'evento deve essere eseguito sulla parola di stato: z z
%IWxy.i:X0 = 1 --> fronte di salita,
%IWxy.i:X1 = 1 --> fronte di discesa.
Sui PLC Micro : z z i moduli di ingresso analogici che possono essere utilizzati solo nel task MAST, non devono essere scambiati in un trattamento evento.
per ciascun trattamento di evento, è possibile dichiarare al massimo gli scambi per 2 moduli in ingresso (prima del trattamento dell'evento) e per 2 moduli in uscita (dopo il trattamento dell'evento).
114
35015370.01 07/2008
Prestazioni
Struttura software
Sui PLC Premium, secondo il processore utilizzato, il numero di scambi utilizzati è limitato.
P57-1• P57-2• /3• /4• Numero di scambi utilizzabili nei trattamenti di eventi tramite processore
Ingressi/uscite digitali
Ingressi/uscite analogici
Altre funzioni specifiche
32 scambi
8 scambi
4 scambi
128 scambi
16 scambi
16 scambi
Per gli ingressi/uscite digitali, uno scambio riguarda un gruppo di 8 canali ed è generato quando vengono utilizzati gli ingressi di un gruppo di 8 canali (che non sia il gruppo di canali che genera l'evento) e quando vengono scritte le uscite di un gruppo di 8 canali.
Per gli ingressi/uscite analogici di un'altra funzione specifica, viene generato uno scambio quando vengono utilizzati gli ingressi di un canale (che non sia il canale che genera l'evento e durante la scrittura delle uscite di un canale).
Nota: z Gli scambi degli ingressi/uscite del task EVTi vengono realizzati per canale (per alcuni moduli analogici e di funzioni specifiche), oppure per gruppi di canali (per i moduli digitali ed alcuni moduli analogici); pertanto se il trattamento modifica z ad esempio le uscite 2 e 3 di un modulo digitale, sarà l'immagine (memoria PLC) delle uscite da 0 a 7 ad essere trasferita verso il modulo.
Qualsiasi scambio di un ingresso/uscita in un task evento può provocare la perdita delle informazioni di fronte relativamente ai trattamenti eseguiti su questo canale (o gruppo di canali), nel task in cui è stato dichiarato: MAST o
FAST.
Visualizzazione del numero di eventi trattati
La parola sistema %SW48 fornisce il numero di eventi trattati.
Questa parola viene inizializzata a 0 su avvio a freddo e poi incrementata dal sistema al lancio di un evento.
L'utente può modificare tale parola.
Il bit di sistema %S39 segnala la perdita di evento.
35015370.01 07/2008
115
Struttura software
5.4
Moduli funzionali
Strutturazione in moduli funzionali
Generalità
Struttura
Illustrazione
Un modulo funzionale è un raggruppamento di elementi di programma destinati a realizzare una funzione di automazione.
Un modulo funzionale è definito dai seguenti attributi: z z z nome breve: 8 caratteri (esempio: TR371) nome lungo: 16 caratteri (esempio: Avanzamento/Ripiego per BT371) una scheda descrittiva (senza limite di numero di caratteri) non memorizzata nel
PLC, ma nel file .STX dell'applicazione.
La seguente illustrazione riporta la composizione di un modulo funzionale:
Prod1
+
+
+
Programma
Tabelle d'animazione
Runtime Display
116
35015370.01 07/2008
Struttura software
Descrizione degli elementi di un modulo funzionale
La seguente tabella descrive la funzione di ciascun elemento:
Elemento
Programma
Composizione
Uno o più moduli del codice: z z z z z sezioni eventi macrofasi tabelle d'animazione
...
Una o più tabelle di animazioni.
Tabelle d'animazione
Mdm1 Moduli funzionali di livello inferiore e che assumono rispetto alla funzione principale, una o più funzioni secondarie di automazione.
Limiti d'uso Solo il prodotto PL7 PRO consente di attivare i moduli funzionali sui PLC Premium.
35015370.01 07/2008
117
Struttura software
118
35015370.01 07/2008
Descrizione dei linguaggi PL7
II
In breve
Contenuto di questa parte
Contenuto di questa parte
Questa parte descrive i linguaggi di programmazione dei PLC Micro e Premium.
Questa parte contiene i seguenti capitoli:
Capitolo
6
7
8
9
10
Titolo del capitolo
Ladder
Linguaggio lista d'istruzioni
Langage litteral structuré
Grafcet
Blocchi funzione DFB
Pagina
119
35015370.01 07/2008
Linguaggi PL7
120
35015370.01 07/2008
Ladder
6
In breve
Contenuto di questo capitolo
Contenuto di questo capitolo
Questo capitolo descrive la programmazione in Ladder.
Questo capitolo contiene le seguenti sottosezioni:
Argomento
Presentazione generale del linguaggio Ladder
Struttura di un rung
Label di un rung
Commento di un rung
Elementi grafici del linguaggio Ladder
Regole di programmazione di un rung
Regola di programmazione dei blocchi funzione
Regole di programmazione dei blocchi operazione
Esecuzione di un rung
Pagina
35015370.01 07/2008
121
Ladder
Presentazione generale del linguaggio Ladder
Generalità Una sezione di programma scritta in linguaggio Ladder si compone di una serie di rung eseguiti in sequenza dal PLC.
Illustrazione di un rung
La rappresentazione di un rung è simile a quella di uno schema elettrico.
La schermata seguente riporta un rung PL7.
1 2 3
LD : MAST - CHART
%L100
(* Attesa di asciugatura*)
%I1.0
%M12 %I1.7
%TM4.Q %M17
%I1.10
%Q2.3
%M27 %TM0
IN TM Q
MODE TON
TB: 1 min
TMP: 9999
MODIF: Y
%M25 %MW0.X
OPERATE
%MW15:=%MW18+500
%M2 %I1.4
%Q2.5
SR2
C
F2 F3
P
F4
N
F5 F6 F7
X
F8 F9 F10 F11
S
F12
R
S.F1
S.F2
OPER
S.F3
COHP
H
S.F4
COHP
S.F5
S.F6
FB
S.F7
F (...)
S.F8
Composizione di un rung
La tabella seguente descrive i componenti di un rung.
Variabile Elemento
1
2
3
Designazione
Commento
Funzione
Individua un rung (facoltativo).
Specifica un rung (facoltativo).
Elementi grafici Essi rappresentano: z gli ingressi/uscite del PLC (pulsanti, sensori, relè, spie luminose…) z z z le funzioni di automazione (temporizzatori, contatori…) le operazioni aritmetiche, logiche e specifiche le variabili interne del PLC.
122
35015370.01 07/2008
Ladder
Struttura di un rung
Introduzione
Illustrazione
Un rung viene inserito tra due barre di potenziale. Il senso di circolazione della corrente va dalla barra di potenziale sinistra alla barra di potenziale destra.
Il seguente schema riporta la struttura di un rung.
1 2 3 4 5 6 7 8
6
7
4
5
1
2
3
.
8
9
10
11
Barra di potenziale
9 10 11
Zona azione
Zona test
Descrizione di un rung
Un rung si compone di un certo numero di elementi grafici disposti su una griglia di: z z
16 righe massimo e 11 colonne (per i PLC Premium),
7 righe massimo e 11 colonne (per i PLC Micro).
È suddiviso in due zone: z z la zona test in cui figurano le condizioni necessarie per svolgere un'azione, la zona azione che applica il risultato conseguente a un concatenamento di test.
35015370.01 07/2008
123
Ladder
Label di un rung
Generalità
Sintassi
Illustrazione
La label consente di individuare un rung in un'entità di programma (programma principale, sottoprogramma…). È facoltativa.
Questa label presenta la seguente sintassi: %Li con i compreso tra 0 e 999 e si posiziona sulla parte superiore sinistra, davanti alla barra di potenziale.
I rung seguenti illustrano l'uso di una label.
%M20
%L245
Regole
Designazione
%L245
%Q2.3
%M155
S
Una variabile di label può essere assegnata ad un solo rung all'interno di una stessa entità di programma.
Occorre etichettare un rung per consentire il collegamento dopo un salto di programma (si veda la seguente illustrazione).
L'ordine delle variabili delle label è indifferente, in quanto al momento dell'esame il sistema prende in considerazione l'ordine di immissione dei rung.
124
35015370.01 07/2008
Ladder
Commento di un rung
Generalità
Sintassi
Illustrazione
Il commento facilita l'interpretazione del rung a cui è assegnato, ma non è obbligatorio.
Il commento è integrato al rung e contiene al massimo 222 caratteri alfanumerici preceduti e seguiti dai caratteri (* e *).
Il disegno seguente specifica la posizione del commento.
Zona commento
Regole I commenti vengono visualizzati nella zona riservata a tale effetto nella parte superiore del rung.
In caso di eliminazione di un rung, viene eliminato anche il commento ad esso associato.
I commenti vengono memorizzati nel PLC e l'utente può accedervi in qualsiasi momento. Naturalmente, essi consumano memoria programma.
35015370.01 07/2008
125
Ladder
Elementi grafici del linguaggio Ladder
Generalità
Contatti
Gli elementi grafici sono istruzioni del linguaggio Ladder.
Gli elementi grafici dei contatti sono programmati in zona test ed occupano una cella
(1 riga di altezza e 1 colonna di larghezza).
Designazione Grafica
Contatto a chiusura
Funzioni
Contatto che passa quando l'oggetto bit che lo pilota è impostato a 1.
Contatto ad apertura
Contatto a rilevamento del fronte di salita
Contatto a rilevamento del fronte di discesa
P
N
Contatto che passa quando l'oggetto bit che lo pilota è impostato a 0.
Fronte di salita: rilevamento del passaggio da 0 a 1 dell'oggetto bit che lo pilota.
Fronte di discesa: rilevamento del passaggio da 1 0 dell'oggetto bit che lo pilota.
Elementi di collegamento
Gli elementi grafici di collegamento consentono di collegare gli elementi grafici di test e di azione.
Designazione Grafica
Connessione orizzontale
Funzioni
Consente di collegare in modo seriale gli elementi grafici di test e di azione tra due barre di potenziale.
Connessione verticale di potenziale
Derivazione corto circuito
Consente di collegare in parallelo gli elementi grafici di test e di azione.
Consente di collegare 2 oggetti tramite svariate connessioni.
126
35015370.01 07/2008
Bobine
Ladder
Gli elementi grafici delle bobine sono programmati in zona azione ed occupano una cella (1 riga di altezza e 1 colonna di larghezza).
Designazione
Bobina diretta
Grafica Funzioni
L'oggetto bit associato prende il valore del risultato della zona test.
Bobina inversa L'oggetto bit associato prende il valore inverso del risultato della zona test.
Bobina di attivazione
L'oggetto bit associato è impostato a 1 quando il risultato della zona test è impostato a 1.
S
Bobina di Reset L'oggetto bit associato è impostato a 0 quando il risultato della zona test è impostato a 1.
R
Salto condizionale ad un altro rung
(JUMP)
Bobina diesis
Bobina che chiama un sottoprogramma
(CALL)
Ritorno dal sottoprogramma
Arresto programma
->>%Li
#
C
<RETURN>
Consente di eseguire un collegamento ad un rung etichettato, a monte o a valle.
I salti sono effettivi solo all'interno di una stessa entità di programmazione (programma principale, z z sottoprogramma,…). L'esecuzione di un salto provoca: z l'arresto dell'esame del rung in corso, l'esecuzione del rung etichettato richiesto, il non esame della parte del programma che si trova tra l'azione del salto e il rung designato.
Proposta in linguaggio Grafcet, utilizzata durante il diesis, la programmazione delle ricettività associate alle transizioni provoca il passaggio alla fase seguente.
Consente di eseguire un collegamento all'inizio del sottoprogramma quando il risultato della zona di test sottoprogramma è impostata a 1.
L'esecuzione di una chiamata ad un sottoprogramma z z z provoca: l'arresto dell'esame del rung in corso, l'esecuzione del sottoprogramma, la ripresa dell'esame del rung interrotto.
Riservata al sottoprogramma SR, permette il ritorno al modulo chiamante quando il risultato della zona di test
è impostato a 1.
Provoca l'arresto dell'esecuzione del programma quando il risultato della zona di test è impostato a 1.
<HALT>
35015370.01 07/2008
127
Ladder
Blocchi funzione standard
Gli elementi grafici dei blocchi funzione DFB si programmano in zona test ed occupano una dimensione la cui altezza è di massimo 16 righe e la cui la larghezza di 3 colonne.
Grafica Designazione
Blocchi
Temporizzatore,
Contatore,
Monostabile,
Registro,
Programmatore ciclico
Funzioni
Ciascuno dei blocchi funzione standard utilizza ingressi, uscite, ingressi/uscite che consentono di collegarli agli altri elementi grafici
Blocchi funzione
DFB
Gli elementi grafici dei blocchi funzione DFB si programmano in zona test ed occupano una dimensione la cui altezza è di massimo 16 righe e la cui la larghezza di 3 colonne.
Grafica Designazione
Blocchi programmabili
Funzioni
Ciascun blocco funzione DFB utilizza ingressi, uscite, ingressi/uscite che consentono di collegarli agli altri elementi grafici per gli oggetti di tipo bit o che possono essere assegnati ad oggetti numerici o a tabelle
Blocchi operazione
Gli elementi grafici dei blocchi operazione sono programmati in zona test ed occupano le dimensioni riportate qui di seguito.
Grafica Designazione
Blocco di confronto verticale
Funzioni
Consente di confrontare 2 operandi, secondo il risultato. L'uscita corrispondente passa a 1.
Dimensioni: 2 colonne/4 righe
Blocco di confronto orizzontale
Blocco Operazione
Consente di confrontare 2 operanti, l'uscita passa a
1 quando il risultato viene verificato (un blocco può contenere al massimo 4096 caratteri).
Dimensioni: 2 colonne/1 riga
Realizza le operazioni aritmetiche, logiche… richiama la sintassi del linguaggio letterale strutturato.
Un blocco può contenere al massimo 4096 caratteri.
Dimensioni: 4 colonne/1 riga
128
35015370.01 07/2008
Ladder
Regole di programmazione di un rung
Generalità La programmazione di un rung avviene tramite elementi grafici, nel rispetto delle regole di programmazione seguenti.
Regole di programmazione
Gli elementi grafici semplici di test e di azione occupano ciascuno una cella all'interno di un rung.
Le linee di contatto cominciano sempre sulla linea di potenziale sinistra e terminano obbligatoriamente sulla linea di potenziale destra.
I test sono sempre situati sulle colonne da 1 a 10.
Le azioni sono sempre situate sulla colonna 11.
Il senso di circolazione della corrente è il seguente: z z per i collegamenti orizzontali, da sinistra a destra , per i collegamenti verticali, nei due sensi.
Esempio di rung La schermata seguente riporta un esempio di rung.
35015370.01 07/2008
129
Ladder
Regola di programmazione dei blocchi funzione
Generalità
Esempio di un rung
I blocchi funzione standard si posizionano nella zona di test dei rung.
Regole di programmazione di blocchi funzione
Indipendentemente dal blocco funzione utilizzato, questo deve essere collegato obbligatoriamente in ingresso alla barra di potenziale sinistro, oppure attraverso altri elementi grafici.
z z uscite "scoperte": non occorre collegare le uscite dei blocchi funzione ad altri elementi grafici, uscite verificabili: le uscite dei blocchi funzione sono accessibili all'utente sotto forma di oggetto bit.
Le variabili interne dei blocchi e le uscite grafiche sono oggetti utilizzabili a distanza da un'altra parte del programma.
Gli ingressi non cablati dei blocchi funzione standard sono posti a 0.
Come per gli elementi grafici di tipo contatti, è possibile realizzare delle combinazioni di blocchi funzione.
La seguente illustrazione riporta un esempio di rung contenente 2 blocchi funzione.
130
35015370.01 07/2008
Ladder
Regole di programmazione dei blocchi operazione
Generalità
Esempio di blocchi operazione
I blocchi di confronto si posizionano nella zona test, mentre i blocchi operazione si posizionano nella zona azione.
Regole di programmazione di blocchi operazione
Indipendentemente dal blocco operazione utilizzato, questo deve essere collegato obbligatoriamente in ingresso alla barra di potenziale sinistro, oppure attraverso altri elementi grafici.
Come per gli elementi grafici di tipo contatti, è possibile realizzare delle combinazioni di blocchi funzione e di blocchi operazione.
La seguente illustrazione riporta un esempio di rung contenente 2 blocchi di confronto e un blocco operazione.
%I3.6
%MW1>100
%I1.2
%MW2>500
%TM10
IN
TYP:TP
TB:100ms
TM.P:200
MODIF:Y
Q
%TM2.P:=3450
%Q6.3
35015370.01 07/2008
131
Ladder
Esecuzione di un rung
Rung alimentato Un rung alimentato contiene elementi grafici collegati tutti tra loro da elementi di collegamento, esclusa la barra di potenziale, ma indipendenti dagli altri elementi grafici del rung (assenza di collegamenti verticali verso l'alto o verso il basso al limite del rung alimentato).
Illustrazione di rung alimentati
Il rung seguente si compone di 3 rung alimentati.
Rung alimentato 2
Rung alimentato 1
Rung alimentato 3
Regola di esecuzione dei rung alimentati
Il primo rung alimentato valutato è quello il cui angolo sinistro si trova nel punto più alto a sinistra.
Un rung alimentato è valutato nel senso dell'equazione: valutazione del rung dall'alto verso il basso, riga per riga, e in ogni riga da sinistra a destra.
Se si riscontra un collegamento verticale di convergenza, viene valutata la sottorete ad esso associata (secondo la stessa logica) prima di continuare con la valutazione del rung che la ingloba.
132
35015370.01 07/2008
Ladder
Esecuzione degli elementi in un rung alimentato
La seguente tabella descrive l'ordine di esecuzione degli elementi in un rung alimentato.
Fase
1
2
3
4
Descrizione
Il sistema valuta lo stato logico di ciascun contatto, in funzione di: z il valore corrente degli oggetti interni dell'applicazione, z lo stato degli ingressi dei moduli d'ingressi/uscite acquisiti all'inizio del ciclo, il sistema esegue i trattamenti associati alle funzioni, ai blocchi funzione e ai sottoprogrammi, il sistema aggiorna gli oggetti bit associati alle bobine (l'aggiornamento delle uscite dei moduli ingressi/uscite avvengono alla fine del ciclo),
Il sistema viene scollegato verso un altro rung etichettato dello stesso modulo programma (salto ad un altro rung) - >>%Li), ritorno al modulo chiamante
<RETURN>, oppure arresto del programma <HALT>,
Esempio 1: illustrazione
Il seguente disegno visualizza l'ordine di esecuzione degli elementi grafici.
Esempio 1: funzionamento
La seguente tabella descrive l'esecuzione degli elementi grafici nel rung illustrato qui di seguito.
Fase
1
4
5
2
3
Descrizione
Valutazione del rung fino a quando non si incontra il 1° collegamento verticale di convergenza: contatti A, B, C.
Valutazione della prima sottorete: contatto D,
Seguito della valutazione del rung fino a quando non si incontra il 2° collegamento verticale di convergenza. contato E,
Valutazione della seconda sottorete: contatti F e G,
Valutazione della bobina H.
35015370.01 07/2008
133
Ladder
Esempio 2: illustrazione
Il seguente disegno visualizza l'ordine di esecuzione degli elementi grafici.
Esempio 2: funzionamento
La seguente tabella descrive l'esecuzione degli elementi grafici nel rung illustrato qui di seguito.
Fase
1
2
3
Descrizione bobina 1: INIT, %M5, %M7, %Q2.1, bobina 2: %M4, %MW2:X1,AUTO, UP_1,
Blocco operazione.
134
35015370.01 07/2008
Linguaggio lista d'istruzioni
7
In breve
Generalità
Contenuto di questo capitolo
Questo capitolo descrive le regole di programmazione in linguaggio lista d'istruzioni.
Questo capitolo contiene le seguenti sottosezioni:
Argomento
Presentazione generale del linguaggio lista d'istruzioni
Struttura di un programma lista d'istruzioni
Label di una frase in linguaggio lista d'istruzioni
Commento di una frase in linguaggio lista d'istruzioni
Presentazione delle istruzioni in linguaggio lista d'istruzioni
Regola di utilizzo delle parentesi in linguaggio lista d'istruzioni
Descrizione delle istruzioni MPS, MRD e MPP
Principi di programmazione dei blocchi funzione predefiniti
Regole di esecuzione di un programma lista d'istruzioni
Pagina
135
35015370.01 07/2008
Linguaggio lista d'istruzioni
Presentazione generale del linguaggio lista d'istruzioni
Generalità
Illustrazione di un programma
Una sezione scritta in linguaggio lista d'istruzioni si compone di una serie di istruzioni eseguite in sequenza dal PLC.
L'illustrazione seguente presenta un programma lista d'istruzioni PL7 i dettagli relativi ad un'istruzione.
!%L0:
!%L2:
LD
ANDN
OR(
AND
)
AND
ST
%I1.0
%M12
%TM4.Q
%M17
%I3.7
%Q2.5
LD
Codice istruzione
%I1.0
Operando
LD %I3.5
Composizione di un'istruzione
Questa tabella descrive i componenti di un'istruzione.
Elemento Funzione
Codice istruzione Il codice istruzione determina l'operazione da eseguire. Vi sono 2 tipi di codici istruzioni: z test , in cui figurano le condizioni necessarie per svolgere un'azione z
(ad esempio: LD , AND , OR ...), azione , che applica il risultato conseguente a un concatenamento di test. (ad esempio: ST , STN , R , ...).
Operando z z z z
Un'istruzione agisce su un operando. Questo operando può essere: un ingresso/uscita del PLC (pulsanti, sensori, relè, spie luminose…), funzioni di automazione (temporizzatori, contatori…), un'operazione aritmetica e logica o un'operazione di trasferimento, una variabile interna del PLC.
136
35015370.01 07/2008
Linguaggio lista d'istruzioni
Struttura di un programma lista d'istruzioni
Generalità Come per il linguaggio Ladder, anche nel linguaggio lista d'istruzioni, le istruzioni sono organizzate in sequenze (equivalente di un rung), dette frasi.
Esempio di frase La seguente illustrazione presenta una frase in linguaggio strutturato PL7.
!(* Attesa di asciugatura*)
%L2:
LD
AND
ST
%I1.0
%M10
%Q2.5
1
2
3
Descrizione di una frase
Ogni frase comincia con un punto esclamativo (generato automaticamente) e contiene i seguenti elementi.
2
3
Variabile Elemento
1 Commento
Designazione
Istruzioni
Funzione
Specifica una frase (opzionale).
Specifica una frase (opzionale).
Una o più istruzioni di test, il cui risultato viene applicato a una o più istruzioni di azione.
Un'istruzione occupa al massimo una riga
35015370.01 07/2008
137
Linguaggio lista d'istruzioni
Label di una frase in linguaggio lista d'istruzioni
Generalità
Sintassi
Illustrazione
La label consente di individuare una frase in un'entità di programma (programma principale, sottoprogramma…). È facoltativa.
Questa label presenta la seguente sintassi: %Li con i compreso tra 0 e 999. Si posiziona all'inizio di una frase.
Il programma seguente illustra l'utilizzazione di una label.
%L0:
LD
JMPC
%M40
%L10
!(* Attesa di asciugatura*)
%L2:
LD
AND
ST
%I1.0
%M10
%Q2.5
...
%L10:
LD %I3.5
ANDN
OR
ST
%Q4.3
%M20
%Q2.5
Designazione
Regole La stessa label può essere assegnata ad una sola frase all'interno di una stessa entità di programma.
Occorre etichettare una frase per potere eseguire il collegamento dopo un salto di programma.
L'ordine delle variabili delle label è indifferente, in quanto al momento dell'esame il sistema prende in considerazione l'ordine di immissione delle frasi.
138
35015370.01 07/2008
Linguaggio lista d'istruzioni
Commento di una frase in linguaggio lista d'istruzioni
Generalità
Sintassi
Illustrazione
Il commento facilita l'interpretazione di una frase a cui è assegnato. È facoltativo.
Il commento può essere integrato all'inizio di una frase e può essere composto da massimo 3 righe, ovvero 222 caratteri alfanumerici, preceduti e seguiti dai caratteri
(* e *).
L'illustrazione seguente rileva la posizione del commento in una frase.
!(* Attesa di asciugatura*)
%L2:
LD
AND
ST
%I1.0
%M10
%Q2.5
Commento
Regole I commenti vengono visualizzati esclusivamente dalla prima riga della frase.
In caso di eliminazione di una frase, viene eliminato anche il commento ad essa associato.
I commenti vengono memorizzati nel PLC e l'utente può accedervi in qualsiasi momento. Naturalmente, consumano memoria programma.
35015370.01 07/2008
139
Linguaggio lista d'istruzioni
Presentazione delle istruzioni in linguaggio lista d'istruzioni
Generalità Il linguaggio lista d'istruzioni contiene istruzioni di: z z z z test azione su blocco funzione numeriche
Istruzioni di test La seguente tabella descrive le istruzioni di test del linguaggio lista d'istruzioni.
Designazione Grafica equivalente
LD
Funzioni
Il risultato booleano è uguale allo stato dell'operando.
LDN
LDR
LDF
AND
ANDN
ANDR
ANDF
OR
ORN
P
N
P
N
Il risultato booleano è uguale allo stato inverso dell'operando.
Il risultato booleano passa a 1 al rilevamento del passaggio da 0 a 1 dell'operando (fronte di salita).
Il risultato booleano passa a 1 al rilevamento del passaggio da 1 a 0 dell'operando (fronte di discesa).
Il risultato booleano è uguale all'AND logico tra il risultato booleano dell'istruzione precedente e lo stato dell'operando.
Il risultato booleano è uguale al AND logico tra il risultato booleano dell'istruzione precedente e lo stato inverso dell'operando.
Il risultato booleano è uguale al AND logico tra il risultato booleano dell'istruzione precedente e il rilevamento di un fronte di salita dell'operando (1=fronte di salita).
Il risultato booleano è uguale al AND logico tra il risultato booleano dell'istruzione precedente e il rilevamento di un fronte di discesa dell'operando (1=fronte di discesa).
Il risultato booleano è uguale all'OR logico tra il risultato booleano dell'istruzione precedente e lo stato dell'operando.
Il risultato booleano è uguale al OR logico tra il risultato booleano dell'istruzione precedente e lo stato inverso dell'operando.
140
35015370.01 07/2008
35015370.01 07/2008
Linguaggio lista d'istruzioni
Designazione Grafica equivalente
ORR
Funzioni
ORF
AND(
P
N
Il risultato booleano è uguale al OR logico tra il risultato booleano dell'istruzione precedente e il rilevamento di un fronte di salita dell'operando (1=fronte di salita).
Il risultato booleano è uguale al AND logico tra il risultato booleano dell'istruzione precedente e lo stato dell'operando e il rilevamento di un fronte di discesa dell'operando (1=fronte di discesa).
AND logico (8 livelli di parentesi)
OR( OR logico (8 livelli di parentesi)
XOR, XORN,
XORR, XORF
MPS
MRD
MPP
-
N -
OR esclusivo
Indirizzamento verso le bobine.
Negazione
141
Linguaggio lista d'istruzioni
Istruzione di azione
La seguente tabella descrive le istruzioni di test del linguaggio lista d'istruzioni.
Designazione Grafica
ST
Funzioni
L'operando associato prende il valore del risultato della zona test.
STN
S
S
L'operando associato prende il valore inverso del risultato della zona test.
L'operando associato è impostato a 1 quando il risultato della zona test è impostato a 1.
R
R
L'operando associato è impostato a 0 quando il risultato della zona test è impostato a 1.
JMP
JMPC
JMPCN
SRn
RET
RETC
RETCN
END
ENDC
ENDCN
-
-
-
-
-
-
-
-
-
-
Consente di eseguire un collegamento incondizionale a una frase etichettata, a monte o a valle.
Permette di eseguire un collegamento condizionato ad un risultato booleano a 1, a una frase etichettata a monte o a valle.
Permette di eseguire un collegamento condizionato ad un risultato booleano a 0, a una frase etichettata a monte o a valle.
Collegamento all'inizio di un sottoprogramma.
Ritorno dal sottoprogramma
Ritorno di sottoprogramma condizionato a un risultato booleano a 1.
Ritorno di sottoprogramma condizionato a un risultato booleano a 0.
Fine di programma.
Fine di programma condizionato a un risultato booleano a
1.
Fine di programma condizionato a un risultato booleano a
0.
142
35015370.01 07/2008
Istruzione su blocco funzione
Linguaggio lista d'istruzioni
La seguente tabella descrive le istruzioni di test del linguaggio lista d'istruzioni.
Grafica Designazione
Blocchi
Temporizzatore,
Contatore,
Monostabile,
Registro,
Programmatore ciclico
Funzioni
Per ciascun blocco funzione standard, esistono delle istruzioni che consentono di pilotare il blocco.
Una forma strutturata permette di cablare direttamente gli ingressi/uscite dei blocchi.
Istruzioni numeriche
La seguente tabella descrive le istruzioni di test del linguaggio lista d'istruzioni.
Designazione
Elemento di test
Elemento di azione
Istruzioni
LD[.....]
AND[.....]
OR[.....]
[.....]
Funzioni
Permette di eseguire il confronto tra 2 operandi.
L'uscita passa a 1 quando viene verificato il risultato.
Esempio : LD[%MW10<1000]
Risultato a 1 quando %MW10<1000.
Realizzano le operazioni aritmetiche, logiche…
Utilizzando la sintassi del linguaggio letterale strutturato.
Esempio : [%MW10:=%MW0+100]
Il risultato dell'operazione %MW0+100 è posto nella parola interna %MW10.
35015370.01 07/2008
143
Linguaggio lista d'istruzioni
Regola di utilizzo delle parentesi in linguaggio lista d'istruzioni
Generalità
Principio
Esempio: AND(
Le istruzioni AND e OR possono utilizzare le parentesi.
Queste parentesi consentono di realizzare semplicemente degli schemi a contatti.
L'apertura delle parentesi è associata all'istruzione AND o OR .
La chiusura delle parentesi è un'istruzione ed è obbligatoria ogni volta che si inserisce una parentesi aperta.
I 2 programmi seguenti illustrano l'utilizzo delle parentesi.
LD
AND
OR
ST
%I1.0
%I1.1
%I1.2
%Q2,0
LD
AND(
OR
)
ST
%I1.0
%I1.1
%I1.2
%Q2.0
Esempio: OR( Il programma seguente illustra l'utilizzo delle parentesi.
LD
AND
OR(N
AND
)
ST
%I1.0
%I1.1
%I1.2
%I1.3
%Q2.0
144
35015370.01 07/2008
Linguaggio lista d'istruzioni
Associazione delle parentesi a dei modificatori
I "modificatori" seguenti possono essere associati alle parentesi.
F
R
Codice
N
[
Funzione
Negazione
Fronte di discesa (Falling edge)
Fronte di salita (Rising edge)
Confronto
Esempio
AND(N
AND(F
OR(R
OR([%MW0>100]
Annidamento di parentesi
È possibile annidare fino a 8 livelli di parentesi.
Vanno rispettate le seguenti regole: z z z
Ogni parentesi aperta deve essere necessariamente richiusa
Le label %Li: non vanno inserite nelle espressioni tra parentesi, cosi come le istruzioni di salto JMP e di chiamata ad un sottoprogramma SRi ,
Le istruzioni di assegnazione ST , STN , S e R non devono essere programmate tra parentesi.
Esempio:
I seguenti programmi illustrano l'uso dell'annidamento delle parentesi.
LD
AND(
OR(N
AND
)
)
ST
%I1.0
%I1.1
%I1.2
%M3
%Q2.0
LD
AND(
AND
OR(N
AND
)
AND
OR(N
AND
)
)
ST %Q2.0
%I1.1
%I1.2
%I1.3
%I1.5
%I1.6
%I1.4
%I1.7
%I1.8
35015370.01 07/2008
145
Linguaggio lista d'istruzioni
Descrizione delle istruzioni MPS, MRD e MPP
Generalità I 3 tipi di istruzioni consentono di trattare gli indirizzamenti verso le bobine.
Queste istruzioni utilizzano una memoria intermedia chiamata pila che è in grado di memorizzare al massimo 3 istruzioni booleane…
Nota: Esse non possono essere utilizzate all'interno di un'espressione tra parentesi
Funzione
Esempio 1
La seguente tabella descrive la funzione di ciascuna istruzione
Istruzione
MPS (Memory PuSh)
MRD (Memory ReaD)
MPP (Memory PoP)
Funzione
Questa istruzione permette di memorizzare il risultato dell'ultima istruzione di test in cima alla pila e di spostare gli altri valori in fondo alla pila.
Questa istruzione legge la cima della pila.
Questa istruzione permette di leggere, di togliere dalla memoria la cima della pila e di spostare gli altri valori verso la cima della pila.
Questo esempio illustra l'uso delle istruzioni MPS, MRD e MPP.
LD
AND
MPS
AND
ST
MRD
AND
ST
MRD
AND
ST
MPP
AND
ST
%I1.0
%M0
%I1.1
%Q2.0
%I1.2
%Q2.1
%I1.3
%Q2.2
%I1.4
%Q2.3
146
35015370.01 07/2008
Esempio 2
Linguaggio lista d'istruzioni
Questo esempio illustra il funzionamento delle istruzioni MPS, MRD e MPP.
LD
MPS
AND
MPS
%I1.0
%I1.1
AND( %I1.3
OR %M0
)
%Q2.0
ST
MPP
AND %M1
%Q2.1
ST
MRD
AND
ST
MPP
%I1.4
%Q2.2
AND
ST
%M10
%Q2.3«ST%Q2.3
35015370.01 07/2008
147
Linguaggio lista d'istruzioni
Principi di programmazione dei blocchi funzione predefiniti
Generalità I blocchi funzione dell'automazione possono essere programmati in 2 modi diversi: z z con istruzioni specifiche a ciascun blocco funzione (ad esempio: CU %Ci ). Si tratta del modo più semplice e più diretto, con istruzioni di strutturazione del blocco BLK , OUT_BLK , END_BLK .
Principio di programmazione diretta
Le istruzioni pilotano gli ingressi dei blocchi (ad esempio: CU ). Le uscite sono accessibili sotto forma di bit (ad esempio: %C8.D
).
Esempio:
Questo esempio illustra la programmazione diretta di un blocco funzione contatore.
LD
R
LDN
%I1.1
%CS
%I1.2
ANDN %M0
CU %CS
LD
ST
%CS.D
%Q2.0
Elaborazione ingressi
Elaborazione uscite
148
35015370.01 07/2008
Linguaggio lista d'istruzioni
Principio di programmazione strutturata
Questo tipo di programmazione utilizza una serie di istruzioni circondate da istruzioni: z z z
BLK indica l'inizio del blocco
OUT_BLK consente di cablare direttamente le uscite del blocco
END_BLK indica la fine del blocco
Esempio:
Questo esempio illustra la programmazione strutturata di un blocco funzione contatore.
BLK
LD
%C8
%I1.1
R
LDN %I1.2
ANDN %M0
CU
OUT_BLK
LD D
ST %Q2.0
END_BLK
Elaborazione ingressi
Elaborazione uscite
Nota: Questo principio di programmazione strutturata che necessita delle istruzioni supplementari BLK, OUT_BLK e END_BLK, richiede volumi di memoria superiori rispetto alla programmazione diretta. Va tuttavia utilizzata se si desidera conservare una similitudine con programmi reversibili per nano-PLC TSX 07.
35015370.01 07/2008
149
Linguaggio lista d'istruzioni
Regole di esecuzione di un programma lista d'istruzioni
Principio
Esempio 1
Esempio 2
Esempio 3
L'esecuzione di un programma lista d'istruzioni avviene in modo sequenziale istruzione dopo istruzione.
La prima istruzione di una sequenza d'istruzioni deve essere sempre sia un'istruzione LD sia un'istruzione incondizionale (ad esempio: JMP ).
Ogni istruzione (tranne LD e le istruzioni incondizionali) utilizza il risultato booleano dell'istruzione precedente.
Il programma seguente descrive l'esecuzione completa di una frase.
LD
AND
OR
ST
%I1.1
%M0
%M10 risultato = stato del bit %I1.1
risultato = AND del risultato booleano precedente e dello stato del bit
%M0 risultato = OR del risultato booleano precedente e dello stato del bit
%M10
%Q2.0
%Q2.0 assume lo stato del risultato booleano precedente
Le parentesi permettono di modificare l'ordine di acquisizione dei risultati booleani:
LD
AND
OR(
AND
%I1.1
%M0 risultato = stato del bit %I1.1
risultato = AND del risultato booleano precedente e dello stato del bit
%M0
%M10 risultato = stato del bit %M10
%I1.2
risultato = AND del risultato booleano precedente e dello stato del bit
%M10
)
ST %Q2.0
%Q2.0 assume lo stato del risultato booleano precedente
L'ordine sequenziale delle istruzioni può essere modificato dalle istruzioni di salto
JMP di chiamata al sottoprogramma.
!
!
!
LD
JMPC
LD
AND
ST
%L10:
LD
AND
......
%M0
%L10
%I1.1
%M10
%Q2.0
%I1.3
%M20
Salto all'etichetta %L10 se %M0=1
150
35015370.01 07/2008
Langage litteral structuré
8
In breve
Contenuto di questo capitolo
Contenuto di questo capitolo
Questo capitolo descrive le regole di programmazione in linguaggio letterale strutturato.
Questo capitolo contiene le seguenti sottosezioni:
Argomento
Presentazione del linguaggio letterale strutturato
Struttura di un programma in linguaggio letterale strutturato
Label di una frase in linguaggio letterale strutturato
Commento di una frase in linguaggio letterale strutturato
Istruzioni sugli oggetti bit
Istruzioni aritmetiche e logiche
Istruzioni su tabelle e stringhe di caratteri
Istruzioni di conversioni numeriche
Istruzioni su programma e istruzioni specifiche
Struttura di controllo condizionale IF...THEN
Struttura di controllo condizionale WHILE...END_WHILE
Struttura di controllo condizionale REPEAT...END_REPEAT
Struttura di controllo condizionale FOR...END_FOR
Istruzione di uscita del loop EXIT
Regole di esecuzione di un programma letterale strutturato
Pagina
35015370.01 07/2008
151
Linguaggio letterale strutturato
Presentazione del linguaggio letterale strutturato
Generalità
Limite d'uso
Illustrazione di un programma
Il linguaggio letterale strutturato è un linguaggio evoluto di tipo algoritmico particolarmente adatto alla programmazione di funzioni aritmetiche complesse, alle manipolazioni di tabelle e alla gestione dei messaggi.
Permette di realizzare programmi tramite scrittura di righe di programmazione, costituite da caratteri alfanumerici.
Questo linguaggio può essere utilizzato con i software PL7 Micro, PL7 Junior e PL7
Pro sui PLC Premium e Micro.
Nella versione PL7 Pro, questo linguaggio consente di creare dei blocchi funzione utente DFB sui PLC Premium.
La seguente illustrazione presenta un programma in linguaggio strutturato PL7.
!
(* Ricerca del primo elemento non nullo in una tabella di 32 parole, determinazione del valore
(%MW10), del suo rango (%MW11). Questa ricerca viene svolta se %M0 è impostato a 1 e %M1 è impostato a 1 se esiste un elemento non nullo, altrimenti è impostato a 0*)
IF %M0 THEN
FOR %MW99:=0 TO 31 DO
IF %MW100[%MW99]<>0 THEN
%MW10:=%MW100[%MW99];
%MW11:=%MW99;
%M1:=TRUE;
EXIT; (*Uscita dal loop*)
ELSE
%M1:=FALSE;
END_IF;
END_FOR;
ELSE
%M1:=FALSE;
END_IF;
152
35015370.01 07/2008
Linguaggio letterale strutturato
Struttura di un programma in linguaggio letterale strutturato
Generalità Una sezione di programma letterale è organizzata per frasi.
Una frase letterale è l'equivalente di un rung in Ladder.
Esempio di frase La seguente illustrazione presenta una frase in linguaggio strutturato PL7.
1 !
%L20: (*Attesa di asciugatura*)
SET %M0;
%MW4:=%MW2 + %MW9;
(*calcolo della pressione*)
%MF12:=SQRT (%MF14);
2
3
Descrizione di una frase
Ogni frase comincia con un punto esclamativo (generato automaticamente) e contiene i seguenti elementi.
2
3
Variabile Elemento
1 Designazione
Funzione
Individua una frase.
Commento
Istruzioni
Specifica una frase.
Una o più istruzioni separate da un ";".
Nota: Ciascuno di questi elementi è facoltativo, ovvero è possibile avere una frase vuota, una costituita esclusivamente da commenti o esclusivamente da una label.
35015370.01 07/2008
153
Linguaggio letterale strutturato
Label di una frase in linguaggio letterale strutturato
Funzione
Sintassi
Illustrazione
La label consente di individuare una frase in un'entità di programma (programma principale, sottoprogramma…). È facoltativa.
Questa label presenta la seguente sintassi: %Li: con i compreso tra 0 e 999. Si posiziona all'inizio di una frase.
Il programma seguente illustra l'utilizzo di una label.
!
%L20:
(* Attesa di asciugatura*)
SET %M0;
%MW4:=%MW2 + %MW9;
(*calcolo della pressione*)
%MF12:=SQRT (%MF14);
Designazione
Regole La stessa label può essere assegnata ad una sola frase all'interno di una stessa entità di programma.
Occorre etichettare una frase per potere eseguire il collegamento dopo un salto di programma.
L'ordine delle variabili delle label è indifferente, in quanto al momento dell'esame il sistema prende in considerazione l'ordine di immissione delle frasi.
154
35015370.01 07/2008
Linguaggio letterale strutturato
Commento di una frase in linguaggio letterale strutturato
Funzione
Sintassi
Illustrazione
Il commento facilita l'interpretazione di una frase a cui è assegnato. È facoltativo.
Il commento può essere integrato in qualsiasi posizione nella frase ed il numero di commenti per frase è illlimitato.
Un commento deve essere preceduto e seguito dai caratteri (* e *).
L'illustrazione seguente rileva la posizione del commento in una frase.
!
%L20 (*Attesa di asciugatura*)
SET %M0;
%MW4:=%MW2 + %MW9;
(*calcolo della pressione*)
%MF12:=SQRT (%MF14);
Commenti
Regole z z z z
In un commento sono autorizzati tutti i caratteri.
Un commento può contenere al massimo 256 caratteri.
Sono vietati i commenti annidati.
Un commento può essere costituito da più righe.
I commenti vengono memorizzati nel PLC e l'utente può accedervi in qualsiasi momento. Naturalmente, consumano memoria programma.
35015370.01 07/2008
155
Linguaggio letterale strutturato
Istruzioni sugli oggetti bit
Istruzioni su bit Le istruzioni seguenti si applicano agli oggetti bit.
Designazione
:=
OR
AND
XOR
NOT
RE
FE
SET
RESET
Funzione
Assegnazione di un bit
OR booleano
AND booleano
OR esclusivo booleano
Inversione
Fronte di salita
Fronte di discesa
Impostazione a 1
Impostazione a 0
Istruzioni su tabelle di bit
Le istruzioni seguenti si applicano agli oggetti di tipo tabella di bit.
Designazione
Tabella:= Tabella
Tabella:= Parola
Parola:= Tabella
Funzione
Assegnazione tra due tabelle
Assegnazione di una parola a una tabella
Assegnazione di una tabella a una parola
Tabella:= Parola doppia Assegnazione di una parola doppia a una tabella
Parola doppia:= Tabella Assegnazione di una tabella a una parola doppia
COPY_BIT
AND_ARX
Copia di una tabella di bit in una tabella di bit
AND tra due tabelle
OR_ARX
XOR_ARX
NOT_ARX
BIT_W
BIT_D
W_BIT
D_BIT
LENGHT_ARX
OR tra due tabelle
OR esclusivo tra due tabelle
Negazione su una tabella
Copia di una tabella di bit in una tabella di parole
Copia di una tabella di bit in una tabella di parole doppie
Copia di una tabella di parole in una tabella di bit
Copia di una tabella di parole doppie in una tabella di bit
Calcolo della lunghezza di una tabella in numero di elementi
156
35015370.01 07/2008
Linguaggio letterale strutturato
Istruzioni aritmetiche e logiche
Aritmetica intera su parole e parole doppie
Le seguenti istruzioni sono applicabili agli oggetti parole e alle parole doppie.
Designazione
+, -, *, /
REM
SQRT
ABS
INC
DEC
Funzione
Addizione, Sottrazione, Moltiplicazione, Divisione intera
Resto della divisione intera
Radice quadrata intera
Valore assoluto
Incremento
Decremento
Aritmetica su virgole mobili
Le istruzioni seguenti sono valide per gli oggetti virgole mobili.
LN
EXP
EXPT
COS
SIN
TAN
ACOS
ASIN
Designazione
+, -, *, /
SQRT
ABS
TRUNC
LOG
ATAN
DEG_TO_RAD
RAD_TO_DEG
Funzione
Addizione, Sottrazione, Moltiplicazione, Divisione
Radice quadrata
Valore assoluto
Parte intera
Logaritmo base 10
Logaritmo neperiano
Esponenziale naturale
Elevamento a potenza di un reale con un reale
Coseno di un valore in radiante
Seno di un valore in radiante
Tangente di un valore in radiante
Arco coseno (risultato tra 0 e 2 p)
Arco seno (risultato tra -p/2 e +p/2)
Arco tangente (risultato tra -p/2 e +p/2)
Conversione gradi in radianti
Conversione radianti in gradi
35015370.01 07/2008
157
Linguaggio letterale strutturato
Istruzioni logiche su parole e parole doppie
Le seguenti istruzioni sono applicabili agli oggetti parole e alle parole doppie.
Designazione
AND
OR
XOR
NOT
SHL
SHR
ROL
ROR
Funzione
AND logico
OR logico
OR logico esclusivo
Complemento logico
Spostamento logico a sinistra
Spostamento logico a destra
Spostamento logico circolare a sinistra
Spostamento logico circolare a destra
Confronti numerici su parole, parole doppie e virgole mobili
Le seguenti istruzioni sono applicabili agli oggetti parole, parole doppie e virgole mobili.
Designazione
<
>
<=
>=
=
<>
Funzione
Assolutamente inferiore a
Assolutamente inferiore a
Inferiore o uguale a
Superiore o uguale a
Uguale a
Diverso da
158
35015370.01 07/2008
Linguaggio letterale strutturato
Istruzioni su tabelle e stringhe di caratteri
Istruzioni su tabelle di parole e parole doppie
Le seguenti istruzioni sono applicabili alle tabelle di parole e parole doppie.
Designazione
Tabella := Tabella
Tabella := Parola
+, -, *, /, REM
+, -, *, /, REM
SUM
EQUAL
NOT
AND, OR, XOR
AND, OR, XOR
Funzione
Assegnazione tra due tabelle
Inizializzazione di una tabella
Operazioni aritmetiche tra tabelle
Operazioni aritmetiche tra espressioni e tabelle
Somma degli elementi di una tabella
Confronto di due tabelle
Complemento logico di una tabella
Operazioni logiche tra due tabelle
Operazioni logiche tra espressioni e tabelle
FIND_EQW, FIND_EQD
FIND_GTW, FIND_GTD
FIND_LTW, FIND_LTD
MAX_ARW, MAX_ARD
MIN_ARW, MIN_ARD
OCCUR_ARW, OCCUR_ARD
Ricerca del primo elemento uguale a un valore
Ricerca del primo elemento superiore a un valore
Ricerca del primo elemento inferiore a un valore
Ricerca del valore massimo in una tabella
Ricerca del valore minimo in una tabella
Numero di occorrenze di un valore in una tabella
SORT_ARW, SORT_ARD
ROL_ARW, ROL_ARD
ROR_ARW, ROR_ARD
Ordinamento crescente o decrescente in una tabella
Spostamento circolare a sinistra di una tabella
Spostamento circolare a destra di una tabella
FIND_EQWP,FIND_EQDP Ricerca del primo elemento uguale a un valore da un rango
LENGTH_ARW, LENGTH_ARD Calcolo della lunghezza di una tabella
35015370.01 07/2008
159
Linguaggio letterale strutturato
Istruzioni su tabelle di virgole mobili
Le istruzioni seguenti sono valide per le tabelle di virgole mobili.
Designazione
Tabella := Tabella
Tabella := Virgola mobile
SUM_ARR
EQUAL_ARR
FIND_EQR
FIND_GTR
FIND_LTR
MAX_ARR
MIN_ARR
OCCUR_ARR
SORT_ARR
ROL_ARR
ROR_ARR
LENGTH_ARR
Funzione
Assegnazione tra due tabelle
Inizializzazione di una tabella
Somma degli elementi di una tabella
Confronto di due tabelle
Ricerca del primo elemento uguale a un valore
Ricerca del primo elemento superiore a un valore
Ricerca del primo elemento inferiore a un valore
Ricerca del valore massimo in una tabella
Ricerca del valore minimo in una tabella
Numero di occorrenze di un valore in una tabella
Ordinamento crescente o decrescente in una tabella
Spostamento circolare a sinistra di una tabella
Spostamento circolare a destra di una tabella
Calcolo della lunghezza di una tabella
160
35015370.01 07/2008
Istruzioni su stringhe di caratteri
Linguaggio letterale strutturato
Le istruzioni seguenti sono valide per le stringhe di caratteri.
Designazione
STRING_TO_INT
STRING_TO_DINT
INT_TO_STRING
DINT_TO_STRING
STRING_TO_REAL
REAL_TO_STRING
<, >, <=, >=, =, <>
FIND
EQUAL_STR
LEN
MID
INSERT
DELETE
CONCAT
REPLACE
LEFT
RIGHT
Funzione
Conversione ASCII í Binario (parola formato semplice)
Conversione ASCII í Binario (parola doppio formato)
Conversione Binario í (parola formato semplice) ASCII
Conversione Binario í (parola doppio formato) ASCII
Conversione ASCII í Virgola mobile
Conversione Virgola mobile í ASCII
Confronto alfanumerico
Posizione di una sotto-stringa
Posizione del primo carattere diverso
Lunghezza di una stringa di caratteri
Estrazione di una sotto-stringa
Inserimento di una sotto-stringa
Eliminazione di una sotto-stringa
Concatenamento di due stringhe
Sostituzione di una stringa
Inizio di stringa
Fine di stringa
35015370.01 07/2008
161
Linguaggio letterale strutturato
Istruzioni di conversioni numeriche
Istruzioni di conversioni numeriche
Le istruzioni realizzano conversioni di bit, parole, parole doppie e virgole mobili.
Designazione
BCD_TO_INT
INT_TO_BCD
GRAY_TO_INT
INT_TO_REAL
DINT_TO_REAL
REAL_TO_INT
REAL_TO_DINT
DBCD_TO_DINT
DINT_TO_DBCD
DBCD_TO_INT
INT_TO_DBCD
LW
HW
CONCATW
Funzione
Conversione BCD í Binario
Conversione Binario í BCD
Conversione Gray í Binario
Conversione di un intero semplice formato in virgola mobile
Conversione di un intero doppio formato in virgola mobile
Conversione di una virgola mobile in intero semplice formato
Conversione di una virgola mobile in intero doppio formato
Conversione di un numero BCD a 32 bit in intero a 32 bit
Conversione di un intero a 32 bit in numero BCD a 32 bit
Conversione di un numero BCD a 16 bit in intero a 32 bit
Conversione di un intero a 16 bit in numero BCD a 32 bit
Estrazione della parola meno significativa da una parola doppia
Estrazione della parola più significativa da una parola doppia
Concatenamento di 2 parole semplici
162
35015370.01 07/2008
Linguaggio letterale strutturato
Istruzioni su programma e istruzioni specifiche
Istruzioni su programma
Le seguenti istruzioni non agiscono sugli oggetti del linguaggio, ma sull'esecuzione del programma.
Designazione
HALT
JUMP
SRi
RETURN
MASKEVT
UNMASKEVT
Funzione
Arresto dell'esecuzione del programma
Salto ad una label
Chiamata di sottoprogramma
Ritorno dal sottoprogramma
Mascheramento degli eventi nel PLC
Smascheramento degli eventi nel PLC
Istruzioni di gestione del tempo
Le seguenti istruzioni eseguono delle operazioni sulle date, sulle ore e sulle durate.
Designazione
SCHEDULE
RRTC
WRTC
PTC
ADD_TOD
ADD_DT
DELTA_TOD
DELTA_D
DELTA_DT
SUB_TOD
SUB_DT
DAY_OF_WEEK
TRANS_TIME
DATE_TO_STRING
TOD_TO_STRING
DT_TO_STRING
TIME_TO_STRING
Funzione
Funzione orodatario
Lettura data sistema
Aggiornamento della data sistema
Lettura data e codice arresto
Aggiunta di una durata ad un'ora del giorno
Aggiunta di una durata ad una data e ora
Misura del divario tra le ore del giorno
Misura del divario tra le date (senza ora)
Misura del divario tra le date (con l'ora)
Indietro nel tempo sull'ora
Indietro nel tempo su data e ora
Lettura del giorno corrente della settimana
Conversione durata in data
Conversione di una data in stringa di caratteri
Conversione di un'ora in stringa di caratteri
Conversione di una data completa in stringa di caratteri
Conversione di una durata in stringa di caratteri
35015370.01 07/2008
163
Linguaggio letterale strutturato
Istruzioni
"Orphée"
Le seguenti istruzioni sono istruzioni specifiche del linguaggio Orphée.
Designazione
WSHL_RBIT, DSHL_RBIT
WSHR_RBIT, DSHR_RBIT
WSHRZ_C, DSHRZ_C
SCOUNT
ROLW,ROLD
RORW,RORD
Funzione
Spostamento a sinistra su parola con recupero dei bit spostati
Spostamento a destra su parola con estensione del segno e recupero dei bit spostati
Spostamento a destra su parola con riempimento per 0 e recupero dei bit spostati
Computo/scomputo con segnalazione di superamento
Spostamento circolare sinistro
Spostamento circolare destro
Istruzioni di temporizzazione
Queste istruzioni sono funzioni di temporizzazione destinate ad essere utilizzate per la programmazione del codice dei DFB.
Designazione
FTON
FTOF
FTP
FPULSOR
Funzione
Temporizzatore del ritardo di attivazione
Temporizzatore del ritardo di disattivazione
Temporizzatore d'impulsi
Generatore di segnali rettangolari
164
35015370.01 07/2008
Linguaggio letterale strutturato
Struttura di controllo condizionale IF...THEN
Funzione Questa struttura di controllo realizza una o più azioni se una condizione è vera. Nella forma generale della struttura, le condizioni possono essere molteplici.
Forma semplice Nella sua forma semplice, la struttura di controllo presenta la sintassi ed il funzionamento seguenti.
Sintassi Funzionamento
IF condizione THEN azioni;
END_IF;
Inizio di IF non verificata
Condizione verificata
Azione
Fine di IF
Esempio:
! (*Azione condizionale IF (forma semplice)*)
IF %M0 AND %M12 THEN
RESET %M0;
INC %MW4;
%MW10:=%MW8+%MW9;
END_IF;
35015370.01 07/2008
165
Linguaggio letterale strutturato
Forma generale Nella sua forma generale, la struttura di controllo presenta la sintassi ed il funzionamento seguenti.
Sintassi Funzionamento
Inizio di IF
IF condizione1 THEN verificata azioni1; Condizione 1
ELSEIF condizione2 THEN
ELSE azioni2;
Azioni 1 verificata
Azioni 2 non verificata
Condizione 2 non verificata
Azioni 3 azioni3;
Fine di IF
END_IF;
Esempio:
! (*Azione condizionale IF (forma semplice)*)
IF %M0 AND %M1 THEN
%MW5:=%MW3+%MW4;
SET %M10;
ELSEIF %M0 OR %M1 THEN
%MW5:=%MW3-%MW4;
SET %M11;
ELSE
RESET %M10;
RESET %M11;
END_IF;
Regola di programmazione z z z z z
Le condizioni possono essere molteplici.
Ogni azione rappresenta una lista d'istruzioni.
Possono essere annidate più strutture di controllo IF .
Il numero di ELSIF è illimitato.
Vi è al massimo una parte ELSE
166
35015370.01 07/2008
Linguaggio letterale strutturato
Struttura di controllo condizionale WHILE...END_WHILE
Funzione
Descrizione
Questa struttura di controllo realizza un'azione ripetitiva finché non si verifica un'azione.
La struttura di controllo presenta la sintassi ed il funzionamento seguenti.
Sintassi Funzionamento
Inizio di
WHILE
WHILE condizione DO azione;
END_WHILE; non verificata
Condizione verificata
Azione
Fine di WHILE
Esempio:
! (*Azione iterativa condizionale WHILE*)
WHILE %MW4<12 DO
INC %MW4;
SET %M25[%MW4];
END_WHILE;
Regola di programmazione z z z z
La condizione può essere multipla.
L'azione rappresenta una lista d'istruzioni.
Il test sulla condizione viene effettuato prima di eseguire l'azione. Se alla prima valutazione della condizione, il valore è errato, l'azione non viene mai eseguita.
Possono essere annidate più strutture di controllo WHILE .
Nota: L’istruzione EXIT (vedi
consente di interrompere l'esecuzione del loop e di continuare con l'istruzione secondo il END_WHILE .
35015370.01 07/2008
167
Linguaggio letterale strutturato
Struttura di controllo condizionale REPEAT...END_REPEAT
Funzione
Descrizione
Questa struttura di controllo realizza un'azione ripetitiva finché non si verifica una condizione.
La struttura di controllo presenta la sintassi ed il funzionamento seguenti.
Sintassi
Funzionamento
Inizio di REPEAT
REPEAT
Azione azione;
UNTIL condizione
END_REPEAT; non verificata
Condizione verificata
Fine di REPEAT
Esempio:
! (*Azione iterativa condizionale REPEAT*)
REPEAT
INC %MW4;
SET %M25[%MW4];
UNTIL %MW4>12 END_REPEAT;
Regola di programmazione z z z z
La condizione può essere multipla.
L'azione rappresenta una lista d'istruzioni.
Il test sulla condizione viene effettuato dopo avere eseguito l'azione. Se alla prima valutazione della condizione, il valore è errato, l'azione viene eseguita una sola volta.
Possono essere annidate più strutture di controllo REPEAT .
Nota: L’istruzione EXIT (vedi
) consente di interrompere l'esecuzione del loop e di continuare con l'istruzione secondo il END_REPEAT .
168
35015370.01 07/2008
Linguaggio letterale strutturato
Struttura di controllo condizionale FOR...END_FOR
Funzione
Descrizione
Questa struttura di controllo realizza un trattamento un dato numero di volte incrementando di 1 un indice ad ogni loop.
La struttura di controllo presenta la sintassi ed il funzionamento seguenti.
Sintassi
FOR indice:=valore iniziale TO valore finale DO
Funzionamento
Inizio di FOR
Valore iniziale --> Indice azione;
END_FOR;
Indice >
Valore finale verificata non verificata
Azione
Fine di FOR
Indice+1 --> Indice
Esempio:
! (*Azione ripetitiva FOR*)
FOR %MW4=0 TO %MW23+12 DO
SET %M25[%MW4];
END_FOR;
Regola di programmazione z z z z z z
Quando l'indice è superiore al valore finale, l'esecuzione continua con l'istruzione secondo il END_FOR .
L'incremento dell'indice avviene automaticamente e pertanto non va eseguito dall'utente.
L'azione rappresenta una lista d'istruzioni.
Il valore iniziale e il valore finale sono necessariamente espressioni numeriche di tipo parola.
L'indice è necessariamente un oggetto di tipo parola accessibile in scrittura.
Possono essere annidate più strutture di controllo FOR .
Nota: L’istruzione EXIT (vedi
consente di interrompere l'esecuzione del loop e di continuare con l'istruzione secondo il END_FOR .
35015370.01 07/2008
169
Linguaggio letterale strutturato
Istruzione di uscita del loop EXIT
Funzione Quest'istruzione consente di interrompere l'esecuzione del loop e di continuare con l'istruzione che segue l'istruzione di fine loop.
Regola di programmazione z z
Quest'istruzione è utilizzabile solo nelle azioni di uno dei 3 loop WHILE , REPEAT o FOR .
Quest'istruzione fa parte del loop inglobante più vicino, il che significa che essa non interrompe l'esecuzione di tutti i loop che l'inglobano.
Esempio In questo esempio, l’istruzione EXIT consente di interrompere il loop REPEAT ma in nessun caso il loop WHILE .
! (*Istruzione di uscita dal loop EXIT*)
WHILE %MW1<124 DO
%MW2:=0;
%MW3:=%MW100[%MW1];
REPEAT
%MW500[%MW2]:=%MW3+%MW500[%MW2];
IF(%MW500[%MW2]>32700) THEN
EXIT;
UNTIL %MW2>25 END_REPEAT;
INC %MW1;
END_WHILE;
END_IF;
INC %MW2;
170
35015370.01 07/2008
Regole di esecuzione di un programma letterale strutturato
Linguaggio letterale strutturato
Generalità L'esecuzione di un programma letterale avviene in modo sequenziale, istruzione per istruzione, rispettando le strutture di controllo.
Nel caso di espressioni aritmetiche o booleane composte da un o più operatori, vengono definite delle regole di priorità tra i vari operatori.
Regola di priorità degli operatori
La tabella seguente dà la priorità per valutare un'espressione da quella con priorità più alta a quella con priorità più bassa.
Operatore
Parentesi
Complemento logico
Inversione
- su operando
+ su operando
Moltiplicazione
Divisione
Modulo
Addizione
Sottrazione
Confronti
Confronto uguaglianza
Confronto diseguaglianza
AND logico
AND booleano
OR esclusivo logico
OR esclusivo booleano
OR logico
OR booleano
=
<>
AND
AND
XOR
XOR
OR
OR
Simbolo
(espressione)
NOT
NOT
-
+
/
*
REM
+
-
<,>,<=,>=
Priorità
Più forte
Meno forte
Nota: Se vi è un conflitto tra due operatori con lo stesso livello di priorità, il primo operatore è quello prevalente e la valutazione viene eseguita da sinistra a destra.
35015370.01 07/2008
171
Linguaggio letterale strutturato
Esempio 1
Esempio 2
Uso delle parentesi
Esempio 1
Esempio 2
Nell'esempio seguente, il NOT viene applicato sul %MW3 poi il risultato viene moltiplicato per 25. Viene quindi calcolata la somma di %MW10 e %MW12 e poi l'AND logico tra il risultato della moltiplicazione e dell'addizione.
NOT %MW3 * 25 AND %MW10 + %MW12
In questo esempio, viene eseguita la moltiplicazione di %MW34 per 2 e poi il risultato viene utilizzato per eseguire il modulo.
% MW34 * 2 REM 6
Le parentesi vengono utilizzate per modificare l'ordine di valutazione degli operatori, ad esempio per dare precedenza a un'addizione rispetto a una moltiplicazione.
È possibile annidare le parentesi e il livello di annidamento è illimitato.
Le parentesi possono essere utilizzate anche al fine di evitare un'errata interpretazione del programma.
In questo esempio, l'addizione viene eseguita prima della moltiplicazione.
(%MW10+%MW11)*%MW12
Questo esempio illustra che le parentesi possono essere utilizzate anche al fine di evitare un'errata interpretazione del programma.
NOT %MW2 <> %MW4 + %MW6
Utilizzando le regole di priorità degli operatori, l'interpretazione è la seguente:
((NOT %MW2) <> (%MW4 + %MW6))
Ma si può anche immaginare che l'operazione sia la seguente:
NOT (%MW2 <> (%MW4 + %MW6 ))
Le parentesi consentono pertanto di chiarire il programma.
172
35015370.01 07/2008
Conversioni implicite
Linguaggio letterale strutturato
Le conversioni implicite riguardano le parole e le parole doppie.
Gli operatori utilizzati nelle espressioni aritmetiche, nei confronti e l'operatore assegnazione eseguono queste conversioni implicite che pertanto non vanno eseguite dall'utente.
Per un'istruzione che presenta la forma seguente: <operando 1> <operatore>
<operando 2>, sono possibili i seguenti casi di conversione:
Operando 1 di tipo
Parola
Parola
Parola doppia
Parola doppia
Operando 2 di tipo
Parola
Parola doppia
Parola
Parola doppia
Conversione
Operando 1
No
Parola doppia
No
No
Conversione
Operando 2
No
No
Parola doppia
No
Operazione nel tipo
Parola
Parola doppia
Parola doppia
Parola doppia
Nel caso di un'assegnazione con la forma <operando sinistro>:= <operando destro>, l'operando di sinistra impone il tipo atteso per eseguire l'operazione, il che significa che quello di destra deve essere eventualmente convertito secondo la tabella:
Tipo operando sinistra
Parola
Parola
Parola doppia
Parola doppia
Tipo operando destra
Parola
Parola doppia
Parola
Parola doppia
Conversione operando destro
No
Parola
Parola doppia
No
Nota: Un'operazione tra due valori immediati è sempre eseguita in lunghezza doppia.
35015370.01 07/2008
173
Linguaggio letterale strutturato
174
35015370.01 07/2008
Grafcet
9
In breve
Contenuto di questo capitolo
Contenuto di questo capitolo
Questo capitolo descrive le regole di programmazione in Grafcet.
Questo capitolo contiene le seguenti sezioni:
Sezione
9.1
9.2
9.3
9.4
9.5
Argomento
Presentazione generale del Grafcet
Regola di costruzione del Grafcet
Programmazione delle azioni e delle condizioni
Macrofasi
Sezione Grafcet
Pagina
35015370.01 07/2008
175
Grafcet
9.1
Presentazione generale del Grafcet
In breve
Contenuto di questa sezione
Contenuto di questa sezione
Questa sezione descrive gli elementi di base di un Grafcet
Questo sezione contiene le seguenti sottosezioni:
Argomento
Presentazione del Grafcet
Descrizione dei simboli grafici del Grafcet
Descrizione degli oggetti specifici al Grafcet
Possibilità del Grafcet
Pagina
176
35015370.01 07/2008
Grafcet
Presentazione del Grafcet
Generalità
In breve
Il linguaggio Grafcet è conforme al linguaggio "Diagramma funzionale in sequenza"
(SFC) della norma IEC 1131-3.
Il Grafcet consente di rappresentare graficamente e in modo strutturato il funzionamento di un'automazione sequenziale.
Questa descrizione grafica del comportamento sequenziale dell'automazione e delle varie situazioni che ne conseguono, avviene tramite simboli grafici semplici.
1 Fase iniziale
Transizione
2
Divergenza in AND
3 Azioni 7
Divergenza in OR
4 Azioni 5 8 Azioni
Convergenza in OR
6 9
10 Azioni
Convergenza in AND
Fase
35015370.01 07/2008
177
Grafcet
Descrizione dei simboli grafici del Grafcet
Descrizione
Designazione
Fasi iniziali
La seguente tabella descrive gli elementi grafici di base del Grafcet.
Simbolo Funzioni
Simboleggiano le fasi iniziali attive all'inizio del ciclo dopo un'inizializzazione o un riavvio a freddo.
i o i
Fasi semplici
Macrofasi
Fase di macrofasi i i o o i i i z z z
Simboleggiano uno stato stabile dell'automazione. Il numero di fasi massimo (comprese le fasi iniziali) può essere configurato da: da 1 a 96 per un TSX 37-10, da 1 a 128 per un TSX 37-20, da 1 a 250 per un TSX 57.
Il numero massimo di fasi attive simultaneamente può essere configurato.
Simboleggia una macrofase: insieme unico di fasi e di transizioni.
Il numero di macrofasi massimo può essere configurato da 0 a 63 esclusivamente per TSX 57.
Simboleggiano le fasi di una macrofase.
Il numero massimo di fasi per ogni macrofase può essere configurato da 0 a 250 per TSX 57.
Ogni macrofase comporta una fase IN e OUT.
IN o OUT
Transizioni
Divergenze in
AND
Permettono il passaggio da una fase a un'altra. Una ricettività associata a questa transizione consente di definire le condizioni logiche necessarie al superamento di tale transizione.
Il numero di transizioni massimo è di 1024 e non può più essere configurato.
Il numero massimo di transizioni valide contemporaneamente può essere configurato.
Transizione da una fase ad più fasi: consente l'attivazione simultanea di massimo 11 fasi.
178
35015370.01 07/2008
Designazione
Convergenze in
AND
Simbolo
Divergenze in
OR
Convergenze in
OR
Riferimento di origine
Riferimento di destinazione
Collegamenti z z z orientati verso: l'alto il basso destra o sinistra n n
Funzioni
Transizione di più fasi ad una sola: consente la disattivazione simultanea di massimo 11 fasi.
Grafcet
Transizione da una fase ad più fasi: permette di realizzare un indirizzamento verso 11 fasi al massimo.
Transizione di più fasi ad una sola: permette di realizzare un indirizzamento proveniente da 11 fasi al massimo.
"n" è il numero della fase "da cui si proviene" (fase di origine).
"n" è il numero di fase "verso il quale ci si dirige" (fase di destinazione).
Questi collegamenti permettono di realizzare una diramazione, un salto di fase, una ripresa di fasi (sequenza).
Nota: Il numero massimo di fasi (fasi del grafico principale + passi di macrofasi) nella sezione Grafcet non deve essere superiore a 1024 su TSX 57.
35015370.01 07/2008
179
Grafcet
Descrizione degli oggetti specifici al Grafcet
Generalità
Oggetti Grafcet
Il Grafcet dispone di oggetti bit associati alle fasi, di bit sistema specifici, di oggetti parole che indicano il tempo di attività delle fasi e delle parole sistema specifiche.
La tabella seguente descrive l'insieme degli oggetti associati al Grafcet.
Designazione
Bit associati alle fasi (1=fase attiva)
%Xi
%XMj
%Xj.i
%Xj.IN
%Xj.OUT
%S21 Bit sistema associati al
Grafcet
%S22
%S23
%S24
Parole associate alle fasi
Parole sistema associate al
Grafcet
Descrizione
Stato della fase i del Grafcet principale
(i da 0 a n) (n dipende dal processore)
Stato della macrofase j (j da 0 a 63 per TSX /PMX/PCX 57)
Stato della fase i della macrofase j
Stato della fase d'ingresso della macrofase j
Stato della fase di uscita della macrofase j
Provoca l'inizializzazione del Grafcet
%S25
Provoca l'azzeramento generale del Grafcet
Provoca il blocco del Grafcet
Provoca l'azzeramento di macrofasi in funzione delle parole sistema da %SW22 a %SW25
Impostazione a 1 su: z z superamento delle tabelle (fasi/transizione), esecuzione di un grafico sbagliato (rinvio di destinazione su una fase che non appartiene al grafico).
%Xi.T
%Xj.i.T
Tempo di attività della fase i del Grafcet principale
Tempo di attività della fase i della macrofase j
%Xj.IN.T
Tempo di attività della fase d'ingresso della macrofase j
%Xj.OUT.T
Tempo di attività della fase di uscita della macrofase j
%SW20 Parola che permette di conoscere il numero di fasi attive per il ciclo corrente, da attivare e da disattivare.
%SW21 Parola che permette di conoscere il numero di transizioni valide per il ciclo corrente, da convalidare o da invalidare.
da %SW22 a
%SW25
Sequenza di 4 parole che consentono di designare le macrofasi da azzerare su impostazione a 1 del bit %S24.
180
35015370.01 07/2008
Grafcet
Bit associati alle fasi
I bit associati alle fasi %Xi, alle macrofasi %XMi e alle fasi di macrofasi %j.I, %Xj.IN e %Xj.OUT presentano le seguenti proprietà: z z z
Si trovano su 1 quando le fasi sono attive.
Possono essere verificati in tutti i task, ma possono essere scritti solo nel trattamento preliminare del task master (preposizionamento dei grafici). Questi test e queste azioni sono programmati in Ladder, in linguaggio lista d'istruzioni, oppure in linguaggio letterale.
Sono indicizzabili.
Periodo di attività
Le parole periodo di attività delle fasi %Xi.T e delle fasi di macrofasi %Xj.I , %Xj.IN e %Xj.OUT hanno le seguenti proprietà: z z z z z z
Sono incrementate ogni 100 ms e acquisiscono un valore compreso tra 0 e 9999.
Incremento della parola: durante l'attività della fase associata.
Alla disattivazione della fase, il contenuto viene bloccato.
All'attivazione della fase, il contenuto viene azzerato e poi incrementato.
Il numero di parole periodo di attività non può essere configurato, una parola è riservata ad ogni fase.
Queste parole sono indicizzabili.
35015370.01 07/2008
181
Grafcet
Possibilità del Grafcet
Generalità
Illustrazione
Il trattamento in sequenza viene strutturato in: z z
1 sotto-insieme: Grafico principale,
64 sotto-insiemi: Macrofasi,
Questi sotto-insiemi sono a loro volta divisi in 8 pagine.
La seguente illustrazione descrive la struttura generale in pagina del Grafcet.
Macrofase 63
Grafico principale
Pagina 7
Macrofase 0
Pagina 7
Pagina 1
Pagina 0
Pagina 1
Pagina 0
182
35015370.01 07/2008
Caratteristiche
Grafcet
Esse dipendono dal processore da programmare e vengono riepilogate nella seguente tabella.
Numero di TSX 37-10 TSX 37-20 TSX 57
Predefinito Mas.
Predefinito Mas.
Predefinito Mas.
96 96 128 128 128 250 Fasi del Grafico principale
Macrofasi
Fasi di macrofasi
Numero totale di fasi
Fasi attive contemporaneamente
Transizioni valide simultaneamente
0
0
96
16
20
0
0
96
96
192
0
0
128
20
24
0
0
128
128
256
8
64
640
40
48
64
250
1024
250
400
Il numero di transizioni sincrone (o numero di convergenze in AND) non deve essere superare 64, mentre il numero totale di transizioni resta comunque fisso a 1024.
35015370.01 07/2008
183
Grafcet
9.2
Regola di costruzione del Grafcet
In breve
Contenuto di questa sezione
Contenuto di questa sezione
Questa sezione descrive le regole di base per costruire i grafici del Grafcet.
Questo sezione contiene le seguenti sottosezioni:
Argomento
Rappresentazione del Grafcet
Utilizzo delle divergenze e delle convergenze OR
Utilizzo delle divergenze e delle convergenze AND
Utilizzo dei riferimenti
Utilizzo dei collegamenti orientati
Commento Grafcet
Pagina
184
35015370.01 07/2008
Grafcet
Rappresentazione del Grafcet
Generalità
Illustrazione
Il grafico principale e ogni macrofase vengono programmati su 8 pagine (pagina da
0 a 7).
Una pagina Grafcet è costituita da 14 righe e da 11 colonne che definiscono 154 celle.
In ogni cella, è possibile immettere un elemento grafico.
Il disegno seguente illustra le varie sezioni in cui è suddivisa una pagina Grafcet.
1 2 3 4 5 6 7 8 9 10 11
12
13
14
8
9
10
11
4
5
6
7
1
2
3
0
1
2
3
Regole di scrittura z z z z z z
La prima riga permette d'inserire i riferimenti di origine.
L'ultima riga permette d'immettere i riferimenti di destinazione.
Le righe pari (da 2 a 12) sono righe di fasi (per le fasi riferimenti di destinazione).
Le righe dispari (da 3 a 13) sono righe di transizione (per le transizioni e i riferimenti di origine).
Ogni fase è individuata da un numero diverso (da 0 a 127) in un ordine qualsiasi.
Sulla stessa pagina è possibile rappresentare grafici diversi.
35015370.01 07/2008
185
Grafcet
Utilizzo delle divergenze e delle convergenze OR
Funzione
Illustrazione
Una divergenza OR è un indirizzamento da una fase verso varie fasi.
Una convergenza OR realizza la fine dell'indirizzamento.
Il disegno che segue presenta una divergenza OR da una fase verso 9 fasi e una convergenza OR.
16
17 18 19 20 21 22 23 24 25
26 27 28 29 30 31 32 33 34
35
Regola d'uso z z z z
Il numero di transizioni a monte di una fine indirizzamento (convergenza in OR) o a valle di un indirizzamento (divergenza in OR) non deve essere superiore ad
11.
Un indirizzamento può essere tracciato verso sinistra o verso destra.
Di solito un indirizzamento si conclude con una fine di indirizzamento.
Per evitare di superare contemporaneamente più transizioni, le ricettività associate devono essere esclusive.
186
35015370.01 07/2008
Grafcet
Utilizzo delle divergenze e delle convergenze AND
Funzione
Illustrazione
Una divergenza AND permette di attivare simultaneamente più fasi.
Una convergenza AND permette di disattivare simultaneamente più fasi.
Il disegno seguente presenta una divergenza e una convergenza AND di 6 fasi.
41
42 43 44 45 46 47
48 49 50 51 52 53
54
Regole d'uso z z z z
Il numero di fasi a valle di un'attivazione simultanea (divergenza in AND) o a monte di una disattivazione simultanea (convergenza in AND) non deve essere superiore ad 11.
Un'attivazione simultanea di fasi di solito deve concludersi con una disattivazione simultanea di fasi.
L'attivazione simultanea è rappresentata sempre da sinistra a destra.
La disattivazione simultanea è rappresentata sempre da destra a sinistra.
35015370.01 07/2008
187
Grafcet
Utilizzo dei riferimenti
Funzione
Esempio
I riferimenti garantiscono la continuità di un Grafcet quando non è possibile eseguire il tracciato diretto di un collegamento orientato, all'interno di una pagina oppure tra due pagine, che siano consecutive oppure no.
Tale continuità è garantita da un riferimento di destinazione a cui corrisponde sistematicamente un riferimento di origine.
La seguente illustrazione riporta degli esempi di riferimenti.
10
18
0
1
8
9
10
2
11
1
12
3 4 5 6 7 12 14 15 16 17
8
18
9
2
0
10
La seguente tabella spiega come utilizzare i riferimenti riportati nell'esempio.
Utilizzo
Il riallacciamento di un grafico può avvenire tramite i riferimenti.
Una ripresa di sequenza può avvenire tramite i riferimenti.
Utilizzo dei riferimenti quando una diramazione del grafico supera la lunghezza di una pagina.
Esempio
Riallacciamento dalla fase 18 alla fase 0.
Dalla fase 10 alla fase 1 o dalla fase 8 alla fase 2.
Dalla fase 9 alla fase 10.
188
35015370.01 07/2008
Grafcet
Riferimenti utilizzati nelle divergenze e nelle convergenze OR
La tabella seguente riporta le regole d'uso dei riferimenti nel caso di divergenze o di convergenze OR.
Illustrazione Righello
Per un indirizzamento, le transizioni e i riferimenti di destinazione devono essere immessi nella stessa pagina.
10
Per la fine di un indirizzamento, i riferimenti di origine devono essere immessi nella stessa pagina della fase di destinazione.
20 21
10
20
10
Page 1
Page 2
21
Per una fine di indirizzamento seguita da un riferimento di destinazione, devono esservi altrettanti riferimenti di origine quante sono le fasi prima della fine dell'indirizzamento.
4 5 6
10
4
10
5
Page 1
6
Page 2
35015370.01 07/2008
189
Grafcet
Riferimenti utilizzati nelle divergenze e nelle convergenze
AND
La tabella seguente riporta le regole d'uso dei riferimenti nel caso di divergenze o di convergenze AND.
Righello
Per un'attivazione simultanea delle fasi, i riferimenti di destinazione devono trovarsi nella stessa pagina della fase e della transizione di divergenza.
Illustrazione
25
30
25
30
35
25
35
37
Page 2
25
37
Page 3
Per una disattivazione simultanea, le fasi e la transizione di convergenza devono trovarsi nella stessa pagina del riferimento di destinazione.
Quando più fasi convergono verso una stessa transizione, il riferimento di origine porta il numero della fase a monte e posta all'estrema sinistra.
43
50
43
50
45 48
Page 1
Page 2
190
35015370.01 07/2008
Grafcet
Utilizzo dei collegamenti orientati
Funzione
Illustrazione
I collegamenti orientati collegano una fase ad una transizione o una transizione ad una fase. Essi possono essere verticali o orizzontali.
Lo schema seguente presenta un esempio di utilizzo di un collegamento orientato.
0
1 2
3 4
Regole
(1) (2)
I collegamenti orientati possono: z z incrociarsi (1), in tal caso sono di natura diversa, incontrarsi (2), in tal caso sono della stessa natura.
È impossibile l'incrocio tra un collegamento e un'attivazione o una disattivazione simultanea di fasi.
35015370.01 07/2008
191
Grafcet
Commento Grafcet
Generalità
Sintassi
Illustrazione
I commenti consentono di dare le informazioni sulle fasi e le transizioni di un Grafcet.
Sono facoltativi.
Il testo di un commento e preceduto e seguito da sinistra a destra da (* e *). Non può superare 64 caratteri.
La seguente illustrazione riporta degli esempi di commenti.
1 (*Commento*)
2
(*Esempio di commento*)
3
4
(*Commento su
2 righe*)
Regole z z z
In una pagina Grafcet, è possibile immettere un commento in una cella qualsiasi.
Un commento occupa due celle contigue su massimo due righe.
Se la zona di visualizzazione è troppo limitata, la visualizzazione del commento
è troncata, ma quando si stampa la documentazione, esso appare integralmente.
Il commento inserito in una pagina Grafcet viene memorizzato nelle informazioni grafiche integrate nel PLC. Naturalmente, consumano memoria programma.
192
35015370.01 07/2008
9.3
Grafcet
Programmazione delle azioni e delle condizioni
In breve
Contenuto di questa sezione
Contenuto di questa sezione
Questa sezione descrive le regole di programmazione delle azioni e delle condizioni di un Grafcet.
Questo sezione contiene le seguenti sottosezioni:
Argomento
Programmazione delle azioni associate alle fasi
Programmazione delle azioni all'attivazione o alla disattivazione
Programmazione delle azioni continue
Programmazione delle ricettività associate alle transizioni
Programmazione delle ricettività in Ladder
Programmazione delle ricettività in linguaggio lista d'istruzioni
Programmazione delle ricettività in linguaggio letterale strutturato
Pagina
35015370.01 07/2008
193
Grafcet
Programmazione delle azioni associate alle fasi
Generalità
3 tipi di azioni
Le azioni associate alle fasi descrivono gli ordini da trasmettere alla parte operativa
(processo da automatizzare) oppure ad altri sistemi automatizzati.
Le azioni sono programmate in Ladder, in linguaggio liste d'istruzioni, oppure in linguaggio letterale.
Esse vengono esaminate solo se la fase a cui sono associate è attiva.
Il software PL7 autorizza tre tipi di azioni: z z z le azioni all'attivazione : azioni eseguite una volta quando la fase a cui sono associate passa dallo stato inattivo allo stato attivo.
le azioni alla disattivazione : azioni eseguite una volta quando la fase a cui sono associate passa dallo stato attivo allo stato inattivo.
le azioni continue : Esse vengono eseguite finché la fase a cui sono associate è attiva.
Nota: Una stessa azione può comportare più elementi di programmazione (frasi o rung).
Individuazione delle azioni
Queste azioni sono individuate come segue:
MAST - <nome sezione Grafcet> - CHART (o MACROk)- PAGE n %Xi x con x = P1 per Attivazione, x = N1 Continua, x = P0 Disattivazione n = Numero di pagina i = Numero di fase
Esempio: MAST - Pittura - CHART - PAGE 0 %X1 P1 Azione all'attivazione della fase 1 della pagina 0 della sezione Pittura
194
35015370.01 07/2008
Regole d'uso
Grafcet z z z
Tutte le azioni vengono considerate come memorizzate, per cui: un'azione asservita alla durata della fase Xn deve essere azzerata alla disattivazione della fase Xn o all'attivazione della fase Xn+1.
Un'azione con effetto valido su più fasi si posiziona a 1 all'attivazione della fase
Xn e a 0 alla disattivazione della fase Xn+m.
Tutte le azioni possono essere asservite a condizioni logiche ed essere pertanto condizionali.
Le azioni asservite a delle sicurezze indirette devono essere programmate nel trattamento posteriore (vedi
Descrizione del trattamento posteriore, p. 220
)
(trattamento eseguito ad ogni esame).
Ordine di esecuzione delle azioni
Per l'esempio seguente su un giro del ciclo, l'ordine di esecuzione delle azioni è il seguente. Quando è attivata la fase 51, le azioni vengono eseguite nell'ordine che segue:
1.
azioni alla disattivazione della fase 50,
2.
azioni all'attivazione della fase 51,
3.
azioni continue della fase 51.
Esempio:
50 Attivazione %X50 Continua %X50 Disattivazione %X50
51 Attivazione %X51 Continua %X51 Disattivazione %X51
Fin dalla disattivazione della fase 51, le azioni continue associate non vengono più esaminate.
35015370.01 07/2008
195
Grafcet
Programmazione delle azioni all'attivazione o alla disattivazione
Regole
Esempio 1
Queste azioni vengono eseguite una volta quando la fase a cui sono associate passa dallo stato inattivo allo stato attivo.
Si tratta di azioni ad impulso che vengono eseguite su un solo giro di esame . Esse consentono di chiamare un sottoprogramma, d'incrementare un contatore, ecc.
In questo esempio, quest'azione richiama un sottoprogramma.
%L1
%M25 SR4
C
Esempio 2 In questo esempio, quest'azione incrementa la parola %MW10 e ripone a 0 le parole
%MW0 e MW25.
%L1 :
INC %MW10;%MW0:=0;%MW25:=0;
196
35015370.01 07/2008
Grafcet
Programmazione delle azioni continue
Regole
Esempio di azione condizionale
Queste azioni vengono eseguite finché la fase a cui sono associate è attiva.
Possono essere: z z
Azioni condizionali : l'azione viene eseguita se viene soddisfatta una condizione,
Azioni temporizzate : si tratta di un caso particolare, in quanto il tempo interviene come condizione logica. Questo asservimento può essere realizzato verificando semplicemente il periodo di attività associato alla fase.
In questo esempio, il bit %M10 è asservito all'ingresso %I2.5 o al bit interno %M9 e all'ingresso %I1.2.
Finché la fase 2 è attiva e le condizioni sono presenti, %M10 si trova a 1.
L'ultimo stato letto alla disattivazione viene memorizzato in quanto le azioni associate non vengono esaminate. Pertanto occorre azzerare di nuovo il bit %M10, ad esempio nell'azione alla disattivazione della fase.
Illustrazione dell'esempio.
%L10
%I2.5
%M10
Azione continua
%M9 %I1.2
%L1
%M25
%M10
R
Azione alla disattivazione
35015370.01 07/2008
197
Grafcet
Esempio di azione temporizzata
In questo esempio, il bit %M12 è pilotato finché il periodo di attività della fase 3 è inferiore a 10 secondi (base di tempo: 100 ms).
%L1
%M25
%X3.T<100
%M12
Queste azioni possono essere anche incondizionali.
198
35015370.01 07/2008
Grafcet
Programmazione delle ricettività associate alle transizioni
Generalità
Regole
Individuazione della ricettività
Una ricettività associata a una transizione consente di definire le condizioni logiche necessarie al superamento di tale transizione.
Il numero di transizioni massimo è di 1024 e non può più essere configurato.
Il numero massimo di transizioni valide contemporaneamente può essere configurato.
z z z z
Ad ogni transizione è associata una ricettività che può essere programmata in linguaggio Ladder, lista d'istruzioni, o in linguaggio letterale.
Una ricettività è esaminata solo se la transizione a cui è associata è valida.
Una ricettività corrisponde a un rung o a una lista d'istruzioni o a un'espressione letterale che contiene una serie di test su bit e/o su parola.
Una ricettività non programmata è una ricettività sempre falsa.
Queste ricettività sono individuate come segue:
MAST - <nome sezione Grafcet> - CHART(o MACROk) - PAGE n %X(i)
--> % X(j) con: n = Numero di pagina i = Numero di fase a monte j = Numero di fase a valle
Esempio: MAST - Pittura - CHART - PAGE 0 %X(0) --> %X(1)
Ricettività associata alla transizione tra la fase 0 e la fase 1 della pagina 0 del grafico della sezione Pittura.
Nota: In caso di attivazione simultanea o di disattivazione simultanea di fasi, il punto di riferimento indicato è quello della fase nella colonna situata all'estrema sinistra.
Ricettività che utilizza il periodo di attività
In alcune applicazioni, alcune azioni vengono pilotate senza il controllo delle informazioni di ritorno (finecorsa, sensore, …). La durata della fase dipende da un periodo, il linguaggio PL7 permette di utilizzare il periodo di attività associato ad ogni fase.
Esempio: ! X3.T>=150
Questa ricettività programmata in linguaggio letterale strutturato consente di rimanere nella fase 3 per 15 secondi.
35015370.01 07/2008
199
Grafcet
Programmazione delle ricettività in Ladder
Regole di programmazione
La ricettività associata alla transizione si programma sotto forma di rung che comporta una zona test e una zona azione.
La struttura del rung è simile a quella di una rete programmata in un modulo di programma.
Possono essere utilizzati solo gli elementi seguenti: z z elementi grafici di test : contatti (%Mi, %I, %Q, %TMi.D ...), blocchi confronto, elementi grafici di azione : esclusivamente bobina "diesis" (le altre non sono significative in questo caso).
Esempio Questo esempio illustra la programmazione di una ricettività in Ladder.
%I2.1
%MW10<20 #
200
35015370.01 07/2008
Grafcet
Programmazione delle ricettività in linguaggio lista d'istruzioni
Regole di programmazione
La ricettività associata alla transizione si programma sotto forma di lista d'istruzione che contiene unicamente le istruzioni di test.
La lista d'istruzioni autorizzata per la scrittura di una ricettività differisce da una lista d'istruzioni classica per: z z la struttura generale: senza label (%L).
la lista delle istruzioni: z z senza istruzioni di azioni (oggetti bit, parole o blocchi funzione), senza salto e chiamata di sottoprogramma.
Esempio Questo esempio illustra la programmazione di una ricettività in linguaggio lista d'istruzioni.
!
LD %I2.1
AND [%MW10<20]
35015370.01 07/2008
201
Grafcet
Programmazione delle ricettività in linguaggio letterale strutturato
Regole di programmazione
La ricettività associata alla transizione si programma sotto forma di espressione booleana o di espressione aritmetica o di un'associazione di entrambe.
L'espressione ammessa per la scrittura di una ricettività differisce da una riga di programmazione in linguaggio letterale per: z z la struttura generale: z senza label (%L) z senza frase di azione, condizionale o iterativa.
la lista delle istruzioni: z z z senza azione sull'oggetto bit, senza salto e chiamata di sottoprogramma, senza trasferimento, istruzione di azione sui blocchi.
Esempio Questo esempio illustra la programmazione di una ricettività in linguaggio letterale strutturato.
!
%I2.1 AND [%MW10<20]
202
35015370.01 07/2008
Grafcet
9.4
Macrofasi
In breve
Contenuto di questa sezione
Contenuto di questa sezione
Questa sezione descrive la programmazione delle macrofasi.
Questo sezione contiene le seguenti sottosezioni:
Argomento
Presentazione delle macrofasi
Costituzione di una macrofase
Caratteristiche delle macrofasi
Pagina
35015370.01 07/2008
203
Grafcet
Presentazione delle macrofasi
Generalità Una macrofase è una rappresentazione condensata ed unica di un insieme di fasi e di transizioni.
Una macrofase fa parte di un grafico come una fase e ne rispetta le regole di evoluzione.
Macrorappresentazione
Un Grafcet di primo livello che descrive il concatenamento delle sequenze permette di illustrare meglio la strutturazione della parte comando.
Ogni sequenza è associata a una simbolizzazione particolare della fase: la macrofase.
La nozione di "macrorappresentazione" consente di strutturare gerarchicamente l'analisi. Ciascun livello può essere completato, modificato senza rimettere in discussione gli altri livelli.
Le macrofasi sono disponibili per i PLC TSX57.
La seguente figura riporta un Grafcet costituito da 3 macrofasi.
IN
0
0
M0
1
M1
OUT
IN
M2
0
1
2
OUT
3
204
35015370.01 07/2008
Grafcet
Costituzione di una macrofase
Descrizione
Evoluzione
La simbolizzazione grafica di una macrofase si distingue da una fase per due tratti orizzontali.
La seguente illustrazione riporta una macrofase e la sua espansione.
IN
0
M1
1
OUT
L'espansione di una macrofase è caratterizzata da 2 fasi specifiche: z z
Una fase d'ingresso è retta dalle stesse regole delle altre fasi e una fase di uscita non può presentare delle azioni associate.
Quando la macrofase è attiva, l'evoluzione della macrofase rispetta le regole generali di evoluzione di un Grafcet.
Esempio:
1
IN
0
M1
1
2
OUT
La macrofase M1 è attivata quando la fase IN è attiva la sua ricettività a valle è vera.
È invece disattivata quando la sua fase di uscita è attiva e la ricettività M1>2 è vera.
Viene attivata così la fase 2.
35015370.01 07/2008
205
Grafcet
Caratteristiche delle macrofasi
Caratteristiche generali
Illustrazione
Il linguaggio Grafcet PL7 autorizza la programmazione di 64 macrofasi da M0 a
M63.
L'espansione di una macrofase, costituita da una o più sequenze, è programmabile al massimo su 8 pagine e comprende al massimo 250 fasi più la fase IN e la fase
OUT.
Una macrofase può contenere una o più macrofasi. Questa gerarchia è possibile fino a 64 livelli.
L'analisi di un'applicazione può essere strutturata in modo da fornire un approccio globale e poi dettagliato delle varie operazioni da svolgere.
IN
IN
0
0
0
1 3
M0
1
2
OUT
M1
OUT
M2
Verso un'analisi dettagliata
206
35015370.01 07/2008
Fasi iniziali
Grafcet
L'espansione di una macrofase può contenere una o più fasi iniziali.
Queste fasi iniziali sono attivate all'accensione o all'inizializzazione tramite programma. La macrofase viene quindi visualizzata allo stato attivo.
Nell'esempio seguente, la fase iniziale 1 dell'espansione viene attivata all'inizializzazione del programma; la macrofase si trova allo stato attivo.
M0
M1
M2
IN
0
1
2
OUT
3
35015370.01 07/2008
207
Grafcet
9.5
Sezione Grafcet
In breve
Contenuto di questa sezione
Contenuto di questa sezione
Questa sezione presenta la costituzione di una sezione Grafcet Descrive l'uso e le regole di programmazione di ciascun trattamento.
Questo sezione contiene le seguenti sottosezioni:
Argomento
Struttura di una sezione Grafcet
Descrizione del trattamento
Preposizionamento del Grafcet
Initializzazione del Grafcet
Azzeramento del Grafcet
Blocco del Grafcet
Azzeramento delle macrofasi
Funzionamento del trattamento sequenziale
Descrizione del trattamento posteriore
Pagina
208
35015370.01 07/2008
Grafcet
Struttura di una sezione Grafcet
Composizione di una sezione
Una sezione di programma scritto in Grafcet comporta tre trattamenti consecutivi: z z z il trattamento preliminare, il trattamento sequenziale, il trattamento posteriore.
La sezione Grafcet si programma nel task MAST.
Illustrazione Il seguente disegno illustra l'ordine di esame dei trattamenti.
Trattamento preliminare
Trattamento sequenziale
Trattamento posteriore
35015370.01 07/2008
209
Grafcet
Funzione dei trattamenti
Trattamento
Preliminare
Sequenziale
Posteriore
La seguente tabella descrive la funzione di ciascun trattamento e il linguaggio con cui possono essere programmati.
Funzione z z z
Permette di trattare: le inizializzazioni su ripresa alimentazione o guasto, le inizializzazioni su ripresa alimentazione o guasto, la logica d'ingresso.
Permette di realizzare la struttura delle sequenze dell'applicazione e consente di accedere al trattamento delle ricettività e delle azioni direttamente associate alle fasi.
Permette di trattare: z z la logica dell'uscita, la sorveglianza e le sicurezze indirette specifiche alle uscite.
Linguaggio
Linguaggio
Ladder, lista d'istruzioni o letterale
Grafcet
Linguaggio
Ladder, lista d'istruzioni o letterale
Nota: Le macrofasi vengono eseguite secondo l'ordine di esame nel trattamento sequenziale.
210
35015370.01 07/2008
Grafcet
Descrizione del trattamento
Generalità Il trattamento preliminare, che viene immesso in linguaggio Ladder, lista d'istruzioni o letterale, viene esaminato integralmente, dall'alto verso il basso.
Esso viene eseguito prima dei trattamenti sequenziale e posteriore e permette di trattare tutti gli avvenimenti che hanno un impatto su di essi.
z z gestione delle riprese alimentazione e reinizializzazione, azzeramento o preposizionamento dei grafici.
Pertanto, solo nel trattamento preliminare occorre agire sui bit associati alle fasi
(impostazione a 0 o a 1 dei bit fasi %Xi o Xi.j con le istruzioni SET e RESET ).
Bit sistema Le operazioni di preposizionamento, inizializzazione, blocco, … vengono eseguite tramite i bit sistema da %S21 a %S24.
I bit sistema associati al Grafcet vengono classificati numericamente e per ordine di priorità (da %S21 a %S24), quando nel trattamento preliminare più bit vengoo impostati a 1 simultaneamente e pertanto trattati uno per volta in ordine crescente
(uno solo attivo per esame).
Questi bit sono effettivi all'inizio del trattamento sequenziale.
Trattamento dei riavvii a freddo
Il sistema esegue un avvio a freddo, su una nuova applicazione o in seguito ad una perdita di contesto sistema.
Il bit %S21 è posto a 1 dal sistema prima della chiamata del trattamento preliminare e il Grafcet si posiziona sulle fasi iniziali.
Se si desidera un trattamento particolare per l'applicazione in caso di avvio a freddo,
è possibile eseguire un test su %SA0 che rimane su 1 per il primo ciclo del task master (MAST).
Trattamento dei riavvii a caldo
In seguito a un'interruzione di alimentazione senza cambio di applicazione, il sistema esegue un riavvio a caldo e ritorna nello stato in cui si trovava prima dell'interruzione dell'alimentazione.
Se si desidera un trattamento particolare per l'applicazione in caso di riavvio a caldo, si può eseguire un test su %S1 nel trattamento preliminare e chiamare il programma corrispondente.
35015370.01 07/2008
211
Grafcet
Preposizionamento del Grafcet
Funzione
Preposizionamento del
Grafcet
Il preposizionamento del Grafcet può essere utilizzato al momento del passaggio da una condizione di funzionamento normale a quella di un funzionamento specifico o quando si verifica un incidente (esempio: errore che provoca una degrazione del funzionamento).
Questa operazione interviene sul normale svolgimento del ciclo applicativo e deve pertanto essere eseguita con precauzione.
Il posizionamento può riferirsi a tutto il trattamento sequenziale o a parte di esso: z z utilizzando le istruzioni SET , RESET , tramite azzeramento generale (%S22) e poi, nel ciclo seguente, posizionamento a 1 delle fasi.
Nota: In caso di azzeramento di una fase, le azioni alla disattivazione di quest'ultima non vengono eseguite.
Esempio In questo esempio, la posizione a 1 del bit %M20 provoca il preposizionamento delle fasi %12 a 1, delle fasi %X10 e %X11 a 0.
%M20
%X12
S
%X10
R
%X11
R
212
35015370.01 07/2008
Grafcet
Initializzazione del Grafcet
Funzione L'inizializzazione del Grafcet avviene tramite il bit sistema %S21.
Esso si trova di solito in stato 0 e pertanto se posto in stato 1, ne consegue: z z la disattivazione delle fasi attive, l'attivazione delle fasi iniziali.
Inizializzazione del Grafcet
La seguente tabella riporta le varie possibilità di porre il bit sistema %S21 a 1 o a 0.
Stato 1 z z z
Tramite stato 1 di %S0
Tramite il programma utente
Tramite il terminale (con debug o tabella di animazione)
Stato 0 z z z
Tramite il sistema all'inizio del trattamento
Tramite il programma utente
Tramite il terminale (con debug o tabella di animazione)
Regola d'uso Quando è gestito dal programma utente, %S21 deve essere posto a 0 o a 1 nel trattamento preliminare.
35015370.01 07/2008
213
Grafcet
Azzeramento del Grafcet
Funzione L'impostazione a 0 del Grafcet si effettua con il bit di sistema %S22.
Normalmente allo stato 0, l'impostazione a 1 di %S22 provoca la disattivazione delle fasi attive dell'insieme dell'elaborazione sequenziale.
Nota: La funzione RESET_XIT permette di reinizializzare tramite il programma i tempi di attivazione di tutte le fasi dell'elaborazione sequenziale (Vedere Manuale de riferimento, Volume 2).
Azzeramento del
Grafcet
La seguente tabella indica le diverse possibilità dell'impostazione a 1 e a 0 del bit di sistema %S22.
Impostazione allo stato 1 z z
Con il programma utente
Con il terminale (con la funzione debug o tabella d'animazione)
Ritorno allo stato 0 z Con il sistema alla fine dell'elaborazione sequenziale
Regola d'utilizzo z questo bit deve essere scritto a 1 nell'elaborazione preliminare z la reimpostazione a zero di %S22 è gestita dal sistema; è quindi inutile di azzerarla con il programma o con il terminale.
Per riavviare l'elaborazione sequenziale in una situazione determinata, occorre prevedere in base all'applicazione una procedura di inizializzazione o di preposizionamento del Grafcet.
214
35015370.01 07/2008
Grafcet
Blocco del Grafcet
Funzione
Blocco del
Grafcet
L'inizializzazione del Grafcet avviene tramite il bit sistema %S23.
Di solito %S23 si trova in stato 0 e pertanto il fatto di porlo in stato 1 provoca il mantenimento nello stato attuale dei Grafcet. Indipendentemente dal valore delle ricettività a valle delle fasi attive, i Grafcet non evolvono. Il blocco è mantenuto finché il bit %S23 si trova a 1.
La seguente tabella riporta le varie possibilità di porre il bit sistema %S23 a 1 o a 0.
Stato 1 z z
Tramite il programma utente
Tramite il terminale (con debug o tabella di animazione)
Stato 0 z z
Tramite il programma utente
Tramite il terminale (con debug o tabella di animazione)
Regola d'uso z z
Questo bit, che è gestito dal programma utente, deve essere posizionato a 1 o a
0 nel trattamento preliminare.
Il bit %S23 associato ai bit %S21 e %S22 permette di realizzare un blocco del trattamento sequenziale allo stato iniziale o allo stato 0. Allo stesso modo, il
Grafcet può essere preposizionato e poi bloccato da %S23.
35015370.01 07/2008
215
Grafcet
Azzeramento delle macrofasi
Funzione L'azzeramento delle macrofasi viene eseguito con il bit di sistema %S24.
Normalmente allo stato 0, l'impostazione a 1 di %S24 provoca l'azzeramento delle macrofasi scelte in una tabella di 4 parole di sistema (da %SW22 a %SW25).
Nota: La funzione RESET_XIT permette di reinizializzare con il programma i tempi di attivazione dei passi di una macrofase (Vedere Manuale de riferimento, Volume
2).
Azzeramento delle macrofasi
La seguente tabella indica le diverse possibilità dell'impostazione a 1 e a 0 del bit di sistema %S24.
Impostazione allo stato 1 z Con il programma utente
Ritorno allo stato 0 z Con il sistema all'inizio dell'elaborazione
Regole d'utilizzo z questo bit deve essere scritto a 1 solamente nell'elaborazione preliminare z l'impostazione a zero di %S24 è gestita dal sistema, quindi non si deve azzerarla con il programma o con il terminale.
216
35015370.01 07/2008
Grafcet
Tabella di parole da %SW22 a
%SW25
Ad ogni bit di questa tabella corrisponde una macrofase. L’utilizzazione è quindi la seguente: z z caricamento della tabella delle parole da %SW22 a %SW25 (bit da impostare a
1 quando la macrofase corrispondente non deve essere rimessa a zero) convalida con %S24.
L’illustrazione seguente presenta la codifica delle parole da %SW22 a %SW25.
%SW22 F
XM15 XM1
0
XM0
%SW23 F
XM31
0
XM17 XM16
F
XM63
%SW25 0
XM49 XM48
Esempio:
! IF %I4.2 AND %T3.D THEN
%SW22:=16#AF8F;
%SW23:=16#F3FF;
%SW24:=16#FFEF;
%SW25:=16#FFFF;
SET %S24
Queste quattro parole sono inizializzate a 16#FFFF se %S21 = 1.
35015370.01 07/2008
217
Grafcet
Funzionamento del trattamento sequenziale
Generalità
Fase 1
Questo trattamento permette di programmare la struttura sequenziale dell'applicazione. Il trattamento sequenziale comprende: z z il grafico principale organizzato in 8 pagine, fino a 64 macrofasi di 8 pagine ognuna.
Nel grafico principale, possono essere programmati più Grafcet non alimentati ed è possibile il loro svolgimento simultaneo.
L'evoluzione del Grafcet avviene in 3 fasi principali.
La seguente tabella descrive le operazioni realizzate durante la prima fase.
Fase
1
2
3
Descrizione
Valutazione delle ricettività delle transizioni convalidate.
Richiesta di disattivazione delle fasi a monte associate.
Richiesta di attivazione delle fasi a valle in questione.
Fase 2 La fase 2 corrisponde all'evoluzione della situazione del Grafcet in funzione delle transizioni superate:
Fase
1
2
3
4
Descrizione
Disattivazione delle fasi a monte delle transizioni superate.
Attivazione delle fasi a valle delle transizioni superate.
Invalida delle transizioni superate.
Convalida delle transizioni a valle delle nuove fasi attivate.
Risultato: Il sistema aggiorna due tabelle dedicate rispettivamente all'attività delle fasi e alla validità delle transizioni: z la tabella di attività delle fasi memorizza, per il ciclo corrente, le fasi attive, quelle da attivare e quelle da disattivare, z la tabella di validità delle transizioni memorizza, per il ciclo corrente, le transizioni che si trovano a valle delle fasi interessate dalla tabella precedente.
218
35015370.01 07/2008
Grafcet
Fase 3 Le azioni associate alle fasi attive vengono eseguite nel seguente ordine:
Fase
1
2
3
Descrizione
Azioni alla disattivazione delle fasi da disattivare.
Azioni all'attivazione delle fasi da attivare.
Azioni continue delle fasi attive.
Superamento delle capacità
Il numero di elementi della tabella di attività delle fasi e della tabella di validità delle transizioni può essere configurato.
Il superamento della capacità di una o dell'altra comporta: z z z il passaggio in STOP del PLC (arresto dell'esecuzione dell'applicazione), il passaggio a 1 del bit sistema %S26 (superamento della capacità di una delle due tabelle), il lampeggio della spia ERR del PLC.
Il sistema mette a disposizione dell'utente due parole sistema: z z
%SW20: parola che permette di conoscere il numero di fasi attive per il ciclo corrente, da attivare e da disattivare
%SW21: parola che permette di conoscere il numero di transizioni valide per il ciclo corrente, da convalidare o da invalidare
Diagnostica
In caso di errore bloccante, le parole sistema da %SW125 a %SW127 consentono di determinare la natura dell'errore.
%SW125
DEF7
DEF7
DEFE
%SW126 %SW127
0 = 0
= 0 0
N. di fase N. di macrofase o
64 per il grafico principale
Superamento della tabella delle fasi (fasi/ transizioni)
Superamento della tabella delle transizioni
Esecuzione del grafico errato (problema di transizione con rinvio di destinazione non risolto).
35015370.01 07/2008
219
Grafcet
Descrizione del trattamento posteriore
Generalità Il trattamento posteriore, che viene immesso in linguaggio Ladder, lista d'istruzioni o letterale, viene esaminato dall'alto verso il basso.
Si tratta dell'ultimo trattamento eseguito prima dell'attivazione delle uscite e consente di programmare la logica di uscita.
Azioni associate al Grafcet
Il trattamento posteriore consente di completare le istruzioni emesse dal trattamento sequenziale integrando all'equazione di un'uscita le modalità di funzionamento e di arresto e le sicurezze indirette specifiche all'azione.
Permette inoltre di trattare un'uscita attivata più volte nel trattamento sequenziale.
In generale, si consiglia di programmare le azioni che hanno un'azione diretta sul process nel trattamento posteriore.
Esempio:
%I2.4
%X5 %Q4.1
%X8
%X59
%M26 %I1.0
z z z
I2.4 = sicurezza indiretta specifica al pilotaggio dell'uscita %Q4.1.
%M26 = bit interno risultato dalla logica d'ingresso che tratta le modalità di funzionamento e di arresto.
%I1.0 = pulsante.
L'uscita %Q4.1 è attivata dalle fasi 5,8 e 59 del trattamento sequenziale.
Azioni indipendenti del
Grafcet
Il trattamento posteriore consente inoltre di programmare le uscite indipendenti del trattamento sequenziale.
220
35015370.01 07/2008
Grafcet
Controllo dell'esecuzione del Grafcet
Potrebbe essere necessario controllare il corretto svolgimento del Grafcet tramite il periodo di attività di alcune fasi. Il test viene svolto con il confronto rispetto ad un valore minimo oppure rispetto ad un valore massimo definito dall'utente.
L'utente sceglie il tipo di utilizzazione dell'errore (segnalazione, procedura di funzionamento particolare, edizione del messaggio).
Esempio:
! IF (%X2.T > 100 AND %X2) THEN SET %Q4.0 ;END_IF ;
35015370.01 07/2008
221
Grafcet
222
35015370.01 07/2008
Blocchi funzione DFB
10
In breve
Contenuto di questo capitolo
Contenuto di questo capitolo
Questo capitolo descrive la programmazione dei blocchi funzione utente DFB.
Questo capitolo contiene le seguenti sottosezioni:
Argomento
Presentazione dei blocchi funzione DFB
Come attivare un blocco funzione DFB
Definizione degli oggetti dei blocchi funzione tipo DFB
Definizione dei parametri DFB
Definizione delle variabili DFB
Regola di codifica dei Tipi DFB
Creazione delle istanze di DFB
Regola di utilizzo dei DFB in un programma
Utilizzo di un DFB in un programma in linguaggio Ladder
Utilizzo di un DFB in un programma in linguaggio lista d'istruzioni o letterale
Esecuzione di un'istanza di DFB
Esempio di programmazione del blocco funzione DFB
Pagina
35015370.01 07/2008
223
Blocchi funzione DFB
Presentazione dei blocchi funzione DFB
Funzione
Esempi d'uso
Il software PL7-Pro offre all'utente la possibilità di creare i propri blocchi funzione che rispondono alle specificità delle proprie applicazioni.
Questi blocchi funzione utente consentono di strutturare un'applicazione. Verranno utilizzati non appena una sequenza di programma si trova ripetuta a più riprese nell'applicazione o per bloccare una programmazione standard (esempio: algoritmo di comando di un motore che include l'acquisizione delle sicurezze locali).
Possono essere trasmessi all'insieme dei programmatori ed essere utilizzati nella stessa applicazione o in tutte le altre applicazioni (funzione esportazione/ importazione).
L'uso di un blocco funzione DFB in un'applicazione permette di: z z z z semplificare la progettazione e l'immissione del programma, accrescere la facilità di lettura del programma, facilitarne l'ottimizzazione (tutte le variabili manipolate dal blocco funzione DFB sono identificate sull'interfaccia), diminuire il volume del codice generato (il codice corrispondente al DFB è caricato una sola volta, indipendentemente dal numero di chiamate al DFB nel programma).
Confronto con il sottoprogramma
Rispetto al sottoprogramma, consentono di: z z z parametrare più facilmente il trattamento, utilizzare delle variabili interne proprie al DFB e pertanto indipendenti dall'applicazione, eseguire i test indipendentemente dall'applicazione.
In linguaggio Ladder, consentono di ottenere una visualizzazione grafica del blocco che facilita la programmazione e il debug.
Inoltre, i blocchi funzione DFB utilizzano i dati restanti.
224
35015370.01 07/2008
Settore di utilizzazione
Blocchi funzione DFB
La tabella seguente descrive il settore di applicazione dei DFB.
Funzione
PLC per cui i DFB possono essere utilizzati.
Settore
Premium
Software di creazione dei DFB PL7 Pro
Software con cui i DFB possono essere utilizzati. PL7 Pro oppure PL7 Junior linguaggio letterale strutturato e ladder Linguaggio di programmazione per la creazione del codice dei DFB.
Linguaggio di programmazione con cui i DFB possono essere utilizzati.
linguaggio ladder, letterale strutturato e in lista d'istruzioni
35015370.01 07/2008
225
Blocchi funzione DFB
Come attivare un blocco funzione DFB
Procedura da seguire
L'attivazione di un blocco funzione DFB si compone di 3 fasi principali:
Fase
1
2
3
Azione
Progettazione del DFB modello (detto: Tipo DFB).
Creazione di un'immagine di questo blocco detto istanza per ogni utilizzazione nell'applicazione.
Utilizzazione dell'istanza nel programma PL7.
Progettazione del tipo DFB
Consiste nel definire e nel codificare tutti gli elementi che compongono il DFB modello, tramite l'editor di DFB.
La seguente illustrazione riporta la composizione di un DFB modello.
Nome tipo DFB
Ingressi Uscite
Ingressi/
Uscite
Variabili pubbliche
Variabili private
Codice
Un blocco funzione Tipo DFB si compone di: z z z z z z un nome, parametri: z ingressi, z z uscite, ingressi/uscite, variabili: z variabili pubbliche, z variabili private, codice in linguaggio letterale strutturato o Ladder, un commento, una scheda descrittiva.
226
35015370.01 07/2008
Creazione di un'istanza di
DFB
Blocchi funzione DFB
Una volta progettato il Tipo DFB, l'utente definisce un'istanza del DFB tramite l'editor di variabili o su chiamata della funzione nell'editor di programma.
Utilizzazione dei
DFB
Quest'istanza del blocco viene utilizzata come blocco funzione standard in linguaggio Ladder, oppure come funzione elementare in linguaggio letterale strutturato o lista d'istruzione.
Può essere programmata in vari task (tranne nei task evento) e sezioni dell'applicazione.
35015370.01 07/2008
227
Blocchi funzione DFB
Definizione degli oggetti dei blocchi funzione tipo DFB
Caratteristiche generali degli oggetti DFB
Questi oggetti sono dati interni al DFB, sono puramente simbolici (senza indirizzamento sotto forma di variabile).
I DFB utilizzano 2 tipi di oggetto: z z i parametri le variabili
Sintassi Per ciascun parametro o variabile utilizzati, l'ideatore del blocco funzione Tipo DFB definisce: z z z z un nome di massimo 8 caratteri (sono autorizzate lettere non accentate, cifre, il carattere di sottolineatura "_" in cui il primo carattere deve essere necessariamente una lettera e in cui le parole chiave e i simboli non sono autorizzati), un type d'objet (voir tableau ci-après),«un tipo di oggetto (si veda la seguente tabella), un commento facoltativo di massimo 80 caratteri, un valore iniziale (tranne per i parametri Ingressi/Uscite).
228
35015370.01 07/2008
Tipo di oggetti
Blocchi funzione DFB
La tabella seguente descrive la lista dei vari tipi di oggetti possibili alla dichiarazione dei parametri e delle variabili del tipo DFB.
Tipo Nome Esempi Azione su…
Bit
Parole
Tabelle
BOOL
EBOOL
WORD
Booleano
Booleano esteso
Il tipo BOOL non gestisce i fronti. Se la gestione del fronte non è utile nel trattamento, è preferibile utilizzare il tipo BOOL
Esempio di oggetto di tipo BOOL del linguaggio
PL7: %MWi:Xj che non gestisce i fronti ma che utilizza meno memoria rispetto al tipo EBOOL.
Il tipo EBOOL gestisce i fronti ed è pertanto possibile eseguire su questo tipo di parametro o di variabile delle istruzioni su fronte di tipo RE e FE.
se si desidera associare un tipo EBOOL a un parametro di ingressi/uscite al momento dell'utilizzo, esso deve essere di tipo EBOOL nel
DFB.
Esempio di oggetto di tipo EBOOL del linguaggio
PL7: %Mi,%Ixy.i,%Qxy.i.
Intero a 16 bit Esempio di oggetto di tipo WORD del linguaggio
PL7: %MWi, %KWi,
DWORD Intero a 32 bit Esempio di oggetto di tipo DWORD del linguaggio
PL7: %MDi, %KDi,
REAL Reale Esempio di oggetto di tipo REAL del linguaggio
PL7:
%MFi, %KFi
AR_X
AR_W
Tabella di bit Esempio di oggetto di tipo AR_X del linguaggio
PL7:
%Mi:L, %Ix.i:L
Tabella di intero a 16 bit
Esempio di oggetto di tipo AR_W del linguaggio
PL7:
%MWi:L, %KWi:L
AR_D
AR_R
Tabella di intero a 32 bit
Esempio di oggetto di tipo AR_D del linguaggio
PL7:
%MDi:L, %KDi:L
Tabella di numeri in virgola mobile
Esempio di oggetto di tipo AR_R del linguaggio
PL7:
%MFi:L, %KFi:L
STRING Stringa di caratteri
Esempio di oggetto di tipo STRING del linguaggio
PL7:
%MBi, %KBi
35015370.01 07/2008
229
Blocchi funzione DFB
Nota: z Caso delle tabelle: la lunghezza della tabella deve essere necessariamente citata per i parametri uscite e le variabili pubbliche e private. Non occorre invece definirla per i parametri ingressi e per i parametri ingressi/uscite.
z I valori iniziali possono essere definiti per gli ingressi (se non sono di tipo tabella), per le uscite e per le variabili pubbliche e private.
230
35015370.01 07/2008
Blocchi funzione DFB
Definizione dei parametri DFB
Illustrazione La seguente illustrazione riporta degli esempi di parametri.
Ingressi Controllo
DWORD
Deviazione
WORD
Velocità
WORD
Accel
BOOL
Errore
Uscite
BOOL
Enable
WORD
Azioni
Ingressi/
Uscite
Descrizione dei parametri
La tabella seguente descrive la funzione di ciascun tipo di parametri.
Parametro Numero massimo
Ingressi 15 (1)
Funzione
Uscite
Ingressi/
Uscite
15 (2)
15
Si tratta dei dati che il programma applicativo deve fornire al
DFB. Questi parametri in sola lettura non possono essere modificati nel codice del DFB.
Si tratta dei dati elaborati dal DFB e destinati al programma applicativo.
Si tratta dei parametri d'ingresso modificabili nel codice del DFB.
Leggenda:
(1) Numero di ingressi + Numero di ingressi/uscite minore o uguale a 15
(2) Numero di uscite + Numero di ingressi/uscite minore o uguale a 15 z z
Nota:
Un blocco funzione DFB deve contenere almeno un ingresso booleano.
La modifica dell'interfaccia di un DFB (variabili pubbliche o parametri) è possibile solo se non è più istanziata e utilizzata dall'applicazione.
35015370.01 07/2008
231
Blocchi funzione DFB
Definizione delle variabili DFB
Descrizione delle variabili
La tabella seguente descrive la funzione di ciascun tipo di variabile.
Funzione Variabile Numero massimo
Pubblica 100
Privata 100
Variabili interne utilizzate nell'elaborazione ed accessibili in fase di regolazione dall'utente o con il programma applicativo ad esclusione del codice DFB (come variabile pubblica d'istanza DFB, vedere qui di seguito: Accesso alle variabili pubbliche).
Variabili interne al codice del blocco funzione, che vengono calcolate ed utilizzate all'interno del DFB, ma che non hanno alcun legame fuori dal DFB.
Queste variabili sono utili per la programmazione del blocco, ma irrilevanti per l'utilizzatore del blocco (ad esempio: variabile intermedia di rinvio da un'espressione combinatoria all'altra, risultato di un calcolo intermedio).
Accesso alle variabili pubbliche
Nota: La modifica dell'interfaccia di un DFB (variabili pubbliche o parametri) è possibile solo se non è definita come istanza e utilizzata dall'applicazione.
Solo i parametri di uscita e le variabili pubbliche sono accessibili come oggetti nel programma applicativo al di fuori del corpo del blocco funzione.
La loro sintassi è la seguente:
Nome_DFB.Nome_parametro
Ove Nome_DFB è il nome dato all'istanza del DFB utilizzato (massimo 32 caratteri) e Nome_parametro il nome dato al parametro di uscita o alla variabile pubblica
(massimo 8 caratteri).
Esempio : Controllo.errore
per l'uscita Errore dell'istanza DFB nominata
Controllo .
232
35015370.01 07/2008
Blocchi funzione DFB
Salvataggio e restituzione delle variabili pubbliche
Le variabili pubbliche, modificate da programma o tramite regolazione possono essere salvate al posto dei valori di inizializzazione (definite nelle istanze DFB) tramite impostazione a 1 del bit di sistema %S94.
La sostituzione si verifica solo se l'autorizzazione è stata data a livello di ogni variabile confermando il campo S nella schermata di definizione delle variabili pubbliche del DFB.
Questi valori salvati vengono riapplicati tramite impostazione a 1 del bit sistema
%S95 o su reinizializzazione del PLC.
È possibile interdire la funzione " Save/Restore "globale per tutti i blocchi funzione
DFB (finestra di dialogo Proprietà del tipo DFB ).
35015370.01 07/2008
233
Blocchi funzione DFB
Regola di codifica dei Tipi DFB
Generalità Il codice definisce il trattamento che deve eseguire il blocco DFB a seconda dei parametri dichiarati.
Il codice del blocco funzione DFB si programma in linguaggio letterale o in linguaggio Ladder.
Nel caso del linguaggio letterale, il DFB è costituito da una sola frase letterale di lunghezza illimitata.
Regole di programmazione
Sono autorizzate tutte le istruzioni e le funzioni avanzate del linguaggio, tranne: z z z z z z la chiamata ai blocchi funzione standard, la chiamata agli altri blocchi funzione DFB, collegamento a una label JUMP , la chiamata a un sottoprogramma, l'istruzione HALT , le istruzioni che utilizzano le variabili dei moduli d'ingresso/uscita (ad esempio:
READ_STS , SMOVE ...).
Il codice utilizza i parametri e le variabili del DFB definiti dall'utente.
Il codice del blocco funzione DFB non può utilizzare né gli oggetti d'ingresso/uscita
(%I,%Q…), né gli oggetti globali dell'applicazione (%MW,%KW…) tranne i bit e le parole sistema %S e %SW.
Nota: Non è possibile utilizzare la label.
Funzioni specifiche
La seguente tabella descrive le funzioni specificamente adatte per un uso nel codice.
Funzioni
LW, HW, COCATW
Funzione
FTON, FTOF, FTP, FPULSOR Queste funzioni di temporizzazione sono destinate ad essere utilizzate al posto dei blocchi funzione temporizzazione standard.
Queste istruzioni consentono di manipolare parole e parole doppie.
LENGTH_ARW, LENGTH_ARD,
LENGTH_ARR
Queste istruzioni permettono di calcolare le lunghezze della tabella.
234
35015370.01 07/2008
Esempio di codice
Il programma seguente fornisce l'esempio di codice in letterale.
CHR_200:=CHR_100;
CHR_114:=CHR_104;
CHR_116:=CHR_106;
RESET DEMARRE;
(*Si incrementa 80 volte CHR_100*)
FOR CHR_102:=1 TO 80 DO
INC CHR_100;
WHILE((CHR_104-CHR_114)<100)DO
IF(CHR_104>400) THEN
EXIT;
END_IF;
INC CHR_104;
REPEAT
IF(CHR_106>300) THEN
EXIT;
END_IF;
INC CHR_106;
UNTIL ((CHR_100-CHR_116)>100)
END_REPEAT;
END_WHILE;
(* Si va in loop finché CHR_106)
IF (CHR_106=CHR_116)
THEN EXIT;
ELSE
CHR_114:=CHR_104;
CHR_116:=CHR_106;
END_IF;
INC CHR_200;
END_FOR;
Blocchi funzione DFB
35015370.01 07/2008
235
Blocchi funzione DFB
Creazione delle istanze di DFB
Generalità
Regole
Un'istanza DFB è una copia del Tipo DFB: z z utilizza il codice del Tipo DFB (non vi è duplicazione del codice), crea una zona di dati specifica all'istanza che è la copia dei parametri e delle variabili del Tipo DFB. Questa zona si trova nello spazio dati dell'applicazione.
Ciascuna istanza DFB è identificata da un nome di massimo 32 caratteri e definito dall'utente.
I caratteri autorizzati sono gli stessi di quelli autorizzati per i simboli, ovvero: z z z le lettere non accentate, i numeri, il carattere di sottolineatura "_".
Il primo carattere deve essere necessariamente una lettera e le parole chiave e i simboli non sono autorizzati.
È possibile creare il numero di istanze desiderato a partire da uno stesso tipo di
DFB. Tuttavia, il numero di istanze di DFB non deve utilizzare più di 32 K parole della memoria interna del PLC.
I valori iniziali delle variabili pubbliche per i blocchi funzione Tipo DFB possono essere modificati per ogni istanza.
236
35015370.01 07/2008
Blocchi funzione DFB
Regola di utilizzo dei DFB in un programma
Generalità Le istanze di DFB sono utilizzabili in tutti i linguaggi (linguaggio Ladder, letterale e lista d'istruzioni) e in tutte le parti dell'applicazione: sezioni, sottoprogramma, modulo Grafcet (tranne nei task evento).
Regole generali d'uso
Indipendentemente dal linguaggio utilizzato, occorre rispettare le regole seguenti: z z z tutti i parametri d'ingresso di tipo tabella e i parametri d'ingresso/uscita vanno specificati, i parametri d'ingresso non cablati conservano il valore della chiamata precedente o il valore d'inizializzazione se il blocco non è mai stato chiamato con questo ingresso specificato o cablato, tutti gli oggetti assegnati ai parametri d'ingresso, di uscita e di ingresso/uscita devono essere necessariamente dello stesso tipo di quelli definiti alla creazione del Tipo DFB (ad esempio: se il tipo WORD è definito per il parametro d'ingresso
"velocità", è vietato attribuire ad esso parole doppie %MDi, %KDi).
L'unica eccezione è costituita dai tipi BOOL e EBOOL per i parametri d'ingresso o di uscita (non per i parametri ingressi/uscite) che possono essere misti.
Esempio : il parametro d'ingresso "Convalida" può essere definito come BOOL e può essere associato a un bit interno %Mi che è di tipo EBOOL, mentre nel codice interno del tipo DFB il parametro d'ingresso presenta la proprietà di un tipo
BOOL e non è in grado di gestire i fronti.
35015370.01 07/2008
237
Blocchi funzione DFB
Assegnazione dei parametri
La tabella seguente riassume le varie possibilità di assegnazione dei parametri nei vari linguaggi di programmazione.
Parametro
Ingressi
Ingressi/
Uscite
Uscite
Tipo
Booleano
Numerico
Tabella
Booleano
Numerico
Tabella
Booleano
Numerico
Tabella
Assegnazione parametro
Cablato (1)
Oggetto o espressione
Oggetto
Oggetto
Oggetto
Oggetto
Cablato (1)
Oggetto
Oggetto
Assegnazione opzionale (2) opzionale obbligatorio obbligatorio obbligatorio obbligatorio opzionale opzionale opzionale
(1) cablato in Ladder o oggetto in linguaggio booleano o letterale.
(2) in Ladder, ogni blocco DFB deve avere almento un ingresso booleano (binario) cablato.
238
35015370.01 07/2008
Blocchi funzione DFB
Utilizzo di un DFB in un programma in linguaggio Ladder
Principio Vi sono due possibilità per chiamare un blocco funzione DFB: z z una chiamata testuale in un blocco operazione, la sintassi ed i vincoli sui parametri sono identici a quelli del linguaggio letterale, una chiamata grafica, si veda l'esempio riportato oltre.
I blocchi funzionali DFB grafici hanno ingressi/uscite che sono assegnati direttamente da oggetti o espressioni, i quali occupano una cella della rete grafica.
2 blocchi funzionali DFB collegati in modo seriale devono essere separati almeno da 2 colonne.
35015370.01 07/2008
239
Blocchi funzione DFB
Esempio La seguente illustrazione riporta un esempio semplice di programmazione di un
DFB.
%Q2,5
ABS(%MD0)
10000
%MW100
Controllo_porta_1
Controllo
DWORD
Deviazione
WORD
Accel
WORD
Velocità
BOOL
Errore
BOOL
Enable
WORD
Azioni
%MW8
%MW100
%Q2,1
La seguente tabella riporta i vari elementi del DFB
4
5
6
2
3
Variabile Funzione
1 Nome del DFB
Nome del Tipo DFB
Parametro effettivo del primo ingresso
Parametro d'ingresso (nome e tipo)
Parametri di uscita (nome e tipo)
Parametro d'ingressi/uscite (nome e tipo) z z
Nota:
Un blocco funzione DFB deve contenere almeno un ingresso booleano cablato.
Gli ingressi, le uscite o gli ingressi/uscite numerici del blocco non sono cablati.
A questi mandrini vengono associati gli oggetti riportati sulla cella davanti al mandrino.
240
35015370.01 07/2008
Blocchi funzione DFB
Utilizzo di un DFB in un programma in linguaggio lista d'istruzioni o letterale
Generalità La chiamata del blocco funzione DFB costituisce un'azione che può essere posta in una frase come per qualsiasi altra azione del linguaggio.
Sintassi generale La sintassi di programmazione dei DFB è la seguente:
Nome_DFB (E1,...,En,ES1,...,ESn,S1,...,Sn)
La seguente tabella descrive la funzione dei parametri delle istruzioni.
Parametro
E1, ..., En
ES1, ..., ESn
S1, ..., Sn
Funzione
Espressioni (tranne per gli oggetti di tipo BOOL/EBOOL), oggetti o valori immediati che vengono utilizzati come parametri effettivi ai parametri d'ingresso.
Parametri effettivi che corrispondono agli ingressi/uscite. Si tratta sempre di oggetti linguaggio in lettura/scrittura.
Parametri effettivi che corrispondono alle uscite. Si tratta sempre di oggetti linguaggio in lettura/scrittura.
Sintassi in letterale
Sintassi in lista d'istruzioni
L'istruzione in linguaggio letterale presenta la sintassi seguente:
Nome_DFB (E1,...,En,ES1,...,ESn,S1,...,Sn);
Esempio: Cnt_bulloni(%I2.0,%MD10,%I2.1,%Q1.0);
L'istruzione in linguaggio lista d'istruzioni presenta la sintassi seguente:
[Nome_DFB (E1,...,En,ES1,...,ESn,S1,...,Sn)]
Esempio:
LD TRUE
[Cnt_bulloni(%I2.0,%MD10,%I2.1,%Q1.0)]
35015370.01 07/2008
241
Blocchi funzione DFB
Esecuzione di un'istanza di DFB
Funzionamento L'esecuzione di un'istanza DFB avviene nel seguente ordine:
Fase
1
4
5
2
3
Azione
Caricamento dei parametri d'ingresso e di ingresso/uscita tramite parametri effettivi.
Gli ingressi lasciati liberi acquistano il valore di inizializzazione definito nel tipo
DFB, all'inizializzazione o in seguito a un riavvio a freddo, poi quello corrente del parametro.
Passaggio tramite valore dei parametri di ingresso (tranne per il tipo tabella).
Passaggio tramite indirizzo dei parametri ingressi/uscite.
Esecuzione del codice letterale.
Scrittura dei parametri di uscita.
Strumenti di debug
Il software PL7 offre svariati strumenti di debug del programma PL7 e dei DFB : z z z tabella d'animazione: tutti i parametri e le variabili pubbliche sono visualizzate e animate in tempo reale ed è possibile modificare e forzare gli oggetti desiderati, punto di arresto, passo a passo e diagnostica programma,
Runtime Display: per il debug unitario.
242
35015370.01 07/2008
Blocchi funzione DFB
Esempio di programmazione del blocco funzione DFB
Generalità
Caratteristiche del tipo DFB
Questo esempio ha uno scopo didattico, il DFB da programmare è un contatore.
Il contatore viene realizzato dal Tipo DFB seguente:
Cnt_pezzi
EBOOL
Azzeramento
DWORD
Presel
EBOOL
Count
DWORD
V_corr
BOOL
Done
La tabella seguente descrive le caratteristiche del Tipo DFB da programmare.
Caratteristiche
Nome
Ingressi
Uscite
Variabile pubblica
Valori
Cnt_pezzi z z z
Azzeramento : azzeramento del contatore
Presel : valore di preselezione del contatore
Count : input conteggio
Done : uscita valore di preselezione raggiunta
V_corr : Valore corrente incrementato dall'input Count
Funzionamento del contatore
La tabella seguente descrive il funzionamento da attribuire al contatore.
Fase
1
2
3
Descrizione
Questo blocco conta i fronti di salita sull'input Count .
Il risultato viene posto nella variabile V_corr , che viene azzerata da un fronte di salita sull'input Azzeramento .
Il conteggio avviene fino al valore di preselezione, quando viene raggiunto questo valore, l'uscita Done viene posta a 1 e rimessa a 0 sul fronte di salita sull'ingresso Azzeramento .
35015370.01 07/2008
243
Blocchi funzione DFB
Codice del DFB La programmazione del codice del Tipo DFB viene riportata qui di seguito.
!(*Programmazione del DFB Cpt_pezzi*)
IF RE Azzeramento THEN
V_corr:=0;
END_IF;
IF RE Count THEN
V_corr:=V_corr+1;
END_IF;
IF(V_corr>=Presel) THEN
SET Done;
ELSE
RESET Done;
END_IF;
Esempio d'uso In questo esempio, il Tipo DFB creato, viene utilizzato 3 volte (3 istanze DFB) per il conteggio dei 3 tipi di pezzi.
Quando il numero di pezzi programmati (nelle parole %MD10, %MD12 e %MD14) viene raggiunto, l'uscita del contatore pilota l'arresto del sistema di approvvigionamento dei pezzi corrispondente.
244
35015370.01 07/2008
35015370.01 07/2008
Blocchi funzione DFB
Il programma seguente utilizza le 3 istanze del tipo DFB Cnt_pezzi: Cnt_bulloni,
Cnt_dadi e Cnt_viti.
Cnt_bulloni
%I1.0
%Q2.1
Cnt_pezzi
EBOOL
Azzeramento
BOOL
Done
%MD10
%I1.1
DWORD
Presel
EBOOL
Count
%I1.2
%I1.3
%MD12
Cnt_dadi
Cnt_pezzi
EBOOL
Azzeramento
BOOL
Done
DWORD
Presel
EBOOL
Count
%Q2.2
%I1.4
%I1.5
%MD14
Cnt_viti
Cnt_pezzi
EBOOL
Azzeramento
BOOL
Done
DWORD
Presel
EBOOL
Count
%Q2.3
245
Blocchi funzione DFB
246
35015370.01 07/2008
A
Azzeramento delle macrofasi, 216
B
C
D
35015370.01 07/2008
Indice analitico
A C
E
Esecuzione
Esecuzione di un programma letterale, 171
F
Frase
G
I
247
Index
Inizializzazione del Grafcet, 213
Interruzione alimentazione, 80
Istruzione
Istruzioni
L
Label
Langage
Linguaggi
M
248
Memoria
O
Oggetto
P
Parametro
Preposizionamento del Grafcet, 212
Programmazione
R
Riferimento di destinazione, 188
35015370.01 07/2008
Index
S
T
Trattamento
V
Variabile
W
35015370.01 07/2008
249
Index
250
35015370.01 07/2008
دانلود
تبلیغات