[RESOLU] Saturation PROFINET
- JC87
- Mi homme - Mi automate

- Messages : 2242
- Enregistré le : 20 oct. 2015, 13:00
- Localisation : Nouvelle Aquitaine
Re: Saturation PROFINET
Bonjour,
A mon avis avec le "%ID460:P" tu pointe sur une zone qui n'existe pas et comme l'OB de réaction ad hoc n'est pas appelé la cpu plante. Après je ne vois pas du tout à quoi correspond cette syntaxe, en Step7 ça n'existait absolument pas et je ne connais pas assez TIA pour dire à quoi ça correspond, idem pour l'OB qui permettrait d'éviter le passage en stop mais je pense qu'il faut gratter dans ce sens.
JC
Edit : J'ai été voir chez Siemens a à priori le : P signifie que la variable est sur Profibus, malgré tout c'est peut être quand même une adresse inconnue qui pose problème, comme l'a dit Djé il faudrait voir ce qui est configuré en table d’échange et si l'adresse donnée dans les messages de défauts correspond.
A mon avis avec le "%ID460:P" tu pointe sur une zone qui n'existe pas et comme l'OB de réaction ad hoc n'est pas appelé la cpu plante. Après je ne vois pas du tout à quoi correspond cette syntaxe, en Step7 ça n'existait absolument pas et je ne connais pas assez TIA pour dire à quoi ça correspond, idem pour l'OB qui permettrait d'éviter le passage en stop mais je pense qu'il faut gratter dans ce sens.
JC
Edit : J'ai été voir chez Siemens a à priori le : P signifie que la variable est sur Profibus, malgré tout c'est peut être quand même une adresse inconnue qui pose problème, comme l'a dit Djé il faudrait voir ce qui est configuré en table d’échange et si l'adresse donnée dans les messages de défauts correspond.
"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..."
Re: Saturation PROFINET
Je ne suis pas sur le projet pour récupérer une image en ligne sur le diag de la cpu.
Ceci dit, le diag me dis bien que l'adresse "erreur de lecture en périphérie" et à partir de 460, ce qui correspond à mon "Result data 128Byte..." du controleur
En attendant voici en PJ l'image des attributions d'adresse du contrôleur.
Ceci dit, le diag me dis bien que l'adresse "erreur de lecture en périphérie" et à partir de 460, ce qui correspond à mon "Result data 128Byte..." du controleur
En attendant voici en PJ l'image des attributions d'adresse du contrôleur.
- djé
- Dieu du process

- Messages : 864
- Enregistré le : 20 oct. 2015, 09:55
- Localisation : Bretagne, Pays de la Loire, Nantes
- Contact :
Re: Saturation PROFINET
Salut,
L'OB122 est appelé en cas d'erreur de lecture sur la périphérie (module absent ou adresse non valide).
Si tu te contentes de lire les adresse de 424 à 459, ça passe, c'est çà? A partir de 460 çà plante.
Le fichier GSD à été généré par un logiciel Keyence, c'est çà? Vérifie alors peut-être côté Device si tout est bien paramétré. (ie la config E/S Profinet est identique à celle déclarée dans TIA, je nesais pas comment c'est fait).
Question con mais, peut-être suite à des essais, tu n'as pas rechargé la conf matérielle qui correspond aux déclarations.
L'OB122 est appelé en cas d'erreur de lecture sur la périphérie (module absent ou adresse non valide).
Si tu te contentes de lire les adresse de 424 à 459, ça passe, c'est çà? A partir de 460 çà plante.
Le fichier GSD à été généré par un logiciel Keyence, c'est çà? Vérifie alors peut-être côté Device si tout est bien paramétré. (ie la config E/S Profinet est identique à celle déclarée dans TIA, je nesais pas comment c'est fait).
Question con mais, peut-être suite à des essais, tu n'as pas rechargé la conf matérielle qui correspond aux déclarations.
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 ...
Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Re: Saturation PROFINET
Non à 460 sa passe car je commence à lire à partir de "ResultData Byte128_1".
Mais dès que j'arrive vers les 500, sa plante.
Voici les photos suivantes représentant les table de com en détails.
Mon "ResultData Byte128_1" commence bien à 424 et la première valeur qui est affectée et que je dois lire est 460 ("ResultData 1"). A partir de là j'ai une limite de 1015 mots sur la capacité du contrôleur keyence.
Je me demande donc pourquoi dans ma table Profinet du TIA P, il y a une sorte de découpage. C'est à dire que de 551, on passe à 264 ............. jusqu'à 423.
pourquoi pas...
Autre chose: lorsque je vais dans mes informations du programme, je me retrouve avec 83 adresses AI occupées contre 12 configurées
Cela devient un peu délire tout ça...
Mais dès que j'arrive vers les 500, sa plante.
Voici les photos suivantes représentant les table de com en détails.
Mon "ResultData Byte128_1" commence bien à 424 et la première valeur qui est affectée et que je dois lire est 460 ("ResultData 1"). A partir de là j'ai une limite de 1015 mots sur la capacité du contrôleur keyence.
Je me demande donc pourquoi dans ma table Profinet du TIA P, il y a une sorte de découpage. C'est à dire que de 551, on passe à 264 ............. jusqu'à 423.
Autre chose: lorsque je vais dans mes informations du programme, je me retrouve avec 83 adresses AI occupées contre 12 configurées
Cela devient un peu délire tout ça...
- djé
- Dieu du process

