Skip to main content

Configuration des périphériques et du mappage des E/S

Vous pouvez configurer les objets d'appareil insérés dans l'arborescence des appareils dans l'éditeur d'appareils associé. Les possibilités dépendent de la description de l'appareil. Le "éditeur de périphérique générique" fournit des onglets qui sont complétés si nécessaire par des onglets spécifiques à l'appareil.

Condition : vous avez ouvert un projet standard dans l'arborescence des appareils duquel un API standard et en dessous un objet appareil de bus de terrain sont insérés.

  1. Double-cliquez sur l'objet appareil de l'automate standard dans l'arborescence des appareils de votre projet.

    le <nom de l'appareil> l'éditeur s'ouvre dans le principal CODESYS la fenêtre. le Paramètres de communication l'onglet est au premier plan. Passez aux autres onglets afin de définir les paramètres de configuration du contrôleur. Voir les pages d'aide de l'éditeur de périphérique générique.

  2. Double-cliquez sur l'objet appareil de bus de terrain dans l'arborescence des appareils de votre projet.

    le <nom de l'appareil de bus de terrain> l'éditeur s'ouvre dans le principal CODESYS la fenêtre. Des onglets spécifiques sont disponibles en fonction de l'appareil. Pour les options de configuration, consultez les pages d'aide de l'éditeur d'appareil respectif. Si la Afficher les vues de configuration de périphérique génériques l'option est sélectionnée dans Outils → Options, dans le Éditeur d'appareil catégorie, puis consultez également les onglets fournis par l'éditeur de périphérique générique.

Si les paramètres de configuration de l'automate ont été modifiés par un autre appareil, par exemple via une visualisation, un fichier de configuration IoConfig.par est créé sur le contrôleur. Selon l'appareil, un bouton peut se trouver dans la boîte de dialogue des paramètres de l'éditeur d'appareils en mode en ligne pour écrire les paramètres actuels dans un tel fichier. Afin de mettre également à jour les paramètres modifiés dans votre projet, vous pouvez lire le fichier de paramètres en mode en ligne.

Condition préalable : vous disposez d'un projet standard avec une arborescence d'appareils dans laquelle l'environnement matériel est représenté avec un automate et un appareil paramétrable dans l'arborescence des appareils. Sur le contrôleur il y a un fichier IoConfig.par, dans lequel les paramètres de l'appareil ont été précédemment enregistrés avec les valeurs actuelles.

  1. Ajouter le Lire le fichier de paramètres API dans la configuration commande à un menu d'interface à partir de la Dispositifs catégorie dans la Outils → Personnaliser dialogue.

  2. Sélectionnez l'objet d'équipement API dans l'arborescence des équipements et ouvrez le menu contextuel.

  3. Cliquez sur Lire le fichier de paramètres API dans la configuration.

    CODESYS établit automatiquement une connexion avec le contrôleur et lit les paramètres du fichier par. Ceux-ci sont mis à jour en conséquence sur l'onglet avec les paramètres de l'appareil.

La possibilité ou non de configurer un mappage d'E/S pour projeter des variables ou même pour l'ensemble des blocs fonctionnels dépend du type d'équipement. Configurer une affectation d'E/S signifie lier les voies d'entrée et de sortie de l'appareil aux variables du projet. Nous utilisons également le terme "cartographie" pour ça.

