Skip to main content

Objet : Configuration des symboles

Vous pouvez utiliser la configuration des symboles pour créer des descriptions de symboles pour les variables du projet. Projet → Ajouter un objet pour ajouter un objet de configuration de symboles à l'arborescence des périphériques, puis définir des paramètres par défaut spécifiques.

Astuce

Pour fournir des symboles à un serveur OPC UA, nous vous recommandons d'utiliser le nouvel éditeur de configuration Configuration du groupe de symboles CEI pour CODESYS 3.5 SP18 et plus haut.

Double-cliquez sur le Configuration des symboles objet pour ouvrir l'éditeur de configuration des symboles.

Boîte de dialogue : Ajouter une configuration de symbole

Une fonction: Cette boîte de dialogue permet de définir les valeurs par défaut d'un Configuration des symboles objet.

Appel: Projet → Ajouter un objet → Configuration du symbole menu; menu contextuel de l'objet application

Inclure les commentaires en XML

Exporte le fichier de symboles avec les commentaires affectés aux variables

Prise en charge des fonctionnalités OPC UA

Remarque : La disponibilité et la possibilité de modification de cette option dépendent de l'appareil.

_cds_icon_checked.png: Lors du téléchargement de la configuration des symboles, des informations supplémentaires sont également téléchargées vers le contrôleur. Les informations ci-dessous sont nécessaires au fonctionnement du serveur OPC UA :

  • Types de base des blocs fonctionnels hérités

  • Contenu des attributs assignés via les pragmas du compilateur

  • Périmètres (exemple : VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT)

Tableau 6. Disposition des données côté client

Pour plus d'informations et des exemples d'options de mise en page, consultez la section suivante « Éditeur de configuration de symboles ».

Disposition de compatibilité

Ce paramètre est utilisé pour la compatibilité des anciens projets. La mise en page des données créée pour le client correspond autant que possible à la mise en page créée en interne par le compilateur.

Disposition optimisée

Recommandé pour les nouveaux projets

Calcule la présentation de sortie sous une forme optimisée, détachée de la présentation interne du compilateur

Ne génère aucune lacune pour les éléments non publiés et répond strictement aux exigences d'alignement de la mémoire des types de données. Nécessite la version 3.5.7.0 ou supérieure du compilateur.



Editeur de configuration de symboles

L'éditeur comprend un tableau avec les variables sélectionnées et une barre de menus pour l'édition.

Tableau 7. Barre de menu

_cds_icon_symbolconfiguration_view

Voir

Vous pouvez utiliser ce bouton pour activer et désactiver les catégories de variables suivantes utilisées dans l'éditeur de configuration :

_cds_icon_view_from_project.png Non configuré du projet: Variables qui n'ont pas été ajoutées à la configuration du symbole, mais qui sont fournies dans le projet

_cds_icon_library_manager.png Non configuré des bibliothèques: Variables qui n'ont pas été ajoutées à la configuration du symbole, mais qui sont fournies dans le projet

_cds_icon_view_from_attribute.png Symboles exportés via attribut:

Ce filtre répertorie également les variables qui ont déjà été marquées pour l'export dans le fichier de symboles au moyen de l'option {attribute 'symbol' := 'read'} pragma. Ces symboles sont affichés en gris.

Le Attribut La colonne indique quels droits d'accès sont définis par le pragma.

_cds_icon_symbolconfiguration_build.png

Construire

Compile le projet Nécessité d'une préparation actuelle des variables dans l'éditeur de configuration

Données non alignées uniquement avec accès mémoire non aligné

Si la configuration des symboles contient des valeurs ou des symboles non alignés pour un appareil qui ne fait pas prend en charge l'accès mémoire requis (non aligné), une erreur est définie.

Le message suivant s'affiche :

Le composant <nom> du type de symbole <nom du type de symbole> sans alignement de la mémoire, ne peut pas être publié.

Cela empêche le téléchargement de code potentiellement défectueux vers le contrôleur, ce qui pourrait entraîner un crash imprévisible du contrôleur.

Télécharger

Si vous utilisez un appareil prenant en charge son propre fichier d'application pour la configuration des symboles, ce bouton est également disponible dans la barre d'outils.

Lorsque vous modifiez la configuration des symboles en mode en ligne, vous pouvez télécharger le nouveau <application name>._symbols fichier immédiatement à l’automate.

_cds_icon_symbolconfiguration_settings

Réglages

  • Prise en charge des fonctionnalités OPC UA:

    Remarque : La disponibilité et la possibilité de modification de cette option dépendent de l'appareil.

    Pour fournir des symboles à un serveur OPC UA, nous vous recommandons d'utiliser alternativement le nouvel éditeur de configuration (Configuration du groupe de symboles CEI) pour CODESYS 3.5 SP18 et plus haut.

    _cds_icon_checked.png: Lors du téléchargement de la configuration des symboles, des données supplémentaires sont également téléchargées vers le contrôleur. Les informations ci-dessous sont nécessaires au fonctionnement du serveur OPC UA. Cela inclut actuellement les informations suivantes :

    • Types de base des blocs fonctionnels hérités

    • Contenu des attributs assignés via les pragmas du compilateur

    • Périmètres (exemple : VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT)

  • Inclure des commentaires dans XML

    Exporte le fichier de symboles avec les commentaires affectés aux variables

  • Inclure les indicateurs de nœud dans XML

    _cds_icon_checked.png⁣ : Les indicateurs de nœud d'espace de noms fournissent des informations supplémentaires sur l'origine d'un nœud dans l'espace de noms. Le nœud est toujours signalé dans la table des mnémoniques lorsque OPC UA est activée.

    Cependant, l'intégration dans le fichier XML peut être désactivée. Certains analyseurs ont des problèmes avec cela.

  • Configurer les commentaires et les attributs

    Ouvre les Commentaires et attributs dialogue

    Ici, vous configurez les détails de ce qui doit être inclus dans la configuration des symboles et le fichier XML en ce qui concerne les commentaires et les attributs.

  • Configurer la synchronisation avec les tâches CEI:

    Ouvre le Propriétés – <nom de l'appareil> dialogue, Choix languette

    Ce paramètre permet aux clients symboliques (par exemple, des visualisations ou des connexions à une base de données basées sur le gestionnaire de l'automate) de disposer d'un accès cohérent en lecture ou en écriture, synchronisé avec les tâches CEI.

    Vous trouverez une description détaillée de ce paramètre ci-dessous dans la section Paramètre : Configurer la synchronisation avec les tâches IEC.

    Remarque : Un accès variable synchrone avec les tâches CEI peut augmenter la gigue pour toutes les applications CEI sur cet appareil. Un accès cohérent et synchronisé peut interrompre la fonctionnalité en temps réel.

  • Zone de liste permettant de définir le type de mise en page des données pour le client de la configuration du symbole :

    Remarque : voir également la section Exemples de types de mise en page des données.

    • Disposition optimisée: Recommandé pour les nouveaux projets Calcule la mise en page de sortie sous une forme optimisée détachée de la mise en page interne du compilateur Ne génère pas de lacunes pour les éléments non publiés et répond strictement aux exigences d'alignement en mémoire des types de données Nécessite la version 3.5.7.0 ou supérieure du compilateur.

    • Disposition de compatibilité: Ce paramètre est utilisé pour la compatibilité des anciens projets. La mise en page des données créée pour le client correspond autant que possible à la mise en page créée en interne par le compilateur.

      En raison des possibilités de configuration de la configuration des symboles qui ont augmenté au fil du temps, des décalages problématiques peuvent encore se produire.

      Causes des décalages :

      Trous de mémoire dus à des pointeurs internes ou à des références dans des blocs fonctionnels et des composants de structure qui ne sont pas validés pour la configuration de symboles

      Lacunes de mémoire qui se produisent différemment dans les systèmes 32 bits et 64 bits en fonction du type de données, telles que __XINT / __XWORD

      Champs dont les adresses sont inégales Certains clients ne sont pas configurés pour cela.

      Désalignement involontaire de la mémoire, qui se produit lors de l'utilisation des attributs 'pack_mode' ou 'relative_offset'

  • Utiliser les espaces de noms vides par défaut (compatibilité V2): Requis lors de l'utilisation d'un CODESYS Configuration serveur OPC compatible V2

    _cds_icon_checked.png: Même comportement que dans CODESYS V2.3

    • Les variables du programme sont exportées sans nom d'application :

      (Application.PLC_PRG.MyVarPLC_PRG.MyVar)

    • Les variables globales sont également exportées sans le nom GVL.

  • Activer l'accès direct aux E/S:

    Avertissement

    Cette fonctionnalité est potentiellement dangereuse et non destiné à être utilisé en production.

    Activer uniquement pour la vérification et les tests d'erreurs, ou lors de la mise en service de la machine (par exemple, pour vérifier les connexions des câbles).

    _cds_icon_checked.png: Dans la configuration des symboles, vous pouvez également utiliser l'accès aux adresses d'E/S directes qui correspondent à la syntaxe CEI (par exemple, %IX0.0).

    L'accès aux adresses d'entrée (I) est en lecture seule*. L'accès aux adresses de sortie (Q) et aux adresses mémoire (M) peut être en lecture-écriture.

    * Information : En mode simulation, l'accès en écriture aux symboles est également possible pour les adresses d'entrée.

    Étant donné que les clients externes pour des protocoles tels qu'OPC ou OPC UA ne prennent pas toujours en charge la syntaxe CEI pour les adresses directes, l'accès est également fourni à l'aide d'une syntaxe de tableau dans l'espace de noms __MIO du code implicite. Par exemple, vous pouvez également accéder à __MIO.MIO_IX[2].x3 au lieu de %IX2.3.

    Cependant, les symboles d'accès au tableau sont masqués dans les navigateurs car certains clients ne peuvent pas gérer le grand nombre de nœuds (plusieurs milliers selon la taille des plages d'E/S).

  • Prise en charge des appels de fonctions, FB, méthodes et programmes:

    Remarque : La disponibilité et la possibilité de modification de cette option dépendent de l'appareil.

    _cds_icon_checked.png: Les droits d'accès exécuter peut être défini dans la table des symboles pour les symboles des POU de type fonction, bloc fonction, méthode ou programme. le Prise en charge des fonctionnalités OPC UA l'option doit également être sélectionnée dans Réglages.

  • Inclure les informations d'appel dans XML:

    _cds_icon_checked.png: Les informations sur les fonctions, blocs fonctionnels, méthodes ou programmes appelés sont également répertoriées dans le fichier XML de la configuration des symboles.

    L'option est activée uniquement si le Prise en charge des appels de fonctions, FB, méthodes et programmes L’option est prise en charge par l’appareil.

  • Activer les jeux de symboles:

    _cds_icon_checked.png⁣ : Une barre d'outils avec des boutons et une zone de liste s'affiche au-dessus de la table des symboles. Vous pouvez l'utiliser pour configurer des jeux de symboles pour l'attribution spécifique au client des droits d'accès au contrôleur.

    Voir « Barre d'outils pour la configuration du jeu de symboles » ci-dessous.

