Caratteristiche Principali PLC Siemens S7-300

Caratteristiche Principali
PLC Siemens CPU 314C-2 DP
Prodotti Siemens

Simatic 300


Simatic 400


CPU 3xxx
CPU 4xxx
Unico Ambiente di Programmazione
Step7 V5.3
Simatic CPU 314C-2 DP

Argomenti Trattati




Area Memoria
Gestione dei Programmi
Unità di I/O
Function Block
Area di Memoria

Memoria di Caricamento







Micro Memory Card (64Kbyte)
Flash Memory
Mantenimento dati per 10 anni
Memorizza Blocchi di Codice e Dati Utente
Configurazione Hardware e area S.O.
Memoria di Sistema
Memoria di Lavoro
Area di Memoria


Memoria di Caricamento
Memoria di Sistema




Aree Operandi Merker, Temporizzatori e
Contatori
Immagini di Processo I/O
Dati Locali (temporanei)
Memoria di Lavoro
Area di Memoria



Memoria di Caricamento
Memoria di Sistema
Memoria di Lavoro



Blocchi Codice e Blocchi Dati della porzione
di programma da eseguire
Interagisce con la MMC (carico del codice e
dei dati)
Memoria Lavoro=48 Kbyte
Area Memoria a Ritenzione


Il Programma utente e i dati nella MMC
sono sempre a ritenzione
Per i Merker, Temporizzatori e Contatori
(Memoria di Sistema) l'utente stabilisce
quali parti debbano essere a ritenzione


Es. M0.0-M15.0 sono a ritenzione
Buffer di diagnostica, indirizzo MPI/DP
sono a ritenzione
Caricamento Programmi in
MMC

Caricamento di un Programma
Completo (tutti i blocchi)


Caricamento Parziale



Cancellazione del programma presente
Aggiornamento di uno o più blocchi
Aggiunta di uno o più blocchi
I Programmi memorizzati in una MMC
possono essere caricati nel PC
Gestione dei Programmi

Sistema Operativo






Gestione avviamento (warm, cold)
Aggiornamento immagine I/O
Richiamo programma utente
Gestione allarmi/errori/aree di memoria
Comunicazione con altri dispositivi
Programma Utente
Gestione dei Programmi


Sistema Operativo
Programma Utente

suddiviso in Blocchi:






Blocchi Organizzativi (OB)
Function Block (FB)
Funzioni (FC)
Function Block di Sistema (SFB)
Funzioni di Sistema (SFC)
Blocchi Dati di Istanza (DB), per gli FB o SFB
Gestione dei Programmi
Blocchi Organizzativi (OB)

Comandano l'esecuzione dei blocchi di
programma utente


Sono contraddistinti da numeri e priorità


Realizzano il task secondo IEC 1131-3
OB da 1(Low) a 28(High)
Dentro ogni OB viene scritto un programma
(eventualmente con chiamate a SFB, SFC, FB,
FC)
Gestione dei Programmi


Il S.O. viene
eseguito in un
loop
Richiama l'OB1
una volta per
ciascun loop
OB1
Gestione dei Programmi

In ciascun ciclo il S.O.:




Aggiorna le uscite (IPU)
Legge gli ingressi (IPI)
Esegue l'OB1
Elabora dati di sistema
OB1
Gestione dei Programmi


E' possibile scrivere l'intero programma utente nell'OB1
(Programmazione Lineare)
Oppure è possibile scrivere il programma utente nell'OB1 in termini di
chiamate a blocchi (Programmazione Procedurale)
Gestione dei Programmi


L'esecuzione ciclica
può essere
interrotta
Es. allarmi, errori
o interrupt
OB x
OB y
Gestione dei Programmi



Tempo di Ciclo: variabile
E' possibile impostare un Watchdog (Stop CPU)
E' possibile limitare il Carico di Comunicazione
Gestione dei Programmi
OB 10 Allarme Orologio


Priorità 2 (OB1 ha priorità 1)
Viene Parametrizzato:



Esecuzione: una volta, ogni minuto, ogni
giorno, ogni settimana, ogni mese, etc.
Data di Avvio
Ora di Avvio
Gestione dei Programmi
OB 20 Allarme di Ritardo



Priorità 3 (OB1 ha priorità 1)
Permette di eseguire con ritardo alcune
parti del programma utente
Esiste una particolare funzione di
sistema (SFC 32) attraverso cui è
possibile settare il tempo di ritardo di
esecuzione dell'OB 20 (che deve
contenere il codice)
Gestione dei Programmi
OB 35 Schedulazione Orologio



Priorità 12 (OB1 ha priorità 1)
Permette l'esecuzione periodica di una
porzione di codice
Viene Parametrizzato:


Per default 100 ms
Nel caso di più processi ciclici (non nella
CPU314C-2DP) è possibile impostare un
offset (per evitare avviamento simultaneo)
Gestione dei Programmi
OB 40 Interrupt di Processo




