Programmazione in Ambiente SAIA-Burgess
 PLC PCD1 della SAIA-Burgess
Caratteristiche Hardware PLC SAIA PCD1
 Massimo 4 Moduli di I/O. Quelli presenti:
 1 byte digitale ingressi (0-24V)
 1 byte digitale uscite (0-24V)
 10 ingressi 4-20mA
 10 ingressi 0-10 V
 1 CPU: microcontrollore 68340
 Tempi di elaborazione:
 AND 5s
 WORD 10s
Caratteristiche Hardware PLC SAIA PCD1
 Memoria
 17 Kbytes RAM
 64 Kbytes RAM/EEPROM
 Base dei Tempi: programmabile
 da 10 msec a 10 secondi
 default: 100 msec
Organizzazione della Memoria PLC SAIA PCD1
 Ingressi (1 bit):
 I (0..8191). Esempio I 0
 Uscite (1 bit):
 O (0..8191). Esempio O 0
 Flag (1 bit):
 F (0..8191). Esempio F 0.
 Possono essere letti e/o modificati.
 Registro (32 bit):
 R (0..4095).
 Valori positivi, negativi o nulli. Valori
in Virgola Mobile, Decimali,
Esadecimali, Binari.
Organizzazione della Memoria PLC SAIA PCD1
 Costanti:
 K (0..16383)
 Possono assumere i seguenti valori:
Tipo Costante
Valore Minimo
Valore Massimo
Decimale
-2.147.483.648
+2.147.483.648
Esadecimale
0H
FFFFFFFF H
Binario
0Q
1111111111111 Q (13 bits)
ASCII
Virgola Mobile
'a', 'b', ..., 'z', 'A', etc.
-9.22337177 E+18
+9.22337177 E+18
-2.71050535 E-20
+5.42101070 E-20
Organizzazione della Memoria PLC SAIA PCD1
 Temporizzatore (31 bit):
 T (default: 0..31)
 Viene decrementato in funzione della base dei
tempi il cui valore di default è di 1/10 sec (100
msec).
 Può assumere solo valori positivi o nulli:
0..2.147.483.647
 Contatore (31 bit):
 C (default: 32..1599)
 Viene decrementato in funzione di eventi scelti
dall'utente.
 Può assumere solo valori positivi o nulli:
0..2.147.483.647
Flag di Sistema
 Registro Risultato o ACCU: (1 bit)
 Accumulatore. Il suo stato (H/L) dipende dal risultato di determinate
istruzioni (tipicamente quelle che operano sui bit)
 P (1 bit):
 flag di stato delle operazioni aritmetiche. Il suo stato è H (alto) se il
risultato di una istruzione aritmetica è positivo ( > 0 )
 N (1 bit):
 flag di stato delle operazioni aritmetiche. Il suo stato è H (alto) se il
risultato di una istruzione aritmetica è negativo ( < 0 )
 Z (1 bit):
 flag di stato delle operazioni aritmetiche. Il suo stato è H (alto) se il
risultato di una istruzione aritmetica è zero
 E (1 bit):
 flag di stato delle operazioni aritmetiche. Il suo stato è H (alto) se
l'istruzione aritmetica non può essere eseguita (superamento capacità
dei registri, divisione per zero, radice quadrata di un numero negativo,
etc.)
Differenze con lo Standard IEC 1131-3
 Definizione Configuration e Resource:
 La Configuration coincide con il Progetto
 La Resource (Specifica del Supporto Hardware) è
definita nel Progetto (Tools  PCD Configuration
File Editor)
 Definizione di Programma e Function Block
 All'interno di un Progetto possono essere definiti più
Programmi e Function Blocks scritti in uno dei 5
linguaggi IEC 1131-3
 Definizione dei Tasks
 La Gestione dei Processi e Function Block avviene
tramite Blocchi ad Organizzazione Ciclica (COB)
 Definizione di Tipi di Dato
 Non disponibile
Differenze con lo Standard IEC 1131-3
 Definizione di Variabili Locali e Globali
 La definizione di Variabile Locale o Globale viene
realizzata specificando lo Scope della variabile,
quando essa viene dichiarata in un file (ad esempio
in un programma)
 Local: La Risorsa (I, O, F, R, T, C, K) è locale al File
 Public: La Risorsa è dichiarata Public al fine di
essere usata in un altro File
 Extern: La Risorsa è utilizzata nel File corrente, ma è
