Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1500 connectés 

  FORUM HardWare.fr
  Programmation
  Langages fonctionnels

  Programmation sur automate

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Programmation sur automate

n°2056040
Profil sup​primé
Posté le 27-01-2011 à 18:31:01  answer
 

Bonjour à tous !
 
J'ai crée un programme sous PL707 pour l'automate TSX Nano. Si vous ne maîtrisez pas le logiciel PL707, peut-être maîtrisez vous le langage à contacts Ladder qui est le langage utilisé.
Mon programme est terminé mais je en suis pas du tout sûr de ce que j'ai fait.
 
 
Pourriez vous le vérifier ?
 
 
Puisque PL707 ne permet pas les captures d'écran, j'ai pris des photos que j'ai hébergées sur pixenli. Si cela vous intéresse, je peux vous fournir le fichier .pl7
Voici les photos. J'explique juste après ce que j'ai fait et le but recherché.
http://www.pixenli.com/image1296056511074549700.html  
http://www.pixenli.com/image1296056508023071600.html  
http://www.pixenli.com/image1296056512002238700.html  
La fin est :  

Code :
  1. TYPE TON
  2. TB 1s
  3. ADJ T
  4. %TMO.P 3


 
 
 
Mes incertitudes sont ici :  
- Je n'arrive pas à l'utiliser avec %M0, donc je ne peux pas l'utiliser avec la bobine. J'ai donc mis un contact à fermeture mais je ne suis pas sûr  
- Les histoires de repères et symboles avec les bits internes (M0 et compagnie.)  
-Pour avoir un signal toujours en 1, utiliser un contact à ouverture %I0.3, entrée non utilisée, suffit ?  
- Comment faire pour que le dernier calcul ne s'active que si le bloc comparaison (sortie M2) donne une réponse à l'état 0 et non pas tout le temps ?  
 
Explication de mon programme :  
1)Le bit système, s'activant toutes les secondes, active M0.  
 
2)Cette donnée est comptée par le compteur C0, activé à l'aide de %I0.0 et arrêté à l'aide de %I0.1, %I0.2 servant pour la remise à 0.  
 
3) Les étapes 1 et 2 sont répétées avec une différence de 0.5 s (cela permet d'avoir une meilleure précision qui était nécessaire)  
 
4) Bloc comparaison entre les deux compteurs.  
Si la comparaison est bonne, alors on utiliser n'importe quel capteur.  
Si elle est mauvaise, on utilise la donnée du compteur le plus lent à laquelle on ajoute 0.5. (%KW0 = 2 ; %KW1 = 1)  
 
5) Deux blocs opérations qui permettent de trouver %PWM.R, donnée inversement proportionnelle au résultat du comptage (%KW3 sera défini par expérimentations de sorte que %PWM.R soit compris entre1 et 100.).  
 
6) Bloc PWM relié à la sortie %Q0.0  
 
7) Quand %I0.2 est activée, alors pendant 3 secondes, les sorties %Q0.0 et %Q0.1 sont activées aussi.  
 
Explication du but recherché :  
Le but est d'ouvrir une porte en fonction de la vitesse de la bille. Cette bille est détectable par les capteurs %I0.0 puis %I0.1. Comme la distance entre les deux capteurs est constante, la vitesse sera inversement proportionnelle au temps.  
Plus la vitesse de la bille est grande, plus le rapport cyclique du moteur %Q0.0 est important. Lorsqu'il atteint 100, alors le moteur tourne à plein régime. A 50, il tourne puis s'arrête, puis retourne de sorte que depuis notre échelle, il ne va simplement que deux fois moins vite (inertie du moteur).  
%I0.2 est un bouton poussoir qui est placé sur le mur de sorte que la porte l'active en étant complètement ouverte. Ce bouton permet à la fois de remettre à zéro le chronomètre mais aussi de faire tourner le moteur dans l'autre sens (%Q0.1 est un double relais qui permet de faire un pont en H). La temporisation permet d'arrêter tout. (3 secondes sera peut-être redéfini selon les expérimentations)  
 
Merci de votre aide !

mood
Publicité
Posté le 27-01-2011 à 18:31:01  profilanswer
 

n°2056041
buffo
Redfarceur :o
Posté le 27-01-2011 à 18:57:49  profilanswer
 

Très (trop) complexe pour la section hardware du forum à mon avis...
 
Je vais demander à un modérateur de déplacer ton sujet dans la bonne section tu auras peut être des réponses là-bas :jap:
 
Ton cas est beaucoup trop pointu, c'est des logiciels très spéciaux réservés à des applications vraiment particulières.


---------------
On peut voir si une femme est vraiment belle, le matin, quand elle se réveille
n°2056042
madpo
lève toi et marche
Posté le 27-01-2011 à 19:10:10  profilanswer
 

salut

 

c'est pas complex :o
y faut juste connaitre le ladder :o

 


pour ton programme il y a deja quelque erreur
tu as 2 timer ... tout les 2 portent le même nom
ensuite tu utilise un timer de 1sec avec une clock de 1hz ... c'est pas fort utile

Citation :

- Comment faire pour que le dernier calcul ne s'active que si le bloc comparaison (sortie M2) donne une réponse à l'état 0 et non pas tout le temps ?  


c'est du a ta logique m2 resulte de la comparaison de tes 2 compteurs si il ne sont jamais egaux alors non m2 sera toujours à 1, tu peux utiliser un detecteur de front pour qu il ne fasse le calcul uniquement lors de changement d etat


Message édité par madpo le 27-01-2011 à 19:13:29

---------------
"La perfection ne consiste pas à faire des choses extraordinaires, mais à faire des choses ordinaires de façon extraordinaire,"BDD cartes MINI ITX
n°2056043
buffo
Redfarceur :o
Posté le 27-01-2011 à 19:12:43  profilanswer
 

Programmer des automates c'est tout de même pas à la portée de tous, loin de là :o
 
Mais en lisant, j'ai franchement cru qu'il nous sortait un langage de l'espace là  
 [:djsix]  


---------------
On peut voir si une femme est vraiment belle, le matin, quand elle se réveille
n°2056044
madpo
lève toi et marche
Posté le 27-01-2011 à 19:19:16  profilanswer
 

non t as pas l air con
je ne veux pas faire de reproche à zilbou
mais c'est mal programmer, ça manque de mnemonique et de commentaire

 

dur , je n est jamais trouver cela dur , c'est de la logique quasiment pur
une fois que tu as compris ou tu dois aller le programme sort tout seul


Message édité par madpo le 27-01-2011 à 19:19:49

---------------
"La perfection ne consiste pas à faire des choses extraordinaires, mais à faire des choses ordinaires de façon extraordinaire,"BDD cartes MINI ITX
n°2056045
Profil sup​primé
Posté le 28-01-2011 à 17:35:01  answer
 

Salut, alors merci pour les réponses.
Pour le temporisateur, bien vu, je vais changer ça.  

Citation :

ensuite tu utilise un timer de 1sec avec une clock de 1hz ... c'est pas fort utile


Y aurait-il un moyen de simplifier ?
 
 

Citation :

c'est du a ta logique m2 resulte de la comparaison de tes 2 compteurs si il ne sont jamais egaux alors non m2 sera toujours à 1, tu peux utiliser un detecteur de front pour qu il ne fasse le calcul uniquement lors de changement d etat


Le problème est que je n'arrive pas à utiliser les fronts montants et descendants. Ils me répètent inlassablement que l'instruction est non-valide lorsque je tente de mettre %M2 ou %M0.2 et je ne vois pas la syntaxe que je devrais mettre pour qu'il accepte. Quelle est la bonne syntaxe ?

n°2056046
madpo
lève toi et marche
Posté le 29-01-2011 à 02:34:35  profilanswer
 

utilise la doc fourni avec le logiciel
tu dois y retrouver la syntaxe et les formats qu il accepte pour chaque bloc fonctionnel

 