Faites attention en général à ce qui suit pour le mappage des entrées et des sorties d'un appareil aux variables dans CODESYS:

  • Vous n'avez pas accès en écriture aux variables mappées à une entrée.

  • Vous ne pouvez mapper une variable existante qu'à une seule entrée.

  • Vous pouvez générer directement de nouvelles variables implicites globales dans la mappe d'E/S et les mapper à un canal de périphérique.

  • La disposition de la mémoire des structures est spécifiée par l'appareil.

  • Vous pouvez modifier les adresses et fixer les valeurs dans l'affectation des E/S.

  • Pour chaque variable associée à une voie d'E/S dans le Onglet : <nom de l'appareil> Mappage d'E/S est affecté, vous pouvez générer des "variables de force" lors de la compilation de l'application (voir ci-dessous). Vous pouvez utiliser ces variables, par exemple, pour forcer une valeur sur l'entrée ou la sortie lors de la mise en service d'un système via une visualisation/IHM.

  • Les modifications de l'affectation des E/S peuvent être transférées au contrôleur avec une modification en ligne.

  • Si un pointeur vers une entrée d'appareil est utilisé, l'accès est considéré comme un accès en écriture, par exemple pTest := ADR(input);. Lorsque le code est généré, cela conduit à un avertissement du compilateur : "...invalid assignment target". Si vous avez besoin d'une construction de ce type, vous devez d'abord copier la valeur d'entrée input à une variable avec accès en écriture.

  • Une adresse E/S peut également être liée à une variable via la "déclaration AT" dans le code CEI. Cependant, étant donné qu'une configuration d'appareil change souvent à nouveau, nous vous recommandons de n'effectuer les affectations que dans l'éditeur d'appareils.

    Si vous utilisez la déclaration AT, notez ce qui suit :

    • Une déclaration AT n'est autorisée qu'avec des variables locales ou globales, pas avec des variables d'entrée ou de sortie de blocs fonctionnels.

    • Les "variables de forçage" implicites pour les E/S (voir ci-dessous) ne peuvent pas être générées pour les déclarations AT.

    • Si vous utilisez une déclaration AT avec des variables de structure ou des variables de bloc fonction, toutes les instances accéderont au même emplacement mémoire. Cela correspond alors à l'utilisation de "variables statiques" dans les langages de programmation classiques tels que "C".

Important

Si un pointeur vers une entrée d'appareil est utilisé, alors l'accès (par exemple, pTest := ADR(input);) s'applique en tant qu'accès en écriture. Lorsque le code est généré, cela conduit à un avertissement du compilateur : "...invalid assignment target".

Si vous avez besoin d'une construction de ce type, vous devez d'abord copier la valeur d'entrée (input) à une variable avec accès en écriture.

Astuce

Alternativement, vous pouvez affecter une variable à une adresse dans le code de programmation à l'aide de la déclaration AT. Toutefois, compte tenu des éventuelles modifications de la configuration de l'appareil, nous vous recommandons d'effectuer les affectations uniquement dans l'éditeur d'appareils.

Astuce

Vous pouvez exporter la configuration de mappage d'E/S d'un périphérique vers un csv fichier ou l'importer à partir d'un tel fichier.

Pour plus d'informations, consultez : Exporter l'image d'E/S au format CSV

Pour plus d'informations, consultez : Génération de variables implicites pour le forçage des entrées/sorties

Exigence : un périphérique prenant en charge une configuration de mappage d'E/S dans CODESYS est inséré dans l'arborescence des appareils de votre projet. Sur le Mappage d'E/S Dans l'éditeur d'appareils, vous obtenez ainsi un affichage sous forme de tableau des canaux d'entrée et de sortie de l'appareil avec indication des adresses et des types de données.

Cartographier les types de données "trop volumineux"

Si une variable d'un type de données supérieur à un octet est mappée à une adresse d'octet, la valeur de la variable y sera tronquée à la taille d'octet. Pour surveiller la valeur de la variable dans Mappage d'E/S dialogue, cela signifie que, dans l'élément "racine" de l'adresse, la valeur que la variable a actuellement dans le projet est affichée. Les valeurs de bit individuelles actuelles de l'octet sont affichées successivement dans les éléments de bit en dessous, mais cela peut ne pas être suffisant pour la valeur de variable entière.

Astuce

