Programmazione Profibus-DP in Ambiente PLC Siemens S7

Configurazione & Programmazione
Profibus DP
in Ambiente Siemens
TIA Portal
Configurazione
Optional: Aggiungere File GSD
Inserire Masters e Slaves
Inserire Sottorete Profibus DP e collegare tutte le interfacce DP
Inserire uno o più sistemi Master (Masters e Slaves)
Assegnare Indirizzi DP
Configurare la Sottorete Profibus DP
Configurazione
Proprietà Rete Profibus:
Indirizzo più alto
Velocità (bit rate)
Profilo: DP o Personalizzato
Parametri del Bus
Configurazione
Proprietà Rete Profibus:
 Definizione Gruppi di
Slaves (Servizi
Freeze/Sync)
Assegnazione di uno o
più Gruppi ad ogni Slave
Configurazione
Definizione Indirizzi Logici di
I/Q per ogni Slave
Programmazione della
Comunicazione
La programmazione della comunicazione
dipende dalla modalità di scambio
informativo tra Master e Slaves
Esistono differenti modalità in ambiente
Siemens
in dipendenza dalla presenza di I-Slaves
Programmazione della
Comunicazione
 In questa configurazione avviene lo scambio di dati tra il master DP e slave DP
semplici (non intelligenti)
 Il Master DP interroga in successione ogni Slave DP configurato nel Master
tramite Data Exchange.
 Il Master DP può sincronizzare gli Slave DP (se essi lo consentono)
Programmazione della
Comunicazione
Programmazione della
Comunicazione
 Comunicazione MS
 I compiti di automazione possono essere scomposti in compiti parziali
eseguiti come "pre-elaborazione" su uno slave DP intelligente dotato di
CPU.
 Nelle configurazioni con slave DP intelligenti (I-slave) il master DP
accede a delle particolari aree di memoria della CPU dell' I-Slave,
chiamate moduli di comunicazione, che vengono configurate.
Programmazione della
Comunicazione
Programmazione della
Comunicazione
 Comunicazione Diretta (DX): Con questa configurazione possono essere
trasmessi molto rapidamente i dati di ingresso di slave DP a slave DP
intelligenti sulla sotto-rete Profibus-DP.
 Solo Slave DP intelligenti, come p.es. CPU 315-2DP, possono essere
utilizzati come riceventi di questi dati.
 L’I-Slave può "ascoltare in parallelo" i dati che il primo slave DP invia al
master DP
Programmazione della
Comunicazione
Programmazione della
Comunicazione
 Comunicazione Diretta (DX): Il meccanismo della comunicazione
diretta DX può essere usato anche in reti Multi-Master
 Sono possibili due casi di Comunicazione Diretta in una rete MultiMaster
Programmazione della
Comunicazione
 In questa configurazione i dati di ingresso di slave DP intelligenti
possono essere letti direttamente dal Master DP di un altro sistema
master DP della stessa sotto-rete PROFIBUS-DP fisica.
Programmazione della
Comunicazione
 Uno slave DP intelligente può farsi trasmettere i dati di ingresso che
uno Slave DP invia al proprio Master, entrambi appartenenti ad un
sistema Master differente (Sistema Master DP1, in figura).
Programmazione della
Comunicazione
 Data Exchange: Verranno prese in
considerazione le configurazioni
MS
DX
 Scambio Dati basato su Sync/Freeze
Accesso Diretto I/O
Lettura/Scrittura basata su:
 Data Exchange e
 sull'utilizzo dell'immagine di processo I/O del
PLC Master DP
Accesso Diretto I/O
Lo scambio dati basato su accesso diretto I/O si realizza
grazie all’ immagine di processo degli ingressi e
delle uscite
Area I/O
Byte n
Interfaccia
DP Master
DP Slave
Byte n
Byte n
Program scan
Bus cycle
Data Exchange
Accesso Diretto I/O
L’accesso agli ingressi e alle uscite di uno Slave DP si
basa sull’uso dei comandi di accesso diretto agli
ingressi e alle uscite (immagini di processo I e Q):
 Contatti o Coil in Ladder (1 Bit)
 MOVE per copiare BYTE, WORD o DOUBLE
Si utilizzano gli indirizzi I/Q assegnati durante la
configurazione hardware degli Slaves DP (si vedano
lucidi sulla configurazione)
Accesso Diretto I/O
 Esempio di Programmazione