comment simplifier ?
ben tu as un clock 1Hz qui set un retard a l enclenchement de 1sec du fait quand le timer arrive à 1Sec la clock s arrete donc le timer aussi soit a la sortie tu as une impulsion d'un cycle , soit tu n as rien du tout


Message édité par madpo le 29-01-2011 à 02:38:35

---------------
"La perfection ne consiste pas à faire des choses extraordinaires, mais à faire des choses ordinaires de façon extraordinaire,"BDD cartes MINI ITX
n°2056047
Profil sup​primé
Posté le 29-01-2011 à 12:44:11  answer
 

Justement, comme on peut le voir ftp://ftp-developpez.com/thierrya [...] giciel.pdf :ici p27, le langage est  
 
Type              Description                                             Repère ou valeur     Nombre maximal          Accès en écriture (1)
Interne  
(mémoire)      Les bits internes sont des zones de              %Mi                       128                           Oui
                   mémoire internes utilisées pour stocker des                                TWDLC•A10DRF,  
                   valeurs intermédiaires lorsqu'un                                                TWDLC•A16DRF
                   programme est en cours d'exécution.                                        256 Tous les autres  
                   Remarque : Les bits d'E/S non utilisés ne                                   automates
                   peuvent pas être employés comme des bits
                   internes.
Pourtant %M2 ou %M1 ne marche pas sur les fronts montants et descendants (mais ça marche sur les contacts à ouverture par exemple) :

Citation :

Symbole ou repère invalide pour ce type d'instructions  

     
 

Citation :


ben tu as un clock 1Hz qui set un retard a l enclenchement de 1sec du fait quand le timer arrive à 1Sec la clock s arrete donc le timer aussi soit a la sortie tu as une impulsion d'un cycle , soit tu n as rien du tout


Je vois le problème. Comme mes deux temporisateurs étaient les mêmes, quand j'ai fait passer le second à 3 secondes, le premier est passé lui aussi à 3 secondes. Je l'ai remis à 500ms =0.5s. Maintenant ça devrait être bon.
T=1s
Les deux horloges envoient un signal. Le premier arrive à %M0 tandis que le second reste bloqué au temporisateur.
T=1.5s
%M1 est activé car le temporisateur a fait passé le signal.
T=2s
Les deux horloges renvoient un signal.
...
Ça fait bien un signal toutes les secondes pour chaque horloge mais avec un décalage entre les deux de 0.5s.
 
     
               
               
             
 

n°2056048
Profil sup​primé
Posté le 30-01-2011 à 17:37:23  answer
 

Petite remontée.

n°2056049
Profil sup​primé
Posté le 31-01-2011 à 18:58:15  answer
 

Désolé d'accumuler ainsi trois messages à la suite mais j'ai besoin de votre aide et mon temps est compté.
 
J'ai pu résoudre le problème du dessus en ... supprimant les fronts.
 
En effet, j'ai utilisé un compteur rapide (FC) à 5khZ qui est bien plus pratique qu'avant côté précision.
 
Alors, voilà la version 3 de mon programme :
http://www.pixenli.com/image1296496179045214500.html Première partie
http://www.pixenli.com/image1296495411006632600.html Seconde partie
Note :  
%KW0 = 1000
%KW1 = 250
http://www.pixenli.com/image1296495415031118000.html Bloc FC
 
Si tout va bien, les actions suivantes devraient se dérouler ?
Lorsque l'entrée %I0.0 est activée, le bloc se met à compter.
Lorsque l'entrée %I0.1 est activée, le calcul s'arrête.
Prenons l'exemple de 0.5s ce qui correspond à 2500Hz
Alors, à ce moment là, on divise cette valeur par 1000 ce qui fait 2.5. On divise 250 par 2.5 ce qui nous donne 100.
Donc pour 0.5s le rapport cyclique du bloc PWM est de 100%. Pour 1s, il serait de 50% ...
Cette information est envoyée au moteur en sortie %Q0.0.
 
