questions diverses

Forum traitant des automates industriels de marque Siemens.
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2076
Inscription : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: questions diverses

Message par philou77 »

Salut !
L'ob80 est la réaction à un défaut temps de cycle !
Ton programme tourne en boucle ou est trop long combiné avec le reste.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Mick1903
Aguerri de l'automation
Aguerri de l'automation
Messages : 80
Inscription : 05 nov. 2018, 21:52

Re: questions diverses

Message par Mick1903 »

Salut philou 77
Oui ça j'ai vérifié mais l'OB80 est apparu juste après avoir injecté mon FC.est ce qui aurait une erreur dans ma boucle ou ça semble cohérent. Bonne soirée
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2076
Inscription : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: questions diverses

Message par philou77 »

Re,

ca semble cohérent, mais tu fais 130 fois ta boucle !!
de plus, ton saut DOIT pointer sur T MW 300 !! sinon tu sauvegarde pas la nouvelle valeur !
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Mick1903
Aguerri de l'automation
Aguerri de l'automation
Messages : 80
Inscription : 05 nov. 2018, 21:52

Re: questions diverses

Message par Mick1903 »

Bonsoir à tous,

Quelqu'un peut-il m'aider, je vous avez dis que ça fonctionnait, mais ce n'est pas le cas.J'ai le déclenchement de l'OB121. C'est une CPU3152DP.Le but étant de détecter un bit à 1 dans la DB1 composée de 2 bytes.
Merci pour vos réponses

Cordialement,

L P#0.0
LAR1
AUF "db1"

L DBLG
T MW300
M001: L DBB[AR1,P#0.0]
L 1
==I
SPB M002
L P#0.1
+AR1
L MW300
LOOP M001
SPB M003
M002:= DB1500.DBX0.1

M003: L 150
T MW100.
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2076
Inscription : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: questions diverses

Message par philou77 »

Salut !

encore une fois, ton étiquette de boucle M001 n'est pas correcte.
Elle DOIT pointer une ligne plus haut sur le T MW300

juste avant le loop
L MW300 (tu charges MW300 dans l'accu 1) - ça ok
LOOP M001 (décrémente la valeur de l'accu 1, pas de MW300 et place le contenu dans l'accu 1) ça ok il saute si la valeur de l'accu 1est différent de 0
pour sauvegarder la nouvelle valeur de boucle pour le prochain loop il te faut donc charger l'accu 1 dans MW300 !
Si tu ne le fais pas, tu restes éternellement sur la valeur de MW300 qui ne change pas !

donc écrire
M001 : T MW 300
L DBB[AR1,P#0.0]
.
.
.
.
L MW 300
LOOP M001



si besoin regarde ici
https://cache.industry.siemens.com/dl/f ... awl__c.pdf
(page 99)
Dernière modification par philou77 le 22 oct. 2019, 11:08, modifié 1 fois.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Mick1903
Aguerri de l'automation
Aguerri de l'automation
Messages : 80
Inscription : 05 nov. 2018, 21:52

Re: questions diverses

Message par Mick1903 »

Salut

Merci de ta réponse, Oui effectivement avec l'emplacement du M001 ça ne pouvait pas aller.

J'ai pas mal essayer de résoudre le problème en vain, en simulant, il n'y a plus défaut sur la CPU (voyant SF), néanmoins dès que simulateur démarre ma sortie A0.0 est activé, alors qu'aucun de mes bits n'est a 1 dans mon DB 1. Je sais pas ou ça bloque encore, pourtant je pensais que tout était en ordre. Merci de votre aide. Bon week end à tout le monde
Pièces jointes
Capture11.PNG
Capture11.PNG (205.48 Kio) Consulté 4750 fois
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2076
Inscription : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: questions diverses

Message par philou77 »

Salut !

dans ta boucle, tu fais

L P#1.0 (cela avance d'un octet !)

se serait plutôt :
L P#0.1 (pour avancer d'un bit)

EDIT :

j'ai répondu trop vite.. je ne pense pas qu'il y ai d'erreur ici !

Par contre :
après le loop, il te faut un saut pour ne pas faire le set A0.0 !!

LOOP M001
SPA M003

S A 0.0
M003 : U E 0.0
FP M100.0
R A 0.0
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Mick1903
Aguerri de l'automation
Aguerri de l'automation
Messages : 80
Inscription : 05 nov. 2018, 21:52

Re: questions diverses

Message par Mick1903 »

OK merci maintenant ça fonctionne...

Je veux lui apporter une modification,mais je ne trouve pas la solution.

A la place de reseter ma sortie à travers le front montant de E0.3, je souhaite le faire de façon automatique,c'est à dire des que j'ai tous les bit de mon DB1 à 0 ma sortie repasse à 0 automatiquement. Je pensais que je pouvais le faire retirer E0.0 et mettre R A0.0. J'ai également utilisé plusieurs possibilités en vain.

Bonne journée à tous

Cordialement
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2076
Inscription : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: questions diverses

Message par philou77 »

Salut

Ecris après LOOP M001

U A 0.0
O N A 0.0
R A 0.0
BEA
M002 : S A 0.0


en cas de détection d'un mot pas a Zéro il saute à M002 et met la sortie à 1
en cas de boucle sans détection il remet A0.0 à Zéro et fin de bloc inconditionnelle
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Mick1903
Aguerri de l'automation
Aguerri de l'automation
Messages : 80
Inscription : 05 nov. 2018, 21:52

Re: questions diverses

Message par Mick1903 »

Bonsoir a tous:

Je viens de mettre en service ma modif et ça fonctionne.merci pour l'aide.

par contre en voulant le tester, je me suis aperçu que PLCSIM ne fonctionne plus correctement alors qu'auparavant il n'y avait aucun souci.

Pour information, Simatic manager est installé sur virtualbox sur un windows XP pro.

En gros pour faire simple je vais vous expliquer:

U E0.0
= A0.0

PLCSIM= pas de probleme

si je fais
U E0.0
= DB1.DBX0.0

PLCSIM= le bit db1.dbx0.0 ne passe pas a 1, alors qu'en visu dynamique il est a 1.

Avez-vous une idée?

Bonne soirée

Cordialement,
Répondre