Bilancia collegata con seriale rs232

lunedì 10 gennaio 2011 - 20.30
Tag Elenco Tags  Access (.mdb)

mimmocapp Profilo | Newbie

Salve!
Dovrei leggere il peso di una bilancia in una casella di testo di una maschera ACCESS. Ho provato a cercare in tanti siti e forum ma non riesco ad uscirne, vuoi per il linguaggio troppo "tecnico" e anche per l'impossibilità di importare l'activex MSCOMM32.ocx nella maschera. (installato nella cartella system32 e registrato mi dà problemi di registrazione ed altro!). Ho anche letto che ci sono delle libreria free o degli ocx free!
C'è la possibilità di riuscire a risolvere il problema?
Vi ringrazio e vi saluto!

MarKonE Profilo | Guru

Ciao,

potresti riportare l'esatto errore che ricevi ? Dici che registri il file ma ottieni un errore di registrazione..

Che versione di Access stai utilizzando ? Quale sistema operativo ?

CIAO !

My Blog... http://blogs.dotnethell.it/Mark/

mimmocapp Profilo | Newbie

Ho installato l'ocx nella cartella System32 di Windows XP e l'ho registrato con il comando esequi "regsvr32 mscomm32.ocx" e mi dà conferma dell'avvenuta registrazione (DllRegisterServer in mscomm32.ocx riuscito) però quando da ACCESS (MS Office versione 2003), in maschera struttura, dal menu inserisci activeX inserisco il controllo "Microsoft communication controll, version 6.0) mi esce una msbox con scritto: Microsoft Office Access non sopporta il controllo ActiveX.
Dove sbaglio?

MarKonE Profilo | Guru

Ciao,

dove hai recuperato il file mscomm32.ocx ?

Sulla macchina on questione è installata una qualche versione di Visual Basic ?

Ciao!

My Blog... http://blogs.dotnethell.it/Mark/

mimmocapp Profilo | Newbie

Sul Pc c'è installato Microsoft Visual Studio 2008 e VB6, in queste applicazioni il controllo lo importo senza problemi, in MSAccess mi dice che non è supportato.

MarKonE Profilo | Guru

Il problema sembra dovuto alla presenza di uno specifico aggiornamento Microsoft.

Ci sono diversi modi di risolvere la cosa. Uno sarebbe quello di rimuovere l'aggiornamento..ma personalmente sconsiglio vivamente questa via.

Una valida (ed interessante, a mio avviso) alternativa sarebbe quella di interfacciare la porta seriale tramite API rinunciando all'OCX, mantenendo tutti gli aggiornamenti del sistema operativo.

Qui trovi indicazioni in italiano : http://support.microsoft.com/kb/639415

Qui trovi un esempio scaricabile basato sulle API (relativo ad Access 2000 ma non mi aspetto problemi) : http://web.tiscali.it/giorgiorancati/msaccess/

E qui trovi il codice scaricabile da inserire in un modulo VBA : http://www.thescarms.com/vbasic/commio.aspx

CIAO !!


My Blog... http://blogs.dotnethell.it/Mark/

mimmocap Profilo | Newbie

Niente da fare: scarico il file di access (seriale000.mdb), modifico i dati inerenti alla comunicazione della bilancia nel modulo, avvio l'applicazione e non mi da alcuna segnalazione di errore. Se schiaccio il tasto "send" mi dà ERR04 se metto un paio di caratteri nella textbox di invio e schiaccio "send" mi dà ERR01. Quello che non capisco è cosa devo inviare?, come faccio a capire che funziona?
Un'altra cosa: quello che serve al mio scopo è solo leggere in una casella testo il peso senza dover schiacciare nessun tasto.
Una sorta di display!
L'applicazione della ditta costruttrice che mi è stata installata sul computer e che fa da lettore è una applicazione fatta in visual basic (almeno credo) e come ho potuto vedere è composta da un file .exe e da alcune .dll e un paio di .xml dove sono indicati i vari parametri di comunicazione e configurazione.
Secondo te è più semplice farlo in VB?
Scusami se abuso della tua pazienza
Ciao!

MarKonE Profilo | Guru

Ciao,

direi che in .net dovrebbero esserci delle classi native per la gestione delle porte seriali.

Da una ricerca veloce ho trovato questa :
http://msdn.microsoft.com/it-it/library/system.io.ports.serialport.aspx