Dès que %I0.2 est activée, les sorties %Q0.0 et %Q0.1 sont activées pendant 2 secondes. (temporisateur TON). Et le chronomètre est remis à 0.
 
Est-ce que l'automate va digérer les contacts à ouverture %I0.3 qui ne sont reliés à rien (le but est d'avoir un signal toujours à 1)?
Est-ce qu'il acceptera les contacts à ouvertures à l'entrée du compteur ?
Est-ce que le programme est juste ?

mood
Publicité
Posté le 31-01-2011 à 18:58:15  profilanswer
 

n°2056050
madpo
lève toi et marche
Posté le 31-01-2011 à 19:35:30  profilanswer
 

Citation :

Est-ce que l'automate va digérer les contacts à ouverture %I0.3 qui ne sont reliés à rien (le but est d'avoir un signal toujours à 1)?
Est-ce qu'il acceptera les contacts à ouvertures à l'entrée du compteur ?
Est-ce que le programme est juste ?


oui, même si il doit y avoir un bit systeme
oui
et oui  
 
de toute façon si le programme pose probleme a l automate il te le dira lors de la compilation


---------------
"La perfection ne consiste pas à faire des choses extraordinaires, mais à faire des choses ordinaires de façon extraordinaire,"BDD cartes MINI ITX
n°2056051
Profil sup​primé
Posté le 10-02-2011 à 16:12:05  answer
 

Ça ne marche pas !!
 
Le câblage, les capteurs et le moteur sont sûrs (on a fait des programmes tests)
 
Il détecte les capteurs mais quel que soit le temps entre les deux, la lumière %Q0.0 ne s'allume pas.
(le bouton poussoir marche par contre : les sorties %Q0.0 et %Q0.1 sont activées)
 
 
Quelqu'un a une idée ?
On doit rendre le travail demain.

n°2056052
madpo
lève toi et marche
Posté le 10-02-2011 à 17:24:32  profilanswer
 

je dirais que c'est normal que tu n ait pas de sortie pwm
en connaissant le cycle que fait un automate tu te rend vite compte pq le pwm ne fonctionne pas et les bp bien  
 
