IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Automation Discussion :

Programme simple Ladder (Lampe Clignotante)


Sujet :

Automation

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1
    Par défaut Programme simple Ladder (Lampe Clignotante)
    Bonjour à tous, j'ai passé mon BTS MAI en 2008, il se trouve que je n'ai pas d'automates chez moi et je n'ai pas pu travailler mes langages pendant tout ce temps.

    J'aimerais pouvoir y retoucher très sérieusement, mais j'ai vraiment beaucoup perdu.

    Le programme que je voudrais faire fonctionner est très simple : une lampe clignotante (allumée 5 secondes, éteinte 10 secondes), commandées par un bouton. (et j'ai rajouté un bouton d'arrêt)

    J'ai donc essayé moi même un programme, il semble même bien fonctionner (dans ma tête) mais je ne sais pas si c'est bien la solution la plus simple, ou la plus fonctionnelle.

    Voici mon programme :

    Table I/O :
    %I1.0 - bouton allumage
    %I1.1 - bouton d'arrêt
    %M1 - bit mémoire lumière
    %M2 - bit mémoire pénombre
    %T1 - Tempo lumière
    %T2 - Tempo pénombre





    Dans le principe, j'utilise les bits mémoires et les tempos pour alterner entre le mode allumé pendant 5 secondes et éteint pendant 10 secondes. Et une série de Set et Reset afin d'y parvenir. Le bouton arrêt mettant M1 et M2 en reset, il arrête le clignotement a n'importe quel moment du processus.

    Merci d'avance pour ceux qui m'aideront a améliorer le programme et a le corriger si faute il y a.

    Et dernière requête, si quelqu'un possède des cours de langage Ladder (Schneider & PL7 Pro, Siemens), s'il pouvait m'en fournir je lui en serait extrèmement reconnaissant.

    Cordialement,
    Winzip

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 90
    Par défaut
    Hello,

    A lire comme ça, ça semble fonctionner, mais on peut faire plus simple et plus facile à lire.
    Les définitions de %M1 sont alambiquées: on utilise une bobine directe (réseau 1), puis des bobines RESET et SET (réseaux 2, 3 et 5).

    J'aurais plutôt fait comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
        %I1.0    %I1.1    %M0
    |---| |------| |------( )---|
        %M0   |
    |---| |---+
    
        %M0      %M2      %T1      %M1
    |---| |------|/|------[ ]------( )---|
    
        %M0      %M1      %T2      %M2
    |---| |------| |------[ ]------( )---|
    
    (* commande de la lampe pendant l'écoulement de T1 *)
        %M0      %M1      %Q2.0
    |---| |------|/|------( )---|
    les deux commandes définissent %M0 avec priorité à l'arrêt (un contact à ouverture sera câblé sur %I1.1, l'entrée à 1 indiquera que le bouton n'est pas actionné, en cas de coupure de fil, on éteint forcément la lampe)
    le clignoteur:
    %M2 à 0 lance %T1, quand %T1 est écoulée, on passe %M1 à 1;
    quand %M1 est à 1, on lance %T2; quand %T2 est écoulée, on passe %M2 à 1;
    quand %M2 passe à 1, on désactive %T1, qui désactive %M1, qui désactive %T2, qui désactive %M2, ce qui relance %T1.
    quand %M1 est à 0 (ce qui indique que %T1 est en cours), on allume la lampe.

    Suivant l'API utilisé, on peut simplifier la forme des réseaux, ou limiter les mémoires internes utilisées. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    (* commandes marche / arrêt *)
        %I1.0    %I1.1    %M0
    |---| |------| |------( )---|
        %M0   |
    |---| |---+
    
    (* clignoteur *)
        %M0      %T2.Q    %T1      %T2
    |---| |------|/|------[ ]------[ ]---|
    
    (* commande de la lampe pendant l'écoulement de T1 *)
        %M0      %T1.Q    %Q2.0
    |---| |------|/|------( )---|
    %M1 et %M2 disparaissent, on utilise les bits .Q des timers, indiquant que les tempos sont écoulés ou non.

Discussions similaires

  1. programme simple mais besoin d'aide
    Par newvo dans le forum Windows
    Réponses: 15
    Dernier message: 07/03/2007, 16h56
  2. Réponses: 11
    Dernier message: 12/12/2006, 00h53
  3. Quel langage de programmation pour des programmes simples ?
    Par Pierre.g dans le forum Langages de programmation
    Réponses: 18
    Dernier message: 22/11/2006, 14h22
  4. Programme "simple" devient très lent ?
    Par Invité dans le forum Delphi
    Réponses: 8
    Dernier message: 18/09/2006, 22h32
  5. Création de programme simple
    Par mz-hacker dans le forum Windows
    Réponses: 1
    Dernier message: 06/08/2006, 00h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo