Vai al contenuto
PLC Forum


Interfacce Rs232 >knx E Livelli


Messaggi consigliati

Inserito:

Buongiorno

Non so se è la sezione adatta, mal che vada indicatemi il posto giusto

Sto sperimentando un'interfaccia RS232<>KNX della Arcus, per la precisione il modello KNX-GW-232

L'interfaccia funziona come un gateway bidirezionale programmabile, ovvero alla ricezione di un determinato telegramma è in grado di emettere una stringa RS232 oppure all'arriva di una stringa RS232 è in grado di estrapolare da essa un valore numerico (o confrontare una tabella di testo ed inviare il valore abbinato) e di inviarlo come telegramma sulla rete knx

E qui' viene il bello....

Devo usare questa interfaccia per prendere dei dati in arrivo da una centrale antifurto e tramutarli in un telegramma knx.

Per la precisione quando arriva il testo ALLARME ZONA 003 deve emettere un telegramma con indirizzo 10/1/3, con il valore a 1

Se arriva il testo RIPRIST ZONA 003 deve emettere un telegramma con indirizzo 10/1/3, con il valore a 0

In pratica il dispositivo analizza il testo e se contiene la frase ALLARME ZONA prende il valore numerico successivo (in questo caso 003) e con questo incrementa un dato di base, in questo caso 0, in modo da variare l'offset del terzo indirizzo.

Ad esempio, nel caso della zona 012, il telegramma trasmesso avrebbe l'indirizzo 10(1/12. Il valore del bit (1 ) è predeterminato in tabella

La stessa cosa avviene con il testo RIPRIST, solo che il bit in questo caso è a 0

Tramite le macro sono riuscito a fare tutto cio'.

Il problema che mi si presenta invece è un'altro.

per semplificare le prove ho collegato l'uscita della centrale (che ha un'uscita DTE) all'ingresso di una seriale sul pc e tramite hyperterminal ho acquisito l'uscita (velocità 2400, 8N1, flusso software).Il tutto prima tramite un cavo DTE<>DTE con collegamenti full, poi con un cavo DTE<>DTE a soli 3 fili

Il file di testo è stato salvato sul desktop

Per controllare la programmazione successivamente ho collegato l'uscita del pc (DTE) con gli stessi parametri al convertitore arcus e inserendo manualmente i testi il modulo esegue perfettamente quanto richiesto

Allora, sempre tramite hyperterminal, ho dato il comando di "invia file di testo", inviando i dati ricevuti dalla centrale. Il convertitore esegue puntualmente quanto richiesto.

A questo punto ho collegato l'uscita seriale della centrale al convertitore e fatto le prove, ma il sistema non funziona :(

Ho ricontrollato piu' volte il cavo ( che in questo caso è composto solo da gnd, tx e rx.I pin RTS-CTS cono ponticellati tra di loro, come pure i segnali DSR-DCD-DTR), provando anche a collegare in parallelo al pin rx collegato dal lato interfaccia un'altro connettore collegato a sua volta al pc, per verificare cosa realmente arriva all'interfaccia stessa.

Il pc riceve i dati corretti ma il sistema non funziona.

Non so piu' che pesci pigliare.

L'unico sospetto è che i livelli emessi dalla centrale di allarme siano in qualche modo troppo bassi per essere letti dall'interfaccia arcus.

Se ci fosse un problema di programmazione non doveva funzionare neppure dal pc.

Qualcuno ha qualche suggerimento?

Sto eventualmente pensando di trovare un'amplificatore di linea, nel caso il cui il problema sia quello prospettato.

Nel frattempo provero' a contattare la arcus per capire se esiste una "diagnostica di bordo" in grado di buttare sull'uscita usb di programmazione quanto ricevuto dalla rs232

Se il sistema funziona, puo' essere impiegato per qualsiasi dispositivo con uscita RS232


Inserita:

Quanti metri copre la tua seriale?

Utilizza ponticello 7/8 lato PC ed equivalente lato slave.