le cycle de l automate  est  
1/ lecture des entrées
2/exécution du programme, du haut vers le bas et de droite à gauche ( ça ne parait pas important pourtant en ladder ça l est :o
3/écriture des sortie
ensuite il recommence
 
 
ton problème résulte du fait que ta sortie apparait 2 fois dans ton programme
j explique  
 tu fais tes calcul pour trouver la valeur de %pwm.r
au reseaux suivant tu mets la fonction %pwm0
c elle si selon le temps et la valeur de %pwm.r va dire si q0.0 est à 1 ou a 0 cette valeur  (1 ou 0 ) est ecris dans une memoire en vu d etre réellement appliqué a ta sortie  
 
puis sur ton dernier reseau tu as ton reset avec le timer ...
comme tu n appuye pas sur le reset le timer ne fonctionne pas ( evident ) et la sortie vers q0.0 est à 0 hors le programme voyant ce 0 va aller ecrire dans s memore de sortie 0 en effaçant ce que la fonction %pwm0 a ecrit dedans  
resultat uniquement ton reset fonctionne  
 
ce qui me fait conclure ( et ton enseignant aurais du te le dire )
c 'est que les sorties doivent apparaitre une seul et unique fois dans un programme, generalement soit a la fin du ladder ou soit dans une sous routine regroupant toutes les sorties du programmes
 
 
au niveau des entrées il est preferable aussi des les utilisées qu une seul fois mais uniquement pour avoir un programme plus clair et plus organiser
 
voici un extrait d un programme ( excuse pour la dimension :p)
 

Spoiler :

http://hfr-rehost.net/self/pic/0d0928a53cd1fe183661a437609921a8b7d96296.jpeg


 
tu remarquera en bas de page la référence croisée qui indique bien que la sortie est present qu une fois dans le programme


Message édité par madpo le 10-02-2011 à 17:24:51

---------------
"La perfection ne consiste pas à faire des choses extraordinaires, mais à faire des choses ordinaires de façon extraordinaire,"BDD cartes MINI ITX
n°2056053
Profil sup​primé
Posté le 10-02-2011 à 18:16:20  answer
 

Ah d'accord.
Mais comment faire pour modifier puisqu'il n'y a pas de sous-routine et parce que le PWM va directement à la sortie %Q0.0 sans passer par une bobine ?

n°2056054
madpo
lève toi et marche
Posté le 10-02-2011 à 19:29:14  profilanswer
 

sur ton dernier reseau i0.2 active une sous routine ou sera placer le timer et tes 2 sorties
ça devrais regler le probleme


---------------
"La perfection ne consiste pas à faire des choses extraordinaires, mais à faire des choses ordinaires de façon extraordinaire,"BDD cartes MINI ITX
n°2056055
arkrom
note, ca passait c'etait beau
Posté le 10-02-2011 à 19:33:50  profilanswer
 

la solution serai de gerer ta sortie a coup de set/reset, c'est la seul solution pour avoir 2 actions sur la meme sortie  
 
ton timer de periode fait le SET bobine, le timer variable le reset  
 
c'est la solution la plus simple pour moi :jap:  
 
m'enfin bon a se propos .. je pourrai te demander de me filer une copie du dossier de PL707 .. j'ai 2 vieux nano a la maison et j'ai plus le soft :lol:  
et mon PL7 pro refuse de reconnaitre du si vieux matos


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2056056
Profil sup​primé
Posté le 10-02-2011 à 21:11:09  answer
 

arkrom : Voici le lien : http://www.global-download.schneid [...] ctric.com/
 
J'avais aussi scanné quelques pages des instructions de service.   ;)
http://www.pixenli.com/image1297368169053609300.html
http://www.pixenli.com/image1297368173040886100.html
http://www.pixenli.com/image1297368178003409700.html
http://www.pixenli.com/image1297368183054137600.html
http://www.pixenli.com/image1297368187042265100.html
 
Auras tu besoin des autres pages ?
 
arkrom :
Si j'ai bien compris, je transforme la bobine %Q0.0 en bobine SET  sur ce screen ? http://www.pixenli.com/image1296495411006632600.html
 
madpo :
Mais comment fais tu une sous-routine sous PL7107 ? J'ai tenté un Ctrl+F dans la documentation de TwidoSoft (pratiquement comme PL707) et je ne trouve rien à "sous-routine", "sub", ...
 
Au passage, j'ai réussi à m'arranger pour avoir quelques jours de délai pour mon travail. :)  

n°2056057
madpo
lève toi et marche
Posté le 10-02-2011 à 21:52:15  profilanswer
 