stata dichiarata Public in un altro File
 Inizializzazione Variabili
 Viene fatto in Instruction List (IL) (vedasi lucidi
successivi)
Differenze con lo Standard IEC 1131-3
 Variabili e Valori Temporali
 Non esistono in modo esplicito
 I valori temporali vengono espressi con Registri (R) o
con Costanti (K)
 I valori temporali sono espressi come multipli di 100
msec
 Attributi Variabili: Attributo AT
 Non esiste
 L'associazione delle variabili agli indirizzi di memoria
viene fatta all'atto della dichiarazione delle variabili
specificando se:
l'allocazione deve essere dinamica (non si fissa alcun
indirizzo di memoria)
si vuole assegnare un indirizzo ben preciso
Differenze con lo Standard IEC 1131-3
 Attributi Variabili: Attributo RETAIN
 Non esiste
 E' possibile definire qualcosa di simile solo per i
Flags. E' possibile scegliere tra due valori:
Volatile (Reset con il Cold Start)
Non-Volatile (Default)
 E' possibile configurare l'intervallo di indirizzi di Flags
che sono di tipo Volatile e Non-Volatile
 Attributi Variabili: Attributo CONSTANT
 Non esiste
 Vengono utilizzate le Costanti K
POUs e Tasks nel PLC SAIA-Burgess
 Il programma è diviso in blocchi di istruzioni:
 Blocco di Organizzazione Esclusiva (XOB)
 Blocco di Organizzazione Ciclica (COB)
 Blocco di Programma (PB)
 Blocchi di Funzione (FB).
 Ci deve essere almeno un COB
 Ogni COB può richiamare PB e FB
 I PB e i FB possono richiamare qualsiasi altro
PB o FB fino a 7 livelli di nidificazione
Blocco ad Organizzazione Esclusiva (XOB)
 Viene eseguito solo quando si verifica un determinato
evento al quale il XOB è associato
 Se un determinato evento accade e ad esso non viene
associato alcun XOB, non viene intrapresa alcuna
azione e si accende la lampada ERROR
 Al termine del programma XOB, il programma ritorna
alla locazione dalla quale era stata richiamata la routine
esclusiva.
 Gli eventi sono caratterizzati da una priorità, che
determina l'esecuzione degli associati XOB, nel caso di
concomitanza di eventi
 Esempio: XOB 16, Accensione PLC o Start Cold
Blocco ad Organizzazione Esclusiva (XOB)
 Sintassi della dichiarazione di un XOB
XOB
numero
corpo del programma
EXOB
 numero: 0-25 (ad esempio 16)
 All'inizio dell'XOB l'ACCU e' messo alto (H)
Blocco ad Organizzazione Esclusiva (XOB)
 Inizializzazione Variabili
 Instruction List (IL)
XOB 16
ACC H
SET F 0
EXOB
XOB 16
ACC H
RES F 0
EXOB
Blocco ad Organizzazione Ciclica (COB)
 Ad ogni COB deve essere associato un numero
 La sequenza di esecuzione dei COB (quando ve ne è
più di uno) dipende dal numero associato
 Ad ogni COB può essere associato un tempo di
supervisione espresso in unità di 1/10 sec. In ogni caso
deve essere associato il valore 0
 Se il tempo di supervisione è 0, alla conclusione del
COB viene eseguito il COB successivo (con numero
superiore). Se il COB è l'unico, viene eseguito lo stesso
COB
 Se il tempo di supervisione è maggiore di 0, viene
attivato un timer all'inizio dell'esecuzione del COB. Se il
tempo di supervisione scade prima che il COB termina,
viene eseguito il COB successivo.
Blocco ad Organizzazione Ciclica (COB)
 Sintassi della definizione di un COB
COB
numero
tempo
corpo del programma
ECOB
 numero: 0-15 (16 COB al massimo)
 tempo: tempo di supervisione in incrementi di 10
ms (0-100.000)
 All'inizio del COB l'ACCU è messo alto (H)
Esempio di Gestione della Preemption
COB
0
0
;oppure t
LD C 0
100
NEXT: DEC C 0
se il COB 0 ha tempo 0 allora i tempi
STH C 0
JR H NEXT
di risposta di O 55 sono pari a quelli
STH I 32
del decremento del contatore
OUT O 48
se il COB 0 ha tempo t allora i tempi di
ECOB
risposta di O 55 sono di t*10 msec.
COB
1
0
STH I 39
OUT O 55
ECOB
Scarica

Caratteristiche Principali PLC SAIA PCD1