|
Descrizione Per lo scambio dati tramite l'interfaccia PROFINET integrata di una CPU si può utilizzare tra l'altro la comunicazione aperta tramite Industrial Ethernet. Vengono supportati i seguenti protocolli:
Per la comunicazione aperta tramite Industrial Ethernet mediante Protocollo UDP sono disponibili i seguenti blocchi di comunicazione:
- FB65 "TCON" per la predisposizione del punto terminale UDP;
- FB66 "TDISCON" per la disinserzione del punto terminale UDP;
- FB67 "TUSEND" per l'invio di dati;
- FB68 "TURCV" per la ricezione di dati.
Questi blocchi di comunicazione si trovano nella Standard Library -> Communication Blocks.
Copiare la versione aggiornata dei blocchi funzionali sopra indicati dalla libreria standard nel programma applicativo e richiamarla nello stesso.
I parametri per la predisposizione del punto terminale UDP sono memorizzati in una struttura dati. In questo esempio si utilizza la struttura dati UDT65 "TCON_PAR", che viene parametrizzata dall'utente stesso. Nessuna connessione viene configurata in NetPro.
Descrizione dell'esempio di programma Il programma S7 contiene il richiamo dell'FB65 "TCON" e la struttura dati UDT65 "TCON_PAR" con i parametri per la predisposizione del punto terminale UDP. Inoltre il programma S7 contiene il richiamo dei blocchi di comunicazione FB67 "TUSEND" e FB68 "TURCV" dalla Standard Library -> Communication Blocks. L'FB67 "TUSEND" serve per l'invio di dati a una stazione S7, a una stazione PC o a un sistema di terzi. L'FB68 "TURCV" serve per la ricezione dei dati da una stazione S7, una stazione PC oppure un sistema di terzi.
Creare per prima cosa la configurazione hardware della stazione S7-300. 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.
Il programma STEP 7 è costituito dai blocchi OB100, OB1, FB500, DB500, FC95, FC96, UDT65, UDT66 e FB63, FB64, FB67 e FB68.
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 M0.3 l'autorizzazione per l'inizializzazione della comunicazione.
OB1 L’OB1 viene richiamato ciclicamente. In questo OB si trova il richiamo dell'FB500 con il blocco dati di istanza DB500 e con il merker M0.3 come parametro INIT_COM. Il merker M0.3 viene resettato nell'OB1 dopo il richiamo dell'FB500.

Figura 01
FB500 FB500 viene richiamato ciclicamente nell'OB1.
In questo FB500 si trova il richiamo delle funzioni FC95 "SET_UDP_REMOTE" e FC96 "SET_UDP_ENDPOINT" e dei blocchi funzionali FB65 "TCON", FB67 "TUSEND", FB68 "TURCV" e FB66 "TDISCON".

Figura 02
Sui parametri d'ingresso della funzione FC96 "SET_UDP_ENDPOINT" vengono definiti i parametri del punto terminale UDP locale.
| Parametri di ingresso |
Tipo di dati |
Descrizione |
| ID |
Word |
Numero connessione |
| DEV_ID |
Byte |
B#16#01 per la IM151-8 PN/DP CPU
B#16#02 per la CPU 31x-2PN/DP, IM154-8 CPU
B#16#03 per la CPU 319-3PN/DP
B#16#05 per la CPU 412-2PN, CPU 414-3 PN/DP, CPU 416-3 PN/DP |
| LOC_PORT |
DInt |
Porta locale nella CPU
-Numeri delle porte ammissibili per CPU S7-300 fino alla V2.6 inclusa e CPU S7-400 fino alla V5.1 inclusa: da 2000 a 5000
-Numeri delle porte ammissibili per CPU S7-300 a partire dalla V2.7 e CPU S7-400 a partire dalla V5.2: da 1 a 49151 |

Figura 03
Sui parametri d'ingresso della funzione FC95 "SET_UDP_REMOTE" vengono definiti i parametri del punto terminale UDP remoto.
| Parametri di ingresso |
Tipo di dati |
Descrizione |
| REM_PORT |
DInt |
Porta remota del partner di comunicazione
-Numeri delle porte ammissibili per CPU S7-300 fino alla V2.6 inclusa e CPU S7-400 fino alla V5.1 inclusa: da 2000 a 5000
-Numeri delle porte ammissibili per CPU S7-300 a partire dalla V2.7 e CPU S7-400 a partire dalla V5.2: da 1 a 49151 |
| IP_ADDR1 |
Int |
Indirizzo IP del partner di comunicazione |
| IP_ADDR2 |
Int |
| IP_ADDR3 |
Int |
| IP_ADDR4 |
Int |
Avvertenza Il numero di connessione viene indicato nella rete 2 dell'FB500. Esso viene memorizzato in una variabile statica e pertanto nel DB di istanza DB500.