normalement tu dois pouvoir rajouter une page de ladder
( regarde le screen que j aposter , tu as le main plus toute une ribambelle de sous programmes, tu arriver au même genre de resultat  
par contre je ne peux pas t aider plus , je n utilise ni le twido ni le tsx nano


---------------
"La perfection ne consiste pas à faire des choses extraordinaires, mais à faire des choses ordinaires de façon extraordinaire,"BDD cartes MINI ITX
n°2056058
arkrom
note, ca passait c'etait beau
Posté le 11-02-2011 à 11:34:52  profilanswer
 

je vais eplucher ton code cet aprem :jap: je me l'ecrit en une seule fois sur un papier et je te dit ca :jap:  
 
ton but est quoi ?.. un PWM sur la sortie %Q0/0 ?  
quel sont tes conditions d'entrees ?


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2056059
arkrom
note, ca passait c'etait beau
Posté le 11-02-2011 à 11:35:52  profilanswer
 

sinon pour ajouter des reseaux de memoir "suffit" de tapper dans le "fin de programme" pour ajouter une ligne"


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2056060
DraX
♪ | Membre raccourci | 12th
Posté le 11-02-2011 à 11:43:59  profilanswer
 

Ce sujet a été déplacé de la catégorie Hardware vers la categorie Programmation par DraCuLaX


---------------
| Un malentendu du cul | boum boum ! | La roulette
n°2056178
Profil sup​primé
Posté le 11-02-2011 à 17:20:17  answer
 

draculax: Cette catégorie m'avait échappée ; merci pour le déplacement.
 
arkrom : Je l'ai marqué plus haut mais je le réécris pour que ce soit plus clair :
Le capteur %I0.0 détecte un objet et envoie un signal.
Un chronomètre s'active (ici le compteur rapide %FC à 5kHz)
Le capteur %I0.1 détecte à son tour l'objet.
Le compteur s'arrête.
A ce moment là, le bloc PWM s'active et son rapport cyclique est inversement proportionnel à la valeur courante %FC.V du compteur.  
Pour avoir ce %PWM.R, on divise la valeur courante par 1000 pour avoir des nombres digérables par le logiciel puis on divise une constante par ce nouveau nombre. Cette constante (250 actuellement) pourra être probablement modifié selon d'autres essais.
Lorsqu’on appuie sur le bouton poussoir %I0.2, l'entrée %Q0.0 passe à l'état 1 24H/24 et la sortie %Q0.1 s'active aussi (amène à un double relais).
 
Si tu penses qu'il y a plus simple que cette démarche, n'hésite pas à  modifier.
Les screens de mon programme sont 12 posts au dessus du mien et le but recherché est à la fin du premier post.
Je peux te passer le fichier .pl7 s'il le faut.
 
madpo : J'ai bien vu le screen et pas de problème pour créer un nouveau réseau mais d'ici là ... je ne sais pas créer un sous-programme.
 
Merci à vus deux pour vous être intéressés à mon problème en tout cas.

n°2057756
arkrom
note, ca passait c'etait beau
Posté le 18-02-2011 à 12:11:20  profilanswer
 

je suis sur ton code .. deja il y a un truc etrange ...  
ton %M1 est commandé par un TON de 1S avec %S6 comme trigger .. a quoi ca sert ca :sweat: S6 c'est le bit systeme qui bat la seconde deja  
 
tu t'utilise comme substitue de front montant ou quoi ??  


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2057763
arkrom
note, ca passait c'etait beau
Posté le 18-02-2011 à 12:23:15  profilanswer
 

tu a 2 fois TM0 dans le code : ilfaut changer ca pour TMO /TM1  
 
ensuite regarde un truc sur tes MW ... je pense que tu pourrai avoir des chevauchements de variable ... j'ai pas utilisé PL707 depuis 3 ans et j'ai un doute .. il me semble me souvenir que pour WORD i faut compte de 2 en deux pour pas que se recouvre  


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2057765
arkrom
note, ca passait c'etait beau
Posté le 18-02-2011 à 12:26:49  profilanswer
 

ensuite .. de memoire tu regle ton PWM uniquement par le ration PWM.R

 

et la je capte pas ta logiue pour charger cette variable ... elle obeie a quel loi ta regulations ?

 

tu charge PWM.R avec KW2/C0.V si et seulemet si C0.V et C1.V sont egaux ( %M2 ) ca me parais un peut etrange non ??

 

surtout que CO et C1 ont des conditions de comptages similaire : l'un incremente sur I0.3 et l'autre sur I0.3 barre ...

 

tu detecte donc une difference de duree du temps entre les etats ON et OFF de cette entree .. je n'en capte pas le but


Message édité par arkrom le 18-02-2011 à 12:30:43

---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2057913
Profil sup​primé
Posté le 18-02-2011 à 20:49:54  answer
 

En fait, les photos du premier post sont obsolètes.
J'ai mis les photos de l'autre version dans le topic mais vu la longueur de celui-ci mais je vais les remettre ici :
 
http://www.pixenli.com/image1296496179045214500.html
http://www.pixenli.com/image1296495411006632600.html
%KW0 = 1000  
%KW1 = 250  
Bloc FC : http://www.pixenli.com/image1296495415031118000.html
 
Exit donc tous les fronts montants, les variables internes, ...
 
Voici le fonctionnement que j'ai tenté d'avoir :
Le capteur %I0.0 détecte un objet et envoie un signal.  
Un chronomètre s'active (ici le compteur rapide %FC à 5kHz)  
Le capteur %I0.1 détecte à son tour l'objet.  
Le compteur s'arrête.  
A ce moment là, le bloc PWM s'active et son rapport cyclique est inversement proportionnel à la valeur courante %FC.V du compteur.  
Pour avoir ce %PWM.R, on divise la valeur courante par 1000 pour avoir des nombres digérables par le logiciel puis on divise une constante par ce nouveau nombre. Cette constante (250 actuellement) pourra être probablement modifié selon d'autres essais.  
Lorsqu’on appuie sur le bouton poussoir %I0.2, l'entrée %Q0.0 passe à l'état 1 24H/24 et la sortie %Q0.1 s'active aussi (amène à un double relais).  
 
 
Le principal problème de cette version, c'est le fait qu'il y ait deux sorties %Q0.0 comme madpo l'a remarqué. Je ne sais pas s'il y a d'autres erreurs.
 

n°2057917
arkrom
note, ca passait c'etait beau
Posté le 18-02-2011 à 21:06:01  profilanswer
 

comment ca 2 sorties %Q0.0 j'en vois qu'une sur tes screens ?  
 


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2057951
Profil sup​primé
Posté le 18-02-2011 à 22:51:56  answer
 

En fait, le bloc PWM mène directement à la sortie %Q0.0.

n°2057995
arkrom
note, ca passait c'etait beau
Posté le 19-02-2011 à 11:50:56  profilanswer
 

et tu a un relais au cul :ouch:  PWM + contacteur = DTC  
ta bobine vas bruler en moins de 2 c'est pas bon du tout ca :non:  
le PWM c'est de l'analogique pure, ca doit connecté a un recepeteur adapté et pas a un relai  
 
y a QUOI reelement au cul de %Q0.O ?? si tu 'as pas le choix il te reste la solution frustre mais tres efficace de gerer ton problème en externe en logique cablé : tu met ton bye-pass sur %Q0.3 au lieu de %Q0.0 et tu fit le pontage en externe ( ne pas oublier d'iniber le bloc PWM sur %Q0.3 :jap: )


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2058006
Profil sup​primé
Posté le 19-02-2011 à 13:07:31  answer
 