Priorità 16 (OB1 ha priorità 1)
Il codice viene eseguito in reazione ad
un segnale di Ingresso
E' necessario disporre di una unità di
I/O che supporti l'interrupt di processo
Nell'unità di I/O vengono settati gli
ingressi che determinano l'attivazione
dell'OB40
Gestione dei Programmi
OB 40 Interrupt di Processo

Nella configurazione hardware degli ingressi
DIGITALI, selezionare:






gli ingressi che determinano l'interrupt di processo
Il fronte di salita o di discesa (anche entrambi)
Il ritardo di ingresso (stabilizzazione del segnale)
Creare l'OB40
Scrivere il codice entro l'OB40
Se si vogliono utilizzare gli ingressi, utilizzare
le variabili locali L8.xx-L11.x

Ad esempio L11.x corrisponde a I124.x
Gestione dei Programmi
OB 40 Interrupt di Processo

Questo codice
permette di
memorizzare gli
ingressi I124.0,
I124.1 e I 124.2
quando vi è un
fronte di discesa o
salita o entrambi
(dipende dalla
configurazione)
Gestione dei Programmi

Esistono degli OB che, se definiti, permettono di
eseguire azioni in caso di eventi:
 OB 82, Priorità 26: allarme diagnostica
(es.cortocircuito unità di ingresso)
 OB 85, Priorità 26: errore di esecuzione
programma (es.OB non caricato)
 OB 86, Priorità 26: guasto al telaio di montaggio
 OB 87, Priorità 26: errore di comunicazione
 OB 100, Warm Start
Avviamento




Nella CPU 314C-2DP è consentito il solo
Avviamento Warm (Nuovo Avviamento)
L'avviamento Warm diviene Cold, se
non vi sono aree di memoria ritentive
definite o utilizzate
La CPU esegue un avviamento a caldo:
 Dopo RETE ON
 Da Stop a RUN
OB 100 viene eseguito all'avviamento Warm
(nessun limite sulla durata)
Avviamento: OB100



Può essere utilizzato per l'inizializzazione di
variabili
Per i Merker si utilizza il comando SET
La sintassi è SET = variabile (nome o
indirizzo). Ad esempio:
SET
=
=
=
"home_robot"
"home1"
"home2"
Unità di I/O

24 Ix.x digitali (124, 125 e 126)



E' possibile settare interrupt di processo e
ritardo di ingresso (filtro)
16 Qx.x digitali (124 e 125)
5 ingressi analogici IW x (752-761)


4 configurabili (tensione, corrente)
1 configurabile come (termo-)resistenza
Unità di I/O

2 uscite analogiche QW x (752-755)


configurabili (tensione, corrente)
4 canali di conteggio



Conteggio eventi
Conteggio in avanti o indietro
Frequenza massima di conteggio: 60 KHz
Unità di I/O

Misura di frequenza




La CPU conta gli impulsi che arrivano entro
un tempo di integrazione prestabilito
Tempo di integrazione impostabile tra 10 e
10.000 msec in passi di 1 msec
Il valore di frequenza misurato viene
fornito dopo il tempo di integrazione
Frequenze misurabili: da 0 a 60 KHz
Unità di I/O

Modulazione ampiezza di impulsi (PWM)


Ritardo di
Inserzione
Viene emessa una sequenza di impulsi su una
uscita digitale prescelta
L'utente sceglie: Tempo Ritardo di Inserzione,
Durata impulso e Durata periodo
Durata Periodo
Durata Impulso
Durata Periodo
Uscite Analogiche
Esempi di Programmazione




Ogni uscita analogica viene codificata con un INT (16 bit)
 -32768, .., +32767
QW n (ogni uscita è identificata da un numero)
Codifica in Tensione:
 -10 V, .., +10V
 0,..,+10V
Codifica in Corrente:
 -20mA, .., +20mA
 0,..,+20mA
 4,..,+20mA
Uscite Analogiche
Esempi di Programmazione
Ingressi Analogici
Esempi di Programmazione



Ogni ingresso analogico viene codificata con un INT (16
bit)
 -32768, .., +32767
IW n (ogni uscita è identificata da un numero)
Codifica in Tensione:



Codifica in Corrente:




-10 V, .., +10V
0,..,+10V
-20mA, .., +20mA
0,..,+20mA
4,..,+20mA
Ingresso per lettura di temperatura
Ingressi Analogici
Esempi di Programmazione
Function Block



Sono importantissimi per semplificare il
codice e per renderlo riutilizzabile
Essenzialmente la creazione consiste nella
definizione di un Blocco Funzionale e di un
Blocco Dati per ogni istanza
Per ciascun Blocco Funzionale si possono
definire i parametri formali e le variabili:


IN, OUT, IN_OUT, STAT, TEMP
Vengono richiamati premettendo il simbolo #
Function Block
Function Block
Function Block
Function Block
Function Block
Function Block
Function Block
Function Block

Uso memoria statica: