Home > Foro > controladores SlimLine e Netsyst (LogicLab) > Información sobre la gestión del bus CAN
- Este tema tiene 9 respuestas, 3 participantes y se actualizó por última vez 4 años, hace 9 meses da Sergio Bertana.
-
autorPublicación
-
Septiembre 6, 2013 en 9: 50 am #35409Rubenpartícipe
Hola, necesito información más detallada sobre el bus CAN del Slimline. He leído el manual de programación pero no puedo entenderlo completamente.
SYSCANMESSAGE.MsgID: ¿Qué significa FF: Bit 31?
SysCANTSetMode: ¿filtro y máscara se refieren a la identificación del mensaje? Lógica entre ellos? ¿Son estos filtros Rx y Tx?
SysCANRxMsg: En el ejemplo, la máscara es 16 # 3FFFFFFF. Para 29 bits, ¿no debería ser 16 # 1FFFFFFF? El ID en el ejemplo es 16 # 00000000. Esto solo permite la recepción de paquetes con SYSCANMESSAGE.MsgID 16 # 00000000, no todos los paquetes. Es verdad ?
¿Tiene documentación más detallada?
¿Cuál es el tiempo de ejecución de SysCANTxMsg () y SysCANRxMsg ()?
¿El controlador de bus CAN y el del Freescale MX257?Septiembre 10, 2013 en 9: 06 am #37760Sergio BertanaAdministrador del foroTrato de aclarar cómo funciona el bus CAN en el SlimLine, comencemos diciendo que el controlador CAN 1 en el controlador ARM se utiliza como controlador CAN (Allego resumen de datos). El bit 31 (FF) de SYSCANMESSAGE.MsgID indica si el mensaje tiene un identificador para el bit 11 o para el bit 29.
Para utilizar el CAN es necesario inicializarlo definiendo la velocidad y los filtros, normalmente está configurado para recibir todos los mensajes SysCANSetMode(CAN_500KBIT, 16#00000000, 16#00000000);
Recepción de mensaje CAN
Los mensajes se reciben en interrupción y se almacenan en el búfer de recepción (32 envía hasta 8 bytes de datos cada uno). El programa de usuario con la función SysCANRxMsg(Mask, ID, ADR(Msg)); extrae el mensaje deseado del búfer y lo almacena en la variable msg. Es necesario ejecutar la función hasta que el búfer de recepción esté completamente vacío, gestionando todos los mensajes recibidos. El tiempo de ejecución de la función es de unos pocos nosotros pero para no perder mensajes se debe ejecutar cíclicamente en un tiempo menor que el tiempo de llenado del búfer (32 mensajes).Transmisión de mensaje CAN
Los mensajes se cargan en el búfer de transmisión (mensajes 32 hasta 8 bytes de datos cada uno) con la función SysCANTxMsg(ADR(Msg)); los mensajes son luego transmitidos interrumpidos por el sistema.Junio 15, 2019 en 6: 12 am #48173RuboxpartícipeTengo dudas sobre el uso de la comunicación CAN, tengo una CPU RS485 extendida (entonces no maneja la CAN, ¿verdad?) Y un módulo de expansión PCB126C130 que tiene características de bus de campo CAN / RS485.
¿Puedo usar el módulo de expansión para leer valores usando CAN?
¿Cómo se gestiona todo? En las funciones de lectura / escritura de CAN no veo un tipo de dirección de módulo en la que hacer lecturas y escrituras: ¿es algo que administra automáticamente la CPU?
Gracias por la ayuda que querrás brindarme.
Junio 15, 2019 en 6: 21 am #48178Sergio BertanaAdministrador del foroEl módulo de la CPU con puerto RS485 no puede administrar la CAN, el espacio en el módulo de la CPU se reduce, por lo que hemos compartido el espacio entre RS485 y CAN, debemos elegir la versión deseada.
En el módulo de expansión PCB126C130 hay un puerto RS232 que puede ser usado por programa, el acceso es exactamente el mismo que el de los puertos en el módulo de CPU usando el FB SysSerialPort, definiendo la definición en el campo COM PCOMx.y donde x es la dirección del módulo y con y el número de puerto en el formulario en su caso, el número 0.
Junio 15, 2019 en 6: 47 am #48191RuboxpartícipeHola, gracias por la respuesta: nunca había encontrado cómo abordar el puerto serie de los módulos. Entonces puedo usar el conector P1 en el módulo de expansión.
Para usar el conector P12 de ese módulo para comunicaciones CAN, ¿cómo puedo hacerlo, siempre que sea posible?
Junio 15, 2019 en 6: 50 am #48194Sergio BertanaAdministrador del foroSí, se puede usar el puerto serie RS232, pero el módulo que tiene (Modelo PCB126C130) tiene 1 como el primer número después del nivel C, es un módulo con solo RS232, el número 3 indica canales de entrada analógica 10.
De hecho, en su módulo, el conector P12 no está montado.
Junio 15, 2019 en 8: 02 am #48198RuboxpartícipeEmh ... (¿hay la cara que se entierra?): Estas son las preguntas que uno se hace cuando no tiene el hardware a mano, pero solo lo que el cliente le dice que ha leído sobre las características.
Tenía dudas sobre si acceder al sistema que sale con CAN y RS232… y me he quitado todas las dudas 🙂
Antes de hacer más preguntas como idiota, leeré la documentación dos veces, ¡lo prometo!
Gracias y buen trabajo
Junio 15, 2019 en 8: 04 am #48202Sergio BertanaAdministrador del foroLas preguntas de los clientes siempre son útiles ... una pregunta puede dar respuestas útiles para comprender mejor cómo funciona el sistema.
Junio 17, 2019 en 6: 06 am #48208RuboxpartícipeEntonces me permito otra pregunta, asumiendo que el CAN nunca lo he usado. Leí algo en la red para entender algo más.
Si tuviera un módulo de expansión con el puerto CAN, y conectado a él un sistema que se comunica por CAN, ¿es correcto que en los FB no haya "direccionamiento" del puerto CAN? Debería ser una especie de "TCP" que envíe el paquete de datos a través de los puertos CAN y espere la respuesta, ¿verdad?
Sin embargo, todavía debería tener la CPU principal que administra el protocolo CAN. De lo contrario, ¿no podría leer nada?
Junio 17, 2019 en 6: 14 am #48225Sergio BertanaAdministrador del foroActualmente, la única forma de administrar el bus CAN es tener la versión CAN del módulo de la CPU, MPS054B200). Si nos fijamos en el IEC61131-3 Manual de programación, encontrarás instrucciones sobre cómo utilizar las funciones. SysCANTxMsg e SysCANRxMsg.
Un mensaje CAN se compone de un identificador único a 11 o 29 bits y una trama de datos que puede alcanzar un máximo de 8 bytes. Todos los dispositivos de la red son maestros y esclavos, cada mensaje transmitido es recibido por todos los sistemas de la red que lo filtran con el ID deseado.
-
autorPublicación
- Debe iniciar sesión para responder a este tema.