[RESOLU][STEP 7] Erreur de longueur de zone

Forum traitant des automates industriels de marque Siemens.
Répondre
Avatar du membre
lolodu013
Codeur fou
Codeur fou
Messages : 261
Enregistré le : 05 mars 2016, 08:31

[RESOLU][STEP 7] Erreur de longueur de zone

Message 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
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: SETP 7 erreur de longueur de zone

Message 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.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
lolodu013
Codeur fou
Codeur fou
Messages : 261
Enregistré le : 05 mars 2016, 08:31

Re: SETP 7 erreur de longueur de zone

Message 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
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: SETP 7 erreur de longueur de zone

Message par djé »

Salut,

Envoi ton prog. avec le code en défaut si tu peux, qu'on jette un oeil.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
lolodu013
Codeur fou
Codeur fou
Messages : 261
Enregistré le : 05 mars 2016, 08:31

Re: SETP 7 erreur de longueur de zone

Message 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
Avatar du membre
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2231
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: SETP 7 erreur de longueur de zone

Message 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
"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
lolodu013
Codeur fou
Codeur fou
Messages : 261
Enregistré le : 05 mars 2016, 08:31

Re: SETP 7 erreur de longueur de zone

Message 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??????
réponse 3.JPG
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 864
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes
Contact :

Re: SETP 7 erreur de longueur de zone

Message 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.
ScreenHunter_003.jpg
ScreenHunter_005.jpg
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
lolodu013
Codeur fou
Codeur fou
Messages : 261
Enregistré le : 05 mars 2016, 08:31

(résolu): SETP 7 erreur de longueur de zone

Message 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
Répondre