CanOpen

Ciao! Qualcuno di voi ha mai usato il protocollo CanOpen con arduino? Devo comunicare con un plc che ha la possibilità di usare una porta can e il protocollo canopen: vista la possibilità di usare un dizionario di oggetti e quindi rendere abbastanza standard la cosa ed anche per la possibilità di comunicare da entrambi i lati lo preferisco al RS485. Ho trovato qualche libreria, come canfestival, ma non riesco a capirne il funzionamento. Avevo pensato di usare il can generico e crearmi da solo una libreria CanOpen, ma mi blocco già nella prima parte degli 11-bit Identifier (come dividere in byte i 12 bit?) Sapete darmi qualche consiglio? Grazie

Emiliop: Avevo pensato di usare il can generico e crearmi da solo una libreria CanOpen, ma mi blocco già nella prima parte degli 11-bit Identifier (come dividere in byte i 12 bit?)

Lavori con degli "unsigned int", che sonno i*nteri non segnati a 16 bit* ed operi con gli operatori "bitwise" ... esempio, ho i 12 bit di cui parli e voglio estrarre i primi 11 ...

I 12 bit saranno dal bit 0 al bit 11 del nostro intero, mentre dal bit 12 al bit 15 sarà spazio non utilizzato (se lavori a 12 bit e li metti in un intero da 16 bit, te ne restano 4 non usati). Vuoi i primi 11, ti basta fare un operazione di AND con il valore 0x07FF che lascierà invariati i bit da 0 a 10 (i primi 11 bit) e porterà a 0 tutti gli altri, restituendoti così il valore dei tuoi 11 bit.

Guglielmo

... relativamente porprio al CanOpen, hai già vsto QUESTA libreria ? Implemeta, stando alla descrizione, un "Arduino Generic CANopen Node" ...

Comunque, se fai una ricerca su Google per "canopen arduino" ... ci sono un bel po' di link da leggersi !

Guglielmo

Grazie! Avevo visto un sacco di post e le due librerie principali.. dopo aver contattato gli autori uno dei due mi ha detto che era un prototipo. Comunque quindi è fattibile usare il can normale per il canopen? Mandando gli 11 bit dell'identifier già dovrei ricevere una risposta??