E qui un interessante articolo relativo alla ricezione dati :
http://msdn.microsoft.com/it-it/library/7ya7y41k.aspx


My Blog... http://blogs.dotnethell.it/Mark/

mimmocap Profilo | Newbie

Quasi quasi mi arredo!!!
Cmq un piccolo quesito, il programmino della bilancia in questione ha una piccola funzione, ovvero, la possibilità di configurare un tasto della tastiera (nel mio caso la lettera "p") che attivato "scrive" il peso in qualsiasi applicazione Office. Infatti schiacciando "P" mi trasferisce il peso nella casella (quando la stessa è attivata) della maschera il peso. Siccome ci vogliamo complicare la vita, ho provato a mettere una routine evento [sendKey] su "attivata" sulla casella del form ma quando la casella si attiva mi esce la lettera "P".
Dove sbaglio?
Ho rotto le scatole?
Si può emulare un tasto con Access?
Sei un amico!
Ciao e grazie

MarKonE Profilo | Guru

>Quasi quasi mi arredo!!!

Questo mai

>Cmq un piccolo quesito, il programmino della bilancia in questione
>ha una piccola funzione, ovvero, la possibilità di configurare
>un tasto della tastiera (nel mio caso la lettera "p") che attivato
>"scrive" il peso in qualsiasi applicazione Office. Infatti schiacciando
>"P" mi trasferisce il peso nella casella (quando la stessa è
>attivata) della maschera il peso.

Quindi se ho capito bene.... il peso rilevato dalla bilancia viene "letto" dal tuo programma solamente nel momento in cui premi "p" ?

>Siccome ci vogliamo complicare
>la vita, ho provato a mettere una routine evento [sendKey] su
>"attivata" sulla casella del form ma quando la casella si attiva
>mi esce la lettera "P".

Per casella del form intendi il controllo "casella di testo" che dovrebbe riportare il peso ?

>Dove sbaglio?

Dovrei vedere un po' di codice... ma da quello che descrivi sembra che tu invii a tale casella direttamente la stringa "P" ... mentre non è la casella di testo..bensi il tuo programma che deve "ricevere" il tasto "p"

>Ho rotto le scatole?

Questo mai

>Si può emulare un tasto con Access?

Certo. Il problema è capire chi deve "ricevere" il tasto inviato con sendkey.

>Sei un amico!
>Ciao e grazie

Figurati ! Magari se mi spieghi un po' meglio e magari posti del codice è più facile aiutarti.

CIAO!


My Blog... http://blogs.dotnethell.it/Mark/

mimmocap Profilo | Newbie

Scusa ma forse mi sono spiegato male:
La bilancia ha il suo bel visore con un lcd dove viene visualizzato il peso, in più sul pc c'è installato una utility che riporta lo stesso peso sul desktop in tempo reale. In queta utility c'è, tra le configurazioni, oltre al classico settaggio della porta ("Com2; Baud 9600; Parità None; Bit 8; Stop 1; ed indirizzo ip) c'è la possibilità di assegnare la funzione di trasferimento peso ad un tasto della tastiera (in pratica quando si preme il tasto assegnato si trasferisce il peso all'applicazione Office aperta. Per esempio: io metto un peso sulla bilancia, il display della bilancia e l'utility sul Pc me lo visualizzano, sullo stesso pc ho aperto una mashera di access con il cursore che lampeggia in una casella di testo, a questo punto premo il tasto configurato, nel mio caso la lettera "P", e nella casella mi appare il peso! La stessa cosa se io avessi Excel aperto, con il tasto "P" inserisco il peso visualizzato in una cella. Identica cosa per Word ecc.). Posso emulare questo tasto con Access, facendo in modo che quando il cursore arrivi nella casella di testo, invece di premere io il tasto "P" me lo preme Access? (sarò da manicomio?)
Per quanto riguarda il discorso di arresa, è dettato dal fatto che di visual basic non ne capisco una mazza. Vedo una sfilza di codice che non so dove inserire, le function???? dove? come?. Access ancora ancora riesco a capire come orientarmi. Per esempio, per farti capire il livello: ho letto di chi ha comunicato con bilance tramite hyper terminal, ci provo io facendo una nuova connessione di HT configurando il settaggio della porta ed attivarlo. Mi esce una finestra tutta bianca e non so che fare.
Ti ringrazio per il tempo che perdi per me e ti saluto calorosamente!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5