OB-DGT Scheda 16 uscite open collector, 8 ingressi discreti Protocollo di comunicazione V1.0 01-09-2003 WWW.QFPENG.COM |
OB-DGT è un dispositivo che consente di controllare lo stato di 16 uscite open collector, e di acquisire lo stato di 8 ingressi discreti. Il dispositivo può essere utilizzato per controllare relè, lampade, optoisolatori, solenoidi, display luminosi ecc. e per monitorare lo stato di interruttori, pulsanti, sensori con uscita digitale ecc.
Queste specifiche sono applicabili anche per la scheda OB-RLY.
Il dispositivo comunica con il PC, attraverso un'interfaccia seriale RS232 o attraverso un cavo a quattro conduttori (RS485 + alimentazione). Le impostazioni per la comunicazione seriale sono: 9600 bps, nessuna parità, 8 bit dati, 1 stop bit.
La comunicazione è di tipo half-duplex, se la comunicazione è di tipo RS232, durante la trasmissione dal PC al dispositivo, l'interfaccia restituisce l'eco dei caratteri inviati.
Il dispositivo accetta comandi costituiti da una stringa di byte avente il seguente formato:
START | NBYTE | FADDRL | FADDRH | CMD | DATA 1 ... DATA N | CECKSUM |
Il significato dei byte è il seguente:
START | 1 Byte | Inizio pacchetto sempre 0x00 |
NBYTE | 1 Byte | Numero di byte da FADDR a DATA N compreso |
FADDRL | 1 Byte | Indirizzo fisico del dispositivo byte meno significativo (LSB) |
FADDRH | 1 Byte | Indirizzo fisico del dispositivo byte più significativo (MSB) |
CMD | 1 Byte | Comando da inviare al dispositivo |
DATA | N Byte | N byte di dati per il dispositivo, la lunghezza di questo campo dipende dal comando. |
CECKSUM | 1 Byte | Somma modulo 256 dei byte da NBYTE a DATAN compreso |
Il dispositivo risponde entro massimo 10ms con una stringa di dati nel seguente formato:
START | NBYTE | FADDRL | FADDRH | ACK | DATA 1 ... DATA N | CECKSUM |
Il significato dei byte è il seguente:
START | 1 Byte | Inizio pacchetto sempre 0x00 |
NBYTE | 1 Byte | Numero di byte da FADDR a DATA N compreso |
FADDRL | 1 Byte | Indirizzo fisico del dispositivo byte meno significativo (LSB) |
FADDRH | 1 Byte | Indirizzo fisico del dispositivo byte più significativo (MSB) |
ACK | 1 Byte | Risposta al comando ricevuto: 254 = Comando accettato, 253 = Comando rifiutato |
DATA | N Byte | N byte di dati di risposta al comando, la lunghezza di questo campo dipende dal comando. |
CECKSUM | 1 Byte | Somma dei byte da NBYTE a DATAN compreso |
NOTA: L'indirizzo fisico del dispositivo è riportato nell'etichetta applicata sul microcontrollore della scheda di I/O ed è in formato esadecimale.
READ
Legge lo stato degli ingressi e delle uscite
START | NBYTE | FADDRL | FADDRH | 0x05 | CECKSUM |
Risposta del dispositivo:
START | NBYTE | FADDRL | FADDRH | ACK | OutA, OutB, InA | CECKSUM |
Il byte OutA rappresenta lo stato delle uscite 1-8, ad ogni bit di OutA è associata un'uscita sul connettore JP9 della scheda OB-DGT-XXX (vedi data-sheet), in particolare il bit 0 rappresenta l'uscita 1, il bit 1 l'uscita 2 e così via.
Analogamente OutB rappresenta le uscite 9-16 (questo byte non è presente se si utilizza una scheda modello OB-RLY).
InA rappresenta lo stato degli ingressi 1-8 sul connettore JP8.
WRITE
Modifica lo stato delle uscite
START | NBYTE | FADDRL | FADDRH | 0x06 | SetA, ResetA, SetB, ResetB | CECKSUM |
Per controllare gli output è utile considerare che ogni uscita può essere vista come l'uscita di un flip-flop con due ingressi: "set" e "reset". Ad ogni comando il flip-flop si comporta così:
Ingresso SET | Ingresso RESET | USCITA | Descrizione |
0 | 0 | X | l'uscita resta nello stato in cui si trovava in precedenza |
1 | 0 | 1 | l'uscita diventa 1 |
0 | 1 | 0 | l'uscita diventa 0 |
1 | 1 | X |
l'uscita inverte il proprio stato |
I byte SetA e ResetA rappresentano gli ingressi dei flip-flop corrispondenti alle uscite 1-8, mentre SetB e ResetB si riferiscono alle uscite 9-16 ( per la scheda OB-RLY i byte SetB e ResetB non devono essere presenti).
Esempio:
Inviando un comando con SetA=17, ResetA=18, SetB=0, ResetB=0 si provocano le seguenti azioni:
L'uscita 1 diventa alta, l'uscita 2 diventa bassa, l'uscita 5 inverte il proprio stato, tutte le altre uscite mantengono lo stato che avevano prima del comando.
bit | SetA | ResetA | Azione |
0 | 1 | 0 | Uscita 1 = 1 |
1 | 0 | 1 | Uscita 2 = 0 |
2 | 0 | 0 | nessun effetto |
3 | 0 | 0 | nessun effetto |
4 | 1 | 1 | inverte lo stato dell'uscita 5 |
5 | 0 | 0 | nessun effetto |
6 | 0 | 0 | nessun effetto |
7 | 0 | 0 | nessun effetto |
17 | 18 | <- valore decimale |
Risposta del dispositivo:
START | NBYTE | FADDRL | FADDRH | ACK | OutA, OutB, InA | CECKSUM |
Il byte OutA rappresenta lo stato delle uscite 1-8, ad ogni bit di OutA è associata un'uscita sul connettore JP9 della scheda OB-DGT-XXX (vedi data-sheet), in particolare il bit 0 rappresenta l'uscita 1, il bit 1 l'uscita 2 e così via.
Analogamente OutB rappresenta le uscite 9-16 (sulla scheda OB-RLY questi byte non sono presenti).
InA rappresenta gli ingressi 1-8 sul connettore JP8.