|
Istruzioni Per la comunicazione tramite una delle seguenti connessioni di comunicazione, nel programma S7 dell'S7-300 devono essere richiamati i blocchi di comunicazione FC5 "AG_SEND" e FC6 "AG_RECV".
- Connessione TCP
- Connessione ISO-on-TCP (RFC 1006)
- Connessione di trasporto ISO
- Connessione UDP
- Connessione FDL
Caratteristiche dei blocchi di comunicazione FC5 "AG_SEND" e FC6 "AG_RECV"
- FC5 e FC6 sono funzioni di comunicazione asincrone.
- In questo esempio i blocchi sono richiamati nel ciclo OB1 (vedi anche articolo con ID: 2795485)
- Possono essere eseguiti per più cicli OB1.
- FC5 viene attivato con il parametro di ingresso "ACT".
- La fine del job viene visualizzata tramite "DONE" oppure "ERROR".
- AG_SEND e AG_RECV possono comunicare contemporaneamente tramite una connessione.
- La versione aggiornata dei blocchi di comunicazione FC5 "AG_SEND" e FC6 "AG_RCV" si trova nella libreria SIMATIC_NET_CP in "CP 300 > Blocchi".
Descrizione dell'esempio di programma Il programma S7 contiene il richiamo dei blocchi di comunicazione FC5 "AG_SEND" e FC6 "AG_RECV" dalla libreria SIMATIC_NET_CP. FC5 "AG_SEND" serve per l'invio di dati ad un'altra stazione S7, ad una stazione PC oppure ad un sistema di terzi. FC6 "AG_RECV" serve per la ricezione dei dati da un'altra stazione S7, da una stazione PC oppure da un sistema di terzi.
Il programma di esempio mostra il funzionamento dei blocchi di comunicazione FC5 "AG_SEND" e FC6 "AG_RCV" sulla base di una connessione ISO-on-TCP.
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 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 delle connessioni di comunicazione sopra citate per la CPU. Se i partner di comunicazione sono configurati insieme in un progetto STEP7, è possibile progettare una connessione di comunicazione specificata. Se il partner di comunicazione non è configurato nello stesso progetto STEP7 della stazione S7-300, viene configurata una connessione di comunicazione 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 PORT, TSAP oppure LSAP. Queste servono per l'identificazione univoca della connessione di comunicazione tra i partner di comunicazione.
Nella finestra di dialogo delle proprietà della connessione di comunicazione -> Scheda "Generale" è indicato il valore che deve essere specificato per i parametri di ingresso "ID" e "LADDR" dei blocchi di comunicazione FC5 "AG_SEND" e FC6 "AG_RECV".

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

Figura 02
FB200 FB200 viene richiamato nel ciclo OB1. FB200 contiene il richiamo dei blocchi di comunicazione FC5 "AG_SEND" e FC6 "AG_RECV". Il job di trasmissione viene avviato con un fronte di salita sul parametro d'ingresso "ACT" dello FC5. L'avvio del job di trasmissione viene pilotato con il clock di merker M10.7 e la variabile "SND_BUSY". Quando il job di trasmissione è in esecuzione, "SND_BUSY" è impostato. In questo modo non è possibile l'avvio di un nuovo job di trasmissione.
Questo interblocco è particolarmente importante perché la funzione è asincrona e può durare diversi cicli. Un avvio continuo di nuovi job di trasmissione senza attendere che questi si concludano con successo oppure con errore, può generare un sovraccarico di comunicazione.
I valori per i parametri di ingresso "ID" e "LADDR" devono essere trasferiti dalla finestra di dialogo delle proprietà della connessione di comunicazione in NetPro (vedi Figura 1).
Sul parametro d'ingresso "SEND" di FC5 vengono indicati l'indirizzo e la lunghezza del campo dati che contiene i dati da inviare (buffer di trasmissione), per esempio: P#DB201.DBX0.0 BYTE 100.
Sul parametro d'ingresso "LEN" viene registrata la lunghezza dei dati da trasmettere in byte. In questo esempio la lunghezza dei dati da trasmettere è definita in 100 byte.
I parametri di uscita "DONE", "ERROR" e "STATUS" sono necessari per l'analisi del job e sono validi solo nello stesso ciclo!

Figura 03
Se il job di trasmissione si è concluso con successo, "SND_BUSY" è resettata. In questo modo è possibile avviare un nuovo job di trasmissione.
Se il job di trasmissione si è concluso con errore, "SND_BUSY" viene resettata ed il valore del parametro di uscita "STATUS" del FC5 viene salvato per un'analisi dell'errore.

Figura 04
I valori per i parametri di ingresso "ID" e "LADDR" devono essere trasferiti dalla finestra di dialogo delle proprietà della connessione di comunicazione in NetPro (vedi Figura 1). Sul parametro d'ingresso "RECV" del FC6 vengono indicati l'indirizzo e la lunghezza del campo dati in cui vengono memorizzati i dati ricevuti (buffer di ricezione), ad esempio: P#DB201.DBX100.0 BYTE 100.

Figura 05
Il parametro di uscita "NDR" serve come visualizzazione della ricezione di nuovi dati. Il parametro di uscita "LEN" indica la lunghezza dei dati ricevuti.
Se i dati non sono stati ricevuti con successo, il valore del parametro di uscita "STATUS" viene salvato ed analizzato.

Figura 06
In FB200 viene analizzata la frequenza con cui i corrispondenti valori di STATUS compaiono su FC5 "AG_SEND" e FC6 "AG_RCV". Questa informazione viene memorizzata tra i parametri statici di interfaccia dell'FB 200 nella variabile "STATISTIC" del tipo dati "Struttura".

Figura 07
Tramite la variabile "#STATISTIC.ON_OFF" è possibile inserire oppure disinserire l'analisi di STATUS. L'analisi di STATUS è normalmente inserita.

Figura 08
Caso particolare Se lo scambio dati avviene tramite una connessione TCP, il parametro di uscita "NDR" viene impostato solo quando il buffer di ricezione intero è pieno!
Il valore del parametro di uscita "LEN" mostra sempre l'intera lunghezza del buffer di ricezione!
Il progetto STEP 7 come download Il progetto STEP 7 contiene un programma di esempio per i richiami di FC5 e FC6 con analisi di stato. Esso è stato creato con STEP 7 V5.4 SP3.
S7_300_SEND_RCV.zip ( 45 KB )
Avvertenza Copiare la versione aggiornata dei blocchi di comunicazione FC5 e FC6 dalla libreria SIMATIC_NET_CP nel programma applicativo e richiamarla nel programma applicativo.
Ricerca complementare
FUP, SEND/RECEIVE, programma di esempio, progettazione STEP7, trasferimento dati
|