Inserita:

ponticelli 7-8 fatti da entrambi i lati

Lunghezza cavo tra centrale e convertitore circa 1 metro.....

Sto provando a contattare la arcus (per sapere se esiste un debug), ma purtroppo non conosco il tedesco....

Provero' con il mio inglese "basico" :)

Inserita:

non vorrei portarti fuori strada..ma

The EIB-Gateway GW-KNX for DIN rail mounting controls EIB devices in existing building

control systems unidirectional (RX-Function is not supported).

sembra che possa solo trasmettere e non inviare.

Inserita: (modificato)

Innanzi tutto grazie per l'interessamento.

dal manuale in dotazione all'interfaccia:

"Areas of Application

The KNX Serial Gateway is bidirectional. It receives data telegrams on the KNX Bus and generates serial

telegrams using the internal interface program. A new KNX telegram can also be created when a serial

telegram is received. "

scaricato direttamente da questo link: http://www.arcus-eds.de/rs232.html?&L=1

Tra l'altro se fosse unidirezionale non si spiegherebbe perchè funziona correttamente se invio la stringa ascii dal pc.

Sul manuale per la programmazione scaricabile da questa pagina http://www.arcus-eds.de/375.html?&L=1 ci sono pure gli esempi.

Tutto avrei pensato fuorchè questo problema.

Proprio per evitare casini ho fatto 2 giorni di prove tra pc ed interfaccia....

Tutto per poter creare una "mappa grafica" per una centrale di allarme.... (anche se per la precisione le centrali che devo integrare sono 5, per un totale di circa 400 punti di controllo)

Mi sa che se non ne vengo a capo dovro' crearmi qualcosa in linux....

porcapuzzola come mi rode la cosa..

Modificato: da Microchip1967
Inserita:

Ho recuperato un'analizzatore di protocolli + sniffer rs232

Nei prossimi giorni provo a ricontrollare il traffico tra i dispositivi.

Non vorrei che la centrale mandasse qualche carattere che hyperterminal non visualizza, ma viene comunque conteggiato nel controllo della stringa del dispositivo....

L'avventura continua

Inserita:

:thumb_yello: :thumb_yello: :thumb_yello: :thumb_yello:

Trovato l'inghippo!!!!!

Tramite l'analizzatore + sniffer ho trovato il problema.

in pratica l'uscita seriale manda, al termine di ogni riga, il carattere CR seguito da LF

Visto che la programmazione esegue il controllo dopo il CR, in pratica nel confronto si inseriva "l'ospite indesiderato" LF, facendo saltare il confronto.

E' bastato aggiungere il carattere LF ed incrementare di 1 il conteggio dei caratteri per far funzionare il tutto

questa era la programmazione precedente:

<sendstr ga="10/3/1" val="1" type="0">ALLARME #SP ZONA #SP #checkchars 13 #adr_offset1- 3 #dropchars -1</sendstr>

<sendstr ga="10/3/1" val="0" type="0">RIPRIST #SP ZONA #SP #checkchars 13 #adr_offset1- 3 #dropchars -1</sendstr>

Questa è l'attuale:

<sendstr ga="10/3/1" val="1" type="0">#LF ALLARME #SP ZONA #SP #checkchars 14 #adr_offset1- 3 #dropchars -1</sendstr>

<sendstr ga="10/3/1" val="0" type="0">#LF RIPRIST #SP ZONA #SP #checkchars 14 #adr_offset1- 3 #dropchars -1</sendstr>

Con questo sistema posso portare le uscite di qualsiasi centrale di allarme (con uscita seriale) ad un numero elevatissimo, senza impegnare risorse sulla stessa, e permettendo l'uso di sinottici knx, come pure mappe grafiche.

In questo caso il sistema dovrà comunicare con un connexion della domoticalabs, per la visualizzazione di mappe grafiche

Sono felice come una pasqua.......

Morale: non fidarsi di hyperterminal per l'acquisizione di un'uscita seriale.....

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...