[RESOLU] Variables internes

Forum traitant des automates industriels de marque Wago et du logiciel codesys
Répondre
wagodomo
Première mise en service
Première mise en service
Messages : 68
Enregistré le : 08 déc. 2015, 18:02

[RESOLU] Variables internes

Message par wagodomo »

Bonjour

je réalise la domotique de mon habitation à l'aide d'un automate Wago 750-881, sous codesys 2.3;
J'utilise plutôt le langage à blocs de fonctions (FBD).
J'ai structuré ma programmation avec des blocs de fonctions définis (FB) et des sous programmes (PRG).
J'ai un souci pour l'utilisation de variables internes entre programmes: mon programme de commande de volets roulants me délivre les informations volet ouvert - volet fermé sous forme de BOOL; je les ai identifiés en VAR_OUTPUT dans ce programme, et voudrais en réutiliser dans un autre programme. Je les ai là identifiés en VAR_INPUT, mais elles ne réagissent pas.
Où me suis-je trompé?
Merci
Avatar du membre
maxpeigne
Dieu du process
Dieu du process
Messages : 771
Enregistré le : 11 oct. 2015, 17:31
Localisation : Nord pas de calais

Re: Variables internes

Message par maxpeigne »

Si tu veux les utiliser dans d'autres sous programmes, as tu essayé de les déclarer en variable global (dans l'arborescence de droite tu cliques sur le 4e onglet du bas (ressources), puis le dossier "Variable global", puis variable global)?
Si tu veux utiliser des variables dans plusieurs sous programmes c'est ici que tu dois les déclarer.

A tester, penses à nous en faire un retour ;)
http://automacile.fr - Site et tutoriels sur l'arduino.
wagodomo
Première mise en service
Première mise en service
Messages : 68
Enregistré le : 08 déc. 2015, 18:02

Re: Variables internes

Message par wagodomo »

Bonjour Maxpeigne
Je viens de tester, mais çà ne marche pas; ma variable en "variables globales" ne s'active pas alors qu'elle est activée dans le sous-programme natif, mais pas non plus dans le sous programme utilisateur.
Il y a vraiment quelque chose qui m'échappe car çà me paraît être indispensable de pouvoir utiliser une variable interne dans différents programmes...
Merci de ton intérêt.
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: Variables internes

Message par Cyril93 »

Bonjour,

Vu l’utilisation des VAR INPUT et VAR OUTPUT normalement tu devrais faire le lien entre tes deux programmes dans le PRG ou tu fais leur appel, en utilisant le language CFC tu as juste des lignes à tirer entre tes deux blocs, c'est facile.

Sinon en générale sous codesys tu peux faire comme ceci pour utiliser une variable local dans une autre section de programme.

NomDuProgramme.NomDeLaVariable

Attention : ça marche pour lire une variable mais pas pour écrire dans ce cas tu déclare en VAR GLOBAL
wagodomo
Première mise en service
Première mise en service
Messages : 68
Enregistré le : 08 déc. 2015, 18:02

Re: Variables internes

Message par wagodomo »

Merci Cyril93, çà marche avec le nom de variable composé du "programmenatif_PRG.nomvariable".
Super, merci encore
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: Variables internes

Message par Cyril93 »

Si ce que Maxpeigne t'as dit ne fonctionnait pas chez toi il y a de grande chance pour que tes variables aient été déclaré deux fois. Une fois en var local et une fois en var global.
wagodomo
Première mise en service
Première mise en service
Messages : 68
Enregistré le : 08 déc. 2015, 18:02

Re: Variables internes

Message par wagodomo »

...tu as raison, je viens de vérifier, en supprimant ma variable interne de la liste des VAR_OUTPUT du programme natif et en la mettant dans la liste des variables globales de ressources elle est utilisable dans un autre programme.
Merci, vous me faîtes progresser...
Avatar du membre
maxpeigne
Dieu du process
Dieu du process
Messages : 771
Enregistré le : 11 oct. 2015, 17:31
Localisation : Nord pas de calais

Re: Variables internes

Message par maxpeigne »

Bonne continuation ;)
http://automacile.fr - Site et tutoriels sur l'arduino.
Répondre