Tipo di articolo: FAQ, ID articolo: 29737976, Data articolo: 09/01/2015
(2)
Valuta

Come si programmano i blocchi FB63 "TSEND", FB64 "TRCV", FB65 "TCON" e FB66 "TDISCON", per usare il prot. ISO-on-TCP nello scambio dati via interfaccia PROFINET integrata di una CPU S7-300 o S7-400 o tramite CP443-1 Advanced?

  • Articolo
  • Riguarda prodotto/i

Descrizione
Per lo scambio dati tramite l'interfaccia PROFINET integrata di una CPU oppure tramite CP 443-1 Advanced si può utilizzare tra l'altro la "Open User Communication" tramite Industrial Ethernet. Sono supportati i seguenti protocolli:

  • TCP
  • ISO-on-TCP
  • UDP

Per la "Open User Communication" tramite Industrial Ethernet mediante protocollo ISO-on-TCP sono disponibili i seguenti blocchi di comunicazione.

  • FB65 "TCON" per la creazione della connessione;
  • FB66 "TDISCON" per l'abbattimento della connessione;
  • FB63 "TSEND" per l'invio di dati;
  • FB64 "TRCV" per la ricezione di dati.

Questi blocchi di comunicazione si trovano in Standard Library -> Communication Blocks
Copiare la versione aggiornata dei blocchi funzionali dalla libreria standard nel programma applicativo e richiamarla nello stesso.
I dati di connessione per stabilire la connessione ISO-on-TCP sono memorizzati in una struttura dati. In questo esempio viene utilizzata la struttura dati "OUCW_1". Questa è memorizzata nel blocco dati DB1 e viene parametrizzata direttamente dall'utente.

Avvertenza

  • Per una semplice creazione dei dati di collegamento utilizzare "Open Communication Wizard", che è disponibile per il download all'articolo con ID 98957840.
  • La connessione ISO-on-TCP non viene configurata in NetPro.

La tabella 01 mostra la creazione della struttura dei dati "OUCW_1", nella quale sono memorizzati i dati di collegamento.
 

Byte Parametri Tipo di dati Descrizione
da 0 a 1 block_length WORD Lunghezza della struttura dati "OUCW_1"
da 2 a 3 id BYTE Riferimento a questo collegamento
Campo valori: W#16#0001 fino a W#16#0FFF
Il valore di questo parametro deve essere immesso nel rispettivo blocco con ID.
4 connection_type BYTE Variante protocollo ISO-on-TCP: B#16#12
5 active_est BOOL Codice per il tipo di creazione della connessione
  • FALSE = creazione passiva della connessione
  • TRUE = creazione attiva della connessione
6 local_device_id BYTE Comunicazione mediante l'interfaccia PROFINET integrata della CPU 315-2 PN/DP: B#16#02
7 local_tsap_id_len BYTE Lunghezza utilizzata del parametro local_tsap_id
Valori possibili, se connection_type = B#16#12: da 2 a 16
8 rem_subnet_id_len BYTE Questo parametro attualmente non viene impiegato. È occupato con B#16#00.
9 rem_staddr_len BYTE Lunghezza dell'indirizzo del punto terminale di collegamento remoto:
  • 0: senza specifiche, ovvero il parametro rem_staddr è irrilevante.
  • 4: indirizzo IP valido nel parametro rem_staddr.
10 rem_tsap_id_len BYTE Lunghezza utilizzata del parametro rem_tsap_id
Valori possibili, se connection_type = B#16#12: da 0 o 2 fino a 16
  • Lato attivo: da 2 a 16
  • Lato passivo: 0 o 2 fino a 16 (0 significa senza specifiche)
11 next_staddr_len BYTE Lunghezza utilizzata del parametro next_staddr
da 12 a 27 local_tsap_id ARRAY [1..16] of BYTE TSAP locale, per es. ISO1:
local_tsap_id[1] = B#16#49
local_tsap_id[2] = B#16#53
local_tsap_id[3] = B#16#4F
local_tsap_id[4] = B#16#31
local_tsap_id[5-16] = B#16#00

Avvertenza
Se le CPU che non supportano il formato ASCII per i TSAP, i primi 2 byte del TSAP locale devono essere definiti con i valori B#16#E0 e B#16#02.

da 28 a 33 rem_subnet_id ARRAY [1..6] of BYTE Questo parametro attualmente non viene impiegato. È occupato con B#16#00.
da 34 a 39 rem_staddr ARRAY [1..6] of BYTE Indirizzo IP del punto terminale di collegamento remoto per es. 192.168.0.30:
rem_staddr[1] = B#16#C0
rem_staddr[2] = B#16#A8
rem_staddr[3] = B#16#00
rem_staddr[4] = B#16#1E
rem_staddr[5-6] = B#00 (riservato)
da 40 a 55 rem_tsap_id ARRAY [1..16] of BYTE TSAP del punto terminale di collegamento remoto per es. ISO1:
rem_tsap_id[1] = B#16#49
rem_tsap_id[2] = B#16#53
rem_tsap_id[3] = B#16#4F
rem_tsap_id[4] = B#16#31
rem_tsap_id[5-16] = B#16#00

Avvertenza
Se le CPU che non supportano il formato ASCII per i TSAP, i primi 2 byte del TSAP locale devono essere definiti con i valori B#16#E0 e B#16#02.

da 56 a 61 next_staddr ARRAY [1..6] of BYTE next_staddr[1-6] = B#16#00

Avvertenza
Se local_device_id=B#16#00, rack e slot del CP (locale) CPs vengono indicati qui.

