Sniffare da RS232

Ciao,
vi spiego il mio problema.
Ho un macchinario che comunica con un vecchio computer (in DOS... roba di più di 20 anni) tramite RS232.
Un programma in DOS sul computer dà lo start al macchinario, e questo manda i risultati di alcune rilevazioni.

E' giunto il momento di ammodernare il sistema, con un nuovo software, una nuova GUI, e una nuova architettura dell'intero sistema. Il mio problema è sapere quali sono i dati scambiati tra macchinario e computer, quindi come si dà lo start per avviare il macchinario, e come interpretare i dati trasmessi dal macchinario.

COSA HO A DISPOSIZIONE:
Ho acquistato un Convertitore RS232 TTL con microprocessore MAX232. La porta del convertitore è femmina, e permette di collegare Rx, Tx, VCC e GND. Ho collegato RX al pin 0, TX al pin 1, VCC a +5v e GND a GND.

COSA HO PROVATO A FARE:

======================
PC --> Arduino
Anche provando con baud diversi, Arduino legge qualcosa ma sono simboli incomprensibili.
Non se è giusto, teoricamente senza dare lo START, il pc non dovrebbe comunicare niente.

La stessa prova fatta senza Arduino, usando un adattatore USB e uno sniffer, legge fxfxfxfxfxf di continuo.

======================
Arduino --> macchinario
Non legge niente. Potrebbe essere corretto, senza lo START il macchinario non comunica niente

La stessa prova fatta senza Arduino ma con l'adattatore USB, non legge niente.

PC <--------> Macchinario
** |**
** -----> Arduino**
Ho aperto la presa femmina RS232 del macchinario, e in parallelo ci ho collegato Arduino, sempre
passando per il convertitore MAX232 (per evitare di avere un voltaggio troppo alto). Ho cercato quindi
di mettermi in mezzo tra PC e macchinario. Legge simboli strani, ma non noto nessuna differenza
quando do il comando di START e il macchinario inizia a trasmettere.

La stessa prova fatta senza Arduino ma con l'adattatore USB, legge fxfxfxfx di continuo. Sul software del PC però compare "cavo scollegato", forse perché abbassa troppo la tensione? Non riesco comunque a dare lo START a causa dell'errore.

Ricapitolando, mi servirebbe sapere come dare lo START al macchinario e come interpretare i dati in risposta, per riscrivere il software di gestione di capo. Qualche idea/commento/suggerimento?

grazie

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:

Ti conviene usare un software sniffer sul PC collegato alla macchina.

Questo, ad esempio, pur nella sua versione demo (20 minuti e 5 attivazioni giorno), ti consente di aevre tutte le informazioni.

Ma quello funziona su dos?

La RS232 é un standard utilizzabile in tanti modi.

Oltre la Baudrate ci sono da impostare anche nr di startbit e di paritá e numero di bit di segnale.

Oltre a questo il flusso dei dati puó essere gestito tramite codice (Xon/Xofff) o tramite diverse possibilitá hardware.

Non hai nessun manuale della macchina che descrive l' interfacciamento?

Ciao Uwe

Per osservare i dati tra pc e macchina servono due interfacce USB-RS 232, con Arduino non ci fai nulla anche perché se impegni la seriale hardware non puoi usare la USB.
In pratica devi collegare gli Rx delle due interfacce USB sul Rx e sul Tx della RS232 dato che devi visualizzare il traffico sia da Tx del PC verso Rx della macchina che viceversa, ovvero dal Tx della macchina verso Rx del PC, se colleghi il Tx dell'interfaccia USB-RS232, o del convertitore RS232-UART 5V, blocchi il relativo canale perché poni un 1 logico fisso sulla linea mettendo in corto il lato Tx collegato con conseguente errore sulla comunicazione.
In alternativa puoi usare un analizzatore di stati logici con decoder per i bus seriali, così vedi direttamente il flusso su i due canali, però devi spendere almeno 150-200 Euro per lo strumento.
Attenzione che i vecchi sistemi di comunicazione per macchinari industriali non è detto che lavorano 8,n,1, anzi spesso e volentieri erano 7,O/E,2, ovvero 7 bit con parità e due bit di stop, tipicamente con velocità comprese tra 4800 e 19200 bps.

scusami @astrobeed ma non ho ben capito la risposta.
Dici di collegarmi al pc,giusto?
In pratica dici di utilizzare due convertitori usb,uno per leggere Rx e uno per leggere Tx del pc.

Così riuscirei a leggere lo START del pc, ma allora mi basterebbe leggere la Tx del PC, no?
Oppure è possibile mettermi in mezzo, in parallelo al macchinario? (Femmina)
Con la prova che ho fatto io mettendomi in mezzo, dava cavo scollegato.

astrobeed:
...se colleghi il Tx dell'interfaccia USB-RS232, o del convertitore RS232-UART 5V, blocchi il relativo canale perché poni un 1 logico fisso sulla linea mettendo in corto il lato Tx collegato con conseguente errore sulla comunicazione....

Qui non ho capito perché collegando Tx del convertitore da errore. Se non trasmette niente... qual è il problema?

Per le altre risposte, no non ho la documentazione, e il pc è in dos, quindi niente sniffer e niente multitasking.

Grazie

delac:
Qui non ho capito perché collegando Tx del convertitore da errore. Se non trasmette niente... qual è il problema?

Non conosco molto bene il protocollo rs232 pero' tieni presente che non trasmettendo nulla sicuramente il piedino tx del tuo convertitore stara' a 0 o a 1 (e da quello che dice astrobeed e' 1)

Lui ti dice di collegare due rx perche' tu devi solo ascoltare quello che passa sulla linea senza modificarlo in alcun modo, e se colleghi un tx non puoi riuscirci.

Sia che si parli di RS232 che si parli di seriale TTL, il pin TX assume, a riposo, un valore ben definito :

quindi, come ti hanno detto, vai a disturbare il segnale dove lo attacchi.

Guglielmo