Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VB6 mscomm e plc

147 views
Skip to first unread message

Buch

unread,
Apr 17, 2004, 10:52:28 AM4/17/04
to
Ciao, devo interrogare un contatore di energia che possiede la porta rs485.
Per lo scopo ho acquistato un convertitore da rs232->rs485.Il plc è stato
predisposto come dal suo manuale con la comunicazione in 485,9600,8,n,1 e
gli occorre che gli venga passata una stringa nel seguente formato
<STX>01R30<ETX><CHT> dove 01 è indirizzo del plc e r30 è la richiesta del
dato che voglio leggere e qua sorge il problema.Il controllo mscomm anzichè
restituirmi <stx>220v<etx><cht> mi passa bella sfilza di yyyyyyy in genere
vari caratteri sporchi.Qualche suggerimento?
Premetto che il collegamento è con due fili dal plc al convertitore e al
convertitore (R+R-T+T-) è stato ponticellato t+con r+ e t- con r-.Può essere
causa della gestione del DTR e del DSR?

Ottomano Nicola

unread,
Apr 17, 2004, 1:49:46 PM4/17/04
to
prova a vedere su www.elettronicamente.com
Vi sono molti progetti scaricabili gratuitamente (serve solo un'iscrizione)

bye

--
Esistono 10 tipi di persone: chi conosce il binario e chi no.

Gestione Ottica - Gestionale per Ottici e Programmi Gratuiti su:
http://www.nicolaottomano.it


SB

unread,
Apr 18, 2004, 11:28:48 AM4/18/04
to

Interfacciare una RS485 con Windows e in particolare con Xp è un
problema, perchè in genere si deve rispettare un tempo molto breve
prima di 'lasciare libera' la linea, e se il dispositivo risponde
prima che si disimpegni la linea stessa con l'RTS\ a causa dei suoi
multitasking si crea una situazione di errore.
Oltretutto con Xp hanno cambiato l' api SetCommState e io ho avuto
parecchi problemi con la RS485 su programmi che con W98 andavano
benissimo.

Attualmente ho risolto con un converter RS232-RS485 dalla Intracom
http://www.icintracom.biz/ (mod. ICC IO-A52) che ha un processorino a
bordo e inverte automaticamente la linea quando mancano dati in input,
e che quindi ha bisogno solo di GND, RXD e TXD.
In questo modo bypasso windows e i suoi problemi di sincronia con
l'RTS\ e ho risolto i problemi, tutto ok anche con Xp.

Può essere che i tuoi problemi dipendano proprio dal fatto che la UART
del pc non riesce a decodificare i caratteri in arrivo per problemi di
direzione della linea, e non vedo soluzioni diverse da quella che ti
ho suggerito.


ciao
Stefano


Buch

unread,
Apr 18, 2004, 11:46:58 AM4/18/04
to
> Interfacciare una RS485 con Windows e in particolare con Xp è un
> problema, perchè in genere si deve rispettare un tempo molto breve
> prima di 'lasciare libera' la linea, e se il dispositivo risponde
> prima che si disimpegni la linea stessa con l'RTS\ a causa dei suoi
> multitasking si crea una situazione di errore.
> Oltretutto con Xp hanno cambiato l' api SetCommState e io ho avuto
> parecchi problemi con la RS485 su programmi che con W98 andavano
> benissimo.
>
> Attualmente ho risolto con un converter RS232-RS485 dalla Intracom
> http://www.icintracom.biz/ (mod. ICC IO-A52) che ha un processorino a
> bordo e inverte automaticamente la linea quando mancano dati in input,
> e che quindi ha bisogno solo di GND, RXD e TXD.
> In questo modo bypasso windows e i suoi problemi di sincronia con
> l'RTS\ e ho risolto i problemi, tutto ok anche con Xp.
>
> Può essere che i tuoi problemi dipendano proprio dal fatto che la UART
> del pc non riesce a decodificare i caratteri in arrivo per problemi di
> direzione della linea, e non vedo soluzioni diverse da quella che ti
> ho suggerito.
>
>
> ciao
> Stefano

Ciao Stefano, il sistema operativo che utilizzo è WinMe su un portatile, ora
però mi assilla anche un altro dubbio: il contatore possiede tre uscite I/O
e la Massa che però non ho collegato al converter visto che mi trovo nel
converter T+T-R+R- può esserne la causa?Il converter che utilizzo è un
IC-485S della Aten che mi ha procurato l'elettricista.
La stringa che gli passo è :

mscomm1.rtsenable=true
mscoom1.output "xxxxx"
mscomm1.rtsenable=false

Qualche consiglio?


SB

unread,
Apr 19, 2004, 4:08:41 AM4/19/04
to
On Sun, 18 Apr 2004 15:46:58 GMT, "Buch" <em...@privacy.com> wrote:


>Ciao Stefano, il sistema operativo che utilizzo è WinMe su un portatile, ora
>però mi assilla anche un altro dubbio: il contatore possiede tre uscite I/O
>e la Massa che però non ho collegato al converter visto che mi trovo nel
>converter T+T-R+R- può esserne la causa?Il converter che utilizzo è un
>IC-485S della Aten che mi ha procurato l'elettricista.
>La stringa che gli passo è :
>
>mscomm1.rtsenable=true
>mscoom1.output "xxxxx"
>mscomm1.rtsenable=false
>
>Qualche consiglio?

Il tuo collegamento è giusto in quanto la RS485 è differenziale e
basta collegare T/R+ eT/ R- per comunicare.
Le altre uscite non so cosa sono, occorre guardare il libretto di
istruzioni.
Anche il tuo modo di passargli la stringa è corretto, se il baudrate è
giusto non ci sono molte altre cose da verificare.

L'unica cosa che mi viene in mente è provare a usare un altro
converter 232 con un pc in ascolto per vedere cosa effettivamente
transita sulla linea, anche perchè i dispositivi che ricevono una
stringa con errore in genere rispondono con un NAK.
Poi fai in modo che il tutto venga scritto su un file che esamini
con calma con un editor che veda tutti i codici (Ultraedit ad esempio)
Se caratteri Y sono degli 0FFh, vuol dire che la UART ha perso la
sincronia con lo start bit, se tu gestissi la UART direttamente come
si fa con un microcontroller vedresti dei 'frame error' in questo
caso.

Ma se la periferica risponde troppo presto mi sa che devi cambiare il
convertitore, anche sa la colpa in fondo non è sua ma di Windows.

Ti copio anche gli standard di comunicazione:

;STANDARD DI COMUNICAZIONE SECONDO DIN 66019
STX = 02H ;INIZIO TRASMISSIONE
ETX = 03H ;FINE TESTO
EOT = 04H ;FINE TRASMISSIONE
ENQ = 05H ;RICHIESTA COLLEGAMENTO AL TERMINALE
ACK = 06H ;DATO RICEVUTO CORRETTAMENTE RISPOSTA "OK"
NAK = 15H ;RISPOSTA "NON COMPRESO, RIPETERE"


Buch

unread,
Apr 19, 2004, 4:31:23 PM4/19/04
to

"SB" <stNOOOb...@tin.it> ha scritto nel messaggio
news:2m07805jb9job0p8l...@4ax.com...
> On Sun, 18 Apr 2004 15:46:58 GMT> Il tuo collegamento è giusto in quanto

Grazie dei consigli, questa mattina ho ordinato lo stesso tipo di converter
da te consigliato ( anche l'elettricista ha acquistato il primo converter
alla intracom) appena arriva riproverò la connessione e speriamo bene :)
poi ti dirò Saluti.


Buch

unread,
Apr 22, 2004, 3:35:36 PM4/22/04
to

Ciao Stefano, oggi pome mi hanno portato il convertitore che mi hai
consigliato ed ho iniziato a fare qualche prova ed è nato un altro dubbio:
la stringa di comunicazione che gli devo passare è in esadecimale....?

Quindi se io devo passare una stringa del tipo <stx>02r30<etx><chk>
<---dove chk è il controllo di tutti i bit

è corretto un passaggio di stringa del tipo (ho guardato un pò su post
vecchi) comm1.output=chr$(02) & "02r30"&chr$(03) & chr$(06) ??? non so come
è il carattere di controllo...forse chr$(06)?

Ho provato a passargli questa stringa ma mi rilascia sempre dei caratteri
anomali...

Ho provato anche così ma niente:

stringa = Chr(Val("&H02")) + Chr(Val("&H2r04")) + Chr(Val("&H03"))

Comm1.Output = stringa

Mi restituisce due ?? rovesciati...

Qualche suggerimento?

Buch

unread,
Apr 22, 2004, 3:38:01 PM4/22/04
to

Mizio

unread,
Apr 23, 2004, 3:36:45 AM4/23/04
to
Ciao,
...

> la stringa di comunicazione che gli devo passare è in esadecimale....?
...
Bisognerebbe avere il protocollo preciso, pero' normalmente si, e' in
esadecimale. Di solito si manda un carattere ASCII che ha come codice il
valore convertito in decimale di uno esadecimale.
Per esempio....
ho un apparecchio che mi richiede, per inizializzare, un (30h).
Prendi il 30, lo converti da esadecimale a decimale (48) e mandi uncarattere
ascii con codice 48... chr(48).
...

> non so come
> è il carattere di controllo...forse chr$(06)?
...
Ehh... senza sapere le specifiche del protocollo, e' difficile.
Se e' un carattere di controllo (che in quanto tale non puo' essere fisso,
altrimenti che controllo e'), bisogna conoscenre il metodo di calcolo.
Tanto per dirtene una, un metodo e' quello di fare uno XOR su tutti i
caratteri (1 carattere XOR 2 carattere, il risultato XOR 3 carattere e cosi'
via) e poi inviare il rislultato finale. Se il PLC, che si e' fatto il
calcolo, vede che il nostro carattere di controllo (checksum) e' quello che
si e' calcolato, prende buona la stringa che gli abbiamo passato e fa quello
che deve fare.
Buon lavoro... Maurizio


SB

unread,
Apr 24, 2004, 4:58:21 AM4/24/04
to
On Thu, 22 Apr 2004 19:38:01 GMT, "Buch" <em...@privacy.com> wrote:

>
> Ciao Stefano, oggi pome mi hanno portato il convertitore che mi hai

> consigliato ed ho iniziato a fare qualche prova ed č nato un altro dubbio:
> la stringa di comunicazione che gli devo passare č in esadecimale....?


>
> Quindi se io devo passare una stringa del tipo <stx>02r30<etx><chk>

><---dove chk č il controllo di tutti i bit
>
> č corretto un passaggio di stringa del tipo (ho guardato un pň su post


> vecchi) comm1.output=chr$(02) & "02r30"&chr$(03) & chr$(06) ??? non so come

>č il carattere di controllo...forse chr$(06)?


>
> Ho provato a passargli questa stringa ma mi rilascia sempre dei caratteri
>anomali...
>

> Ho provato anche cosě ma niente:


>
> stringa = Chr(Val("&H02")) + Chr(Val("&H2r04")) + Chr(Val("&H03"))

meglio stringa = Chr$(&H2) & .... .. & Chr$(&h3)
cosě ti risparmi due conversioni

mi sfugge 02r30 č un comando o un indirizzo seguito da un comando?

> Comm1.Output = stringa
ok

> Mi restituisce due ?? rovesciati...

puň essere un messaggio di errore, prova a convertirli con la funzione
Asc( ) per vedere il valore numerico

> Qualche suggerimento?
In mancanza di dati specifici sul protocollo, solo nozioni generiche.

Il protocollo RS485 dovrebbe usare gli standard STX(02h) per iniziare
e ETX(03h) per finire la stringa,e al centro solo caratteri ASCII>20H

In genere prevede anche un checksum o BCC (puň essere lo xor
di tutte le parole della stringa o gli otto bits bassi della somma, a
seconda del protocollo).

La stringa diventa: 02h..addr...dati....03h BCC

Per esempio, per trasmettere all'indirizzo 01 "ABC" diventa:
(in bytes esadecimali)
2 30 31 34 31 34 32 34 33 3 +1byte di BCC

"A" che in ascii č 41H diventa 34H 31H cioč l'ascii di 4 e 1 e cosě
via


(Se BCC<20h allora BCC=BCC+20h per non confonderli coi comandi)

ti metto anche la funzione per il calcolo BCC con lo xor
che chiami cosě:
stringa= stringa & Chr$(CrCC(stringa))
poi:
Comm1.Output = stringa

_____________________

Public Function CrCC(ByVal InSt As String) As Long
Dim T As Byte, Bcc As Long 'da STX+1 fino a ETX

' Bcc = 0
For i = 2 To Len(InSt) 'Step 2
T = Asc(Mid$(InSt, i, 1))
Bcc = Bcc Xor T
If Asc(Mid$(InSt, i, 1)) = Etx Then Exit For
Next
If Bcc < &H20 Then Bcc = Bcc + &H20
'InSt = InSt + Chr$(Bcc) + Chr$(0) ' + Chr$(0)
CrCC = Bcc

