Microsoft Access & Arduino

Il link lo correggo ora... intanto prova con questo MDB in allegato che sembra fatta apposta per te!

Seriale00.mdb (224 KB)

Ma e' testato o... supposto? Io ci ho sbattuto la testa una settimana e alla fine pure perso un contratto (da ben diciassette euro... :roll_eyes: ) per colpa di quel testone di VBA!

Lungi da me farti perdere altri lucrosi profitti... :smiley:

Se la domanda è "ma tu lo hai sperimentato?" rispondo di no, tuttavia l'ho fatto in passato con sistemi analoghi (che ora non ricordo).

Ma, scusa, perchè non provi la routine contenuta nel MDB? Basta solo provarla...

Aspettavo di tornare dall'ufficio, mo' provo...
Ma il fatto che l' "autore" dell'articolo dica di non capire niente di programmazione non promette bene... Probabilmente ha solo tradotto l'articolo senza manco provare il programma.
Tra l'altro mi pare che quel sorgente l'avevo già provato, preso pero' dall'articolo originale inglese!

Ah, già, m'ero pure iscritto apposta e poi manco io l'ho trovato nella sezione download! Mi sa che è tipo riservata...
Tocca andare di copia/incolla... cosa che probabilmente ho già fatto (ne ho provate tante che non mi ricordo più...)

Bah, il file MDB neanche riesce ad aprire la porta...

Ho provato il file MDB e, dopo aver configurato opportunamente la variabile ComSetting, funziona perfettamente.

Come prova mi sono collegato ad Arduino tramite la porta USB (seriale COM4).

Come sistema operativo uso Windows XP Pro ed Access 2003

cyberhs:
Ho provato il file MDB e, dopo aver configurato opportunamente la variabile ComSetting, funziona perfettamente.

Come prova mi sono collegato ad Arduino tramite la porta USB (seriale COM4).

Come sistema operativo uso Windows XP Pro ed Access 2003

Intanto grazie cyberhs ma la mia domenda è: in che modo potrei gestire l'apertura di 11-12 serrature???

L'ho già detto: grazie a moduli relé indirizzabili comandati in RS485.

L'RS485 è praticamente è l'evoluzione della seriale RS232, potendo lavorare in "multi drop". E' cioé possibile collegare una serie di moduli tutti in parallelo, ciascuno con il suo indirizzo e comandarli singolarmente.

Nel tuo caso in ogni armadio sarebbe presente un modulo il cui relè farebbe aprire le serratura.

I comandi verrebbero dati dal programma Access mediante la linea seriale a cui è collegato un convertitore RS232-RS485.

cyberhs:
L'ho già detto: grazie a moduli relé indirizzabili comandati in RS485.

L'RS485 è praticamente è l'evoluzione della seriale RS232, potendo lavorare in "multi drop". E' cioé possibile collegare una serie di moduli tutti in parallelo, ciascuno con il suo indirizzo e comandarli singolarmente.

Nel tuo caso in ogni armadio sarebbe presente un modulo il cui relè farebbe aprire le serratura.

I comandi verrebbero dati dal programma Access mediante la linea seriale a cui è collegato un convertitore RS232-RS485.

Scusami ma te ne sarei grato se mi scrivessi un piccolo esempio per n. due armadi (schema di collegamento pc->n.2 multidrop) con relativo esempio di codice per gestirli, grazie.

Di moduli RS485 ce ne sono di varie marche e con varie funzioni.

I più semplici hanno un solo canale a relè, ma ce ne sono di più complessi che ne hanno anche 16 oltre ad ingressi optoisolati, ingressi ed uscite anlogiche, contatori, ecc.

CI sono anche quelli che fungono da convertitore RS232-RS485 per il collegamento al PC e, se volessi usare la LAN Ethernet 10/100 al posto del RS232, anche quelli Ethernet-RS485.

I più famosi sono gli ADAM dell'Advantech, ma anche la National ha i suoi e poi tanti altri: devi cercare quelli a singolo canale in uscita e trovare quelli a prezzo minore (gli ingressi, ad esempio non ti servono per la tua applicazione)

Inserisci il modulo all'interno dell'armadio (opportunamente indirizzato con dip switch oppure con procedura software) e dall''esterno dell'armadio fornisci l'alimentazione 12/24Vdc e la linea RS485 (due fili).

Per il software puoi usare l'MDB che ho precedentemente inserito che consente da VBA di settare correttamente la linea RS232.

Poi devo solo inviare il comando per attivare il relè (il comando dipende dalla marca, ma il manuale riporta esempi anche in VB)

cyberhs:
Di moduli RS485 ce ne sono di varie marche e con varie funzioni.

I più semplici hanno un solo canale a relè, ma ce ne sono di più complessi che ne hanno anche 16 oltre ad ingressi optoisolati, ingressi ed uscite anlogiche, contatori, ecc.

CI sono anche quelli che fungono da convertitore RS232-RS485 per il collegamento al PC e, se volessi usare la LAN Ethernet 10/100 al posto del RS232, anche quelli Ethernet-RS485.

I più famosi sono gli ADAM dell'Advantech, ma anche la National ha i suoi e poi tanti altri: devi cercare quelli a singolo canale in uscita e trovare quelli a prezzo minore (gli ingressi, ad esempio non ti servono per la tua applicazione)

Inserisci il modulo all'interno dell'armadio (opportunamente indirizzato con dip switch oppure con procedura software) e dall''esterno dell'armadio fornisci l'alimentazione 12/24Vdc e la linea RS485 (due fili).

Per il software puoi usare l'MDB che ho precedentemente inserito che consente da VBA di settare correttamente la linea RS232.

Poi devo solo inviare il comando per attivare il relè (il comando dipende dalla marca, ma il manuale riporta esempi anche in VB)

Sei stato molto chiaro; altra cosa che vorrei chiederti non avendo esperienza in tal senso, potresti indicarmi un link con relativo prodotto che fa al mio caso sai non vorrei fare un acquisto sbagliato, grazie.

Purtroppo ho trovato il modulo ad un relé, ma il costo è paragonabile a quelli con più relé (non chiedermi il perché).
Allora ho ampliato la ricerca su quelli ad 8 relé.

L'ideale sarebbero i moduli ADAM 4000 in particolare il 4168 (8 relé):
www.advantech.com
downloadt.advantech.com/ProductFile/Downloadfile1/1-KK8EOO/ADAM-4100%20series%20user%20manual%20Ed.1.9.pdf
Purtroppo sono costosi.

Questo fornitore ungherese KMtronic, invece, ha costi più contenuti, ma devi inserire in una scatola il dispositivo:
www.sigma-shop.com
www.sigma-shop.com/product/68/usb-to-rs485-ftdi-interface-board-pcb.html
www.sigma-shop.com/product/47/rs485-8-channel-relay-controller-12vdc-rs485-bus-id-01-relays-1-8.html

Nota che per questa seconda opzione devi acquistare il controller con un numero diverso (1-32) per ogni armadio blindato.

cyberhs:
Purtroppo ho trovato il modulo ad un relé, ma il costo è paragonabile a quelli con più relé (non chiedermi il perché).
Allora ho ampliato la ricerca su quelli ad 8 relé.

L'ideale sarebbero i moduli ADAM 4000 in particolare il 4168 (8 relé):
www.advantech.com
downloadt.advantech.com/ProductFile/Downloadfile1/1-KK8EOO/ADAM-4100%20series%20user%20manual%20Ed.1.9.pdf
Purtroppo sono costosi.

Questo fornitore ungherese KMtronic, invece, ha costi più contenuti, ma devi inserire in una scatola il dispositivo:
www.sigma-shop.com
www.sigma-shop.com/product/68/usb-to-rs485-ftdi-interface-board-pcb.html
www.sigma-shop.com/product/47/rs485-8-channel-relay-controller-12vdc-rs485-bus-id-01-relays-1-8.html

Nota che per questa seconda opzione devi acquistare il controller con un numero diverso (1-32) per ogni armadio blindato.

Un dubbio, in uscita (es. l'adam) sono semplici contatti (sicuramente puliti) no-nc oppure implusi cosa che a me serve (tipo pulsante) trattandosi di una serratura la quale come ben si sà ha solo bisogno di un impulto e non di contatto perennemente sempre chiuso o aperto.

I moduli a relé ovviamente hanno uscite "pulite".

Inoltre i moduli ADAM hanno una specifico comando "pulse", peraltro simulabile da software con gli altri tipi di moduli: basta mandare ON e poi OFF, separati da un ritardo!

Ok grazie ora cerco di organizzarmi per l'acquisto.

Ps. speriamo di non fare cavolate!! :~

jumpjack:
E il sw come si interfaccia alla porta?

Cercando ad esempio
rs485 usb
oppure
rs485 pci

cyberhs:
I moduli a relé ovviamente hanno uscite "pulite".

Inoltre i moduli ADAM hanno una specifico comando "pulse", peraltro simulabile da software con gli altri tipi di moduli: basta mandare ON e poi OFF, separati da un ritardo!

cyberhs cosa scegliere tra questo con doppio modulo KMtronic Ltd: USB Eight Channel Relay Controller - RS232 Serial controlled - 12V
oppure potrebbe andar bene anche questo ma NON con rs232 ma usb??? KMtronic Ltd: USB Eight Channel Relay Controller - RS232 Serial controlled, 12V, PCB

quest'ultimo poi sarebbe gestibile da access/vba???

Il primo usa la RS232 che ha un limite di lunghezza dei cavi schermati (diciamo una ventina di metri) e può comandare solo una scheda relé.

il secondo usa direttamente la USB che, senza ripetitori, ha un limite di lunghezza di 5 metri ed anche questa può comandare solo una scheda relé.

La soluzione RS485, invece, puoà avera cavi oltre il km ed è multi drop (più schede relé).

La cosa più semplice IMHO è che la scheda venga "vista" dal sistema come una normale porta seriale.

Cercando un po' in rete sono capitato qui:

Viene fornito un file .bas (vb6) che incapsula la comuncazione seriale tramite api win32.
Copio dai commenti iniziali:

' This VB module is a collection of routines to perform serial port I/O without
' using the Microsoft Comm Control component. This module uses the Windows API
' to perform the overlapped I/O operations necessary for serial communications.

Secondo un utente di stackoverflow questo modulo può essere usato anche in VBA. Non l'ho provato, ma spero possa esserti utile. Ciao.