Page 1 sur 2

Comment utiliser une variable d'un DB global ?

Posté : 04 avr. 2020, 21:46
par Wow400
Une autre question sous Step 7 V5.6
J'ai créé un DB global n°2 double clic sur le DB2 et dans le tableau j'ai ajouté une variable que j'ai appelé valeurcompteur1 en INT valeur initiale 0.
Dans un bloc FC j'essaye de l'utiliser mais je n'y arrive pas.
Par contre si j'utilise un adressage DB2.DBW (x) pas de souci.
Comment dois-je faire ?
Merci de vos réponses

Re: Comment utiliser une variable d'un DB global ?

Posté : 04 avr. 2020, 22:57
par djé
La réponse est dans la question 😜

Re: Comment utiliser une variable d'un DB global ?

Posté : 04 avr. 2020, 23:13
par Wow400
Désolé je suis un peu con je comprends pas. :roll:

Re: Comment utiliser une variable d'un DB global ?

Posté : 04 avr. 2020, 23:17
par Wow400
Il faut utiliser DB2.DBW (x) je suppose, mais dans ces cas là, à quoi sert de pouvoir faire une liste de variable dans le tableau du DB comme dans la table des mnémoniques si après on peut pas l'utiliser ?

Re: Comment utiliser une variable d'un DB global ?

Posté : 05 avr. 2020, 02:22
par djé
Tu parles d'adressage symbolique ?

Si c'est le cas, tu peux passer en mode de programmation “mnémonique prioritaire”.
C'est dans les propriétés du dossier Bloc ou Programme. Me rappelle plus bien.
Dans ce cas cela t'oblige à recompiler régulièrement ton programme pour garder la cohérence des blocs mais c'est pratique surtout en phase de création lorsque tu passes ton temps à structurer les données.

Quoiqu'il en soit sur Simatic manager, les variables sont toujours localisée à une adresse.
Sur TIA, la programmation est nativement en symbolique, et les variables ne sont pas localisée si les DB sont paramétrées en "optimisé" (possible uniquement sur les nouvelles générations de CPU 1200 et 1500)

Re: Comment utiliser une variable d'un DB global ?

Posté : 05 avr. 2020, 16:42
par Wow400
Première chose :
En résumé ce qu'on peut dire pour l'adressage sous step 7 c'est qu' il n'y a pas de variable non adressé sauf les variables locales temp ?
Vrai ou faux ?

Deuxième chose j'ai trouvé ce que tu disais mais j'ai pas vu ni compris la différence.

Image
Image

Par contre tu m'as mis sur la piste et j'ai insisté sur l'adressage symbolique (tu as compris c'est ce que je voulais dire) et c'est bon j'ai compris comment faire.
En premier dans le tableau du DB (double clic sur le DB pour l'accès) on crée les variables avec leur nom et le type (int,bool ou autre) et la valeur initiale) ici j'ai mis valeurcompteur1 ect.
En deux dans la table des mnémoniques on donne un nom au DB dans l'image sur l'exemple que j'ai mis Global2
En trois dans le FC on peut maintenant accéder aux variables créées. Clic droit insérer mnémoniques et on peut accéder à Global2 et aux variables, bien sur il faut enregistrer les blocs et la table de mnémoniques pour actualiser le programme et ainsi avoir l'affichage des mnémoniques.

Merci beaucoup pour tes réponses je valide grâce à toi beaucoup de choses dans mon apprentissage. La question de l'adressage est une question importante que je me posais.
J'ai encore plein de question sur l'adressage dans Tia portal et d'autres questions sur Step 7 mais je vais faire d'autres post pour pas tout mélanger.Si tu peux juste répondre à cette dernière question sur ce post.
Merci encore.

Re: Comment utiliser une variable d'un DB global ?

Posté : 05 avr. 2020, 16:52
par Wow400
valeurabsolueprioritaire.PNG
DBglobal.PNG
Désolé les images ont pas marché sur mon post d'avant.

Re: Comment utiliser une variable d'un DB global ?

Posté : 05 avr. 2020, 16:55
par djé
En résumé ce qu'on peut dire pour l'adressage sous step 7 c'est qu' il n'y a pas de variable non adressé sauf les variables locales temp ?
Vrai ou faux ?

Vrai, bien qu'il existe aussi une adresse pour les variables locales, mais non accessibles en dehors du code dans lequel elle sont déclarées.
Tu peux le voir normalement dans la zone interface de la déclaration des variables.

Admettons tu déclares deux mots wordTemp1 et wordTemp2 dans la zone temp, et bien tu peux y accéder soit par le symbole #wordTemp1 ou par l'adresse absolue LW0 et #wordTemp2 à l'adresse LW2.

Sinon tes images ne sont pas passées, mais tu as compris le principe me semble t'il.

Le fait d'être en adressage symbolique est beaucoup plus commode que l'adressage abslou car le mnémonique ne change pas tout au long du processus de programmation alors que l'adresse, elle, est susceptible de varier en fonction de tes déclarations et de ordonnancement de tes variables.

Re: Comment utiliser une variable d'un DB global ?

Posté : 05 avr. 2020, 16:58
par djé
Croisement de post...

c'est exactement çà.

Dans une DB le mnémonique des variables est déclarée dans la DB elle même et non pas dans la table des variables.
Le mnémonique du DB est quant à lui, déclaré dans la table des variables.

Re: Comment utiliser une variable d'un DB global ?

Posté : 05 avr. 2020, 17:32
par Wow400
Super, merci pour cette précision tout est adressé dans Step 7.