End Function
_____________________

ciao
Stefano

Buch

unread,
Apr 25, 2004, 9:34:38 AM4/25/04
to
In mancanza di dati specifici sul protocollo, solo nozioni generiche.
>
> Il protocollo RS485 dovrebbe usare gli standard STX(02h) per iniziare
> e ETX(03h) per finire la stringa,e al centro solo caratteri ASCII>20H
>
> In genere prevede anche un checksum o BCC (può essere lo xor

> di tutte le parole della stringa o gli otto bits bassi della somma, a
> seconda del protocollo).
>
> La stringa diventa: 02h..addr...dati....03h BCC
>
> Per esempio, per trasmettere all'indirizzo 01 "ABC" diventa:
> (in bytes esadecimali)
> 2 30 31 34 31 34 32 34 33 3 +1byte di BCC
>
> "A" che in ascii è 41H diventa 34H 31H cioè l'ascii di 4 e 1 e così

> via
>
>
> (Se BCC<20h allora BCC=BCC+20h per non confonderli coi comandi)
>
> ti metto anche la funzione per il calcolo BCC con lo xor
> che chiami così:

> stringa= stringa & Chr$(CrCC(stringa))
> poi:
> Comm1.Output = stringa
>
> _____________________
>
> Public Function CrCC(ByVal InSt As String) As Long
> Dim T As Byte, Bcc As Long 'da STX+1 fino a ETX
>
> ' Bcc = 0
> For i = 2 To Len(InSt) 'Step 2
> T = Asc(Mid$(InSt, i, 1))
> Bcc = Bcc Xor T
> If Asc(Mid$(InSt, i, 1)) = Etx Then Exit For
> Next
> If Bcc < &H20 Then Bcc = Bcc + &H20
> 'InSt = InSt + Chr$(Bcc) + Chr$(0) ' + Chr$(0)
> CrCC = Bcc
>
> End Function
> _____________________
>
> ciao
> Stefano

> Il protocollo RS485 dovrebbe usare gli standard STX(02h) per iniziare


> e ETX(03h) per finire la stringa,e al centro solo caratteri ASCII>20H
>

> In genere prevede anche un checksum o BCC (può essere lo xor


> di tutte le parole della stringa o gli otto bits bassi della somma, a
> seconda del protocollo).
>
> La stringa diventa: 02h..addr...dati....03h BCC
>
> Per esempio, per trasmettere all'indirizzo 01 "ABC" diventa:
> (in bytes esadecimali)
> 2 30 31 34 31 34 32 34 33 3 +1byte di BCC
>

> "A" che in ascii è 41H diventa 34H 31H cioè l'ascii di 4 e 1 e così


> via
>
>
> (Se BCC<20h allora BCC=BCC+20h per non confonderli coi comandi)
>
> ti metto anche la funzione per il calcolo BCC con lo xor

> che chiami così:


> stringa= stringa & Chr$(CrCC(stringa))
> poi:
> Comm1.Output = stringa
>
> _____________________
>
> Public Function CrCC(ByVal InSt As String) As Long
> Dim T As Byte, Bcc As Long 'da STX+1 fino a ETX
>
> ' Bcc = 0
> For i = 2 To Len(InSt) 'Step 2
> T = Asc(Mid$(InSt, i, 1))
> Bcc = Bcc Xor T
> If Asc(Mid$(InSt, i, 1)) = Etx Then Exit For
> Next
> If Bcc < &H20 Then Bcc = Bcc + &H20
> 'InSt = InSt + Chr$(Bcc) + Chr$(0) ' + Chr$(0)
> CrCC = Bcc
>
> End Function
> _____________________
>
> ciao
> Stefano

> In mancanza di dati specifici sul protocollo, solo nozioni generiche.


>
> Il protocollo RS485 dovrebbe usare gli standard STX(02h) per iniziare
> e ETX(03h) per finire la stringa,e al centro solo caratteri ASCII>20H
>

> In genere prevede anche un checksum o BCC (può essere lo xor


> di tutte le parole della stringa o gli otto bits bassi della somma, a
> seconda del protocollo).
>
> La stringa diventa: 02h..addr...dati....03h BCC
>
> Per esempio, per trasmettere all'indirizzo 01 "ABC" diventa:
> (in bytes esadecimali)
> 2 30 31 34 31 34 32 34 33 3 +1byte di BCC
>

