Java y CANopen
automation network-protocols (1)
Fondo
Estoy obligado a crear un programa Java en una computadora portátil para recibir / enviar mensajes CANopen.
RJ45 es elegido para ser el medio físico de la red. Soy nuevo en la programación de comunicaciones de CANopen y Java.
Perdónenme si parezco no iniciado. La verdad es que he estado leyendo mucho, pero todavía no sé cómo comenzar.
Preguntas
- Además de conectar una PC a la red CANbus, ¿qué más hace el adaptador CAN-PC?
- ¿Es posible conectar la computadora portátil a la red CANbus sin el adaptador CAN-PC?
- Si se requiere un adaptador CAN-PC, ¿qué tipo de adaptador debo usar? PCMCIA, paralelo, serial, usb, etc.?
- ¿Cómo empiezo a escribir el programa java para escuchar / escribir mensajes CANopen?
- ¿Qué bibliotecas debo usar?
- ¿Necesito crear mis propios controladores?
- ¿Debería mi programa manejar la monitorización del latido del corazón, la detección de errores, etc.? ¿O estos son cuidados por el adaptador CAN-PC?
- ¿Cómo recupero información específica de un nodo CANbus?
- ¿Cómo se crea el archivo EDS y el diccionario de objetos? ¿Todos los nodos los requieren?
- ¿Cómo simulo una red CAN para probar mi programa Java sin comprar hardware CAN?
Esas son muchas preguntas. Nunca he hecho ninguna programación relacionada con CAN en Java, pero vamos a ver qué preguntas puedo responder de todos modos:
1) Además de conectar una PC a la red CANbus, ¿qué más hace el adaptador CAN-PC?
Depende principalmente del controlador CAN que esté incrustado en su adaptador. Pero, básicamente, solo maneja las cosas de bajo nivel, como el arbitraje de buses, el manejo de errores, las retransmisiones y el almacenamiento de mensajes.
2) ¿Es posible conectar la computadora portátil a la red CANbus sin el adaptador CAN-PC?
No.
3) Si se requiere un adaptador CAN-PC, ¿qué tipo de adaptador debo usar? PCMCIA, paralelo, serial, usb, etc.
En una computadora portátil? Yo elegiría una interfaz USB. Tengo una buena experiencia con las interfaces de Kvaser.
4) ¿Cómo empiezo a escribir el programa Java para escuchar / escribir mensajes CANopen?
Depende de la API para su adaptador. La API probablemente estará basada en C, así que al menos comenzaría con algunos programas simples de prueba C. El proveedor de la interfaz CAN probablemente tenga algunos buenos ejemplos.
5) ¿Qué bibliotecas debería usar?
Probablemente el suministrado con su interfaz CAN, al menos para la parte CAN básica. Para la parte CANopen, hay algunas pilas comerciales CANopen disponibles y tal vez incluso algunas gratuitas. Dudo que haya escrito en Java. También puede implementar las partes necesarias de la pila CANopen si solo está haciendo una comunicación simple.
6) ¿Necesito crear mis propios controladores?
Generalmente no Depende de su sistema operativo y modelo de interfaz CAN. Seleccione una interfaz CAN con controladores para su sistema operativo.
7) ¿Debería mi programa manejar la monitorización del latido del corazón / detección de errores / etc.? ¿O estos son cuidados por el adaptador CAN-PC?
La pila CANopen debe manejar eso en el nivel CANopen. El manejo de errores de bus CAN de bajo nivel es atendido por su interfaz.
8) ¿Cómo recupero información específica de un nodo CANbus?
No sé a qué te refieres aquí. PDOs o SDOs dependiendo del tipo de información que desee.
9) ¿Cómo se crea el archivo EDS y el diccionario de objetos? ¿Todos los nodos los requieren?
Generalmente no necesita crear un archivo EDS, pero podría ser útil para fines de documentación. El objeto-diccionario se implementa en el software. Algunas partes de la OD son obligatorias si se hace algo que cumpla con los estándares.
10) ¿Cómo simulo una red CAN para probar mi programa java sin comprar hardware CAN?
Yo no ... Un simulador de autobús significativo probablemente sería más costoso de desarrollar que simplemente un adaptador CAN. Tenga en cuenta que muchos adaptadores CAN contienen interfaces duales, por lo que puede realizar pruebas de comunicación en un bus CAN real con poco más hardware que solo el adaptador y un par de resistencias de terminación.