Si une UNION est représentée par des canaux d'E/S dans la boîte de dialogue de mappage, cela dépend de l'appareil si le mappage à l'élément "racine" est également possible.

  1. Dans un POU, déclarez, par exemple, une variable xBool4 du genre BOOL avec lequel vous souhaitez accéder à une entrée de l'appareil cible depuis l'application.

  2. Pour ouvrir l'éditeur d'appareils, double-cliquez sur l'objet appareil dans l'arborescence des appareils, puis sur <nom du périphérique> Mappage d'E/S languette.

  3. Observer le Variable colonne avec l'affichage de l'entrée de l'appareil _cds_icon_input_channel.png canaux et sortie de l'appareil _cds_icon_output_channel.png canaux , qui peuvent toujours être triés par organisation _cds_icon_folder.png nœuds, selon l'appareil. Nous supposons qu'il existe une entrée d'appareil du type BYTE. Il est affiché avec ses adresses de bit individuelles (canaux de bit) sous le BYTE nœud.

  4. Remarque : Lors du mappage de variables structurées, l'éditeur vous empêche de saisir à la fois la variable de structure (exemple : %QB0) et des éléments de structure individuels (exemple : %QB0.1 et QB0.2). Par conséquent, s'il existe une entrée principale avec une sous-arborescence d'entrées de canaux de bits dans la table de mappage, alors ce qui suit s'applique : vous pouvez alors spécifier une variable soit dans la ligne de l'entrée principale, soit dans les lignes des sous-éléments (canaux de bits ), mais pas dans les deux.

    Vous pouvez maintenant occuper soit le canal entier avec une variable d'un type approprié OU ses adresses individuelles de canal binaire avec des variables appropriées du type BOOL ou BIT. Tout d'abord, double-cliquez sur un canal d'entrée de bit dans le variables colonne.

    Un champ de saisie s'ouvre.

  5. Pour placer une variable existante sur le canal, vous devez entrer la variable de projet souhaitée avec le chemin complet. presse _cds_icon_three_dots.png pour ouvrir l'assistant de saisie. Sélectionnez, par exemple, la variable Application.PLC_PRG.xBool4 déclaré dans PLC_PRG.

    La variable est insérée. le _cds_icon_map_to_existing_variable.png symbole s'affiche dans le Cartographie colonne. L'adresse est maintenant barrée. Cela ne signifie pas que l'adresse n'est plus disponible, car les valeurs des variables existantes sont gérées dans un autre espace mémoire. Mais : afin d'éviter les ambiguïtés lors de l'écriture des valeurs, il ne faut néanmoins pas occuper l'adresse avec une autre variable, surtout dans le cas des sorties.

    Remarque : Pour la version de compilateur V3.5 SP11 et supérieure, la valeur d'initialisation des variables est automatiquement utilisée comme valeur par défaut lors du mappage à une variable existante. Vous pouvez modifier le Valeur par défaut champ uniquement si vous mappez à une nouvelle variable créée ou si aucun mappage n'est spécifié. Dans les anciennes versions, les utilisateurs devaient spécifier explicitement que la valeur par défaut et la valeur d'initialisation étaient identiques.

    _cds_mapping_bit_on_existing_variable.png
  6. Supprimez à nouveau l'affectation de variable. Cliquez sur la racine du canal, le BYTE nœud. Utilisez à nouveau l'assistant de saisie pour sélectionner la variable Application.PLC_PRG.byte_gotodevice.

    La variable est insérée, toutes les adresses de bit du canal principal sont barrées et vous ne devez pas les occuper en plus.

    _cds_mapping_root_on_existing_variable.png

Dans ce qui suit, vous allez mapper une sortie d'appareil à une variable implicite globale, que vous avez récemment créée à cet effet directement dans le Mappage d'E/S dialogue.

Astuce

le Mappage d'E/S dialog est donc un endroit supplémentaire pour déclarer une variable globale.

Exigence : un périphérique prenant en charge une configuration de mappage d'E/S dans CODESYS est inséré dans l'arborescence des appareils de votre projet. Sur le Mappage d'E/S Dans l'éditeur d'appareils, vous verrez ainsi un affichage sous forme de tableau des canaux d'entrée et de sortie de l'appareil avec indication des adresses et des types de données.

  1. Pour ouvrir l'éditeur d'appareils, double-cliquez sur l'objet appareil dans l'arborescence des appareils, puis sur <nom du périphérique> Mappage d'E/S languette.

  2. Cliquez dans le tableau de mappage sur une entrée de canal dans le Variable colonne pour ouvrir un champ de saisie.

  3. Spécifiez un nom simple (sans ".") pour une nouvelle variable (exemple : myBool).

    CODESYS crée la variable comme variable globale implicite dans le projet et l'affecte directement à l'adresse du canal. Par conséquent, dans ce cas, l'adresse n'apparaît pas barrée comme dans le cas des mappages vers des variables existantes _cds_icon_create_new_variable.png.

    _cds_mapping_to_new_variable.png

