Estoy tratando de simular el comportamiento del controlador remoto utilizando el CANopen (por ejemplo: movimientos del joystick para mover el eje correspondiente).
Así es como me acerqué para resolver este problema (robot node = 30 y control remoto node = 1 ):
-
Primero capturé los TPDO que se envían al robot, cuando enciendo el motor con el control remoto.
-
Luego, desconecté el control remoto. Al principio no apareció nada en mi rastreo, solo el mensaje SYNC y el mensaje Heartbeat de 30 (robot).
-
Primero configuro la solicitud de maestro NMT (0x000) como operativa. Luego envié un mensaje de latido a 1 (controlador) para simular que el control remoto está conectado y funcionando.
-
Luego, pude leer los RPDO (los mensajes que recibe el robot).
-
Envié TPDO desde el paso 1 para simular que se presionó el botón "encender el motor" del control remoto.
-
El motor luego sube 0,5 s y luego se apaga directamente. Algo apaga el motor directamente ...
Revisé el rastreo y descubrí que los RPDO están cambiando su valor al estado "activado" y al estado "desactivado". ¿Hay algo malo hasta ahora?
Otra pregunta es: si quiero simular el control remoto, cuál es el maestro (si asumí correctamente ...). ¿Es suficiente enviar mensajes de NMT, Heartbeat y PDO como lo hice? ¿Hay algo de lo que deba preocuparme por los SDO?
Update2: Logré encender el motor. Pensé que el control remoto está enviando el latido del corazón con el mismo período que el robot, pero no ... mucho más rápido que el robot.
Sin embargo, el eje en movimiento todavía no funciona. Las capturas de pantalla de configuración y rastreo de PDO antes y después de desconectar el controlador remoto se encuentran a continuación. La configuración de PDO no se pudo leer ("Error de tiempo de ejecución de SDO"). Antes de desconectar el control remoto, se envían un montón de SDO para configurar todo: enlace . Después de reemplazar el control remoto con mi laptop. Envié esta secuencia de SDO uno por uno manualmente. Sin embargo, todavía la configuración de PDO no se pudo obtener del diccionario de objetos.
Si la configuración de los SDO es el problema:
- ¿Por qué está encendido el motor?
- ¿Es posible configurar esto manualmente como lo hice? La secuencia del mensaje debe mantenerse con seguridad. Pero ¿qué pasa con el intervalo de tiempo entre los mensajes?
Configuración de PDO y seguimiento antes de desconectar el controlador remoto (Paso 1):
ConfiguracióndePDOyseguimientodespuésdedesconectarelcontroladorremoto(Paso2-6):