- Messages : 864
- Enregistré le : 20 oct. 2015, 09:55
- Localisation : Bretagne, Pays de la Loire, Nantes
- Contact :
Re: Saturation PROFINET
Effectivement, c'est chelou ce taux d'occupation de 692%
Comme déjà dit je n'ai pas TIA donc difficile d'y voir clair mais:
Dans le screenshot "Table1keyence" de ton post il y a des truc bizarre: par exemple PID 424 qui est un Mot de 16 bits (2o) mais qui est noté PID donc (si je ne me trompe pas) un mot double (4o) si tu l'adresses tel quel chez siemens.
Je ne sais pas de quelle manière tu accèdes aux données d'E/S dans ton programme mais admettons tu cherches à accéder à "PID 550" qui serait le dernier mot de ta table d'échange "ResultData Byte128_1" et que tu y accèdes dans ton programme siemens de la même manière c'est à dire PID550 (accès double mot), ben l'automate va chercher à accéder aux octets 550 à 553 de la zone périphérie. Hors 552 et 553 n'existent pas (à priori) donc .. BIM...OB122
C'est une supposition.
Vérifie dans ton programme, de quelle manière tu accèdes aux E/S (PIB,PIW,PID). Notamment sur la fin de la table. S'il n'y a pas de dépassement en fin de table, alors diminue les accès jusqu'à ce que çà ne plante plus. Cela nous éclairera peut-être, à savoir à partir de quelle adresse ça plante.
Comme déjà dit je n'ai pas TIA donc difficile d'y voir clair mais:
D'après la copie d'écran précedente "ResultData Byte128_1" commence à 424 et jusqu'a 551 donc ca ne veut pas dire grand chose.Non à 460 sa passe car je commence à lire à partir de "ResultData Byte128_1".
C'est vague.Ok mais combien exactement?Mais dès que j'arrive vers les 500, sa plante
Dans le screenshot "Table1keyence" de ton post il y a des truc bizarre: par exemple PID 424 qui est un Mot de 16 bits (2o) mais qui est noté PID donc (si je ne me trompe pas) un mot double (4o) si tu l'adresses tel quel chez siemens.
Je ne sais pas de quelle manière tu accèdes aux données d'E/S dans ton programme mais admettons tu cherches à accéder à "PID 550" qui serait le dernier mot de ta table d'échange "ResultData Byte128_1" et que tu y accèdes dans ton programme siemens de la même manière c'est à dire PID550 (accès double mot), ben l'automate va chercher à accéder aux octets 550 à 553 de la zone périphérie. Hors 552 et 553 n'existent pas (à priori) donc .. BIM...OB122
C'est une supposition.
Vérifie dans ton programme, de quelle manière tu accèdes aux E/S (PIB,PIW,PID). Notamment sur la fin de la table. S'il n'y a pas de dépassement en fin de table, alors diminue les accès jusqu'à ce que çà ne plante plus. Cela nous éclairera peut-être, à savoir à partir de quelle adresse ça plante.
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 ...
Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Re: Saturation PROFINET
Ton raisonnement est pas bete...
Dans TIA P PIDxxx s'écrit pas comme dans le V5.5, il s'écrit comme stipulé plus haut "%IDxxx:P" ou "%IBxxx:P". Donc si je veux aller chercher le 550 sa sera "%ID550:P".
Ceci dit je vais enquêter demain sur la fin du byte justement pour voir comment je tombe soit entre des mots de 2o ou 4o.
Merci
Dans TIA P PIDxxx s'écrit pas comme dans le V5.5, il s'écrit comme stipulé plus haut "%IDxxx:P" ou "%IBxxx:P". Donc si je veux aller chercher le 550 sa sera "%ID550:P".
Ceci dit je vais enquêter demain sur la fin du byte justement pour voir comment je tombe soit entre des mots de 2o ou 4o.
Merci
- djé
- Dieu du process

