Exemple : CANopen
Produit: CODESYS CANopen Manager SL
Cet exemple traite de l'interface de programmation de la pile de communication du maître CANopen et de l'esclave CANopen. Le projet contient des exemples pour SDO, NMT, les diagnostics et la configuration dynamique des paramètres de communication (débit en bauds, ID de réseau, ID de nœud), et bien d'autres.
Description
Le projet contient différents exemples d'utilisation de l'interface de programmation de la pile maître CANopen et esclave CANopen. Les sujets traités sont les suivants :
SDO (expedited, segmented, block), accès au dictionnaire d'objets
Gestion de réseau (NMT)
Diagnostic (état CANopen, EMCY)
Gestionnaire d'événements pour le dictionnaire d'objets et la machine d'état du gestionnaire CANopen
Reconfiguration : modification dynamique du débit en bauds, de l'ID de réseau et de l'ID de nœud
Accès à la configuration CAN via la bibliothèque de diagnostic des appareils
Informations Complémentaires
Le projet comprend un maître CANopen et une pile esclave CANopen qui communiquent entre eux via CANbus. Deux interfaces CAN interconnectées sont nécessaires pour la mise en service du projet. La manière la plus simple d'implémenter ceci est d'utiliser le CODESYS Control Win contrôleur et un adaptateur USB-CAN à 2 canaux, tel que PEAK PCAN-USB Pro ou deux adaptateurs à 1 canal.
Pour que la communication fonctionne, le composant système Runtime respectif doit être inscrit dans le fichier de configuration.
Pour plus d'informations, consultez : Configuration d'exécution.
Le projet peut également être exploité sur n'importe quel contrôleur avec deux interfaces CAN au moyen d'une mise à jour de l'appareil de l'API. Le projet est divisé en trois domaines :
CANbus Examples
ChangeBaudrate
: Modification dynamique du débit en bauds en mode Runtime par reconfigurationEnableDisableCANbus
: Activation et désactivation dynamique d'un bus CAN en mode runtime par reconfigurationGetCANbus
: Recherche générique d'une instance CANbus développée au moyen de la bibliothèque de diagnostic d'appareils
CANopen Master examples
Diagnostique
ReceiveEMCYFromAllDevicesExample
: Réception des messages d'urgence au moyen deCiA405.RECV_EMCY
ReceiveEMCYFromOneDeviceExample
: Réception de messages d'urgence pour un appareil spécifique au moyen deCIA405.RECV_EMCY_DEV
GetCANopenKernelStateExample
: Détection de l'état du noyau CANopen au moyen deCIA405.GET_CANOPEN_KERNEL_STATE
GetStateExample
: Détection de l'état CANopen d'un esclave au moyen deCIA405.GET_STATE
La gestion du réseau
GetCANopenManagerNodeIDExample
: Détection de l'ID de nœud CANopenManager au moyen de CiA405.GET_CANOPEN_KERNEL_STATE
: Envoi de requêtes NMT au moyen de CIA405.NMT
SDO (transfert de données acyclique)
ExpeditedReadExample
: Lecture d'un objet <= 4 octets via SDO (transfert accéléré) au moyen deCiA405.SDO_READ4
ExpeditedWriteExample
: Ecriture d'un objet <= 4 octets via SDO (transfert accéléré) au moyen deCIA405.SDO_WRITE4
SegmentedAndBlockReadExample
: Lecture d'un objet de longueur quelconque via SDO (segmented transfer ou block transfer) au moyen deCiA405.SDO_READ_DATA
SegmentedAndBlockWriteExample
: Ecriture si un objet de n'importe quelle longueur via SDO (segmented transfer ou block transfer) au moyen deCiA405.SDO_WRITE_DATA
Fonctions générales de l'API
CANopenManagerAPI
: Démontre l'utilisation de toutes les méthodes et propriétés de l'instance CANopenManagerCANopenManagerEventHandler
: Exemple d'implémentation d'un gestionnaire d'événements CANopenCANopenRemoteDeviceAPI
: Démontre l'utilisation de toutes les méthodes et propriétés d'une instance CANopenRemoteDevice
CANopen Slave examples
Diagnostique
GetLocalDeviceInfoExample
: Démontre la lecture de l'état CANopen ainsi que l'ID de nœud
La gestion du réseau
ChangeNodeIDExample
: Modification de l'ID de nœud en mode RuntimeNMTExample
: Changement de l'état CANopen local
Dictionnaire d'objets
ReadObjectExample1
: Lecture d'un objet du dictionnaire local d'objetsReadObjectExample2
: Autre exemple deReadObjectExample1
WriteObjectExample1
: Ecriture de la valeur d'un objet dans le dictionnaire d'objetsWriteObjectExample2
: Autre exemple deWriteObjectExample1
CountObjects
: parcourir tous les objets du dictionnaire d'objets au moyen de_3SCSS.ObjectIterator
GetPDOInfo
: Exemple supplémentaire de parcours du dictionnaire d'objetsObjectDictionaryEventHandler
: Exemple d'implémentation d'un gestionnaire d'événements de dictionnaire d'objets
Configuration système requise et restrictions
Système de programmation | CODESYS Development System (version 3.5.14.0 ou supérieure) |
Système d'exécution | CODESYS Control Win (version 3.5.14.0) |
Composants complémentaires | Deux interfaces CAN |
Avis
TÉLÉCHARGER Projet