> "A" che in ascii è 41H diventa 34H 31H cioè l'ascii di 4 e 1 e così


> via
>
>
> (Se BCC<20h allora BCC=BCC+20h per non confonderli coi comandi)
>
> ti metto anche la funzione per il calcolo BCC con lo xor

> che chiami così:


> stringa= stringa & Chr$(CrCC(stringa))
> poi:
> Comm1.Output = stringa
>
> _____________________
>
> Public Function CrCC(ByVal InSt As String) As Long
> Dim T As Byte, Bcc As Long 'da STX+1 fino a ETX
>
> ' Bcc = 0
> For i = 2 To Len(InSt) 'Step 2
> T = Asc(Mid$(InSt, i, 1))
> Bcc = Bcc Xor T
> If Asc(Mid$(InSt, i, 1)) = Etx Then Exit For
> Next
> If Bcc < &H20 Then Bcc = Bcc + &H20
> 'InSt = InSt + Chr$(Bcc) + Chr$(0) ' + Chr$(0)
> CrCC = Bcc
>
> End Function
> _____________________
>
> ciao
> Stefano

Sono riuscito a trovare il manualino del contatore d'energia su internet:
http://www.langer-messtechnik.de/download/D96FM4-manual.pdf,
c'è una sezione chiamata network communication in cui dice:
Communication by means of frames of variable lenght, 7 bit ASCII code
character, code from 00 up to 127...e dopodiche è spiegata la struttura per
l'interrogazione dello strumento.

Se non erro tutta la stringa deve essere convertita in caratteri ascii più
la funzione finale di controllo...visto che poi la funzione Asc restiuisce
il codice del primo carattere della stringa occorre fargli convertire tutti
i caratterti della stringa
<stx>
01r04 <---dove 01 è l'adress del contatore e r04 sono i dati che si
vogliono leggere
<etx>
<chk><--check sum di tutti i caratteri
in sostanza al contatore arriverebbe una sequenza di numeri... ma non sono
sicuro.. mi sa che sto perdendo il nord :((

SB

unread,
Apr 26, 2004, 4:52:09 AM4/26/04
to
On Sun, 25 Apr 2004 13:34:38 GMT, "Buch" <em...@privacy.com> wrote:

>
>Sono riuscito a trovare il manualino del contatore d'energia su internet:
>http://www.langer-messtechnik.de/download/D96FM4-manual.pdf,
>c'è una sezione chiamata network communication in cui dice:
>Communication by means of frames of variable lenght, 7 bit ASCII code
>character, code from 00 up to 127...e dopodiche è spiegata la struttura per
>l'interrogazione dello strumento.

Questo significa che devi aprire la porta con settings: 9600,n,7,1

>Se non erro tutta la stringa deve essere convertita in caratteri ascii più
>la funzione finale di controllo...visto che poi la funzione Asc restiuisce
>il codice del primo carattere della stringa occorre fargli convertire tutti
>i caratterti della stringa
><stx>

Chr$(2)


>01r04 <---dove 01 è l'adress del contatore e r04 sono i dati che si
>vogliono leggere

"01r04" stringa

><etx>
Chr$(3)

><chk><--check sum di tutti i caratteri

il checksum con lo XOR, come la funzione che ti ho mandato prima

>in sostanza al contatore arriverebbe una sequenza di numeri

no gli mandi una stringa con Mscomm1.output

Poi meglio che setti Mscomm1.InputLen=1 e che fai un polling di un
carattere alla volta fino a ETX, poi aspetti il checksum e lo
confronti.

Lui risponderà con una sequenza analoga:
The answer from the instrument has the format:
<STX> <blank> value <blank> factor <blank> unit <blank> <ETX> <CHK>
2 20 hex 20 hex K or M 20 hex 20 hex 3 XOR

abbastanza chiaro, mi sembra, dopo pochi tentativi devi riuscire a
leggere qualcosa.

ciao
Stefano

Buch

unread,
Apr 27, 2004, 4:02:06 PM4/27/04
to

"SB" <stNOOOb...@tin.it> ha scritto nel messaggio
news:fjip801jvqrs7rmd8...@4ax.com...

Ciao Stefano sono ancora qui a disturbati (perdonami :) )

Forse qualcosa è migliorato visto che ora lo strumento mi dice: _ZZHzJ
:))) l'Hz sembrerebbe Hertz ma non credo lo sia :)

