Page 1 sur 1
[RESOLU][STEP 7] Erreur de longueur de zone
Posté : 26 mars 2016, 10:53
par lolodu013
Bonjour, j'ai chargé une CPU S7-400 et elle me renvoie:
evénement 1 de 22: ID d'événement 16# 2522
Erreur de longueur de zone à la lecture
DB d'instance, accès bit, Adresse d'accès : 134
Nº de FB : 150
Adresse de bloc : 20
OB requis : OB d'erreur de programmation (OB 121)
Classe de priorité : 1
Erreur interne, Evénement apparaissant
09:55:43.154 22/03/2016
(Codage: 16# 2522 0179 8E05 0086 0096 0014)
J'ai regardé dans la doc siemens qui me dit:
Vous avez programmé un bloc fonctionnel ou une fonction avec un adressage indirect, les données sont lues dans un bloc de données (par ex. DB20), traitées et de nouveau écrites dans un autre bloc de données (par ex. DB23). Si maintenant lors de l'appel d'un bloc avec le paramétrage d'un pointeur ANY , la zone d'adresse du bloc de données appelée est dépassée, il apparaît une "erreur de longueur de zone lors de la lecture" et / ou une "erreur de longueur de zone lors de l'écriture", si la zone d'adresse du DB20 ou du DB23 est dans l'exemple décrit ci-dessus plus petite, que la longueur en octet paramétrée dans le pointeur ANY.
Pourtant je ne suis pas de ce cas.
J'ai programmé un FB et un DB d'instance supplémentaire dans lequel j'ai placé mes nouvelles STATS, et ça à l 'ai de fonctionné. Mais je comprend pas pourquoi mon ancien FB et sont DB instance mùe rejette mes nouvelles STAT
Une idée?? merci par avance
Re: SETP 7 erreur de longueur de zone
Posté : 27 mars 2016, 11:32
par djé
Salut,
As-tu regénèré l'ancienne DB d'instance? Si tu modifies les STAT d'un FB il faut recompiler ton programme ou actualiser l'appel du/des FB pour que la/les DB soient mises a jour avec les nouvelles données déclarées dans les STAT et transférer les blocs modifiés.
Attention aussi si tu utilises des données du Bloc d'instance en dehors du FB, les adresses risquent d'être décalées. (Tout dépend si tu as ajoutés tes nouvelles STAT en fin de bloc ou au milieu)
Si c'est le cas, Idéalement il faudrait que tu travailles en "mnémonique prioritaire" et recompiler le programme afin de vérifier/corriger l'impact des changements sur l'ensemble des blocs.
Re: SETP 7 erreur de longueur de zone
Posté : 27 mars 2016, 12:24
par lolodu013
salut,
Merci de répondre c'est très gentil.
Alors oui j'ai re-complié et re généré le DB d'instance associé. Et le problème reste identique. les autre DB ne sont pas décalé. OUFF lol. Je vois pas ce qui me bride le volume de mon FB.
La solution de créer un autre FB avec son DB d'instance associé a l'air de fonctionner. Je vais tenté mardi. Mais je comprend pas pourquoi j'ai cette erreur.
Pour récapituler:
FB + DB d'intance associé avec 6 stat = RAS
Je rajoute 3 STAT, je regénère le DB d'instance associé. Je vois que le DB d'instance prend en compte mes nouvelles STAT. ET bim ca plante avec le message d'erreur que j'ai sité.
Je retire mes 3 STAT, je les place dans un AUTRE FB que je crée. Je cré sont Db d'instance associé. je l’écrit dans l'OB1" CALL FB,DB...." . Je compile. Le nouveau DB d'instance prend tout en compte RAS. Et l' API à l'air de de tout prendre en compte ( à vérifié).
Et je comprend pas l’explication de siemens qui à l'ai sans rapport avec mon cas
https://support.industry.siemens.com/cs ... 0&lc=fr-WW
Re: SETP 7 erreur de longueur de zone
Posté : 29 mars 2016, 08:42
par djé
Salut,
Envoi ton prog. avec le code en défaut si tu peux, qu'on jette un oeil.
Re: SETP 7 erreur de longueur de zone
Posté : 29 mars 2016, 17:03
par lolodu013
salut,
Je ne peut pas diffuser mon prog. J'ai un devoir de confidentialité. Mais merci quand meme.
J'ai pas trop eu de temps aujourd’hui, pour me pencher dessus. Demai je fait les essai et je revient vers vous.
merci quand même
SLT
Re: SETP 7 erreur de longueur de zone
Posté : 29 mars 2016, 19:10
par JC87
Bonsoir,
Pourtant c'est bien un problème d’accès a une zone mémoire qui n'existe pas, il faut regarder dans le db d'instance du FB150 ce qu'il y a en adresse 134.
JC
Re: SETP 7 erreur de longueur de zone
Posté : 29 mars 2016, 22:20
par lolodu013
bonsoir,
je pense que j'ai simplement oublié de re généré mon Db d'instance associé. J'en serai plus demain
Par contre mes STAT sont programmé dans un FB150, puis elle sont appeler en FB 160 (call STAT....) voir PJ
Est il possible de l'appeller dans un autre FB supplémentaire. Le FB 164 plus exactememnt??????
Re: SETP 7 erreur de longueur de zone
Posté : 30 mars 2016, 10:47
par djé
Salut,
De ce que je crois comprendre: tu as un bloc FB150 qui est un bloc de gestion de vanne disons "Standard".
Ensuite tu l'utilises en multi-instance dans un bloc, disons "global", de gestion de vannes FB160. Tu déclares donc dans l'interface du FB160 en STAT des instances du Blocs FB150 qui correspondent à tes différentes vannes.
C'est très bien.
Rien ne t'empêches d'utiliser des instances de ton bloc FB150 dans d'autres FB sur le même principe.
Ce qu'il faut que tu saches, c'est que si tu modifies l'interface de ton bloc FB150 il faudra remettre à jour les blocs dans lequel celui-ci est instancié ainsi que leurs DB d'instance respectives.
Attention tout de même si tu utilises des données du DB d'instance (FB160 par exemple) dans d'autre blocs. Les adresses risquent d'être décalées si tu fonctionnes en mode classique "adressage prioritaire". Si tu dois souvent intervenir dans les zones STATs car ton programme est en cours de Dev' et qu'il est susceptible d'évoluer je te conseille de passer en mode "Mnémonique prioritaire", ainsi tu ne te soucies plus de l'adressage puisque S7 utilise les mnémonique pour travailler. Tu peux donc retravailler à loisir tes affectations dans les DB/FB sans craintes. Il suffit juste de "Vérifier la cohérence de tes blocs" et de recompiler ceux pour lesquels il y a des incohérences.
Attention aussi, si tu as des valeurs de réglages dans certains FB/DB, après recompilation, ces données seront remises à leur valeurs par défaut.
(résolu): SETP 7 erreur de longueur de zone
Posté : 30 mars 2016, 20:30
par lolodu013
salut à tous,
Merci encore pour vos conseil.
Bon en fait j'ai trouvé, et c'est tout simple. j'avais re généré et actualisé mon db d'instance..... bref je suis reste avec mes FB d'origine, dans lequel j'ai mis met stat.
Généré, actualisé etc... et plus de soucis.
Merci pour le conseil des mnenoniques prioritaires je le note dans un coin de ma petite tête.
By et merci encore