OB-DGT Scheda 16 uscite open collector, 8 ingressi discreti

Protocollo di comunicazione

V1.0 01-09-2003  WWW.QFPENG.COM


Introduzione

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.

 

Formato dei dati

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.

Comandi

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.