62-63 spare WORD Riserva, il parametro è occupato con W#16#0000.
Tabella 01

Le seguenti CPU supportano il formato ASCII per i TSAP.

  • CPU 314C-2 PN/DP
  • CPU 315(F)-2 PN/DP, CPU 317(F)-2 PN/DP V3.1 e successive
  • CPU 315T-3 PN/DP, CPU 317T-3 PN/DP, CPU 317TF-3 PN/DP
  • CPU 319(F)-3 PN/DP
  • CPU 414-3 PN/DP, CPU 416(F)-3 PN/DP V5.2 e successive
  • CPU 414F-3 PN/DP, CPU 412-2 PN
  • CPU 412-5H PN/DP, CPU 414-5H PN/DP, CPU 416-5H PN/DP, CPU 417-5H PN/DP
  • IM 151(F)-8 PN/DP CPU V2.7 e successive
  • IM 154(F)-8 CPU V3.2 e successive

Descrizione dell'esempio di programma
Il programma S7 contiene il richiamo di FB65 "TCON" e il blocco dati DB1 con la struttura dati dati "OUCW_1", nella quale sono memorizzati i dati di connessione per la creazione della connessione ISO-on-TCP. Inoltre il programma S7 contiene il richiamo dei blocchi funzionali FB63 "TSEND" e FB64 "TRCV" dalla Standard Library -> Communication Blocks. L’FB63 "TSEND" serve per l'invio di dati a una stazione S7 oppure S5, a una stazione PC o a un sistema di terzi. L'FB64 "TRCV" serve per la ricezione dei dati di una stazione S7 oppure S5, 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 100 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, FB1, DB11, DB1, DB100, DB200 e FB63, FB64, FB65 e FB66.

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 OB1 si trova il richiamo dell'FB1 con il blocco dati di istanza DB11 e con il merker M0.3 come parametro INIT_COM e con il merker 10.0 come parametro ABORT. Il merker M0.3 viene resettato nell'OB1 dopo il richiamo dell'FB1.


Figura 01

FB1
FB1 viene richiamato ciclicamente nell'OB1. In FB1 vengono richiamati i seguenti blocchi funzionali:

  • FB65 "TCON"
  • FB63 "TSEND"
  • FB64 "TRCV"
  • FB66 "TDISCON"

Definizione del numero della connessione
Il numero della connessione può essere modificato singolarmente. Adeguare il numero della connessione nella rete 2 del FB1 in base alla propria configurazione. Il numero della connessione è memorizzato in una variabile statica e quindi nel blocco dati di istanza DB11.
In questo esempio viene definito il numero della connessione "1".



Figura 02

Creazione della connessione
La creazione della connessione viene avviata con un fronte di salita sul parametro d'ingresso "REQ" di FB65 "TCON". La struttura dati "OUCW_1" con la parametrizzazione della connessione è incorporata nel blocco dati DB1.
Sul parametro d'ingresso "CONNECT" dell'FB65 "TCON" viene indicata l'area di memoria che contiene la parametrizzazione della connessione.
La connessione viene realizzata all'avvio del sistema e permane fino a quando ad esempio non viene abbattuta specificamente con l'FB66 "TDISCON", la CPU va in STOP oppure non viene disinserita l'alimentazione.


Figura 03

Il job di trasmissione viene avviato con un fronte di salita sul parametro d'ingresso "REQ" dell'FB63 "TSEND". L'avvio del job di trasmissione viene pilotato con il merker di clock M100.6 e la variabile "SEND_BUSY". Quando il job di trasmissione è in esecuzione, "SEND_BUSY" è impostata. 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.
In questo esempio sono memorizzati i dati di invio nel DB100. Vengono inviati dati da 100 Byte al partner di comunicazione.
I parametri di uscita "DONE", "ERROR" e "STATUS" sono necessari per l'analisi del job.



Figura 04

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


Figura 05


Figura 06

Non appena viene stabilita la connessione ISO-on-TCP, è possibile ricevere i dati.
Sui parametri d'ingresso "DATA" e "LEN" vengono indicati l'indirizzo e la lunghezza del campo dati in cui vengono memorizzati i dati ricevuti.
In questo esempio vengono ricevuti 100 byte di dati e memorizzati nel DB200.


Figura 07

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.


Figura 08

Se i dati non sono stati ricevuti con successo, il valore del parametro di uscita "STATUS" viene salvato e analizzato.


Figura 09

Con l'FB66 "TDISCON" è possibile abbattere in modo mirato la connessione ISO-on-TCP. Il job per l'abbattimento della connessione ISO-on-TCP viene avviato con un fronte di salita sul parametro d'ingresso "REQ" dell'FB66 "TDISCON".


Figura 10

Il progetto STEP 7 come download
Il progetto STEP 7 contiene un esempio di programma per il richiamo dell'FB1 e inoltre i blocchi funzionali FB65 "TCON", FB66 "TDISCON", FB63 "TSEND" e FB64 "TRECV" con analisi dello stato. Esso è stato creato con STEP 7 V5.5 SP3.

Sample_open_IoT.zip ( 285 KB )

Configurazione di ulteriori connessioni ISO-on-TCP
Per la configurazione di ulteriori connessioni ISO-on-TCP copiare l'FB1, in modo da ottenere un ulteriore blocco funzionale (p. es. FB101). Modificare i parametri e generare un nuovo blocco dati di istanza.

Ulteriori 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 ISO-on-TCP per la comunicazione tramite CP S7-300 e S7-400 sono riportate nell'articolo con ID: 47885440.