07_Step7 e linguaggi

STEP7: generalità
In una CPU sono eseguiti due programmi distinti:
•
•
Sistema operativo
- gestione avviamenti e richiamo OB
- gestione immagini di processo di ingresso e di uscita (OB1)
- diagnostica e comunicazione con il sistema di programmazione (PG)
attraverso canale MPI
Programma utente
Tipi di avviamento:
• Nuovo avviamento (avviamento a caldo)
L'elaborazione del programma viene ripresa dall'inizio. I dati rimanenti vengono
mantenuti.
•
Avviamento a freddo
I dati attuali vengono eliminati e l'elaborazione del programma ricomincia con i valori
di start.
•
Riavviamento
Dopo il ritorno della tensione, il programma viene ripreso al punto di interruzione.
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
1
STEP7: blocchi
Vi sono diversi tipi di blocchi che possono essere utilizzati all'interno di programmi utente:
Manuale siemens: prog_con_step7[1].pdf
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
2
STEP7: blocchi organizzativi
………..
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
3
STEP7: OB1
OB1 (programma ciclico)
Descrizione
Il sistema operativo della CPU S7 elabora ciclicamente l'OB 1; al termine dell'elaborazione
dell'OB 1, il sistema operativo inizia una nuova elaborazione dello stesso. L'elaborazione
ciclica di OB 1 viene iniziata al termine dell'avviamento. Si può usare OB 1 per richiamare
altri blocchi funzionali (FB, SFB) o altre funzioni (FC, SFC).
Funzionamento di OB 1
OB 1 ha la priorità più bassa rispetto a tutti gli altri OB. Ad eccezione di OB 90 tutti gli altri
OB possono interrompere l'elaborazione di OB 1.
Quando l'elaborazione dell'OB 1 è terminata, il sistema operativo invia i dati globali. Prima
di riavviare OB 1, il sistema operativo scrive l'immagine di processo delle uscite nelle unità
di uscita, aggiorna l'immagine di processo degli ingressi e riceve i dati globali per la CPU.
S7 offre un controllo del tempo di ciclo massimo (tip. a 150ms) e un tempo di ciclo minimo.
In caso di violazione del tempo di ciclo massimo (es. molti interrupt che allungano OB1) si
attiva OB80 e, qualora OB80 non sia stato programmato, la CPU va in STOP
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
4
STEP7: OB1
OB1 (programma ciclico)
Dati locali per OB 1
La tabella contiene le variabili temporanee (TEMP) di OB 1, che possono essere utilizzate
ai fini diagnostici. Come nomi di variabili sono stati scelti i nomi di default di OB 1.
Variabile
Tipo
OB1_EV_CLASS
OB1_SCAN_1
BYTE
BYTE
OB1_PRIORITY
OB1_OB_NUMBR
OB1_RESERVED_1
OB1_RESERVED_2
OB1_PREV_CYCLE
OB1_MIN_CYCLE
OB1_MAX_CYCLE
OB1_DATE_TIME
Descrizione
Classe di evento e identificazioni: B#16#11: OB 1 è attivo
·B#16#01:Fine del nuovo avviamento (avviamento a caldo)
·B#16#02: Conclusione del riavviamento
·B#16#03: Conclusione del ciclo libero
·B#16#04: Conclusione dell'avviamento a freddo
·B#16#05: Primo ciclo di OB1 della nuova CPU master dopo la
commutazione master-reserve e STOP del master finora valido
BYTE
Classe di priorità: 1
BYTE
Numero di OB (01)
BYTE
Riservato
BYTE
Riservato
INT
Tempo ciclo della precedente scansione (ms)
INT
Tempo ciclo minimo (ms) dall'ultimo avviamento
INT
Tempo ciclo massimo (ms) dall'ultimo avviamento
DATE_AND_TIME Data e ora in cui è stato richiamato l'OB1
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
5
STEP7: IMMAGINI DI PROCESSO
OB1 (programma ciclico)
IPU (Immagini di processo ingressi)
• l’IPI è una cella di memoria
• l’IPI si aggiorna fuori da OB1 una volta al ciclo
•IPI è campionata
• OB1 lavora a ingressi stabili in ogni ciclo
• l’ingresso deve essere filtrato (Shannon)
Funzioni di Sistema
Attivazione tempo di controllo
IPU -> uscite fisiche (morsetti)
Ingressi fisici ->IPI
OB1 (programma utente)
Ricezione dati globali
IPU (Immagini di processo uscite)
• l’IPU è una cella di memoria
• l’IPU si aggiorna immediatamente, l’uscita no
• l’uscita si aggiorna alla fine con l’ultimo valore
• tutte le uscite commutano contemporaneamente
Invio dati globali
Dati globali
I dati globali sono quelli scambiati tra le CPU mediante l’interfaccia MPI
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
6
STEP7: EFFETTO DI ALTRI OB SU OB1
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
7
STEP7: TEMPO DI CICLO
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
8
STEP7: TEMPO DI CICLO MINIMO
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
9
STEP7: PROGRAMMAZIONE LINEARE E STRUTTURATA
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
10
STEP7: PROGRAMMAZIONE LINEARE E STRUTTURATA
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
11
STEP7: LINGUAGGI
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
12
STEP7: CREARE UN SOFTWARE
In STEP7 è possibile:
- Definire un’architettura hardware (HW) e quindi scrivere un software (SW)
- Scrivere un SW e poi mapparlo ad un’architettura HW
Passi per scrivere un nuovo SW:
•
•
•
•
•
•
•
Avviare Simatic Manager
Generare un nuovo file (assegnare nome progetto)
Inserisci nuovo oggetto: programma S7 (assegnare nome programma)
• La cartella “programma” contiene 3 sezioni: blocchi, sorgenti, simboli
• Blocchi contiene il codice logico (OB, FC, FB) e i dati (DB)
• Sorgenti permette di salvare file di testo (AWL, SCL) o file grafici (GRAPH)
• Simboli è la tabella dei simboli globali
Strumenti: simula unità (si apre la finestra di simulazione)
Compilare tabella dei simboli e scrivere programma e salvare tutto
Caricare con simulatore in Stop (Caricare da Simatic)
Attivare Start in simulazione
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
13
STEP7: LA TABELLA DEI SIMBOLI
La Tabella dei simboli permette di associare un nome simbolico a blocchi,
ingressi, uscite, variabili, temporizzatori,…
La tabella dei simboli si compone di più campi:
• Simbolo (nome simbolico, es. Start)
• Indirizzo (indirizzo fisico, es. I3.2)
• Tipo dati (compilato da STEP7 quando si inserisce Indirizzo)
• Commento (es. pulsante Start, NA)
• Stato (segnalazione di problemi)
Es. = indica un simbolo già presente, X indica che la riga è incompleta
La tabella dei simboli può essere esportata come file ASCII
Si può copiare la tabella dei simboli di un altro programma con drug&drop
La tabella dei simboli dispone di strumenti utili (es. Trova: A5.* Sostituisci: A6.*)
Esempio:
Programma ciclico
Restart completo
Start
Stop
Motore
Vero
OB1
OB100
OB 1
OB 100
I0.0
I0.1
Q0.0
M0.0
Bool
Bool
Bool
Bool
Pulsante avviamento motore
Pulsante di arresto del motore
Motore
Bit sempre vero
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
14
STEP7: LA TABELLA DEI SIMBOLI
E’ possibile programmare la preferenza al simbolo o al’indirizzo assoluto
(da Simatic Manager: Modifica -> Verifica Coerenza blocchi)
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
15
STEP7: I BLOCCHI (OB)
OB1 risulta inserito di default e in linguaggio KOP
E’ possibile inserire nuovi blocchi (Es. OB100) definendo anche il linguaggio di
programmazione (AWL, KOP, FUP)
E’ possibile visualizzare in diversi linguaggi
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
16
STEP7: I BLOCCHI FUNZIONALI (FB)
Come gli OB, anche gli FB possono essere inseriti nella stessa pagina dove OB1
risulta inserito (blocchi), agendo con il tasto destro
NOTA: conviene prima definirli nella tabella dei simboli
All’inserimento definire il linguaggio e attivare “multistanza”
All’apertura dell’FB si deve definire le variabili di interfaccia cliccando a sinistra su:
•
•
•
•
In (inserire ingressi. Click destro per visualizzare colonne)
Out (uscite)
Inout (bidirezionali)
Stat (valori “statici”)
Quindi si scrive il codice (indirizzamento simbolico ON, visualizza->finestra con…)
• E’ possibile utilizzare variabili ad indirizzamento assoluto (Tabella dei simboli)
e variabili di interfaccia (DIX, DIW,… compariranno precedute da #)
Ogni FB ha uno o più blocchi dati di istanza (DB)
• Salvare l’FB e chiuderlo
• Inserire un blocco dati di istanza associato all’FB (meglio se pre-dichiarato)
• Aprire il DB con “parametrizzazione blocco dati di istanza” (doppio click)
• Modificare e personalizzare la colonna valore attuale quindi salvare
• Inserire in OB1 l’FB (connetterlo quindi cliccare sul nome, clic dx e inserisci simbolo x DB)
(ricordarsi le virgolette per nominare i parametri di ingresso e uscita)
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
17
STEP7: LE FUNZIONI (FC) E I BLOCCHI DATI
FC: il procedimento è analogo a quello utilizzato per i blocchi funzionali
(FB) tuttavia non è possibile dichiarare variabili STAT (i dati statici di un
FB rimangono immutati anche dopo l’elaborazione dell’FB)
DB (blocchi dati): esistono due tipi di blocchi dati
• Blocchi dati di istanza (assegnato ad un blocco funzionale)
• Blocchi dati globali (accessibili a tutti i programmi)
DB globali
• Inserire dalla pagina blocchi e configurare come blocco globale quindi
inserire le variabili
DB multiistanza
• Si pensi ad un FB (es. FB10) che richiama due volte FBi che fanno
riferimento ad un unico DB10
• E’ importante dichiarare in FB10 le variabili STAT FBi1 e FBi2 (tipo)
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
18
STEP7: LE TABELLE DI VARIABILI (VAT)
E’ possibile inserire una tabella di variabili (VAT) per controllare e
comandare le variabili
•
•
Si inseriscono le variabili mediante simbolo o indirizzo e si salva
Dopo aver posizionato in RUN il PLC è possibile verificare lo stato delle
variabili (tasto “occhialini”), impostare i valori di comando e trasferirli alla
CPU mediante il tasto a destra degli occhialini
E’ possibile avere più di una VAT per uno stesso programma
“Sistemi e Strumenti per l’Automazione: PLC e SCADA”, Alessandra Flammini, Università di Brescia, Embedded Systems and Smart Sensors Group
19