I0.4 start
T_ON
T_ON
IN
T/2
Q
IN
T/2
Q0.0
Q
start
Accesso Diretto I/O
 Esempi di Programmazione
Scambio Dati Consistente
 Vale solo per Scambio dati ciclico tra Master e I-Slave
 Viene chiamato Scambio Master-Slave (MS)
 E' sempre basato su Data Exchange
Scambio Dati Consistente
 Non si basa più sull’immagine di processo di
I/Q
 Si basa su opportuni moduli di
comunicazione dedicati allo scambio dati tra
Master e Slave e dunque legato al bus cycle.
 Modulo di comunicazione di ingresso e/o di uscita
 Ogni modulo viene aggiornato attraverso il meccanismo
ciclico del Data Exchange
 Ogni modulo può essere letto/scritto localmente ad un PLC
trasferendo dati dalle aree di memoria M e DB
Scambio Dati Consistente
PLC Master DP
Area Dati M o DB
Area I/O
LADDR RECORD
Interfaccia di
Comunicazione
I-Slave DP
Byte n
Byte n
Byte n+1
Byte n+1
Byte n+2
Byte n+2
Byte n+2
Byte n+3
Byte n+3
Byte n+3
Byte n+4
Byte n+4
Byte n+5
Byte n
Byte n+1
consistenza
Bus cycle
Data Exchange
Byte n+4
Byte n+5
Byte n+5
 I dati in transito in questi moduli possono essere copiati/letti da diverse aree di
memorie interne al PLC (Memoria M e DB) a prescindere dal program scan
 La scrittura e la lettura di tali moduli di I/Q avviene utilizzando speciali funzioni che
garantiscono l’accesso consistente.
Scambio Dati Consistente
Utilizzo di funzioni di libreria
 DPWR_DAT (SFC 15) per scrivere bytes di dati in modo consistente
 DPRD_DAT (SFC 14) per leggere bytes di dati in modo consistente
DP
Master DP
Area Dati sulla
CPU
Area Dati sulla
CPU
SFC 15
Modulo di Uscita
I-Slave DP
Modulo di Ingresso
DPWR_DAT
SFC 14
DPRD_DAT
SFC 14
DPRD_DAT
Modulo di Ingresso
Modulo di Uscita
Bus Cycle
Data Exchange
SFC 15
DPWR_DAT
Area Dati sulla
CPU
Area Dati sulla
CPU
SFC14

Copia dati, in modo consistente, da un modulo di
comunicazione di ingresso ad una qualunque area di
memoria del PLC (area M o area DB).
DP
Master DP
Area Dati sulla
CPU
SFC 14
DPRD_DAT
I-Slave DP
Modulo di Ingresso
Bus Cycle
Data Exchange
Modulo di Ingresso
SFC 14
DPRD_DAT
Area Dati sulla
CPU
SFC14



Ogni accesso di lettura si riferisce ad un modulo di
ingresso.
Se sono presenti differenti moduli di dati di ingresso,
è necessario utilizzare una chiamata alla funzione
SFC14 per ogni modulo che si vuole leggere.
I parametri che devono essere definiti sono:



LADDR. Indirizzo in esadecimale (W#16#address) del modulo
di ingresso, configurato nel tool Configurazione HW
RET_VAL. Registro che contiene un eventuale codice di errore
RECORD. Puntatore all'area di destinazione sulla CPU dei dati da
leggere. Sintassi: P#BitInizialeAreaMemoria BYTE X
SFC15

La funzione di sistema SFC15 viene utilizzata per
trasferire dati, in modo consistente, da una
qualunque area di memoria della CPU S7 (area M o
area DB) ad un modulo di uscita precedentemente
configurato
Master DP
Area Dati sulla
CPU
SFC 15
DP
Slave DP
Modulo di Uscita
DPWR_DAT
Bus Cycle
Data Exchange
Modulo di Uscita
SFC 15
DPWR_DAT
Area Dati sulla
CPU
SFC15



Ogni accesso di scrittura si riferisce ad un modulo di
uscita.
Se sono presenti differenti moduli di uscita, è
necessario utilizzare una chiamata alla funzione
SFC15 per ogni modulo che si vuole scrivere.
I parametri che devono essere definiti sono:



LADDR. Indirizzo in esadecimale esadecimale (W#16#address)
del modulo di uscita configurato nel tool Configurazione HW
RECORD. Puntaotre all'Area sorgente sulla CPU dei dati da leggere.
Sintassi: P#BitInizialeAreaMemoria BYTE X
RET_VAL. Registro contenente un eventuale codice di errore
Esempio di Scambio Dati
Consistente
Master DP
Area Dati
DB20
Array [1..10] of
byte
SFC 15
Modulo di Uscita
Indirizzo 1000
DPWR_DAT
10 byte
Area Dati DB10 SFC 14
Array [1..10] of
byte
DPRD_DAT
Modulo di
Ingresso
Indirizzo 1000
10 byte
DP
I-Slave DP
Modulo di
Ingresso
Indirizzo 1000
10 byte
SFC 14
DPRD_DAT
Area Dati
%M100..%M109
Modulo di Uscita SFC 15
Area Dati
Indirizzo 1000
%M200..%M209
10 byte
DPWR_DAT
Bus Cycle
Data Exchange
%M209=%M100
%M208=%M101
%M207=%M102
……….
%M200=%M109
Esempio di Scambio Dati
Consistente

Scambio Dati tra Master DP (indirizzo 7) e I-Slave (indirizzo 5)
Esempio di Scambio Dati
Consistente


Creazione dei moduli di I/O nello ISlave (Indirizzo 5)
Creazione dei corrispondenti moduli nel
Master DP (Indirizzo 7)
Esempio di Scambio Dati
Consistente

1000
Programma lato I-Slave
Esempio di Operazione
sui bit ricevuti
Esempio di Scambio Dati
Consistente

1000
Programma lato Master
Scambio Dati Consistente
 E' necessario creare due Blocchi Organizzativo (OB) allo scopo di
evitare il blocco (STOP) della CPU dello I-Slave e del Master.
 Esistono particolari blocchi organizzativi che servono a gestire eventi
straordinari, come errori derivanti da risultati di diagnostica e guasti.

Nel caso in cui si verificano tali eventi il sistema operativo del PLC Simatic richiama opportuni blocchi
organizzativi che vengono programmati per gestire l’evento occorso.
 Blocco OB 82 che serve per gestire errori derivanti da operazioni di
diagnostica
 Blocco OB 86 che gestisce eventuali errori di funzionamento del rack.
 Se occorrono tali eventi e se il sistema operativo non trova questi
OB, la CPU passa da RUN a STOP.

Non importa se essi non contengano codice, l’importante è che ci siano.
 Per prevenire tale situazione, evitando che la CPU si blocchi,
devono essere creati a questo punto del progetto i blocchi OB
82 e OB 86 vuoti (senza codice)
Scambio Dati DX



Ci deve essere un I-Slave DP che pubblica dati verso il DP
Master (deve essere presente almeno un modulo di ingresso al
Master DP e un modulo corrispondete di uscita sullo I-Slave DP).
Questi dati vengono poi "ascoltati in parallelo" dal secondo ISlave DP
Entrambi gli I-Slave devono avere configurato uno
scambio MS con il Master
DP Master indirizzo 2
= Data Exchange (MS)
CPU 315-2 DP
I-Slave Indirizzo 3
CPU 315-2 DP
I-Slave Indirizzo 4
Scambio Dati DX

Esempio che verrà preso in considerazione
DP Master indirizzo 2
Q 200
I-Slave Indirizzo 3
I-Slave Indirizzo 4
Scambio Dati MS (6 BYTE)
I 200
6 Byte
6 Byte
I 200
Scambio Dati MS (12 BYTE)
Q 200
12 Byte
12 Byte
Q 100
Scambio Dati MS (10 BYTE)
10 Byte
10 Byte
I 100
8 Byte
I 100
Scambio Dati MS (8 BYTE)
Q 100
8 Byte
Scambio Dati DX (8 BYTE)
I 10
8 Byte
Scambio Dati DX
Scambio Dati DX


Passo 1: Progettazione Scambio Dati MS tra Master 2 e ISlave 3
Esempio: Definizione di uno scambio MS di 10 byte da
Master a Slave e uno scambio MS di 8 byte da Slave a
Master
Master DP Address 2, I-Slave DP Address 3
Scambio Dati DX


Passo 1: Progettazione Scambio Dati MS tra Master 2 e ISlave 4
Esempio: Definizione di uno scambio MS di 6 byte da
Master a Slave e uno scambio MS di 12 byte da Slave a
Master
Master DP Address 2, I-Slave DP Address 4
Scambio Dati DX


Passo 3: Creazione Comunicazione Diretta (DX) tra gli
Slaves 3 e 4
Esempio: viene creato un modulo di ingresso di 8 Byte
(I0..I7) collegato al modulo di uscita dello I-Slave 3
(Q100..Q107)
Scambio Dati non confermato
Sync/Freeze
 Operazioni da Eseguire:
Si devono prima configurare i gruppi di Slave
Viene scritto il programma lato Master e Slave, usando
una funzione di sistema SFC 11, in cui vengono
impostati i parametri in base alla funzione Sync o
Freeze da eseguire
Scambio Dati non confermato
Sync
Master
Slaves Output
uscite
Sync
uscite
Le uscite vengono bufferizzate
uscite
do-while
Aggiornamento uscite
Sync
ma non aggiornate
Aggiornamento ultime uscite ricevute dal Master
uscite
Le uscite vengono bufferizzate
uscite
Sync
ma non aggiornate
Aggiornamento ultime uscite ricevute dal Master
UnSync
uscite
Aggiornamento uscite
Programmazione della
Comunicazione - SYNC
Programmazione della
Comunicazione - SYNC
Funzione DPSYC_FR
REQ: Impulso 1 attiva la chiamata
LADDR: Indirizzo Fisico Interfaccia DP
GROUP: Numero di Gruppo SYNC
MODE:
20=SYNC, 10=UNSYNC
RET_VAL: Word error code
BUSY: Se 1 la chiamata non è stata ancora terminata
Programmazione della
Comunicazione - UnSYNC
Scambio Dati non confermato
Freeze
Master
Lettura ingressi
Slave Inputs
Valore corrente degli ingressi
Freeze
Lettura ingressi
Aggiornamento valore
corrente degli ingressi
Valore congelato degli ingressi
do-while
Freeze
Lettura ingressi
Gli ingressi cambiano ma non
vengono aggiornati dagli
Slaves
Aggiornamento valore
corrente degli ingressi
Valore congelato degli ingressi
UnFreeze
Programmazione della
Comunicazione - Freeze
Programmazione della
Comunicazione - Freeze
Funzione DPSYC_FR
REQ: Impulso 1 attiva la chiamata
LADDR: Indirizzo Fisico Interfaccia DP
GROUP: Indirizzo Gruppo Freeze
MODE: 8=Freeze, 4=UnFreeze
RET_VAL: Word error code
BUSY: Se 1 la chiamata non è stata ancora terminata
Programmazione della
Comunicazione - UnFreeze
Funzioni Avanzate
Equidistanza
 Il master di equidistanza deve
supportare la funzione "Equidistanza“
 Il master di equidistanza deve essere
sempre un master DP della classe 1
 Il master di equidistanza deve essere
l'unica stazione attiva del PROFIBUS-DP.
 L'equidistanza è possibile solo con i
profili di bus "DP" e
"personalizzato“
 TIA Portal propone un valore per il
tempo "Ciclo DP equidistante (ms)"
sulla base di progettazione PROFIBUS
(numero di nodi progettati, numero di
PG, ecc.)
 Questo tempo è modificabile, ma
non impostabile sotto un valore minimo
che viene visualizzato.
Funzioni Avanzate
Sincronizzazione
Cicli non sincronizzati:
 ciclo libero OB 1 del programma utente. La durata del tempo di ciclo può variare in base alle diramazioni non
cicliche del programma.
 Ciclo DP libero e variabile nella sotto-rete PROFIBUS costituito da:
scambio ciclico dei dati tra master e slave DP 1
scambio ciclico dei dati tra master e slave DP 2
parte non ciclica per allarmi, registrazioni bus e servizi di diagnostica
passaggio del token ad un PG e sua elaborazione
 ciclo libero nel bus backplane dello slave DP
Funzioni Avanzate
Sincronizzazione



Soluzione: Equidistanza con
Sincronizzazione
Il generatore di clock è
costituito dal clock di
equidistanza del master DP che
viene inviato agli slave DP come
telegramma Global Control.
La sincronizzazione con il
programma utente viene
effettuata tramite l'allarme in
sincronismo di clock (dall'OB 61
all'OB 64).
Funzioni Avanzate
Sincronizzazione
Global Control