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
© Copyright 2024 Paperzz