|
Istruzioni Per poter scambiare dati tra due stazioni S7-300 tramite una connessione S7 configurata in NetPro, nel programma S7 devono essere richiamati i blocchi di comunicazione FB14 "GET" e FB15 "PUT". Non è necessario che la connessione S7 sia configurata in entrambi, in quanto la comunicazione S7 tramite FB14 "GET" e FB15 "PUT" è basata sul principio server-client.
Caratteristiche dei blocchi di comunicazione FB14 "GET" e FB15 "PUT"
- I blocchi funzionali FB14 e FB15 sono funzioni di comunicazione asincrone.
- In questo esempio i blocchi sono richiamati nel ciclo OB1 (vedere anche articolo con ID: 2795485).
- I blocchi funzionali FB14 e FB15 possono essere eseguiti in più cicli OB1.
- FB14 e FB 15 vengono attivati con il parametro di ingresso "REQ".
- La fine del job viene visualizzata tramite i parametri d'uscita "DONE", "NDR" oppure "ERROR".
- PUT e GET possono comunicare contemporaneamente tramite una connessione.
- La versione aggiornata dei blocchi di comunicazione FB14 "GET" e FB15 "PUT" per lo scambio dati tramite CP343-1 o CP342-5 è disponibile nella libreria SIMATIC_NET_CP in "CP 300 > Blocchi".
- La versione aggiornata dei blocchi di comunicazione FB14 "GET" e FB15 "PUT" con la famiglia "CPU_300" per lo scambio dati tramite interfaccia PROFINET integrata di una CPU S7-300, una CPU IM151-8 PN/DP o una CPU IM154-8 è disponibile nella libreria standard in "Communication Blocks > Blocks".
Descrizione dell'esempio di programma Il programma S7 contiene il richiamo dei blocchi di comunicazione FB14 "GET" e FB15 "PUT" dalla libreria standard. FB14 "GET" serve per leggere i dati da una CPU remota e FB15 "PUT" per scrivere i dati in una CPU remota.
Il programma di esempio mostra il funzionamento dei blocchi di comunicazione FB14 "GET" e FB15 "PUT" sulla base di una connessione S7.
Creare per prima cosa la configurazione hardware della stazione S7-300.
Avvertenza Fare attenzione a configurare il byte di merker 10 come merker di clock. Tramite questo merker di clock vengono avviati il job di lettura e di scrittura. Memorizzare e compilare la configurazione hardware della stazione S7-300 e caricarla nella CPU.
In questo esempio di programma viene utilizzata la Timer-Ressource T10.
Configurare in NetPro una connessione S7 per la CPU. Se i partner di comunicazione sono configurati insieme in un progetto STEP7, è possibile progettare una connessione S7 specificata. Se il partner di comunicazione non è configurato nello stesso progetto STEP7 della stazione S7-300, viene configurata una connessione S7 non specificata. Fare attenzione, nella configurazione della connessione S7, di assegnare correttamente gli indirizzi IP oppure PROFIBUS. Inoltre occorre fare attenzione alla corretta assegnazione di rack/slot e risorse di connessione. Queste servono per l'identificazione univoca della connessione S7 tra i partner di comunicazione.
Nella finestra di dialogo delle proprietà della connessione S7 -> Scheda "Generale" è indicato il valore che deve essere specificato per il parametro di ingresso "ID" dei blocchi di comunicazione FB14 "GET" e FB15 "PUT".

Figura 01
Il programma STEP 7 è costituito dai blocchi OB100, OB1, FB115, DB115, DB200, DB201, FB14 e FB15.
OB100 OB100 è un OB di avvio e viene eseguito a un nuovo avviamento (warm start) della CPU. In questo OB viene impartita con il merker 0.3 "START-UP" l'autorizzazione per l'inizializzazione della comunicazione.
OB1 L’OB1 viene richiamato ciclicamente. Questo OB contiene il richiamo del FB115 (Blocco dati di istanza: DB115) con M0.3 "START-UP" come parametro (INIT_COM). Dopo aver eseguito il FB115, M0.3 "START-UP" viene resettato.