S'il est pris en charge par l'appareil, vous pouvez mapper des blocs fonctionnels entiers sur une voie d'entrée ou de sortie. Cela vous permet de compter la fréquence des changements de signal ou de mettre à l'échelle une valeur de canal à des fins de maintenance, par exemple.

Ici, vous allez mapper une voie de sortie d'appareil à un bloc fonctionnel. Dans cet exemple, le bloc met à l'échelle la valeur de sortie du canal.

Condition préalable : Un appareil avec une sortie numérique qui prend en charge le mappage FB est lié dans le projet. Il existe un bloc fonctionnel Scale_Output_Int avec l'implémentation suivante. Les attributs du bloc fonctionnel lui-même et avant le paramètre de sortie avec lequel la sortie de la voie est traitée sont importants.

{attribute 'io_function_block'}
FUNCTION_BLOCK Scale_Output_Int
VAR_INPUT
    iInput : INT;
    iNumerator : INT;
    iDenominator : INT :=1;
    iOffset : INT := 0;
END_VAR
VAR_OUTPUT
 {attribute 'io_function_block_mapping'}
    iOutput : INT;
END_VAR
VAR
END_VAR
IF iDenominator <> 0 THEN
    iOutput := TO_INT(TO_DINT(iInput) * TO_DINT(iNumerator) / TO_DINT(iDenominator)) + iOffset;
  1. Ouvrez le Mappage d'E/S onglet du module de l'appareil. Double-cliquez sur la sortie qui doit être connectée au bloc fonction. Clique le _cds_icon_add_fb.png Ajouter FB pour le canal IO bouton.

    le Sélectionner le bloc de fonction la boîte de dialogue s'ouvre. Sur le côté gauche, vous voyez au moins le bloc fonction Scale_Output_int sous le Application nœud. Les bibliothèques liées dans le projet qui contiennent les blocs fonctionnels correspondants sont également affichées pour la sélection.

  2. Sélectionnez la POU myScaleOutputInt.

    Après avoir cliqué d'accord, le chemin du paramètre du bloc fonction iOutput dans le Variable est saisi dans la boîte de dialogue de mappage. Le chemin comprend le nom de l'application, le nom du canal de l'appareil et la sortie FB sélectionnée (exemple : App1.Out_4_Int_myScale_Output_Int_1.iOutput).

  3. Sélectionnez le canal et cliquez sur le _cds_icon_goto_definition.png Aller à l'instance bouton.

    La mise au point passe à la <nom de l'appareil> Objets CEI onglet et l'entrée créée pour le nouvel objet CEI Out_4_Int_myScale_Output_Int_1. Dans cette vue en mode en ligne, vous voyez la valeur actuelle du paramètre iOutput pour le canal Out_4_Int mis à l'échelle par le FB. Vous pouvez également écrire et forcer la valeur comme dans d'autres vues de surveillance.

Pour plus d'informations, consultez : Onglet : '<nom de l'appareil> Objets CEI et io_function_block, io_function_block_mapping