Non, non la bobine du relais n'est pas connecté au %Q0.0 mais à %Q0.1.
Voilà le schéma de câbalge des sorties : http://www.pixenli.com/image1298117222038935000.html
%Q0.0 = on/off
%Q0.1 = sens
 

n°2058007
arkrom
note, ca passait c'etait beau
Posté le 19-02-2011 à 13:24:35  profilanswer
 

la oki :jap: par contre tu a une condition qui force la sortie Q0.0 @ 1 permanent non ??  
 
I0.2 il me semble avoir vu  
et donc tu a une commande sur %Q0.0 comme une bobine classique, et ca risque de coincer avec le bloc PWM non ?  
pour eviter ca tu pourrai faire que le ratio du PWM est forcé a 1 ce qui emulera un 1 permanent


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2058008
Profil sup​primé
Posté le 19-02-2011 à 13:38:27  answer
 

C'est vrai que ça résoudrait le problème ... mais le but est justement d'avoir un bloc PWM avec un rapport cyclique variable : sans cela la vitesse du moteur Q0.0) ne serait pas inversement proportionnelle au temps entre les activations de %I0.0 et %I0.1. C'est le but du programme. Je me demandais s'il n'y avait pas moyen de contourner le problème.

n°2058010
arkrom
note, ca passait c'etait beau
Posté le 19-02-2011 à 13:43:03  profilanswer
 

ben ton verrouillage "a fond" n'as lieu que si %I0.3 est activé non ?  
 
tu ajoute un I0.3 barre dans les conditions de tes compteurs pour le figer et tu fait un  
rung activer par %I0.3 qui recharge une valeur forcé a 1


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2058040
Profil sup​primé
Posté le 19-02-2011 à 16:58:05  answer
 

