Accesso via TCP
Accesso via TCP
Come per una telefonata in TCP occorre innanzitutto stabilire una connessione prima di poter scambiare informazioni. Il client stabilisce la connessione che viene ricevuta dal server. Per applicazioni per Web-IO con socket ASCII l’applicazione assume sempre il ruolo del client e il Web-IO è il server.
A tal scopo il Web-IO ha aperto una porta TCP per l’accettazione della connessione (se non configurato diversamente porta 42280). Il client, ovvero l’applicazione, stabilisce una connessione con l’indirizzo IP del server di questa porta. Anche il client apre una porta TCP (dinamica) sulla quale può ricevere dati inviati dal server.
Non appena è presente una connessione, l’applicazione può inviare comandi al Web-IO (request), ai quali il Web-IO risponde e che vengono eseguiti (reply). Con l’opportuna configurazione il Web-IO può trasmettere lo stato degli input (event message) senza che l’applicazione faccia una richiesta.
La chiusura della connessione TCP viene effettuata in genere dall’applicazione. Il Web-IO chiude la connessione solo in caso di errore, p. es. quando la sintassi di un comando è scorretta.
Nella modalità socket ASCII TCP il Web-IO può ricevere al massimo quattro connessioni contemporaneamente. Il tentativo di connettere un quinto client verrebbe rifiutato (occupato come al telefono).
Configurare Web-IO per accesso TCP
Selezionare nel menù dell’interfaccia web Vie di comunicazione >> API socket e attivare socket ASCII TCP.
La porta TCP può essere adattata all’occorrenza alla propria applicazione.
Se il Web-IO in caso di modifica agli input deve inviare automaticamente lo stato all’applicazione, inserite i rispettivi segni di spunta in Input-Trigger.
Inoltre devono essere autorizzati gli output, che vengono attivati attraverso l’applicazione.
Più tardi si tornerà sul punto Indirizzo IP e nome di sistema.
Accesso via UDP
Accesso via UDP
Diversamente da una telefonata con UDP non c’è connessione. Come nella radiotelefonia le informazioni vengono semplicemente inviate. Quindi con UDP non ci sono client e server, bensì si parla di peer UDP che sono ugualmente autorizzati a inviare i loro datagrammi.
L’applicazione invia comandi al Web-IO (request), ai quali il Web-IO risponde e che vengono eseguiti (reply).
Configurare Web-IO per accesso UDP
Selezionare nel menù dell’interfaccia web Vie di comunicazione >> API socket e attivare socket UDP.
La porta TCP può essere adattata all’occorrenza alla propria applicazione.
Gli output che devono essere attivati mediante l’applicazione, devono essere autorizzati.
Più tardi si tornerà sul punto Indirizzo IP e nome di sistema.
Comandi ASCII
Struttura e configurazione dei comandi ASCII
Indipendentemente dal fatto che si acceda via TCP o UDP, i comandi e le risposte a questi sono le stesse.
La struttura dei comandi si ispira al protocollo HTTP originale. Ogni comando comincia con la sequenza introduttiva GET /
seguita dall’effettivo comando. La scrittura maiuscola/minuscola qui raffigurata deve essere implementata esattamente così. Con ?
possono seguire dei parametri. Nel Web-IO digitale in ogni caso sempre la password con la sintassi PW=password&
. Ogni serie di parametri viene conclusa con &
concluso, in modo tale che due serie di parametri vengano separate anche attraverso &
.
IMPORTANTE: I comandi, incluse le serie di parametri, non possono essere conclusi con CR (Carriage Return) o LF (Line Feed) o entrambi. In molti linguaggi di programmazione ci sono i metodi write
e writeln
. Non utilizzate il metodo writeln
, perché qui vengono attaccati automaticamente CR e LF.
Esempio: Interrogazione input
Come esempio qui il comando per aprire gli stati di attivazione input. Il Web-IO è protetto dalla password blu.
GET /input?PW=blau&
La risposta del Web-IO è a seconda del modello la seguente:
input;1
(Web-IO digitale, 2x input, 2x output)
input;0001
(Web-IO digitale 12x input, 12x output e 12x input, 6x relè)
La struttura dipende dalla parola chiave della richiesta, separata con punto e virgola seguita da uno o più valori. Come conclusione il Web-IO attacca un byte zero.
Qui la risposta comincia con la parola chiave input
e segue il valore 1
o 0001
che rende lo stato di attivazione di tutti gli input in grafia esadecimale. Qui concretamente input 0 = ON, tutti gli altri input = OFF.
Per una migliore comprensione della codifica input esadecimale qui ancora un esempio per un Web-IO con 12 input:
Nello stato ON ci sono gli input 0,1,5,7,10,11. Gli altri input sono nello stato OFF. Da questo campione di bit si ottiene un numero duale, nel quale i bit ON =1 e i bit OFF = 0.
Qui dunque 1100 1010 0011
.
In scrittura esadecimale questo corrisponde a CA3
o in rappresentazione a quattro cifre a 0CA3
.
Qui trovate maggiori informazioni sui numeri esadecimali.
Esempio: Impostazione degli output
Il comando per l’impostazione degli output ha una struttura simile come il comando input
, ma ha più parametri:
GET /outputaccess0?PW=blau&State=ON&
La cifra dietro alla parola chiave outputaccess
indica quale output si deve attivare - qui output 0. Con State
viene indicato in che stato si attiva. Sono possibili i valori ON
,OFF
e TOGGLE
(cambio di stato).
La risposta del Web-IO è a seconda del modello la seguente:
output;1
(Web-IO digitale, 2x input, 2x output)
output;0001
(Web-IO digitale 12x input, 12x output e 12x input, 6x relè)
Proprio come per l’interrogazione di input, come risposta viene inviata la rispettiva parola chiave seguita dal campione Bit degli stati di output più byte zero. Indipendentemente da che output viene fissato - il campione Bit riporta sempre lo stato di tutti gli output.
Trovate una panoramica dettagliata di tutti i comandi nella Panoramica comandi o nel manuale di programmazione sul Web-IO.