Introduzione
Il protocollo BCC è stato progettato per avere un protocollo di comunicazione efficiente tra dispositivi Robox e strumenti di sviluppo e applicazioni Robox.
Per informazioni più dettagliate vedi documentazione Protocollo BCC/31.
La comunicazione avviene grazie a interfacce di rete che sono definite come applicazioni software o dispositivi hardware che permettono di comunicare con i dispositivi Robox con criteri differenti da una connessione locale (ad es. RS232). Per gestire queste interfacce si utilizzano messaggi specifici.
Comunicazione client
Registrazione logica del client
Da RTE 34.27.7 è stata aggiunta la gestione dei comandi per la registrazione logica di un client TCP/BCC. Lo scopo è quello di avere la lista dei client registrati e l'informazione se il flusso di messaggi BCC dal client specifico sia attivo o no.
La specifica dei comandi BCC è disponibile sul manuale BCC/31 (Network handling) - vedi:
bccNetClientKasSessionBegin |
612 |
bccNetClientKasSessionEnd |
613 |
bccNetClientKasSessionInfo |
614 |
La registrazione avviene mediante un comando BCC 612 in cui si specifica:
•il timeout massimo di attesa messaggi dal client prima di considerare la connessione non attiva
•un testo descrittivo del client
Se non ci sono controindicazioni, il client viene registrato memorizzando indirizzo Ip e Porta da cui è stato inviato il comando. Ovviamente non ci possono essere più client con uguali indirizzo Ip e Porta.
È possibile cambiare il valore di timeout dando nuovamente il comando di start con la stessa descrizione (dallo stesso Ip e dalla stessa Porta).
RTE gestisce una lista di 32 client attivi. I client sono considerati attivi se dopo il comando di start si riceve un qualsiasi messaggio BCC (ad eccezione di bccNetClientKasSessionInfo) prima dello scadere del timeout. Il timeout viene reinizializzato ad ogni messaggio.
In caso di non ricezione di messaggi prima del timeout, viene tolto il bit di connessione attiva e viene imposto il bit di Latch 'mancanza di comunicazione'. Se la comunicazione riprende, il bit di 'comunicazione attiva' viene nuovamente impostato. Il bit dello stato Latch 'mancanza di comunicazione' viene resettato solo usando il comando di start.
Per rimuovere un client dalla lista bisogna dare il comando esplicito BCC di stop degli stessi indirizzo Ip e Porta.
Esiste un comando BCC per avere informazioni riguardo lo stato della registrazione del client su indirizzo e porta corrente.
La lista completa dei client registrati è disponibile utilizzando la funzione R3 bcc_get_tcp_clients_info() o la rispettiva funzione OB getTcpClientsInfo().
Modalità BCC OOW (Only One Write)
Da RTE 34.27.2 è stata aggiunta la gestione della modalità per BBC3 OOW (solo uno scrive) per i soli client TCP.
La specifica dei comandi BCC è disponibile sul manuale BCC/31 (Device handling) - vedi:
bccOOWSessionBegin |
530 |
bccOOWSessionEnd |
531 |
bccOOWSessionQueryInfo |
532 |
Quando questa modalità è abilitata, tutti i comandi di scrittura da BCC sono rifiutati se non arrivano dal TCP client che ha aperto la sessione di scrittura.
Per poter aprire una sessione di scrittura da parte di un client, devono essere presenti i seguenti requisiti:
•non deve essere già aperta la sessione da un altro TCP client
•se presente una BLACK_LIST (lista esclusi), il client non deve esservi presente
•se presente una WHITE_LIST (lista permessi), il client deve esservi presente
La sessione di scrittura viene chiusa con uno dei due modi seguenti:
•comando esplicito da parte del TCP client proprietario della connessione
•scadenza del timeout per assenza di messaggi dal TCP client proprietario della connessione
Come ID del TCP client può essere usato il solo indirizzo Ip o l'indirizzo Ip più la Porta TCP. Saranno quindi accettati solo i messaggi di scrittura che soddisfano i requisiti dopo la verifica dell'ID.
Non sottostanno alle limitazioni della modalità OOW, e quindi possono scrivere senza limitazione:
•i TCP client presenti nella lista WILD_CARDS
•le comunicazioni che utilizzano canali diversi da TCP/IP (ad es. seriale o usb)
Per abilitare la modalità OOW bisogna caricare in flash il file non vuoto OOW.CFG. Il file deve risiedere su flash nella directory /FA/.
In questo file è possibile definire gli elementi delle liste opzionali di:
•WILD_CARDS
•BLACK_LIST
•WHITE_LIST
In ogni item delle liste si specifica:
•indirizzo Ip
•TCP Port (opzionale, se non presente o uguale a 0 si assumono tutte le porte)
NOTA: Questo parametro è usato solo se è abilitata la gestione della Porta TCP nell'ID.
•mask (opzionale, se non presente equivale a 255.255.255.255). Questo parametro serve per poter specificare un gruppo di TCP client permessi (es. se Ip 192.168.14.17 e mask 255.255.255.128, questo implica che il range di indirizzi specificati va da 192.168.14.0 a 192.169.14.127)
NOTA: Il file viene analizzato al bootup e dopo questa fase non è possibile modificare le liste.
Argomenti correlati
Keywords
SYS_CFG_2.10 |
Abilita l'uso della porta TCP nell'ID del TCP client nella sessione OOW NOTA: L'uso della Porta nell'ID è condizionato da questo flag e da quello impostato sulla richiesta di apertura. |
Abilita dump in report dei messaggi diagnostici di apertura/chiusura sessione OOW |
|
Mediante questa keyword è possibile monitorare lo stato di una sessione OOW |
|
Contiene l'indirizzo Ip del client con il permesso di scrittura di una sessione OOW |
|
Contiene la porta TCP del client con il permesso di scrittura di una sessione OOW |