Newsgroup: it.comp.lang.visual-basic
Titolo: RS 232c + Interfaccia !

 Salve.
 Sono Simone.
 Per far' funzionare un interfaccia collegata alla Porta seriale del mio
 vecchio PC 386 usavo QBasic. Il PC si è rotto e vorrei trasferire  i
 controlli dell' interfaccia in VBasic e farlo girare in W98.Sono riuscito
 bene o male a far funzionare in parte il dispositivo collegato alla COM1 :
 il dispositivo e un convertitore seriale parallelo, oveero prende i comandi
 (l'input) dal computer e le riporta in uscita su 16 porte indipendenti.
 Quindi con un comando da PC si possono far accendere o spegnere dei RELAY,
luci,
 motori, rotori per puntamento parabole ecc. ecc.
 Questo di seguito è il succo del codice sorgente in Qbasic che usavo per
 impartire i comandi all'interfaccia:
 open "com1:2400,n,8,1," for random as #1
 print #1, chr$(0)             ' seleziona il primo banco di 8 porte (A) .
                                       ' chr$(1) il secondo banco di 8
porte(B).
 print #1, chr$(255)         ' seleziona quali delle 8 porte devo
utilizzare(255 = tutte)
 print #1, chr$(4)             ' consenso all'interfaccia alla ricezzione
dell'ordine  che seguirà
                                       ' (4 = banco A)   (5= bancoB)
 print #1, chr$(255)         ' posiziona su ON tutte le porte sopra
predisposte.
 Così facendo basta modificare il valore dell'ultimo input per sciegliere
quale porta accendere o spegnere.
 Fino qui tutto ok!
 PER "trasferire" questo codice il VB o utilizzato l' oggetto " MSComm1 " e
output, come segue:
Private Sub Command1_Click()
MSComm1.CommPort = 1
MSComm1.Settings = "2400,n,8,1"
MSComm1.PortOpen = True
MSComm1.Output = Chr$(0)
MSComm1.Output = Chr$(255)
MSComm1.Output = Chr$(4)
MSComm1.Output = Chr$(255)
MSComm1.PortOpen = False
End Sub
Il secondo banco di porte viene usato come INPUT di dati dall'interfaccia
verso il computer con questo codice :
open "com1:2400,n,8,1," for random as #1
print #1, chr$(1)         ' seleziona il primo banco di 8 porte (A) .
                                  '  chr$(1) il secondo banco di 8 porte(B).
print #1, chr$(0)         ' seleziona quali delle 8 porte devo utilizzare (0
= tutte)
print #1, chr$(3)         ' consenso all'interfaccia alla trasmissione del
dato
                                  ' (2 = banco A)   (3= bancoB)
dato$ = input$(1,#1)  ' riceve il dato
dato=asc(dato$)        ' converte il dato in decimale
print dato                   ' stampa il dato ricevuto.
Provato,come per OUTPUT, a realizzare una rutine "INPUT" come segue ma nulla
da fare.......
Private Sub Command1_Click()
Dim rx$
MSComm1.CommPort = 1
MSComm1.Settings = "2400,n,8,1"
MSComm1.PortOpen = True
MSComm1.Output = Chr$(1)
MSComm1.Output = Chr$(0)
MSComm1.Output = Chr$(3)
rx$ = MSComm1.Input
dato = Asc(rx$)
Text1.Text = Text1.Text  & dato
MSComm1.PortOpen = False
End Sub
NON c'è stato modo di far assegnare la variabile R$. R$ rimane vuota !! e di
conseguenza
il prg da errore quando si trova a convertire la variabile R$ in dato.
Spero che tu mi possa aiutare !!
Grazie di essere arrivato fino in fondo, aspetto con ansia tue notizie
 GRAZIE........
 Simone.
 mailto:
 
ske...@tin.it

 wrote in message 8o32q4$puv$1...@nslave1.tin.it...


 wrote in message
8o3en0$6bg$1...@serv1.iunet.it...


 wrote in message
news:8o3vsu$236$1...@nslave1.tin.it...


 wrote in message
news:8o5ilr$2n32$1...@stargate1.inet.it...
