|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité(e)
Messages : n/a ![]() |
Bonjour à tous,
Je suis actuellement en train de travailler sur un programme sur PL707 (V4) Je cherche juste à savoir si c'est possible de mettre un chronomètre dans le programme (contact à ouverture %I0,0 pour le déclencher, contact à ouverture %I0,1 pour l'arrêter et que le résultat soit transmis à un bloc opération F7) Si oui, comment ? Quel est le symbole dans la liste des instructions ? PS : Je suis débutant en programmation. Merci de votre aide. |
00
|
|
|
#2 |
|
Invité régulier
![]() Nicolas Inscription : mai 2009 Messages : 6 ![]() |
Je n'utilise pas souvent de pl7, mais je pense que toutes les versions on certaines bases. donc je te propose une solution.
En gros, tu veux compter le temps entre l'activation et la désactivation ? Il y a surement plusieurs solution, en voila une (si je ne me trompe pas) : Sur du Schneider tu as des bits interne qui ont certaines spécifications. Le %S6 est un bit système cadanché à 1 S. Donc à l'aide d'un "counter" ( F7 => SFB => Counter ) tu peux compter le temps en seconde Il te faudra utiliser les entrées R (pour reset après utilisation) et l'entrée Cu (pour le comptage ). L'entrée CU, sur lequel tu devras mettre l'image du bit système (%m0 par exemple) sur un front montant et tes deux entrées ( une en NO et l'autre en NC ). Donc dans la théorie, tu vas incrémenter de 1 chaque seconde. Après il te suffit de récupérer la valeur du compteur pour savoir combien de temps ça a mit (%Ci.V,que tu peux transférer dans un mot). Après, il ne faut pas oublier de remettre à zéro. sinon ça va s'accumuler. ça devrait te donner un truc comme ça ( Si je ne me trompe pas encore une fois ) : ![]() Cela répond t il a ton besoin ? est ce que c'est clair ? Désolé, je ne suis pas très bon en français. |
|
|
00
|
|
|
#3 |
|
Invité(e)
Messages : n/a ![]() |
J'ai compris le fonctionnement de ce chronomètre et j'ai tenté de le reproduire sur mon logiciel. Malheureusement, un problème subsite : PL707 m'indique que "les blocs fonctions ne peuvent pas avoir une logique sur ou sous eux" Je ne vois pas comment on pourrait contourner ce problème qui m'empêche de raccorder le %S6 avec la bobine M0 ainsi que la crétaion du bloc opération.
|
00
|
|
|
#4 |
|
Invité(e)
Messages : n/a ![]() |
J'ai fait une recherche sur le forum (que j'aurai du faire avant) qui m'a permis de trouver ce sujet : http://www.developpez.net/forums/d46...de-programmer/
Dans le programme réalisé par ThierryAIM (start.zip), il a réussi à mettre des blocs les uns au dessus des autres. Je vais donc lui envoyer un message privé pour lui demander la manière par lauqelle il est arrivé à ce résultat. |
00
|
|
|
#5 |
![]() ![]() Thierry Inscription : septembre 2002 Messages : 3 670 ![]() |
L'exemple de Spirere est écrit en PL7 Pro et non PL707
Avec PL707, chaque ligne de programme doit être écrite dans un nouveau réseau. Ici, il faut 3 réseaux pour écrire l'exemple de Spirere
__________________
Vous vous posez une question, la réponse est peut-être ici : Toutes les FAQs VB Les Cours et Tutoriels VB6/VBScript Les Sources VB6 Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension MioSkins.org : le site de référence pour GPS et PDA Mitac MIO iPHONIX.fr : le must francophone des infos pour iPhone, iPad, ... |
|
|
00
|
|
|
#6 |
|
Invité(e)
Messages : n/a ![]() |
Ah oui, en effet, ça fonctionne en créant plusieurs réseaux.
J'ai donc fait les deux premiers réseaux. Ce qui cloche, c'est le bloc opération du troisième réseau. Je cherche à utiliser v=d/t avec d (%KW0) une constante que je suis donc allé définir dans l'éditeur. J'ai essayé %KW0/%C0.V=%M0 %KW0/%C0.V=%KW1 %KW0/%CI.V=%KW1 ... Mais rien de rien. Quel est le langage utilisé par ce logiciel pour les opérations ? Et merci encore de votre aide. |
00
|
|
|
#7 |
|
Invité régulier
![]() Nicolas Inscription : mai 2009 Messages : 6 ![]() |
Après, j'ai donné un exemple générique, la logique est toujours présente. Les seules fois ou j'ai eu l'occasion d'utiliser PL7-07 c'était au lycée, sur un TSX 18. xD
As tu essayé comme syntaxe : Le résultat toujours à gauche et pour les égalités ":=". De mémoire, un %KWi est une constante, accessibles uniquement en lecture par l'automate. Donc il faut écrire dans un "%MWi" (C'est le syntaxe de Pl7 pro, mais c'est surement un héritage.) |
|
|
00
|
|
|
#8 |
![]() ![]() Thierry Inscription : septembre 2002 Messages : 3 670 ![]() |
La doc de PL707 est introuvable, mais celle de TwidoSoft (Evolution Windows de PL707) est assez proche de ce que l'on peut faire avec PL7, si cela peut t'aider
ftp://ftp-developpez.com/thierryaim/...c-logiciel.pdf
__________________
Vous vous posez une question, la réponse est peut-être ici : Toutes les FAQs VB Les Cours et Tutoriels VB6/VBScript Les Sources VB6 Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension MioSkins.org : le site de référence pour GPS et PDA Mitac MIO iPHONIX.fr : le must francophone des infos pour iPhone, iPad, ... |
|
|
00
|
|
|
#9 |
|
Invité(e)
Messages : n/a ![]() |
Le lien me demande un identifiant et un mot de passe que je n'ai pas.
Sinon, pour le programme, j'ai réussi à avancer et à créer mon bloc opération. Je suis donc passé à la suite de mon projet : PMW http://www.rfc1149.net/rose2010/wp-c...ponts-en-H.pdf On m'a conseillé d'utiliser ce système pour faire varier la vitesse d'un moteur en fonction du temps relevé par le chrono. Le duty cycle est inversement proportionnel au temps du chronomètre. Donc, je n'ai pas modifié mon opération puisqu'elle est de la forme constante/variable. Plutôt que de calculer la constante, je la modifierai par tâtonnement lors des essais, c'est plus simple. Mais il faut donc que je transforme une valeur en une alternance de 0 et de 1. J'ai pensé à un temporisateur avec un ou exclusif mais je ne voyais pas comment faire une boucle. Alors est-ce que dans l'automate, il y a un oscillateur dont on pourrait faire varier la fréquence d'oscillation (en fonction de la valeur du chronomètre) ce qui permettrait de pouvoir modifier la vitesse du moteur ? |
00
|
|
|
#10 |
|
Invité régulier
![]() Nicolas Inscription : mai 2009 Messages : 6 ![]() |
Hum bizarre.
Enfin, plusieurs solutions s'offre à toi :
|
|
|
00
|
|
|
#11 |
![]() ![]() Thierry Inscription : septembre 2002 Messages : 3 670 ![]() |
Désolé, l'url était erronée (maudit soit le copier/coller de liens
ftp://ftp-developpez.com/thierryaim/...c-logiciel.pdf
__________________
Vous vous posez une question, la réponse est peut-être ici : Toutes les FAQs VB Les Cours et Tutoriels VB6/VBScript Les Sources VB6 Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension MioSkins.org : le site de référence pour GPS et PDA Mitac MIO iPHONIX.fr : le must francophone des infos pour iPhone, iPad, ... |
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Nicolas Inscription : mai 2009 Messages : 6 ![]() |
Ah M****. Je viens de survoler la Doc de ThierryAIM sur le TWIDO.
Et apparemment il n'y aurait pas de FPULSOR. (J'ai pas trouvé du moins). Ça me parait bizarre quand même, Je ne vois pas trop comment s'en passer dans un programme. Par contre les blocs pour la PWM sont bien présent eux. Donc si toutes les fonctions sont proches, tu as des chances de trouver ce bloc dans PL7-07. |
|
|
00
|
|
|
#13 |
|
Invité(e)
Messages : n/a ![]() |
Mon programme vient d'être terminé. Merci à vous deux.
Les essais ne sont pas encore faits mais la liste des erreurs est vide donc ça devrait fonctionner. |
00
|
|
|
#14 |
|
Invité régulier
![]() Inscription : juillet 2005 Messages : 8 ![]() |
|
|
|
00
|
|
|
#15 |
|
Invité(e)
Messages : n/a ![]() |
Rebonjour à tous.
Après être passé à d'autres choses comme le câblage par exemple, je reviens juste sur le programme que j'ai fait puisque les tests vont bientôt commencer. Si vous pouviez jeter un petit coup d'oeil et vérifier puisque je ne suis vraiment pas sûr de ce que j'ai fait, je vous en remercie. Le fichier est en pièces jointes. Je suis désolé pour ceux qui n'ont pas PL707 installé mais ce logiciel empêche les captures d'écran. 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. Je vous tiendrais au courant des résultats. |
00
|
|
|
#16 |
|
Invité(e)
Messages : n/a ![]() |
Et voici les photos du programme.
La fin est : |
00
|
|
|
#17 |
|
Invité(e)
Messages : n/a ![]() |
Vous pensez que ça marchera ?
|
00
|
Copyright © 2000-2012 - www.developpez.com