Skip to main content

AT déclaration

Utilisation d'un éditeur de configuration clair pour le mappage des E/S

Nous vous déconseillons d'attribuer des adresses mémoire comme décrit ici, car cela peut entraîner une perte de clarté.

Nous vous recommandons d'attribuer des adresses mémoire aux variables dans l'éditeur de configuration Modifier l'image d'E/S de l'appareil.

Le mot clé AT dans la déclaration des variables attribue à une variable de projet une adresse d'entrée, une adresse de sortie ou une adresse mémoire spécifique du contrôleur qui est configurée dans l'arborescence des périphériques.

La déclaration AT permet de donner à l'adresse un nom significatif. Vous ne pouvez apporter les modifications nécessaires au signal entrant ou sortant qu'à un seul endroit, par exemple dans la déclaration.

Astuce

Vous pouvez apporter les modifications nécessaires aux signaux d'entrée ou de sortie à un seul endroit (par exemple, dans la déclaration).

Pour plus d'informations, voir :

Syntaxe

<nom de la variable> AT %<adresse>:<type de données>;

<nom de la variable>

Nécessaire

% <adresse>

Nécessaire

Adresse dans la zone mémoire

% <préfixe de la zone de mémoire> <préfixe de taille> <position de la mémoire>

<numéro de la zone de mémoire>

Nécessaire

  • I: zone de mémoire d'entrée

    Zone mémoire pour les signaux d'entrée et les entrées

    Pour les entrées physiques via des pilotes d'entrée et des capteurs

  • Q: zone de mémoire de sortie

    Zone mémoire pour les signaux de sortie et les sorties

    Pour les sorties physiques via des pilotes de sortie et des actionneurs

  • M: Zone de mémoire des drapeaux

<préfixe de taille>

Facultatif

  • Pas de préfixe de taille : bit

    Bit unique

  • X: Bit

    Bit unique

  • B: octet

    Largeur de données 8 bits

  • W: Mot

    Largeur de données 16 bits

  • D: épée

    Largeur de données 32 bits

<position de la mémoire>

<numéro de position > . <numéro de position du bit>

Exemple : %IB2.4 représente le 5e bit du 3e octet

<numéro de position>

Nécessaire

La numérotation dépend du système cible et commence à 0.

. <numéro de position du bit>

Facultatif

0,7 pour un octet

<type de données>

Facultatif

Le type de données doit correspondre au préfixe de taille.

Exemple 21. Exemples
VAR 
    wInput AT %IW0 : WORD; 
END_VAR

Déclaration de variable avec indication d'adresse d'un mot d'entrée

VAR 
    xActuator AT %QW0 : BOOL; 
END_VAR

Déclaration de variable booléenne

Remarque : Un octet est alloué en interne pour les variables booléennes si aucune adresse à un seul bit n'est spécifiée. Un changement de valeur de xActuator affecte donc le domaine de QX0.0 jusqu'à QX0.7.

VAR
    xSensor AT %IX7.5 : BOOL; 
END_VAR

Déclaration de variable booléenne avec spécification explicite d'une adresse à un seul bit

Lors de l'accès, seul le bit d'entrée 7.5 est lu.

VAR 
    xSensor AT %IX* : BOOL; 
END_VAR

Lors de la spécification de l'adresse, l'espace réservé est utilisé à la place de la position de stockage * spécifié. La spécification finale de l'adresse est faite dans la configuration des variables.

Remarque : Ceci est possible dans les blocs fonctionnels.



Conseils utiles

Important

Sauf si vous spécifiez explicitement une adresse à un seul bit, les variables booléennes sont allouées octet par octet.

Important

Adresses de bits individuelles qui sont mappées à des variables booléennes sont soumises à des restrictions. Il n'est pas possible d'utiliser ces variables avec VAR_IN_OUT, REFERENCE TO, ou le ADR opérateur.

Lorsque vous affectez une variable à une adresse, vous devez tenir compte des points suivants :

  • Vous ne pouvez pas écrire dans des variables affectées à une entrée. Cela conduit à une erreur du compilateur.

  • Tu peux faire AT déclarations uniquement pour les variables locales et globales, pas pour les variables d'entrée et de sortie du POU.

  • Vous ne devez pas utiliser AT déclarations dans des listes de variables persistantes.

  • Si vous utilisez AT déclarations pour les membres de la structure ou les variables des blocs fonctionnels, toutes les instances utilisent la même mémoire. Cela correspond à l'utilisation de « variables statiques » dans les langages de programmation classiques tels que « C ».

  • La disposition de la mémoire des structures dépend également du système cible.

Exemple

PROGRAM PLC_PRG
VAR
    xVar AT %QW0 : BOOL;
END_VAR
xVar := TRUE;

Lors de l'écriture des variables xVar est la zone de mémoire de départ de QX0.0 jusqu'à QX0.7 affecté.