Outils

Enregistrer le fichier de schéma XSD: Cette commande ouvre la boîte de dialogue standard d'enregistrement d'un fichier dans le système de fichiers. Avec cette commande, vous pouvez préparer le format XSD du fichier de symboles, par exemple pour une utilisation dans des programmes externes.



Tableau 8. Tableau des symboles

Des droits d'accès

Vous pouvez modifier les droits d'accès d'un symbole en cliquant sur le symbole dans la Des droits d'accès colonne.

. Icônes des droits d'accès (par ordre croissant)
  • symbol_read.png: Lecture seulement

  • symbol_write.png: écriture seulement

  • symbol_read_write.png: Lire et écrire

  • _cds_icon_access_right_execute.png: Exécuter

    Cette autorisation permet d'exécuter des autorisations sur des fonctions, des blocs fonctionnels, des méthodes et des programmes.

    Conditions requises pour l'affectation : L'appareil fournit les Prend en charge les appels de fonctions, de FB, de méthodes et de programmes et Prise en charge des fonctionnalités OPC UA options. Les deux options sont activées dans le Réglages.

Remarque : Si le contrôleur dispose d'une gestion des utilisateurs, vous pouvez utiliser des jeux de symboles pour définir des droits d'accès spécifiques au client pour les mêmes symboles.

Maximale

Droits d'accès maximum pour ce symbole

Attribut

Si le droit d'accès a été attribué par attribut, une icône correspondante s'affiche ici.

Taper

Les types de données d'alias sont également affichés dans CODESYS V3.5 SP6 et supérieur.

Exemple: MY_INT : INT pour une variable déclarée avec le type de données MY_INT (taper INT).

Membres

Vous pouvez également ajouter des variables d'un type de données structurées en cochant une case pour la configuration des symboles dans le Symboles colonne. Ce qui provoque CODESYS pour exporter tous les symboles de variables "membres". Cependant, dans le Membres colonne, vous pouvez cliquer sur le _cds_icon_three_dots.png pour sélectionner uniquement des composants structurels spécifiques.

Remarque : Cette sélection s'applique à toutes les instances de ce type de données pour lesquelles des symboles sont exportés.

Si un membre d'un type structuré ne peut pas être sélectionné, alors un astérisque (_cds_icon_symbolconfig_checkbox_wildcard.png) s'affiche dans les cases à cocher des membres pour indiquer que tous les membres exportables de ce type sont exportés.



Tableau 9. Barre d'outils pour la configuration du jeu de symboles

Zone de liste

Jeux de symboles déjà définis

_cds_icon_add_symbol_group.png Ajouter un nouveau jeu de symboles

Ouvre le Ajouter un nouveau jeu de symboles boîte de dialogue pour spécifier un nom pour cet ensemble

_cds_icon_copy_symbol_group.png Ajouter un doublon à partir du jeu de symboles sélectionné

Ouvre le Ajouter un doublon à partir du jeu de symboles sélectionné dialogue

Une copie est créée pour l'ensemble sélectionné dans la zone de liste. Vous pouvez modifier le nom par défaut (<group name>_duplicate).

_cds_icon_rename_symbol_group.png Renommer le jeu de symboles sélectionné

Ouvre le Renommer le jeu de symboles sélectionné boîte de dialogue pour spécifier un autre nom pour l'ensemble sélectionné dans la zone de liste

_cds_icon_delete_symbol_group.png Supprimer le jeu de symboles sélectionné

Ouvre une boîte de dialogue demandant si le jeu de symboles sélectionné dans la zone de liste doit être supprimé ou non

Configurer les droits de symbole

Ouvre le Droits de symbole de l'éditeur d'appareils Lorsque vous y êtes connecté, vous pouvez attribuer différents droits d'accès pour chaque groupe d'utilisateurs (client) au jeu de symboles sélectionné dans la zone de liste.



Pour plus d'informations, voir : Onglet : Droits relatifs aux symboles

Boîte de dialogue : commentaires et attributs

Tableau 10. Contenu du tableau des symboles

Activer les informations OPC UA étendues

Remarque : La disponibilité et la possibilité de modification de cette option dépendent de l'appareil.

_cds_icon_checked.png⁣ : Des informations supplémentaires pouvant être évaluées par les serveurs OPC UA sont incluses dans la table des symboles. Cela inclut les informations d'héritage des types de données définis par l'utilisateur et les indicateurs de nœud d'espace de noms.

Des informations supplémentaires, telles que des commentaires et des attributs, peuvent également être incluses si le paramètre OPC UA est actif.

