Accueil > Forum > contrôleurs SlimLine e Netsyst (LogicLab) > Informations sur la gestion du bus CAN
- Ce sujet a 9 réponses, 3 participants et a été mis à jour pour la dernière fois 4 années, 10 mois da Sergio Bertana.
-
auteurPost
-
Septembre 6, 2013 à 9: 50 am #35409RubenPartecipante
Bonjour, j'ai besoin d'informations plus détaillées sur le bus CAN du Slimline. J'ai lu le manuel de programmation mais je ne comprends pas complètement.
SYSCANMESSAGE.MsgID: Que signifie FF: Bit 31?
SysCANTSetMode: Filtre et masque se réfèrent à l'ID du message? Logique entre eux? Ces filtres Rx et Tx sont-ils?
SysCANRxMsg: Dans l'exemple, le masque est 16 # 3FFFFFFF. Pour 29 bits, cela ne devrait-il pas être 16 # 1FFFFFFF? L'ID dans l'exemple est 16 # 00000000. Cela permet uniquement Rxing des packages avec SYSCANMESSAGE.MsgID 16 # 00000000 pas tous les packages. C'est vrai ?
Avez-vous une documentation plus détaillée?
Quel est le temps d'exécution de SysCANTxMsg () et SysCANRxMsg ()?
Le contrôleur de bus CAN et celui du Freescale MX257?Septembre 10, 2013 à 9: 06 am #37760Sergio BertanaAdministrateur du forumJ'essaie de clarifier le fonctionnement du bus CAN sur le SlimLine, commençons par dire que le contrôleur CAN 1 du contrôleur ARM est utilisé en tant que contrôleur CAN (Allego fiche technique). Le bit 31 (FF) de SYSCANMESSAGE.MsgID indique si le message a un identifiant pour le bit 11 ou pour le bit 29.
Pour utiliser le CAN, il est nécessaire de l'initialiser en définissant la vitesse et les filtres, généralement il est configuré pour recevoir tous les messages SysCANSetMode(CAN_500KBIT, 16#00000000, 16#00000000);
Réception de message CAN
Les messages sont reçus en interruption et stockés dans le tampon de réception (messages 32 jusqu'à 8 octets de données chacun). Le programme utilisateur avec la fonction SysCANRxMsg(Mask, ID, ADR(Msg)); il extrait le message souhaité du tampon et le stocke dans la variable Msg. Il est nécessaire d'exécuter la fonction jusqu'à ce que le tampon de réception soit complètement vide, en gérant tous les messages reçus. Le temps d'exécution de la fonction est de quelques us mais afin de ne pas perdre de messages elle doit être exécutée cycliquement dans un temps inférieur au temps de remplissage du tampon (32 messages).Transmission de message CAN
Les messages sont chargés dans le tampon de transmission (messages 32 jusqu’à octets 8 de données) avec la fonction SysCANTxMsg(ADR(Msg)); les messages sont ensuite transmis interrompus par le système.June 15, 2019 à 6: 12 am #48173RuboxPartecipanteJ'ai des doutes sur l'utilisation de la communication CAN, j'ai un CPU RS485 étendu (donc il ne gère pas le CAN, non?) Et un module d'extension PCB126C130 qui a des caractéristiques de bus de terrain CAN / RS485.
Puis-je utiliser le module d'extension pour lire des valeurs à l'aide de CAN?
Comment tout est-il géré? Dans les fonctions de lecture / écriture CAN, je ne vois pas une sorte d’adresse de module sur laquelle effectuer des lectures et écritures: est-ce quelque chose qui est automatiquement géré par la CPU?
Merci pour l'aide que vous voudrez me donner.
June 15, 2019 à 6: 21 am #48178Sergio BertanaAdministrateur du forumLe module de CPU avec le port RS485 ne peut pas gérer le CAN, l'espace sur le module de CPU est réduit de sorte que nous avons partagé l'espace entre RS485 et CAN, nous devons choisir la version souhaitée.
Sur le module d'extension PCB126C130, il y a un port RS232 qui peut être utilisé par l'accès au programme est exactement le même que celui des ports sur le module CPU utilisant le FB SysSerialPort, définissant la définition dans le champ COM PCOMx.y où x est l'adresse du module et avec y le numéro de port du formulaire dans votre cas, le numéro 0.
June 15, 2019 à 6: 47 am #48191RuboxPartecipanteBonjour, merci pour la réponse: je n'avais jamais trouvé comment adresser le port série des modules. Je peux donc utiliser le connecteur P1 sur le module d’extension.
Pour utiliser le connecteur P12 de ce module pour les communications CAN, comment puis-je faire, toujours si cela est réalisable?
June 15, 2019 à 6: 50 am #48194Sergio BertanaAdministrateur du forumOui, le port série RS232 peut être utilisé, mais le module que vous avez (modèle PCB126C130) ayant 1 comme premier numéro après le niveau C, il s’agit d’un module avec uniquement RS232. Le numéro 3 indique les canaux d’entrée analogiques 10.
En fait, dans votre module, le connecteur P12 n'est pas monté.
June 15, 2019 à 8: 02 am #48198RuboxPartecipanteEuh ... (y a-t-il le visage qui s'enfonce?): Ce sont les questions que l'on se pose quand il n'a pas le matériel sous la main, mais seulement ce que le client vous dit qu'il a lu sur les fonctionnalités.
J'avais des doutes sur l'accès au système qui sort avec CAN et RS232… et j'ai levé tous les doutes 🙂
Avant de poser d'autres questions, je vais lire la documentation deux fois, c'est promis!
Merci et bon travail
June 15, 2019 à 8: 04 am #48202Sergio BertanaAdministrateur du forumLes questions des clients sont toujours utiles… une question peut apporter des réponses utiles pour mieux comprendre le fonctionnement du système.
June 17, 2019 à 6: 06 am #48208RuboxPartecipanteAlors je me permets une autre question, en supposant que le CAN je n'ai jamais utilisé. J'ai lu quelque chose sur le net pour comprendre quelque chose de plus.
Si j'avais un module d'extension avec le port CAN, et y ai connecté un système qui communique sur CAN, est-il correct que dans les FB il n'y ait pas "d'adressage" du port CAN? Ce devrait être une sorte de "TCP" qui envoie le paquet de données sur les ports CAN et attend la réponse, non?
Cependant, je devrais toujours avoir la CPU principale qui gère le protocole CAN, sinon je ne pourrais rien lire de toute façon?
June 17, 2019 à 6: 14 am #48225Sergio BertanaAdministrateur du forumÀ l'heure actuelle, la seule façon de gérer le bus CAN est d'avoir la version CAN du module CPU, (Conseil MPS054B200). Si vous regardez le IEC61131-3 Manuel de programmation, vous trouverez des instructions pour utiliser les fonctionnalités SysCANTxMsg e SysCANRxMsg.
Un message CAN est composé d'un identifiant unique à 11 ou 29 bits et d'une trame de données pouvant atteindre un maximum de 8 octets. Tous les appareils du réseau sont à la fois maître et esclave, chaque message transmis est reçu par tous les systèmes du réseau qui le filtrent avec l'ID souhaité.
-
auteurPost
- Vous devez être connecté pour répondre à ce sujet.