I0.3 ne sert en fait qu'à mettre un signal toujours à l'état 1.
Par contre, je ne comprend pas la seconde phrase, désolé.

n°2058043
arkrom
note, ca passait c'etait beau
Posté le 19-02-2011 à 17:05:45  profilanswer
 

atta je te code ca


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2058044
arkrom
note, ca passait c'etait beau
Posté le 19-02-2011 à 17:13:45  profilanswer
 

je te code ca a la rustre sur une entree @ lacon a toi d'adapter a ton usage dedié  :jap:  
 
pour le moment tu a ca  

Code :
  1. %I0.2
  2. [/]-------------------------------[ PWM.R := wathever ]


 
que tu converti en  

Code :
  1. %I0.2   %I0.7
  2. [/]------[/]-------------------------[ PWM.R := wathever ]
  3. %I0.7 
  4. [ ]-------------------------------[ PWM.R := 1 ]


 
 
comme ca quand l'entree 7 est activé , ca coupe le reglage "normal" pour forcer la valeur a 1  
 
simple, brutal, efficace  [:nexingen-]  
 
au besoin penser a mettre aussi un  [/] %I0.7 sur dans le  IN du %FC pour empecher qu'in ne continu a compter dans le vide pendant que  I0.7 est activé et que ca fasse de la merde une fois que tu relache


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2058048
Profil sup​primé
Posté le 19-02-2011 à 18:18:37  answer
 

Aaah ! Génial ! Merci.
Je viens de faire les modifications.
 
Si j'ai bien compris :
Avant, pwm donnait une valeur 24H/24 à %Q0.0. Soit 0, soit 1. Sauf que lorsqu'il y avait le bouton poussoir I0.2, il venait interférer ce que disait le bloc pwm et du coup ça ne marchait pas.
Maintenant, lorsque i0.2 n'est pas activée; c'est le pwm qui détermine l'état de la sortie %q0.0.
Quand le bouton poussoir est activé, le pwm se tait et la sortie %Q0.0 est toujours à l'état 1.
 
Je vais quand même reprendre des photos pour vérifier que tout est correct.
Est-ce qu'il y aurait sinon quelque chose qui permettrait de simuler le programme ?

n°2058052
arkrom
note, ca passait c'etait beau
Posté le 19-02-2011 à 18:44:07  profilanswer
 


 
en fait c'est pas tout a fait ca ...  
 
dans ton code I0.2 intefere sur Q0.0 donc la sortie est prioritaire sur e PWM  et ca marche pas  
 
avec ma methode le PWM est le seul a gerer Q0.0 :jap: par contre quand tu a besoin, avec l'entree de forcage tu prend la main sur le programme pour forcer le bloc PWM a sortir 1  en forcant le ratio cyclique a fond  
mais c'est toujours le bloc PWM qui gere la sorti et personne d'autre


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
n°2058060
Profil sup​primé
Posté le 19-02-2011 à 19:34:46  answer
 
n°2058072
arkrom
note, ca passait c'etait beau
Posté le 19-02-2011 à 20:31:58  profilanswer
 

a verifier la valeur a coller dans %KW2 sinon ca me parais bon oui


---------------
I sit, in my desolate room, no lights, no music, Just anger, I've killed everyone, I'm away forever, but I'm feeling better,How do I feel,What do I say,Fuck you, it all goes away,
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Langages fonctionnels

  Programmation sur automate

 

Sujets relatifs
Problème de programmationAide pour choix de language de programmation
Quelques conseils pour un débutant en programmationProgrammation des vieux jeux ( début des années 90 )
programmation sous excelProgrammation SQL Important
Programmation-traitement de fonctions mathématiques.Quel est le langage de programmation le plus pointu ?
faire une interview sur Programmation Informatiqueprogrammation d'une entrée analogique d'un automate
Plus de sujets relatifs à : Programmation sur automate


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR