Adressage dans un FB

Forum traitant des automates industriels de marque Siemens.
Répondre
Avatar du membre
Damall
Codeur fou
Codeur fou
Messages : 233
Enregistré le : 13 janv. 2016, 09:22
Localisation : Luxembourg

Adressage dans un FB

Message par Damall »

Bonjour,

j'ai une question qui me parait bête, mais je ne trouve pas la solution.

J'ai par exemple dans un FB, une variable temporaire de type BYTE, si je veux un octet de cette variable, je peux faire L0.5 par exemple.

Ma question est comment peu t’on faire avec une variable statique sachant que cette variable reste en interne et on ne connais pas le DB d'instance?

Merci.
Avatar du membre
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2241
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Adressage dans un FB

Message par JC87 »

Bonsoir,

Je ne comprend pas, tu connais forcement le DB d'instance puisque tu est obligé de le lui spécifier à l'appel du FB ?

JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
R26R
Aguerri de l'automation
Aguerri de l'automation
Messages : 92
Enregistré le : 19 juin 2016, 20:04

Re: Adressage dans un FB

Message par R26R »

C'est tout simple, tu l'appelle par son mnémonique ! #ma_variable
Avatar du membre
Damall
Codeur fou
Codeur fou
Messages : 233
Enregistré le : 13 janv. 2016, 09:22
Localisation : Luxembourg

Re: Adressage dans un FB

Message par Damall »

JC87 a écrit : 25 avr. 2017, 17:47 Bonsoir,

Je ne comprend pas, tu connais forcement le DB d'instance puisque tu est obligé de le lui spécifier à l'appel du FB ?

JC
Salut, et bien non, lorsque tu crée ton FB et que tu ne l'as pas encore appelé, tu ne connais pas le DB d'instance.
Avatar du membre
Damall
Codeur fou
Codeur fou
Messages : 233
Enregistré le : 13 janv. 2016, 09:22
Localisation : Luxembourg

Re: Adressage dans un FB

Message par Damall »

R26R a écrit : 25 avr. 2017, 21:04 C'est tout simple, tu l'appelle par son mnémonique ! #ma_variable
Effectivement ça fonctionne si je veux utiliser la variable tel quelle.

Mais si par exemple ma variable est la suivante :
TOTO, BYTE, (Adresse en STAT 5.0)

Donc effectivement dans le programme je l'appel par #TOTO, mais si je veux écrire le premier BIT de cette octet, je fait comment ??
En variable temporaire, j'utilise L5.0 mais en statique je ne sais pas...
Sinon, je suis obliger de faire des masques et ça va alourdir mon code.
Avatar du membre
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2241
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: Adressage dans un FB

Message par JC87 »

Bonjour,

Ok effectivement je n'avais pas pensé à ça. Cela dit je n'ai jamais eu besoin de faire ça parce que si je veut manipuler un bit stat et bien je déclare des bits et pas des bytes ou autres choses. Dans ton cas à part jouer avec des Temp pour travailler sur une partie de variable stat je ne vois pas comment faire.

JC
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
Avatar du membre
Cyril93
Maître du binaire
Maître du binaire
Messages : 484
Enregistré le : 29 oct. 2015, 14:22
Localisation : IDF

Re: Adressage dans un FB

Message par Cyril93 »

Damall a écrit : 26 avr. 2017, 07:30 Donc effectivement dans le programme je l'appel par #TOTO, mais si je veux écrire le premier BIT de cette octet, je fait comment ??
En variable temporaire, j'utilise L5.0 mais en statique je ne sais pas...
Sinon, je suis obliger de faire des masques et ça va alourdir mon code.
Tu peux aussi utiliser l’adressage absolu, par exemple DIX5.0 pour le premier bit. Mais comme dit JC pourquoi ne pas faire une copie dans une var local
Répondre