Objet : Configuration des symboles
Vous pouvez utiliser la configuration des symboles pour créer des descriptions de symboles pour les variables du projet.
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: 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.
|
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.
Voir | Vous pouvez utiliser ce bouton pour activer et désactiver les catégories de variables suivantes utilisées dans l'éditeur de configuration :
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 Le Attribut La colonne indique quels droits d'accès sont définis par le pragma. |
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 |
Réglages |
|
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. |
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)
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: |
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 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 ( |
Zone de liste | Jeux de symboles déjà définis |
| Ouvre le Ajouter un nouveau jeu de symboles boîte de dialogue pour spécifier un nom pour cet ensemble |
| 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 ( |
| 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 |
| 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
Activer les informations OPC UA étendues | Remarque : La disponibilité et la possibilité de modification de cette option dépendent de l'appareil.
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 :
|
Inclure les commentaires | Exigence: Activer les informations OPC UA étendues est activé.
|
Inclure les attributs | |
Incluez également des commentaires et des attributs pour les nœuds de type | Exigence: Inclure les commentaires est activé.
|
Inclure les indicateurs de nœud d'espace de noms |
|
Inclure les commentaires |
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 |
|
Incluez également des commentaires et des attributs pour les nœuds de type |
|
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. |
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.
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 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
" :
<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>>
<TypeUserDef name="T_GrosseStruktur" size="4" nativesize="208" typeclass="Userdef" pouclass="STRUCTURE" iecname="GrosseStruktur"> <UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" /<UserDefElement iecname="PublicNumber" type="T_INT" byteoffset="0" vartype="VAR" /> <UserDefElement iecname="SecondNumber" type="T_INT" byteoffset="2" vartype="VAR" /> </TypeUserDef>
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
" :
<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>
<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>
// 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">> <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.