Figura 02
FB115 FB115 viene richiamato nel ciclo OB1. Il FB115 contiene il richiamo dei blocchi di comunicazione FB14 "GET" e FB15 "PUT".
Sul parametro d'ingresso "ID" dei blocchi di comunicazione indicare il numero della connessione S7 configurata in NetPro. Il valore per il parametro di ingresso "ID" è riportato nella finestra di dialogo delle proprietà della connessione S7 configurata in NetPro (vedi Figura 01).
Il numero della connessione può essere modificato singolarmente in FB115. Adeguare il numero della connessione nella rete 1 del FB115 in base alla propria configurazione. Il numero della connessione è memorizzato in una variabile statica e quindi nel blocco dati di istanza DB115.
In questo esempio viene definito il numero della connessione "1".

Figura 03
FB14 viene attivato tramite il parametro d'ingresso "REQ", quando il merker di clock M10.6 ha un fronte di salita e non è in corso nessun job. Il parametro d'ingresso "REQ" viene resettato solo quando il job di lettura è terminato con successo o con errore. In tal modo un nuovo job di lettura può essere avviato solo quanto il job in esecuzione è terminato.
Questo interblocco del richiamo della funzione è importante perché la funzione ha un comportamento asincrono e può durare diversi cicli. Un'attivazione continua del blocco funzionale senza attendere il termine del job già attivato, può generare un sovraccarico di comunicazione.
Il parametro "ADDR_1" indica un campo dati nella CPU remota in cui viene effettuata la scrittura o la lettura, ad esempio: P#DB201.DBX0.0 BYTE 200. Nel parametro "RD_1" viene indicato il campo dati per i dati letti, ad esempio: P#DB200.DBX0.0 BYTE 100. I parametri di uscita "NDR", "ERROR" e "STATUS" sono necessari per l'analisi del job e sono validi solo nello stesso ciclo!

Figura 04
Se il job di lettura si è concluso con errore, il valore del parametro di uscita "STATUS" del FB14 viene salvato per un'analisi dell'errore.

Figura 05
FB15 viene attivato tramite il parametro d'ingresso "REQ", quando il merker di clock M10.6 ha un fronte di salita e non è in corso nessun job. Il parametro d'ingresso "REQ" viene resettato solo quando il job di scrittura è terminato con successo o con errore. In tal modo un nuovo job di scrittura può essere avviato solo quanto il job in esecuzione è terminato.
Questo interblocco del richiamo della funzione è importante perché la funzione ha un comportamento asincrono e può durare diversi cicli. Un'attivazione continua del blocco funzionale senza attendere il termine del job già attivato, può generare un sovraccarico di comunicazione.
Il parametro "ADDR_1" indica un campo dati nella CPU remota in cui viene effettuata la scrittura o la lettura, ad esempio: P#DB200.DBX0.0 BYTE 20. Nel parametro "SD_1" viene indicato il campo dati per i dati trasmessi, ad esempio: P#DB201.DBX0.0 BYTE 20. I parametri di uscita "DONE", "ERROR" e "STATUS" sono necessari per l'analisi del job e sono validi solo nello stesso ciclo!

Figura 06
Se il job di scrittura si è concluso con errore, il valore del parametro di uscita "STATUS" del FB15 viene salvato per un'analisi dell'errore.

Figura 07
Altre informazioni
- Il manuale "Software di sistema per S7-300/400 Funzioni standard e di sistema Volume 1 e Volume 2", capitolo 22 "Comunicazione S7" contiene tra l'altro informazioni sulla quantità di dati che possono essere trasmessi tramite i blocchi di comunicazione FB14 "GET" e FB15 "PUT". Il manuale è disponibile per il download come articolo con ID 44240604 .
- Nell'articolo con ID 17628518 viene descritta la configurazione di una connessione S7 specificata e non specificata.
Il progetto STEP 7 come download Il progetto STEP 7 contiene un programma di esempio per il richiamo dei blocchi di comunicazione FB14 e FB15. Esso è stato creato con STEP 7 V5.5.
Sample_S7-300_PUT_GET.zip ( 197 KB )
Avvertenza
Copiare la versione aggiornata dei blocchi di comunicazione FB14 e FB15 dalla libreria SIMATIC_NET_CP o dalla libreria standard nel programma applicativo e richiamarla nel programma applicativo.
|