Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Automation
Automation Forum d'entraide sur l'automatisme, la robotique et l'informatique industrielle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/12/2010, 15h49   #1
zilbou
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Par défaut PL707 - Chronomètre

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.
  Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2010, 12h58   #2
Invité régulier
 
Nicolas
Inscription : mai 2009
Messages : 6
Détails du profil
Informations personnelles :
Nom : Nicolas

Informations forums :
Inscription : mai 2009
Messages : 6
Points : 7
Points : 7
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.
Spirere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2010, 15h56   #3
zilbou
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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.
  Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2010, 16h06   #4
zilbou
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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.
  Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2010, 20h12   #5
Responsable Visual Basic
 
Avatar de ThierryAIM
 
Homme Thierry
Inscription : septembre 2002
Messages : 3 670
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 49
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : septembre 2002
Messages : 3 670
Points : 5 672
Points : 5 672
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, ...
ThierryAIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2010, 21h10   #6
zilbou
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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.
  Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2010, 21h42   #7
Invité régulier
 
Nicolas
Inscription : mai 2009
Messages : 6
Détails du profil
Informations personnelles :
Nom : Nicolas

Informations forums :
Inscription : mai 2009
Messages : 6
Points : 7
Points : 7
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.)
Spirere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 13h24   #8
Responsable Visual Basic
 
Avatar de ThierryAIM
 
Homme Thierry
Inscription : septembre 2002
Messages : 3 670
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 49
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : septembre 2002
Messages : 3 670
Points : 5 672
Points : 5 672
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, ...
ThierryAIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 14h41   #9
zilbou
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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 ?
  Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 15h32   #10
Invité régulier
 
Nicolas
Inscription : mai 2009
Messages : 6
Détails du profil
Informations personnelles :
Nom : Nicolas

Informations forums :
Inscription : mai 2009
Messages : 6
Points : 7
Points : 7
Hum bizarre.

Enfin, plusieurs solutions s'offre à toi :
  • La première, (si tu as de la chance) c'est l'utilisation d'un bloc PWM (%PWMi). Il te permettra d'avoir le fonctionnement que tu veux. Mais je ne suis pas vraiment sur qu'il est implémenté dans PL7-07.

  • La seconde, (Si tu as de la chance aussi). C'est la fonction "Fpulsor" (dans un bloc opérate). Cette fonction permet de générer un signal rectangulaire périodique, dont on peut faire varier la largeur du créneau à 1 et du créneau à 0. Grâce à l'indexation ( transfert de tes valeurs dans un mot ) tu pourras entrée les valeurs requises.

    Code :
    Fpulsor(%M0, %MW0, %MW1, %M1, %MW100, %MD110)
    %M0: représente le front montant de démarrage
    %MW0: le temps passé à 1 (en ms)
    %MW1 le temps passé à 0 (en ms)
    %M1 la sortie
    %MW100 mot de sortie (mot de fonctionnement dans ton cas)
    %MD110 double mot de mémorisation (mot de fonctionnement dans ton cas)

    Je fais ça de tête, il faut que tu vérifie la syntaxe (qui est celle de Pl7 pro, mais si la fonction est présente, elle doit être voisine).

  • La dernière qui est plus "artisanale". serait d'utiliser deux tempos, une TON (temporisation à la montée sur la valeur 1) et une TOFF (temporisation à la descente sur la valeur 0) (ça revient à faire un FPULSOR manuellement). Mais là c'est un peu plus chiant à faire, donc essaie d'abord les deux premières.
Après quelqu'un a peut être d'autres solutions pour gérer la PWM ?
Spirere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 17h03   #11
Responsable Visual Basic
 
Avatar de ThierryAIM
 
Homme Thierry
Inscription : septembre 2002
Messages : 3 670
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 49
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : septembre 2002
Messages : 3 670
Points : 5 672
Points : 5 672
Citation:
Envoyé par zilbou Voir le message
Le lien me demande un identifiant et un mot de passe que je n'ai pas.
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, ...
ThierryAIM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 17h16   #12
Invité régulier
 
Nicolas
Inscription : mai 2009
Messages : 6
Détails du profil
Informations personnelles :
Nom : Nicolas

Informations forums :
Inscription : mai 2009
Messages : 6
Points : 7
Points : 7
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.
Spirere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 18h27   #13
zilbou
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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.
  Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2010, 11h42   #14
Invité régulier
 
Inscription : juillet 2005
Messages : 8
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 8
Points : 9
Points : 9
http://www.global-download.schneider...-electric.com/

Le manuel pour le TSX Nano. Au cas ou.
yome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/01/2011, 18h38   #15
zilbou
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
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.
Fichiers attachés
Type de fichier : zip Version 2.zip (609 octets, 0 affichages)
  Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 16h55   #16
zilbou
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Et voici les photos du programme.
La fin est :
Code :
1
2
3
4
5
TYPE TON
TB 1s
ADJ T
%TMO.P 3
Fichiers attachés
Type de fichier : zip -r(-.zip (101,4 Ko, 4 affichages)
  Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 22h13   #17
zilbou
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Vous pensez que ça marchera ?
  Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Mettre Résolu
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h47.


 
 
 
 
Partenaires

Hébergement Web