{ "cells": [ { "cell_type": "markdown", "id": "2e8b3b05", "metadata": {}, "source": [ "## Description des E/S du bloc node Simulink ##" ] }, { "cell_type": "code", "execution_count": 1, "id": "7c562cda", "metadata": { "tags": [ "remove-input" ] }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
E/S NMT
NomTypeDescriptionValeur
MODEInput (uint8)Spécifie si les transitions doivent être effectuées automatiquement dans la machine d'état. Cela s'applique aux réinitialisations après des messages d'erreur et au passage à l'état opérationnel lorsque la configuration des paramètres internes est terminée.
\n", " Attention ! Dans de rares cas, une boucle infinie peut se produire en mode AUTO. En cas d'erreur, une réinitialisation est effectuée et le système est redémarré. Si la source de l'erreur ne peut être éliminée par une simple réinitialisation, un autre message d'erreur apparaît. Une deuxième réinitialisation est effectuée, etc. Vous pouvez interrompre cette boucle en revenant en mode MANUEL.\n", "
0: AUTO
1: MANUAL (valeur par défaut)
STATEInput (uint8)Signal de contrôle de la machine d'état pour la communication CANopen. Il contrôle l'activation des objets SDO et PDO.
\n", " Les SDO sont activés dans l'état \"Preopera-tional\", mais les PDO ne sont pas disponibles avant l'état Operational. Les messages SDO et PDO ne sont pas actifs en mode arrêté.
\n", " 1: START - Change Preoperational ➔ Operational
\n", " 2: STOP - Change Operational ➔ Stopped
\n", " 3: GO_INITIAL Change Operational/Stopped ➔ Preoperational
\n", " 4: RESET_NODE
\n", " 5: RESET_COMMUNICATION
NMT_TIMEOUTInput (uint32)Une réinitialisation manuelle du nœud peut être effectuée en appliquant un front d'attaque sur cette entrée. Cette opération peut être effectuée dans chaque état (pre-operational, operational, stop).\n", " Arbitraire
\n", " Default value: 5
\n", " Unité: Seconde
RESETInput (uint8)Temps autorisé après une réinitialisation, pendant lequel l'esclave CANopen effectue sa configuration interne.\n", " Valeur: [0;1]
\n", " Valeur par défaut: 0
ACTUAL_STATEOutput (uint8)Affiche l'état actuel du nœud. Attention ! Il ne s'agit pas d'une valeur réelle au sens propre, mais de la valeur actuelle supposée par le modèle.\n", " 0 : Démarrage initial
\n", " 1 : Préopérationnel
\n", " 2 : Configuration
\n", " 3 : Opérationnel
\n", " 4 : Stopped (arrêté)
\n", " 5 : Erreur : Un message d'urgence (EM) a été reçu.
\n", " 6 : Première boucle du modèle : Valeur par défaut au démarrage du modèle.
\n", " 7 : Hearbeat message missing : le message Heartbeat n'a pas pu être reçu pendant le temps spécifié
EM_DATAOutput (uint8)Les appareils CANopen disposent de diagnostics internes permettant de contrôler la qualité de la communication. Si une erreur se produit, elle est signalée par un message d'urgence.
La description de l'erreur est codée dans les octets de données du message et ceux-ci sont mis à la disposition de l'utilisateur en tant que vecteur de sortie.
\n", " CAN raw data
NMT_STATUSOutput (uint8)indique si un message de démarrage a été reçu. Tout délai d'attente qui s'est produit est également affiché.\n", " 0: Waiting for bootup message
\n", " 1: Bootup message was received
\n", " 2: Time-out
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ```{code-fold}\n", "# Ce bloc HTML est replié par défaut\n", "from IPython.display import display, HTML\n", "\n", "html_table_description_bloc_node = \"\"\"\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
E/S NMT
NomTypeDescriptionValeur
MODEInput (uint8)Spécifie si les transitions doivent être effectuées automatiquement dans la machine d'état. Cela s'applique aux réinitialisations après des messages d'erreur et au passage à l'état opérationnel lorsque la configuration des paramètres internes est terminée.
\n", " Attention ! Dans de rares cas, une boucle infinie peut se produire en mode AUTO. En cas d'erreur, une réinitialisation est effectuée et le système est redémarré. Si la source de l'erreur ne peut être éliminée par une simple réinitialisation, un autre message d'erreur apparaît. Une deuxième réinitialisation est effectuée, etc. Vous pouvez interrompre cette boucle en revenant en mode MANUEL.\n", "
0: AUTO
1: MANUAL (valeur par défaut)
STATEInput (uint8)Signal de contrôle de la machine d'état pour la communication CANopen. Il contrôle l'activation des objets SDO et PDO.
\n", " Les SDO sont activés dans l'état \"Preopera-tional\", mais les PDO ne sont pas disponibles avant l'état Operational. Les messages SDO et PDO ne sont pas actifs en mode arrêté.
\n", " 1: START - Change Preoperational ➔ Operational
\n", " 2: STOP - Change Operational ➔ Stopped
\n", " 3: GO_INITIAL Change Operational/Stopped ➔ Preoperational
\n", " 4: RESET_NODE
\n", " 5: RESET_COMMUNICATION
NMT_TIMEOUTInput (uint32)Une réinitialisation manuelle du nœud peut être effectuée en appliquant un front d'attaque sur cette entrée. Cette opération peut être effectuée dans chaque état (pre-operational, operational, stop).\n", " Arbitraire
\n", " Default value: 5
\n", " Unité: Seconde
RESETInput (uint8)Temps autorisé après une réinitialisation, pendant lequel l'esclave CANopen effectue sa configuration interne.\n", " Valeur: [0;1]
\n", " Valeur par défaut: 0
ACTUAL_STATEOutput (uint8)Affiche l'état actuel du nœud. Attention ! Il ne s'agit pas d'une valeur réelle au sens propre, mais de la valeur actuelle supposée par le modèle.\n", " 0 : Démarrage initial
\n", " 1 : Préopérationnel
\n", " 2 : Configuration
\n", " 3 : Opérationnel
\n", " 4 : Stopped (arrêté)
\n", " 5 : Erreur : Un message d'urgence (EM) a été reçu.
\n", " 6 : Première boucle du modèle : Valeur par défaut au démarrage du modèle.
\n", " 7 : Hearbeat message missing : le message Heartbeat n'a pas pu être reçu pendant le temps spécifié
EM_DATAOutput (uint8)Les appareils CANopen disposent de diagnostics internes permettant de contrôler la qualité de la communication. Si une erreur se produit, elle est signalée par un message d'urgence.
La description de l'erreur est codée dans les octets de données du message et ceux-ci sont mis à la disposition de l'utilisateur en tant que vecteur de sortie.
\n", " CAN raw data
NMT_STATUSOutput (uint8)indique si un message de démarrage a été reçu. Tout délai d'attente qui s'est produit est également affiché.\n", " 0: Waiting for bootup message
\n", " 1: Bootup message was received
\n", " 2: Time-out
\"\"\"\n", "display(HTML(html_table_description_bloc_node))" ] }, { "cell_type": "code", "execution_count": 6, "id": "fe27c9dc", "metadata": { "tags": [ "remove-input" ] }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
E/S SDO
NomTypeDescriptionValeur
SDO_TriggerInput (uint8)Un front montant à cette entrée active les données brutes qui sont entrées. Le message SDO approprié est composé et envoyé sur le bus CAN dans la même étape du modèle.\n", " 0 ➔ 1: ACTIVE
SDO_W_DataInput (uint8)Ce champ d'entrée fait partie des données brutes envoyées dans le message CANopen. Le mot est construit par l'association d'un mot composé de SDO_W_Command+SDO_W_Index+SDO_W_Value
\n", " Pour plus de détail sur la construction du CAN raw Data, se référer à la section suivante.
SDO_TimeoutInput (uint32)Cette entrée est utilisée pour surveiller la communication SDO. Le délai d'attente est la durée de la fenêtre temporelle pendant laquelle l'appareil doit répondre à une requête SDO en l'acquittant. Cette valeur dépend de l'architecture du système.
\n", "
\n", " Arbitraire
\n", " Default value: 0.1
\n", " Unité: Seconde
SDO_R_DataOutput (uint8)Ce champ d'entrée fait partie des données brutes lues dans le message CANopen. Le mot est construit par l'association d'un mot composé de SDO_R_COMMAND+Node_xx_SDO_R_Index+Node_xx_SDO_R_Value
\n", " Pour plus de détail sur la construction du CAN raw Data, se référer à la section suivante.
SDO_StatusOutput (uint8)Le statut indique l'état actuel du processus SDO. Il peut également servir de déclencheur pour l'évaluation automatique des données.\n", " 0: Waiting for answer
\n", " 1: Answer OK (SDO_R_Command = 0x60)
\n", " 2: Answer Timeout
\n", " 3: Answer ERROR (SDO_R_Command = 0x80)
\n", " 4: Ready for Diagnostics (Internal configuration completed)
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ```{code-fold}\n", "# Ce bloc HTML est replié par défaut\n", "from IPython.display import display, HTML\n", "\n", "html_table_description_bloc_node_SDO = \"\"\"\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
E/S SDO
NomTypeDescriptionValeur
SDO_TriggerInput (uint8)Un front montant à cette entrée active les données brutes qui sont entrées. Le message SDO approprié est composé et envoyé sur le bus CAN dans la même étape du modèle.\n", " 0 ➔ 1: ACTIVE
SDO_W_DataInput (uint8)Ce champ d'entrée fait partie des données brutes envoyées dans le message CANopen. Le mot est construit par l'association d'un mot composé de SDO_W_Command+SDO_W_Index+SDO_W_Value
\n", " Pour plus de détail sur la construction du CAN raw Data, se référer à la section suivante.
SDO_TimeoutInput (uint32)Cette entrée est utilisée pour surveiller la communication SDO. Le délai d'attente est la durée de la fenêtre temporelle pendant laquelle l'appareil doit répondre à une requête SDO en l'acquittant. Cette valeur dépend de l'architecture du système.
\n", "
\n", " Arbitraire
\n", " Default value: 0.1
\n", " Unité: Seconde
SDO_R_DataOutput (uint8)Ce champ d'entrée fait partie des données brutes lues dans le message CANopen. Le mot est construit par l'association d'un mot composé de SDO_R_COMMAND+Node_xx_SDO_R_Index+Node_xx_SDO_R_Value
\n", " Pour plus de détail sur la construction du CAN raw Data, se référer à la section suivante.
SDO_StatusOutput (uint8)Le statut indique l'état actuel du processus SDO. Il peut également servir de déclencheur pour l'évaluation automatique des données.\n", " 0: Waiting for answer
\n", " 1: Answer OK (SDO_R_Command = 0x60)
\n", " 2: Answer Timeout
\n", " 3: Answer ERROR (SDO_R_Command = 0x80)
\n", " 4: Ready for Diagnostics (Internal configuration completed)
\"\"\"\n", "display(HTML(html_table_description_bloc_node_SDO))" ] }, { "cell_type": "code", "execution_count": 7, "id": "7e2b07f1", "metadata": { "tags": [ "remove-input" ] }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
E/S PDO
NomTypeDescriptionValeur
Enable (Sync_Block)Input (uint8)Signal qui libère le mode synchrone. S'il est activé, le message SYNC est envoyé de manière cyclique. Il est utilisé pour synchroniser les nœuds du bus pour la communication PDO. \n", " 0: SYNC message not active
\n", " 1: SYNC message active
\n", " Valeur par défaut: 1
Sync (Sync_Block)Input (uint8)Cette entrée est utilisée pour synchroniser la communication PDO. Elle doit être connectée à la sortie du bloc Sync Master Block.[0;1]
PDO_TriggerInput (uint8)\n", " Cette entrée est pertinente si le PDO concerné a été configuré pour être asynchrone.
\n", " La communication PDO est activée lorsque le nœud est dans l'état opérationnel. Si cette condition est remplie et que la communication doit être asynchrone, l'entrée de déclenchement est active. Les valeurs de référence saisies dans les champs d'entrée sont envoyées sous forme de messages CAN sur le bus à chaque front montant de l'entrée de déclenchement.\n", "
\n", " 0 ➔ 1: ACTIVE
RxPDO_DataInput (uint8)\n", " Les valeurs de référence sont écrites dans ces champs d'entrée. La longueur d'un RxPDO est définie par le PDO mapping lors de la définition de la topologie du système.
\n", " L'utilisateur spécifie les objets auxquels il doit accéder à partir du répertoire central sur le PDO. Un RxPDO peut contenir jusqu'à 8 octets de données.\n", "
\n", " Arbitraire
TxPDO_DataOutput (uint32)\n", " Affiche les valeurs réelles. La sortie est un vecteur avec 8 * nombre_TxPDO entrées, parce que chaque TxPDO contient 8 octets de données.\n", " \n", " Arbitraire
TxPDO_StatusOutput (uint8)\n", " La sortie d'état décrit l'état de la communication TxPDO. En cas de communication synchrone, tout dépassement de délai est signalé.
\n", " Les informations d'état permettent également de savoir quand les données sont arrivées et si des données ont été perdues.\n", "
\n", " 0: Nouvelle donnée sur le bus
\n", " 1: Pas de nouvelle donnée sur le bus
2: Données perdues
\n", " 3: Time-out
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ```{code-fold}\n", "# Ce bloc HTML est replié par défaut\n", "from IPython.display import display, HTML\n", "\n", "html_table_description_bloc_node_PDO = \"\"\"\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
E/S PDO
NomTypeDescriptionValeur
Enable (Sync_Block)Input (uint8)Signal qui libère le mode synchrone. S'il est activé, le message SYNC est envoyé de manière cyclique. Il est utilisé pour synchroniser les nœuds du bus pour la communication PDO. \n", " 0: SYNC message not active
\n", " 1: SYNC message active
\n", " Valeur par défaut: 1
Sync (Sync_Block)Input (uint8)Cette entrée est utilisée pour synchroniser la communication PDO. Elle doit être connectée à la sortie du bloc Sync Master Block.[0;1]
PDO_TriggerInput (uint8)\n", " Cette entrée est pertinente si le PDO concerné a été configuré pour être asynchrone.
\n", " La communication PDO est activée lorsque le nœud est dans l'état opérationnel. Si cette condition est remplie et que la communication doit être asynchrone, l'entrée de déclenchement est active. Les valeurs de référence saisies dans les champs d'entrée sont envoyées sous forme de messages CAN sur le bus à chaque front montant de l'entrée de déclenchement.\n", "
\n", " 0 ➔ 1: ACTIVE
RxPDO_DataInput (uint8)\n", " Les valeurs de référence sont écrites dans ces champs d'entrée. La longueur d'un RxPDO est définie par le PDO mapping lors de la définition de la topologie du système.
\n", " L'utilisateur spécifie les objets auxquels il doit accéder à partir du répertoire central sur le PDO. Un RxPDO peut contenir jusqu'à 8 octets de données.\n", "
\n", " Arbitraire
TxPDO_DataOutput (uint32)\n", " Affiche les valeurs réelles. La sortie est un vecteur avec 8 * nombre_TxPDO entrées, parce que chaque TxPDO contient 8 octets de données.\n", " \n", " Arbitraire
TxPDO_StatusOutput (uint8)\n", " La sortie d'état décrit l'état de la communication TxPDO. En cas de communication synchrone, tout dépassement de délai est signalé.
\n", " Les informations d'état permettent également de savoir quand les données sont arrivées et si des données ont été perdues.\n", "
\n", " 0: Nouvelle donnée sur le bus
\n", " 1: Pas de nouvelle donnée sur le bus
2: Données perdues
\n", " 3: Time-out
\"\"\"\n", "display(HTML(html_table_description_bloc_node_PDO))" ] }, { "cell_type": "markdown", "id": "6ab40fa0", "metadata": {}, "source": [ "[Revenir au tutoriel](premiers_pas_microlabbox)" ] } ], "metadata": { "kernelspec": { "display_name": "python3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.11" } }, "nbformat": 4, "nbformat_minor": 5 }