[SO Machine] utilisation du 'define' ?

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1579
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

[SO Machine] utilisation du 'define' ?

Message par MiGaNuTs »

Bonjour a tous.

Question "syntaxe" sous somachine (enfin le truc qui remplace somachine mais qui a un nom encore plus pourri qu'avant. bref)

Je voudrais définir des 'mots clefs' pour rendre mon code plus lisible et moins chiant a modifier.
Clairement, je voudrais écrire des trucs du genre

Code : Tout sélectionner

{define HOME = 750}
{define ALARMES = 428}
{define DEFAUTPIECE = 12}
a l'endroit qui va bien, pour pouvoir ensuite écrire dans mon code

Code : Tout sélectionner

AffichePage := HOME ;
a autant d'endroit que j'ai besoin de le faire, et ensuite le jour ou j'ai besoin de mettre 749 au lieu de 750 je n'ai qu'une ligne a modifier, je recompile le bouzin, et j'ai pas besoin de rechercher partout dans mon programme les endroits ou j'ai écrit HOME

Pour le moment l'idée c'est de faire ça pour les numéros de pages de mon afficheur, mais ça peut servir a n'importe quoi d'autre aussi.

Le truc c'est que je ne comprends pas a quel endroit je suis censé écrire mes define pour que mon POU veille bien se compiler
steph68
Codeur fou
Codeur fou
Messages : 275
Enregistré le : 21 oct. 2015, 08:23

Re: [SO Machine] utilisation du 'define' ?

Message par steph68 »

Salut,

C'est des constantes que tu veux définir.
Il faut créer une GVL avec l'attribut "CONSTANT"

@+
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1579
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: [SO Machine] utilisation du 'define' ?

Message par MiGaNuTs »

Je peut faire un GVL que j’appelle "ListePages" avec mes variables dedans.
après ça me fait écrire des trucs du genre

AffichePage := ListePages.home;

D'un point de vue fonctionnel ça fera le job presque pareil, mais niveau lisibilité je trouve ça nul a chier.
En plus ca consomme de la mémoire et des cycles CPU.
Certes sur un M251 y'en a plein, mais que je fait des trucs sur arduino j'essaye de pas gâcher, j'aimerai bien garder cette habitude quand je code sur autre chose.
steph68
Codeur fou
Codeur fou
Messages : 275
Enregistré le : 21 oct. 2015, 08:23

Re: [SO Machine] utilisation du 'define' ?

Message par steph68 »

il existe un #pragma pour ne pas avoir à répéter le nom de la GVL

https://help.codesys.com/api-content/2/ ... fied_only/

Je crois que par défaut il est présent et il faut le supprimer (en mode textuel sur la GVL).
En plus ca consomme de la mémoire et des cycles CPU.
Ca ne consomme rien du tout, les mnémoniques sont substitués par les valeurs à la compilation et non au runtime.
C'est même une très bonne pratique d'utiliser les constantes (valeurs magiques à proscrire).

@+
jerome33
Première mise en service
Première mise en service
Messages : 67
Enregistré le : 05 nov. 2015, 21:54

Re: [SO Machine] utilisation du 'define' ?

Message par jerome33 »

Bonjour,
utilise une variable DUT de type Enumération
https://product-help.schneider-electric ... BSTRSRCH=1
Répondre