Figura 04
La predisposizione del punto terminale UDP viene avviata con un fronte di salita sul parametro d'ingresso "REQ" di FB65 "TCON". La struttura dati UDT65 "TCON_PAR" con la parametrizzazione del punto terminale UDP locale è incorporata nel blocco dati di istanza dell'FB500.
Sul parametro d'ingresso "CONNECT" dell'FB65 "TCON" viene indicata l'area di memoria che contiene la parametrizzazione del punto terminale UDP locale.
La predisposizione del punto terminale UDP avviene all'avvio del sistema e permane fino a quando ad esempio viene disinserito specificamente con l'FB66 "TDISCON", la CPU va in STOP oppure viene disattivata l'alimentazione.

Figura 05
Il job di trasmissione viene avviato con un fronte di salita sul parametro d'ingresso "REQ" dell'FB67 "TUSEND". L'avvio del job di trasmissione viene pilotato con il merker di clock M10.6 e la variabile "C1.SEND_BUSY". Quando il job di trasmissione è in esecuzione, "C1.SEND_BUSY" è impostato. In questo modo non è possibile l'avvio di un nuovo job di trasmissione.
Sul parametro d'ingresso "DATA" si indica l'area di memoria, che contiene i dati da trasmettere.
Sul parametro d'ingresso "LEN" viene registrato il numero dei byte da trasmettere.
Sul parametro d'ingresso "ADDR" si indica l'area dati in cui è memorizzato l'indirizzo IP del ricevente. In questo esempio i parametri di indirizzamento del partner di comunicazione sono memorizzati nella struttura dati UDT66 "TADDR_PAR". Questa è incorporata nel blocco dati di istanza DB500.
I parametri di uscita "DONE", "ERROR" e "STATUS" sono necessari per l'analisi del job.

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

Figura 07

Figura 08
Non appena il punto terminale UDP è predisposto, è possibile ricevere i dati.
Sul parametro d'ingresso "DATA" vengono indicati l'indirizzo e la lunghezza del campo dati in cui vengono memorizzati i dati ricevuti.
Sul parametro d'ingresso "ADDR" si indica l'area dati in cui è memorizzato l'indirizzo IP del trasmettitore. In questo esempio i parametri di indirizzamento del partner di comunicazione sono memorizzati nella struttura dati UDT66 "TADDR_PAR". Questa è incorporata nel blocco dati di istanza DB500.

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

Figura 10
Con l'FB66 "TDISCON" è possibile disinserire in un modo mirato il punto terminale UDP. Il job per la disinserzione del punto terminale UDP viene avviato con un fronte di salita sul parametro d'ingresso "REQ" dell'FB66 "TDISCON".

Figura 11
Il progetto STEP 7 come download Il progetto STEP7 contiene un esempio di programma per il richiamo dell'FB500 e inoltre le funzioni FC95 "SET_UDP_ENDPOINT", FC96 "SET_UDP_REMOTE", i blocchi FB65 "TCON", FB66 "TDISCON", FB67 "TUSEND" e FB68 "TURECV" con analisi dello stato. Esso è stato creato con STEP 7 V5.4 SP3.
Sample_open_UDP.zip ( 44 KB )
Configurazione di ulteriori connessioni UDP Per inviare i datagrammi UDP a più partner di comunicazione, configurare altri punti terminali UDP locali e remoti. Copiare l'FB500, in modo da ottenere altri blocchi funzionali (p. es. FB501). Modificare i parametri del punto terminale UDP locale e remoto e generare nuovi blocchi dati di istanza.
L'ID del punto terminale UDP locale può essere scelto liberamente nel campo dei valori da 1 a 4095.
La porta locale e remota può essere scelta liberamente nel campo dei valori da 1 a 49151 per CPU S7-300 a partire dalla V2.7 e CPU S7-400 a partire dalla V5.2.
L'ID e la porta devono essere univoci per ogni punto terminale UDP locale, ovvero per ogni punto terminale UDP locale è necessario definire un ID e una porta diversi.
Definire la porta remota e l'indirizzo IP in conformità alla progettazione del partner di comunicazione.
La tabella seguente mostra un esempio per la configurazione di più punti terminali UDP locali e remoti. In questo esempio viene utilizzato lo stesso ID e la stessa porta per locale e remoto.
| Punto terminale UDP locale/remoto |
1 |
2 |
3 |
| ID |
1 |
2 |
3 |
| LOC_PORT |
2000 |
2001 |
2002 |
| REM_PORT |
2000 |
2001 |
2002 |
| Indirizzo IP del partner di comunicazione |
172.16.43.40 |
172.16.43.50 |
172.16.43.60 |
Altre informazioni
- Per maggiori informazioni sulla comunicazione aperta mediante Industrial Ethernet, consultare il manuale "Software di sistema per S7-300/400 Funzioni standard e di sistema Volume 1 e Volume 2" nell'articolo con ID: 44240604.
- Le istruzioni per la progettazione di una connessione UDP per la comunicazione tramite Industrial Ethernet CP S7-300 e S7-400 sono riportate nell'articolo con ID: 47885893.
|