Vous pouvez modifier la valeur d'adresse d'un canal entier (mais pas celle d'un sous-élément individuel du canal !) dans la table de mappage du <nom du périphérique> Mappage d'E/S languette. Cela vous permet d'adapter l'adressage à une configuration de machine spécifiée et de conserver la valeur de l'adresse même si la disposition des modules change. Par défaut, un changement de mise en page entraîne une adaptation automatique des valeurs d'adresse.

Exigence : votre projet comporte un mappage d'E/S. Voir les sections correspondantes de la page d'aide ci-dessus.

  1. Pour ouvrir l'éditeur d'appareils, double-cliquez sur l'objet appareil dans l'arborescence des appareils, puis sur <nom du périphérique> Mappage d'E/S languette.

  2. Cliquez dans le tableau de mappage sur une entrée de canal dans le Adresse colonne pour ouvrir un champ de saisie. Ceci n'est possible que pour l'adresse "racine" d'un canal, pas pour un particulier de ses sous-éléments.

    Par conséquent, modifiez l'entrée d'adresse supérieure d'un canal dans le tableau, par exemple de QB0 à QB1. Quittez le champ de saisie.

    La valeur de l'adresse est modifiée. le _cds_icon_address_fixed.png Le symbole s'affiche devant l'adresse. Il indique que l'adresse est fixe. Les adresses des sous-éléments du canal sont également modifiées en conséquence. Si vous modifiez maintenant la position de l'objet d'appareil à l'intérieur d'autres objets d'appareil avec des canaux d'entrée/sortie dans l'arborescence des appareils, CODESYS n'adapte pas ces adresses à la nouvelle commande comme ce serait le cas sans fixation.

    _cds_modifying_address_in_mapping_dialog.png
  3. Pour annuler la modification manuelle ou la fixation, ouvrez à nouveau le champ de saisie de la valeur d'adresse, supprimez l'entrée d'adresse et appuyez sur la touche Entrée.

    CODESYS remet l'adresse et les adresses suivantes concernées aux valeurs qu'elles avaient avant le changement et supprime le _cds_icon_address_fixed.png symbole.

Pour plus d'informations, consultez : Adresses

Selon l'appareil que vous connectez dans le projet, CODESYS met à jour les variables appliquées à ses entrées et sorties de différentes manières. Vous pouvez explicitement modifier les paramètres pour cela dans le Mappage d'E/S dialogue.

Condition préalable : vous avez compilé une application avec une configuration d'appareil contenant des cartes d'E/S sans erreur. Le matériel associé et le système de bus fonctionnent. Vous vous êtes connecté au contrôleur au moyen du En ligne → Se connecter commande et avoir chargé et démarré l'application.

  1. Ouvrez le Mappage d'E/S de l'automate dans l'éditeur d'appareils. Pour ouvrir l'éditeur, double-cliquez sur l'objet appareil dans l'arborescence des appareils.

    La table de mappage contient maintenant en plus le Valeur actuelle et Nouvelle valeur Colonnes.

    Si une variable de structure est mappée à l'élément 'racine' d'une adresse1, CODESYS n'affiche pas de valeur sur cette ligne en mode en ligne. Si, par exemple, un DWORD La variable est mappée à l'adresse, cependant, les valeurs respectives sont surveillées à la fois dans la ligne "racine" et dans les lignes de canal binaire en retrait en dessous.

    Par principe, le champ dans la ligne "racine" reste toujours vide si la valeur serait composée de plusieurs sous-éléments.

    1 "root" = élément supérieur de cette adresse dans la boîte de dialogue de mappage

  2. Entrez une certaine valeur de variable pour une entrée dans la colonne Nouvelle valeur et appuyez sur F7 forcer ou Ctrl+F7 pour écrire la valeur.

    Comme dans le cas d'une surveillance dans l'éditeur de déclaration ou dans les listes de surveillance, la valeur de la variable forcée est affichée dans la colonne Valeur actuelle avec un symbole F rouge préfixé ou la valeur écrite.

Important

Les entrées et sorties que le code de l'automate n'utilise PAS ne sont pas lues par l'automate en mode en ligne, de sorte que la valeur affichée peut être incorrecte. le Valeur actuelle des variables concernées s'affiche sur fond gris.

_cds_img_mapping_online.png

Lors de la mise en service d'une installation ou d'une machine, il peut être nécessaire de "forcer" les valeurs appliquées aux entrées et aux sorties. Si un appareil le prend en charge, vous pouvez faire en sorte que des "variables de forçage" spéciales soient générées à cet effet et les utiliser, par exemple, dans une visualisation IHM.

Condition : l'appareil prend en charge la fonctionnalité. Vous avez un projet dans lequel une affectation d'E/S est configurée pour l'appareil et qui contient un objet programme PLC_PRG.

  1. Ouvrez l'éditeur d'appareils, Paramètres API , en double-cliquant sur l'objet périphérique dans l'arborescence des périphériques.

  2. Activez l'option Générer des variables de force pour le mappage IO.

  3. presse F11 pour compiler l'application.

    Deux variables sont créées pour chaque canal d'E/S conformément à la syntaxe suivante, au cours de laquelle les espaces dans le nom du canal sont remplacés par des traits de soulignement :

    <device name>_<channel name>_<IECaddress>_force du genre BOOL pour l'activation et la désactivation du forçage

    <device name>_<channel name>_<IECaddress>_value du type de données de la voie pour définir la valeur que l'on veut forcer sur la voie

    Ces variables sont disponibles dans l'assistant de saisie dans la catégorie variables / IoConfig_Globals_Force_Variables. Vous pouvez les utiliser dans CODESYS dans la programmation d'objets, dans les visualisations, dans la configuration des symboles, etc.

  4. Ouvrir le bloc fonction API_PRG, définissez le focus dans la partie implémentation et appuyez sur F2.

    L'assistant de saisie s'ouvre. Les variables sont disponibles dans la catégorie variables / IoConfig_Globals_Force_Variables comme décrit ci-dessus.

    Un front montant à l'entrée "Forcer variable" active le forçage de l'entrée ou de la sortie respective avec la valeur donnée par la "Valeur variable". Un front descendant désactive le forçage. Désactivation en réinitialisant la variable "Force" à FALSE est la condition requise pour pouvoir forcer une nouvelle valeur.

Prenez note des restrictions suivantes.

  • Le forçage via les variables de force implicites n'est possible que pour les canaux mappés dans le Mappage d'E/S de l'appareil à une variable existante ou récemment créée.

  • Le forçage via les variables de force implicites n'est pas possible pour les entrées et sorties inutilisées ou celles qui sont mappées à une variable via une déclaration AT dans un programme d'application.

  • Les canaux d'E/S que vous souhaitez forcer via le mécanisme doivent être utilisés par CODESYS dans au moins une tâche.

  • CODESYS identifie les entrées forcées dans la surveillance par le symbole Force rouge, mais pas les entrées/sorties forcées. La valeur forcée n'est utilisée qu'implicitement par le pilote d'E/S pour l'écriture sur l'appareil.

Pour plus d'informations, consultez : Forcer et écrire des variables

Il existe un tableau qui affiche la carte d'E/S d'un périphérique ainsi que les cartes d'E/S de tous les sous-éléments insérés en dessous dans l'arborescence des périphériques. Vous pouvez y éditer les mappages d'E/S exactement de la même manière que dans les tableaux de mappage individuels des éditeurs d'appareils respectifs.

Condition : dans l'arborescence des appareils de votre projet, plusieurs automates programmables permettent chacun une configuration de mappage d'E/S.

  1. Sélectionnez le nœud racine de l'arborescence des périphériques et cliquez sur Modifier le mappage d'E/S dans le menu contextuel.

    le Modifier le mappage d'E/S La boîte de dialogue s'ouvre, dans laquelle les configurations de mappage d'E/S de tous les appareils insérés dans le projet sont affichées dans un tableau. Vous pouvez modifier les entrées de la même manière que dans le Mappage d'E/S boîte de dialogue de l'éditeur d'appareil associé.

  2. Sélectionnez maintenant l'un des objets de contrôle dans l'arborescence des appareils et sélectionnez le Modifier le mappage d'E/S commande à nouveau dans le menu contextuel.

    le Modifier le mappage d'E/S La boîte de dialogue affiche désormais uniquement la table d'E/S pour les configurations de mappage d'E/S trouvées dans et sous l'objet sélectionné.

  3. Définissez un Filtre dans la barre au-dessus du tableau ou entrez un nom de variable dans Rechercher une variable champ afin de voir l'utilisation de cette variable dans le mappage.

    La méthode de travail dans cette fenêtre est la même que celle décrite pour la <nom du périphérique> Mappage d'E/S languette.