Skip to main content

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 reconfiguration

  • EnableDisableCANbus: Activation et désactivation dynamique d'un bus CAN en mode runtime par reconfiguration

  • GetCANbus: 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 de CiA405.RECV_EMCY

  • ReceiveEMCYFromOneDeviceExample: Réception de messages d'urgence pour un appareil spécifique au moyen de CIA405.RECV_EMCY_DEV

  • GetCANopenKernelStateExample: Détection de l'état du noyau CANopen au moyen de CIA405.GET_CANOPEN_KERNEL_STATE

  • GetStateExample: Détection de l'état CANopen d'un esclave au moyen de CIA405.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 de CiA405.SDO_READ4

  • ExpeditedWriteExample: Ecriture d'un objet <= 4 octets via SDO (transfert accéléré) au moyen de CIA405.SDO_WRITE4

  • SegmentedAndBlockReadExample: Lecture d'un objet de longueur quelconque via SDO (segmented transfer ou block transfer) au moyen de CiA405.SDO_READ_DATA

  • SegmentedAndBlockWriteExample: Ecriture si un objet de n'importe quelle longueur via SDO (segmented transfer ou block transfer) au moyen de CiA405.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 CANopenManager

  • CANopenManagerEventHandler: Exemple d'implémentation d'un gestionnaire d'événements CANopen

  • CANopenRemoteDeviceAPI: 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 Runtime

  • NMTExample: Changement de l'état CANopen local

Dictionnaire d'objets

  • ReadObjectExample1: Lecture d'un objet du dictionnaire local d'objets

  • ReadObjectExample2: Autre exemple de ReadObjectExample1

  • WriteObjectExample1: Ecriture de la valeur d'un objet dans le dictionnaire d'objets

  • WriteObjectExample2: Autre exemple de WriteObjectExample1

  • CountObjects: parcourir tous les objets du dictionnaire d'objets au moyen de _3SCSS.ObjectIterator

  • GetPDOInfo: Exemple supplémentaire de parcours du dictionnaire d'objets

  • ObjectDictionaryEventHandler: 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

_example_icon.png TÉLÉCHARGER Projet