questions diverses
-
- Mi homme - Mi automate
- Messages : 2076
- Inscription : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: questions diverses
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.
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 !
Re: questions diverses
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
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
-
- Mi homme - Mi automate
- Messages : 2076
- Inscription : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: questions diverses
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 !
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 !
Re: questions diverses
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.
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.
-
- Mi homme - Mi automate
- Messages : 2076
- Inscription : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: questions diverses
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)
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 !
Re: questions diverses
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
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 (205.48 Kio) Consulté 4750 fois
-
- Mi homme - Mi automate
- Messages : 2076
- Inscription : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: questions diverses
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
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 !
Re: questions diverses
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
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
-
- Mi homme - Mi automate
- Messages : 2076
- Inscription : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: questions diverses
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
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 !
Re: questions diverses
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,
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,