|
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 FB12 "BSEND" e FB13 "BRCV". La connessione S7 deve essere configurata in entrambi, in quanto la comunicazione S7 tramite FB12 "BSEND" e FB13 "BRCV" è basata sul principio client-client.
Caratteristiche dei blocchi di comunicazione FB12 "BSEND" e FB13 "BRCV"
- I blocchi funzionali FB12 e FB13 sono funzioni di comunicazione asincrone.
- In questo esempio i blocchi sono richiamati nel ciclo OB1 (vedere anche articolo con ID: 2795485).
- I blocchi funzionali FB12 e FB13 possono essere eseguiti in più cicli OB1.
- FB12 viene attivato con il parametro di ingresso "REQ".
- FB13 viene attivato con il parametro di ingresso "EN_R".
- La fine del job viene visualizzata tramite i parametri d'uscita "DONE", "NDR" oppure "ERROR".
- BSEND e BRCV possono comunicare contemporaneamente tramite una connessione.
- La versione aggiornata dei blocchi di comunicazione FB12 "BSEND" e FB13 "BRCV" 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 FB12 "BSEND" e FB13 "BRCV" 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 FB12 "BSEND" e FB13 "BRCV" dalla libreria standard. FB12 "BSEND" serve ad inviare dati e FB13 "BRCV" per ricevere dati.
Il programma di esempio mostra il funzionamento dei blocchi di comunicazione FB12 "BSEND" e FB15 "BRCV" sulla base di una connessione S7.
Creare per prima cosa la configurazione hardware della stazione S7-300.
Avvertenza Configurare il byte del merker di clock 10 come merker di clock. Tramite questo merker di clock viene avviato il job di trasmissione. 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 di comunicazione, 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 FB12 "BSEND" e FB13 "BRCV".

Figura 01
Il programma STEP 7 è costituito dai blocchi OB100, OB1, FB105, DB105, DB200, DB201, FB12 e FB13.
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 FB105 (Blocco dati di istanza: DB105) con M0.3 "START-UP" come parametro (INIT_COM). Dopo aver eseguito il FB105, M0.3 "START-UP" viene resettato.

Figura 02
FB105 FB105 viene richiamato nel ciclo OB1. Il FB105 contiene il richiamo dei blocchi di comunicazione FB12 "BSEND" e FB13 "BRCV".
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 FB105. Adeguare il numero della connessione nella rete 2 del FB105 in base alla propria configurazione. Il numero della connessione è memorizzato in una variabile statica e quindi nel blocco dati di istanza DB105.
In questo esempio viene definito il numero della connessione "1".

Figura 03
FB12 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 trasmissione è terminato con successo o con errore.
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.
Con il parametro d'ingresso "R_ID" si fissa la corrispondenza di un job di trasmissione e di ricezione. "R_ID" sul FB12 "BSEND" del trasmettitore e sul FB13 "BRCV" del ricevitore devono corrispondere.
Sul parametro d'ingresso "SD_1" del FB12 indicare l'indirizzo e la lunghezza del campo dati che contiene i dati da trasmettere (buffer di trasmissione), ad es. P#DB201.DBX0.0 BYTE 8000.
Sul parametro d'ingresso "LEN" registrare la lunghezza dei dati da trasmettere in byte. La lunghezza dei dati da trasmettere viene definita nella rete 1 del FB105. Essa è memorizzata in una variabile statica e quindi nel blocco dati di istanza DB105.
In questo esempio la lunghezza dei dati da trasmettere è definita in 8000 byte.
I parametri di uscita "DONE", "ERROR" e "STATUS" sono necessari per l'analisi del job e sono validi solo nello stesso ciclo!

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

Figura 05
FB13 viene attivato tramite il parametro di ingresso "EN_R". Il valore del parametro d'ingresso "EN_R" è sempre "1", poiché il merker M0.1 nell'OB di avvio OB100 è impostato al valore "1". In questo modo la stazione S7-300 è sempre disponibile alla ricezione.
Con il parametro d'ingresso "R_ID" si fissa la corrispondenza di un job di trasmissione e di ricezione. "R_ID" deve corrispondere nel FB12 al lato trasmissione e nel FB13 al lato ricezione.
Sul parametro d'ingresso "RD_1" vengono indicati l'indirizzo e la lunghezza del campo dati in cui vengono memorizzati i dati ricevuti (buffer di ricezione), ad es. P#DB200.DBX0.0 BYTE 8000.
Il parametro di uscita "LEN" indica il numero di dati ricevuti in byte. I parametri di uscita "NDR", "ERROR" e "STATUS" sono necessari per l'analisi del job e sono validi solo nello stesso ciclo!

Figura 06
Se il job di ricezione si è concluso con errore, il valore del parametro di uscita "STATUS" del FB13 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 FB12 "BSEND" e FB13 "BRCV". Il manuale è disponibile per il download come articolo con ID 44240604.
- La configurazione di una connessione S7 specificata e non specificata è descritta nell'articolo con ID 17628518
Il progetto STEP 7 come download Il progetto STEP 7 contiene un programma di esempio per il richiamo dei blocchi di comunicazione FB12 e FB13. Esso è stato creato con STEP 7 V5.5.
Sample_S7-300_BSEND_BRCV.zip ( 47 KB )
Avvertenza
Copiare la versione aggiornata dei blocchi di comunicazione FB12 e FB13 dalla libreria SIMATIC_NET_CP o dalla libreria standard nel programma applicativo e richiamarla nel programma applicativo.
|