Adressage Programme en list

Forum traitant des automates industriels de marque Siemens.
ouaga12
Aguerri de l'automation
Aguerri de l'automation
Messages : 79
Inscription : 04 juin 2018, 21:40

Adressage Programme en list

Message par ouaga12 »

Bonjour, j'ai créé avec un ami qui s'y connait en list un FC me permettant de récupérer les valeurs d'un DB(DB3023) en fonction de l'adresse du Bit mais il se trouve qu'au dessus d'une certaine adresse l'automate se met en stop( je suis en mode simulation) .
je sais pas a quoi c'est du etant donné que je m'y connais pas trop en list .
je vous met en images des captures d'écran de mes tests , le code et aussi le message d'erreur de l'automate.

La variable dentrée est MW23.
La sortie est MB100 .

j'aimerais donc avoir votre aide pour résoudre ce problème (mon ami étant absent ;( ) .
Cordialement
Pièces jointes
SIMULATION AVEC VALEUR QUI MARCHE
SIMULATION AVEC VALEUR QUI MARCHE
ok.PNG (10.39 Kio) Consulté 2195 fois
SIMULATION AVEC VALEUR QUI NE MARCHE PAS
SIMULATION AVEC VALEUR QUI NE MARCHE PAS
MESSAGE D'ERREUR
MESSAGE D'ERREUR
DEUXIEME PARTIE DU CODE
DEUXIEME PARTIE DU CODE
PREMIERE PARTIE DU CODE
PREMIERE PARTIE DU CODE
Avatar de l’utilisateur
djé
Dieu du process
Dieu du process
Messages : 776
Inscription : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Adressage Programme en list

Message par djé »

Salut,

La CPU plante car le code va chercher une adresse dans la DB qui n'existe pas. Si par exemple ta DB est composée de 1000 mots de 16 bits et que tu cherche à récupérer le 1001 éme mots, on est d'accord que ce mot n'existe pas, la CPU plante.
Pour éviter cela tu peux insérér l'OB121 (de mémoire) dans la CPU pour qu'elle ne passe passe pas en STOP.
L'OB121 est appellée en cas d'erreur de programmation et évite le passage en STOP de la CPU.
Il faut tout de même gérer dans le code les dépassements d'adresse.
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 ...
ouaga12
Aguerri de l'automation
Aguerri de l'automation
Messages : 79
Inscription : 04 juin 2018, 21:40

Re: Adressage Programme en list

Message par ouaga12 »

Merci pour ta réponse , Pourtant 'adresse existe dans mon DB3023 mais rien à faire ça marche pas.
eux effectivement j'avais créé l'OB 121 pour évité le stop mais vue que sa résous pas mon problème jel'ai enlevé pour avoir l'automate en stop et savoir que ya un defaut.
R26R
Aguerri de l'automation
Aguerri de l'automation
Messages : 90
Inscription : 19 juin 2016, 20:04

Re: Adressage Programme en list

Message par R26R »

Salut,

DB_Number_W n'est pas égal à 0 ? Donc il va taper dans le DB 0 ?

EDIT : j'avais pas vu le début du code.

Sinon je suis pas fan des LAR1 etc...
Au réseau 6 j'aurai fais :

AUF DB [#DB_Number_W]
L Byte_adr
ITD
SLD 3
T Byte_Pointeur // Créer cette variable en DINT
L DBB[Byte_Pointeur]
T Value


Sinon envoie ton projet ça sera plus facile...
ouaga12
Aguerri de l'automation
Aguerri de l'automation
Messages : 79
Inscription : 04 juin 2018, 21:40

Re: Adressage Programme en list

Message par ouaga12 »

Salut ,J'ai tester ta solution ce matin à tête reposé et sa marche du tonner .
Merci Infiniment .
Petite dernière question .Peut tu commenter l'instruction afin que je sache exactement ce que sa fait et comprendre d'ou venait l'erreur ?
Cordialement
Répondre