. Lorsque le paramètre OPC UA est activé, les attributs sont inclus dans la table des symboles selon la règle suivante :
  • Dans les versions de compilateur V3.5.5.0 à V3.5.7.X, tous les attributs sont inclus selon le Associer des identifiants simples réglage.

  • Dans la version du compilateur V3.5.8.X, tous les attributs sont inclus en fonction du paramètre Inclure tous les attributs.

  • Dans la version V3.5.9.0 et supérieure du compilateur, vous pouvez personnaliser les attributs inclus.

Inclure les commentaires

Exigence: Activer les informations OPC UA étendues est activé.

_cds_icon_checked.png: Les commentaires et les attributs sont également enregistrés dans la table des symboles.

Inclure les attributs

Incluez également des commentaires et des attributs pour les nœuds de type

Exigence: Inclure les commentaires est activé.

_cds_icon_checked.png: Les informations pour les nœuds de type sont également incluses (types définis par l'utilisateur, tels que STRUCT et ENUM éléments).

_cds_icon_option_deactivated.png: Seules les variables directement exportées ont des commentaires et des attributs.



Tableau 11. Contenu du fichier de symboles XML

Inclure les indicateurs de nœud d'espace de noms

_cds_icon_checked.png: Les drapeaux de nœud d'espace de noms fournissent des informations supplémentaires sur l'origine d'un nœud dans l'espace de noms. Les drapeaux de nœud sont toujours dans la table des mnémoniques lorsque OPC UA est activé. Cependant, son inclusion dans le fichier XML peut être désactivée car certains analyseurs défectueux ont des problèmes avec lui.

Inclure les commentaires

_cds_icon_checked.png: Les commentaires peuvent également être enregistrés dans le fichier XML.

Dans les versions de compilateur V3.5.5.x à V3.5.8.0, cela inclut le paramètre Préférez les docu-commentaires.

Inclure les attributs

_cds_icon_checked.png: Les attributs peuvent également être enregistrés dans le fichier de symboles.

Incluez également des commentaires et des attributs pour les nœuds de type

_cds_icon_checked.png: Les informations sur les nœuds de type sont également incluses (types définis par l'utilisateur, tels que STRUCT et ENUM éléments).

_cds_icon_option_deactivated.png: Seules les variables exportées directement ont des commentaires et des attributs.



Tableau 12. Sélectionnez les commentaires

Exigence: Inclure les commentaires est activé.

Inclure les commentaires du document

Inclure les commentaires normaux

Incluez toujours les deux types de commentaires

Préférez les commentaires de docu, revenez aux commentaires normaux

Préférez les commentaires normaux, retournez aux commentaires de docu

Les options déterminent les commentaires qui sont enregistrés dans la configuration du symbole.



Tableau 13. Attributs de filtre (insensibles à la casse)

Exigence: Inclure les attributs est activé.

Inclure tous les attributs

Inclure les attributs commençant par

Filtrer les attributs avec une expression régulière

Définit les attributs qui sont enregistrés dans la configuration du symbole

Associer des identifiants simples

Existe principalement en raison de la rétrocompatibilité avec les anciennes versions afin d'émuler l'ancien comportement



Paramètre : Configurer la synchronisation avec les tâches IEC

Pour un accès cohérent de manière synchrone, le client symbolique attend lors de l'exécution lors du traitement d'une demande de lecture ou d'écriture jusqu'à ce qu'un moment soit trouvé où aucune tâche IEC n'est exécutée. Lorsque cet écart est détecté, le redémarrage des tâches IEC est empêché jusqu'à ce que toutes les valeurs de la liste de variables aient été copiées. Ensuite, les tâches IEC sont à nouveau planifiées comme d'habitude. L'accès synchronisé peut entraîner un démarrage retardé des tâches IEC, ce qui se traduit par une gigue accrue. Étant donné que toutes les applications du runtime sont gérées par un planificateur commun, cette altération potentielle du comportement en temps réel affecte toutes les applications de l'appareil. Toutes les applications de l'appareil sont concernées, qu'elles incluent ou non une configuration de symboles ou qu'elles aient été téléchargées sur le contrôleur depuis un ou plusieurs CODESYS projets. Par conséquent, le moteur d'exécution autorise l'accès synchronisé uniquement s'il autorise toutes les applications téléchargées sur le contrôleur au moment de l'accès.

Astuce

Le réglage se trouve dans l'éditeur de la configuration des symboles du Réglages menu. De plus, le paramètre se trouve également dans le menu contextuel du contrôleur lorsque vous cliquez sur le bouton Propriétés commande, puis sélectionnez la Choix onglet dans la boîte de dialogue ouverte.

Pour les applications sans configuration de symbole, le paramètre ne peut être trouvé que dans la boîte de dialogue des propriétés.

Important

Après avoir modifié le paramètre, toutes les applications téléchargées sur l'appareil au moyen d'un téléchargement ou d'une modification en ligne doivent être rechargées et toutes les applications de démarrage mises à jour.

Dans quels cas un accès cohérent synchronisé est-il nécessaire ?

En règle générale, il n'est pas nécessaire d'avoir des valeurs cohérentes pour les valeurs affichées car peu importe de quel cycle de tâche CEI proviennent les valeurs modifiées. Il est complètement hors de propos pour les valeurs rarement modifiées. Même lors de l'écriture, il n'y a presque pas d'exigences de cohérence stricte car généralement la machine doit être dans une sorte de mode veille (par exemple lors de l'écriture de recettes) dans lequel il n'y a pas d'accès direct aux valeurs écrites en tant que recettes.

En revanche, des valeurs cohérentes sont particulièrement nécessaires pour les liens de base de données afin de sauvegarder les données de production. Pour les machines cadencées, cependant, ces valeurs doivent être synchrones avec le cadencement de production (une valeur définie par produit fabriqué) et non cohérentes par rapport à une ou plusieurs tâches CEI. En référence au cadencement machine, la cohérence doit déjà être assurée par l'application IEC. À cette fin, les valeurs qui surviennent au cours d'un cycle de production sont généralement collectées dans une liste de variables globales. A la fin du cycle, le client symbolique est notifié au moyen d'une variable supplémentaire (BOOL ou compteur) que le cycle machine est terminé et que les valeurs sont valides. Le client a maintenant la possibilité d'archiver les valeurs du cycle de production. Selon la nécessité, la lecture réussie peut également être affichée dans le sens opposé au moyen d'une variable validée, de sorte que la production peut également être arrêtée si les données de production ne peuvent pas être archivées. L'accès cohérent synchronisé n'est ni nécessaire ni utile pour ce cas d'utilisation, car la synchronisation a lieu au niveau de l'application.

En revanche, l'accès cohérent synchronisé par des clients symboliques est généralement appliqué dans l'industrie des processus avec des systèmes fonctionnant en continu sans horloge de production lorsque, par exemple, lorsque les valeurs de processus sont écrites de manière cohérente et cyclique dans un laps de temps fixe de 60 secondes. Cela peut se faire soit par synchronisation au niveau applicatif similaire aux machines cadencées (voir ci-dessus) soit par synchronisation de l'accès symbolique cohérent synchronisé. L'avantage de ce dernier est qu'aucune logique ne doit être implémentée dans le programme IEC et que l'accès est entièrement contrôlé par le client.

Attention

En raison de l'augmentation de la gigue, la surveillance cohérente synchronisée n'est pas adaptée aux applications critiques de mouvement ou en temps réel. Pour ces raisons, l'accès cohérent synchronisé ne doit être libéré et utilisé qu'en cas d'absolue nécessité.

Si un client utilise un accès cohérent synchrone libéré par ce paramètre, cela a un effet sur le client. En fonction du planificateur de la durée d'exécution, le temps de réponse peut varier davantage pour l'accès en lecture/écriture, car le système peut encore devoir attendre un intervalle d'exécution des tâches IEC. L'accès en lecture et/ou en écriture peut encore échouer lorsque les tâches IEC s'exécutent pendant une longue période (de l'ordre de plusieurs 100 ms) ou que la charge du CPU est proche de 100 % pendant une période prolongée avec une ou plusieurs tâches IEC (de l'ordre de plusieurs 100 ms). Par conséquent, la disponibilité des valeurs dépend également de la charge du contrôleur par l'application IEC. Traduit avec DeepL.com (version gratuite)

De plus, le client peut minimiser les effets sur lui-même et sur le runtime s'il observe ce qui suit dans la définition des listes de variables à lire ou à écrire :

  • Accès cohérent synchronisé uniquement aux variables qui sont absolument et systématiquement requises

  • Listes de variables séparées pour les variables qui doivent être cohérentes et pour les variables qui pourraient être incohérentes

  • Diviser les listes de variables avec plusieurs variables cohérentes en plusieurs listes plus petites

  • Sélectionnez des intervalles de lecture pour une lecture cyclique des valeurs aussi grandes que possible

Prise en charge de la configuration actuelle et des éventuelles actions correctives

Les entrées marquées en rouge dans la table des symboles indiquent les variables qu'elles sont configurées pour l'exportation vers le fichier de symboles mais qui sont actuellement invalides dans l'application. Cela peut être dû au fait que la déclaration a été supprimée du bloc.

Dans la version 3.5.8.0 et supérieure, un avertissement apparaît dans l'éditeur si les variables qui ont des symboles configurés ne sont pas utilisées dans le code CEI ou ne sont pas mappées dans le cas des variables d'E/S. De plus, le compilateur indique les variables qui sont référencées à partir de versions obsolètes de la bibliothèque dans la configuration des symboles.

Important

Les variables d'objet qui ne sont pas utilisées dans le code du programme restent non compilées par défaut et ne sont donc pas disponibles dans la configuration des symboles.

. Cependant, CODESYS fournit toujours des variables à partir d'objets non compilés dans la configuration du symbole lorsque l'une des conditions suivantes est remplie :
  • le Lien toujours La propriété POU est sélectionnée.

  • le {attribute 'linkalways'} pragma est utilisé.

Pour plus d'informations, voir : Boîte de dialogue : Propriétés : Construire et Boîte de dialogue : Propriétés : Options : Contrôleur

Exemples de types de mise en page des données

Exemple 10. Grande structure

Exemple d'une grande structure dont tous les membres ne sont pas publiés :

STRUCT
{attribute 'symbol':='readwrite'}
PublicNumber : INT;	

{attribute 'symbol':='none'}
InternalData : ARRAY[0..100] OF BYTE;

{attribute 'symbol':='readwrite'}
SecondNumber : INT;

{attribute 'symbol':='none'}
MoreData : ARRAY[0..100] OF BYTE;
END_STRUCT
END_TYPE


Entrées résultantes dans le fichier de symboles (faites attention à "size" et "byteoffset" :

Exemple 11. Fichier de symboles, grande structure, option de disposition de compatibilité
<TypeUserDef name="T_GrosseStruktur" size="208" nativesize="208" typeclass="Userdef" pouclass="STRUCTURE" iecname="GrosseStruktur">
<UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" />
<UserDefElement iecname="SecondNumber" type="T_INT" byteoffset="104" vartype="VAR" />
</TypeUserDef&gt>


Exemple 12. Fichier de symboles, grande structure, option de mise en page optimisée
<TypeUserDef name="T_GrosseStruktur" size="4" nativesize="208" typeclass="Userdef" pouclass="STRUCTURE" iecname="GrosseStruktur">
<UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" /&lt;UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" />
<UserDefElement iecname="SecondNumber" type="T_INT" byteoffset="2" vartype="VAR" />
</TypeUserDef>


Exemple 13. Structure avec des adresses impaires

Les mécanismes suivants peuvent entraîner des membres présentant un défaut d'alignement de la mémoire :

{attribute 'relative_offset':='…'} sur un membre

{attribute 'pack_mode':='…'} dans une déclaration de chaîne

Target setting 'memory-layout\pack-mode' dans la description de l'appareil

{attribute 'pack_mode':='1'} 
TYPE UngeradeAdressen :
STRUCT
   {attribute 'relative_offset':='3'}
   {attribute 'symbol':='readwrite'}
   PublicNumber : INT;

   {attribute 'symbol':='readwrite'}
   PublicValue : LREAL;
END_STRUCT
EMDTYPE
   


Entrées résultantes dans le fichier de symboles ; (faire attention à "size" et "byteoffset" :

Exemple 14. Fichier de symboles, structure avec des adresses inégales, option de mise en page de compatibilité
<TypeUserDef name="T_UngeradeAdressen" size="13" nativesize="13" typeclass="Userdef" pouclass="STRUCTURE" iecname="UngeradeAdressen">
<UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="3" vartype="VAR">
<UserDefElement iecname="PublicValue" type="T_LREAL" byteoffset="5" vartype="VAR" />
</TypeUserDef>


Exemple 15. Fichier de symboles, structure avec des adresses inégales, option de mise en page optimisée
<TypeUserDef name="T_UngeradeAdressen" size="16" nativesize="13" typeclass="Userdef" pouclass="STRUCTURE" iecname="UngeradeAdressen">
<UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" />
<UserDefElement iecname="PublicValue" type="T_LREAL" byteoffset="8" vartype="VAR" />
</TypeUserDef>


Exemple 16. Bloc fonction
// Each POU contains some implicit variables, which do not get published. Depending on the data type these might cause memory gaps of different sizes.
FUNCTION_BLOCK POUx IMPLEMENTS SomeInterface
VAR_INPUT
  in : INT;
END_VAR
VAR_OUTPUT
  out : INT;
END_VAR
VAR
END_VAR

Chaque POU contient des variables implicites, qui ne sont pas publiées. S'il s'agit d'un type de données tel que __XWORD, différentes tailles d'écarts de mémoire entraînent la disposition des données côté client, selon que le système est 64 bits ou 32 bits.

Entrées résultantes dans le fichier de symboles pour 64 bits et 32 bits ; (faire attention à "size" et "byteoffset" :

Fichier de symboles, bloc fonctionnel, option de mise en page de compatibilité, 64 bits

<TypeUserDef name="T_Baustein" size="24" nativesize="24" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein">
<UserDefElement iecname="in" type="T_INT" byteoffset="16" vartype="VAR_INPUT" />
<UserDefElement iecname="out" type="T_INT" byteoffset="18" vartype="VAR_OUTPUT" />
</TypeUserDef>

Fichier de symboles, bloc fonctionnel, option de mise en page optimisée, 64 bits

<TypeUserDef name="T_Baustein" size="4" nativesize="24" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein"&gt;>
<UserDefElement iecname="in" type="T_INT" byteoffset="0" vartype="VAR_INPUT" />
<UserDefElement iecname="out" type="T_INT" byteoffset="2" vartype="VAR_OUTPUT" />
</TypeUserDef>

Fichier de symboles, bloc fonctionnel, option de mise en page de compatibilité, 32 bits

<TypeUserDef name="T_Baustein" size="12" nativesize="12" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein">
<UserDefElement iecname="in" type="T_INT" byteoffset="8" vartype="VAR_INPUT" />
<UserDefElement iecname="out" type="T_INT" byteoffset="10" vartype="VAR_OUTPUT" />
</TypeUserDef>

Fichier de symboles, bloc fonctionnel, option de mise en page optimisée, 32 bits

<TypeUserDef name="T_Baustein" size="4" nativesize="12" typeclass="Userdef" pouclass="FUNCTION_BLOCK" iecname="Baustein">
<UserDefElement iecname="in" type="T_INT" byteoffset="0" vartype="VAR_INPUT" />
<UserDefElement iecname="out" type="T_INT" byteoffset="2" vartype="VAR_OUTPUT" />
</TypeUserDef>


Pour plus d'informations, voir : Configuration des symboles.