non mi è chiaro purtroppo ancora bene il suo funzionamento:

lo strumento mi restituisce sempre dei caratteri anomali sia che metto
l'indirizzo 01 (indirizzo reale della macchina) che un indirizzo 02 o 03 o
04 seguito dal comando r30 nella stringa che invio al contatore di energia

stringa = Chr$(2) & "01r30" & Chr$(3)

Comm1.Output = stringa & CrCC(stringa) <-- è corretto questo passaggio?non
ho capito bene cosa gli arriva allo strumento con il checksum..
la somma totale dei bit?

e settare mscomm1.inputlen=1 intendi fare passare allo strumento un
carattere per volta con un ciclo? tipo: & H 0 2 s t r i n g a & h 0 3

Ultimo e non meno importante per vedere qualcosa di leggibile ammesso che
passi la stringa correttamente occorrerà riconvertire carattere per
carattere che lo strumento restituisce in decimale?

Grazie per l'aiuto.

SB

unread,
Apr 28, 2004, 4:02:06 AM4/28/04
to
On Tue, 27 Apr 2004 20:02:06 GMT, "Buch" <em...@privacy.com> wrote:

>Forse qualcosa è migliorato visto che ora lo strumento mi dice: _ZZHzJ
>:))) l'Hz sembrerebbe Hertz ma non credo lo sia :)

Neanch'io

>non mi è chiaro purtroppo ancora bene il suo funzionamento:
>lo strumento mi restituisce sempre dei caratteri anomali sia che metto
>l'indirizzo 01 (indirizzo reale della macchina) che un indirizzo 02 o 03 o
>04 seguito dal comando r30 nella stringa che invio al contatore di energia

L'indirizzo lo devi selezionare come il baud rate, vedi il tuo manuale
a pag.12

>stringa = Chr$(2) & "01r30" & Chr$(3)

devi mettere il checksum, che è lo XOR di tutte le cifre precedenti.

ti rimetto la funzione:
_____________________

Public Function CrCC(ByVal InSt As String) As Long

Dim T As Byte, Bcc As Long 'da STX fino a ETX

' Bcc = 0
For i = 1 To Len(InSt) 'Step 2


T = Asc(Mid$(InSt, i, 1))
Bcc = Bcc Xor T
If Asc(Mid$(InSt, i, 1)) = Etx Then Exit For
Next
If Bcc < &H20 Then Bcc = Bcc + &H20
'InSt = InSt + Chr$(Bcc) + Chr$(0) ' + Chr$(0)
CrCC = Bcc

End Function
_____________________

>Comm1.Output = stringa & CrCC(stringa) <-- è corretto questo passaggio?non
stringa= stringa & Chr$(CrCC(stringa))
Comm1.Output = stringa

>ho capito bene cosa gli arriva allo strumento con il checksum..
>la somma totale dei bit?

gli arriva un carattere di controllo per capire se la stringa è valida
o no

>e settare mscomm1.inputlen=1 intendi fare passare allo strumento un
>carattere per volta con un ciclo? tipo: & H 0 2 s t r i n g a & h 0 3

InputLen=1 vuol dire che tu leggi la sua risposta un carattere alla
volta, devi fare un loop fino a ETX poi aspettare il CrCC e
confrontarlo.

>Ultimo e non meno importante per vedere qualcosa di leggibile ammesso che
>passi la stringa correttamente occorrerà riconvertire carattere per
>carattere che lo strumento restituisce in decimale?

Ti consiglio di usare un file sequenziale dove mettere la
comunicazione ed esaminare quello, si fa prima a capire cosa non va e
vedere cosa arriva, poi fai le routines di elaborazione della
risposta.

OPEN "prova.txt" FOR APPEND as #1 'o usa freefile

e dopo ogni
Comm1.Output = stringa
fai anche
print #1, stringa
e dopo ogni lettura di carattere
ChrInp= Comm1.input
fai
print #1, ChrInp ;

alla fine
CLOSE #1

ed esamini il file "prova.txt" con un editor che veda anche
l'esadecimale

UltraEdit va benissimo
www.ultraedit.com

più di così non so come aiutarti

ciao
Stefano

0 new messages