- Messages : 864
- Enregistré le : 20 oct. 2015, 09:55
- Localisation : Bretagne, Pays de la Loire, Nantes
- Contact :
Re: Saturation PROFINET
Pour info Vu dans la doc STEP7 Pro V13_1 (13166 pages tout de même !!!!!
)
Identification d'accès au périphérique ":P"
Dans TIA Portal, on utilise l'identificateur d'accès ":P" pour l'adressage direct de la périphérie. La notation suivante n'est, par exemple, pas autorisée :
%PEW3.
A la place, on utilise la notation suivante :
%EW3:P //représentation absolue
MyTag:P //présentation symbolique
Opérandes autorisées pour accès périphérie
BOOL: I0.0:P ; Q0.0:P
BYTE: IB1:P ; QB1:P
WORD: IW2:P ; QW3:P
DWORD: ID2:P ; QD1:P
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 ...
Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Re: Saturation PROFINET
Bon alors! j'ai du nouveau mais du pas mieux
J'ai eu SIEMENS. Et en fait, j'ai agrandi la plage d'adresse d'image des entrées dans les propriétés de l'automate.
Comme c'est une CPU dernière génération, je peux la modifier, chose que je ne savais pas.
Donc de 256 mémentos d'usine, je suis passé à 1024, histoire d'avoir la place.
Du coup, je n'ai plus besoin d'écrire "%ID460:P", j'écris "%ID460" tout court. Donc l'erreur de périphérie que j'avais, étais du fait que j'allais lire une variable en dehors de la plage mémoire d'origine.
Mais maintenant, j'ai un autre problème! Je n'accède plus à mon contrôleur sur le réseau! Dans mon diagnostic, il me mets "Profinet:Module absent..." ou quelque chose comme ça.
Donc demain, je vais me faire une joie d'appeler Keyence...
Affaire à suivre.................
J'ai eu SIEMENS. Et en fait, j'ai agrandi la plage d'adresse d'image des entrées dans les propriétés de l'automate.
Comme c'est une CPU dernière génération, je peux la modifier, chose que je ne savais pas.
Donc de 256 mémentos d'usine, je suis passé à 1024, histoire d'avoir la place.
Du coup, je n'ai plus besoin d'écrire "%ID460:P", j'écris "%ID460" tout court. Donc l'erreur de périphérie que j'avais, étais du fait que j'allais lire une variable en dehors de la plage mémoire d'origine.
Mais maintenant, j'ai un autre problème! Je n'accède plus à mon contrôleur sur le réseau! Dans mon diagnostic, il me mets "Profinet:Module absent..." ou quelque chose comme ça.
Donc demain, je vais me faire une joie d'appeler Keyence...
Affaire à suivre.................
- djé
- Dieu du process

- Messages : 864
- Enregistré le : 20 oct. 2015, 09:55
- Localisation : Bretagne, Pays de la Loire, Nantes
- Contact :
Re: Saturation PROFINET
Pour moi c'est faux. Tu masques le problème:tu as agrandi la zone mémoire image des entrée (MIE) qui est une zone mise à jour par l'automate avant chaque début de scrutation et qui reste la même tout au long du déroulement du programme.Du coup, je n'ai plus besoin d'écrire "%ID460:P", j'écris "%ID460" tout court. Donc l'erreur de périphérie que j'avais, étais du fait que j'allais lire une variable en dehors de la plage mémoire d'origine.
Tous les S7300/400 ont cette zone qui va par défaut de 0 à 255(bytes) et qui peut être agrandie.
Lorsque tu tapes dans la périphérie (à partir de 256), l'automate accède directement aux modules et non pas à la mémoire image.
Cela peut être utile lorsque tu veux une valeur plus récente que celle de la MIE/MIS qui est l'image des E/S en début de cycle. Et lors d'un accès à la zone périphérie si l'adresse n'est pas présente ça plante.
Si tu passe par la MIE, ça ne plante pas, tu conviendra que sur l'ensemble de la zone déclarée toutes les adresses ne sont pas forcément présente, car l'automate ne récupère que ce qui est présent dans la configuration matérielle.
En zone périphérie c'est différent, tu lui dit va chercher,il y va et s'il ne trouve pas il plante.
Tu ne m'oteras pas de l'idée que tu as quand même quelque part un problème d'adressage et que même en passant par la MIE, tu prends le risque d'avoir une valeur erronée suivant la plage d adresse utilisée.
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 ...
Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Re: Saturation PROFINET
C'est vrai. il y un soucis d'adressage. j'en ai fait par à Keyence et m'ont bien confirmé que l'allocation des zones mémoires étaient anormales, à partir du fichier GSD.
J'ai trouvé aussi le fait que plus je mets d'outils sur mes images de vision et plus sa plante. Lorsque je mets moins d'outils, sa ne plante plus...
Donc j'ai fais part de tous ça à Keyence et il voit avec le service en interne. j'espère avoir une réponse fiable de leur part.
Du côté de SIEMENS, pour moi tout est clair.
J'ai trouvé aussi le fait que plus je mets d'outils sur mes images de vision et plus sa plante. Lorsque je mets moins d'outils, sa ne plante plus...
Donc j'ai fais part de tous ça à Keyence et il voit avec le service en interne. j'espère avoir une réponse fiable de leur part.
Du côté de SIEMENS, pour moi tout est clair.
