Vai al contenuto
PLC Forum


Rendere Indisponibile Una Pompa - se si è fermata dopo che è partita


franco1

Messaggi consigliati

Ho un pulsante che premuto da un operatore fa aprire una valvola motorizzata e, contemporaneamente, attiva un timer da 8h.

Appena la valvola è tutta aperta (il tempo di apertura della valvola è circa 30 secondi), il relativo finecorsa fa partire una pompa che si ferma dopo 7h (da quando è partito il timer).

Se durante la marcia della pompa la valvola inizia a chiudersi, per qualche anomalia di funzionamento della valvola stessa, il “finecorsa valvola aperta” fa fermare la pompa (visto che la marcia puo' avvenire solo se la valvola è completamente aperta). Dopo tale fermata, non deve essere più possibile far ripartire la pompa se non allo scadere del timer da 8h.

Come faccio a realizzare quest'ultimo passaggio cioè a rendere indisponibile la pompa nel caso sia partita e si sia fermata entro le 7 ore?

Link al commento
Condividi su altri siti


Se ho capito bene il tuo problema, io farei così:

quando la valvola si è completamente aperta, incrementi un contatore settato a 1; il set della pompa attraverso la serie del finecorsa valvola (NO), contatto del contatore (NC), e timer lavoro off (NC).

Al termine del conteggio del tempo di lavoro, resetti l'uscita della pompa ed il contatore, preparando il tutto per un nuovo ciclo.

Link al commento
Condividi su altri siti

Non serve tirare in ballo contatori, basta settare un merker.

Esempio:

U "MarciaPompa"
UN "ValvolaAperta"
S "InibizioneMarciaPompa"

U .....   Inserire tutte le condizioni per la marcia della pompa
U "ValvolaAperta"
UN "InibizioneMarciaPompa"
= "MarciaPompa"

Poi resetti il merker "InibizioneMarciaPompa" allo scadere del tempo.

Link al commento
Condividi su altri siti

Scusa Batta...hai ragione.

Per via della mia "allergia" cronica a quel linguaggio, e per via della stanchezza (sono al lavoro dalle 6) ho dato una risposta un po' affrettata.

Comunque ho seguito il tuo consiglio: funziona egregiamente!

Grazie a tutti.

Link al commento
Condividi su altri siti

Non serve tirare in ballo contatori, basta settare un merker

Non mi sembra che i contatori costino più cari dei merker! <_<

Sono due strade diverse per risolvere lo stesso problema, magari c'è chi ne ha immaginate altre utilizzando altri sistemi.

Poi ognuno è libero di scegliere quella che preferisce.

Link al commento
Condividi su altri siti

franco1,

Seguendo la tua specifica di funzionamento, dovrebbe andare bene il codice sotto postato.

L'ho simulato impostando un timer di 1 minuto. Poi ho aggiunto la chiusura della valvola a fine ciclo e un pulsante di fine ciclo

in caso dovresti fermarlo e ripartire.

Comunque, non ho capito se il timer viene setato a 8 h oppure 7, ma quello lo vedi te, tanto per simulare non era importante.

Potresti copiare ed incollare dal AWL direttamente e poi converti in LAD automaticamente.

Se hai qualche dubbio, chiedi pure. ;)

AWL:

Network 1 :

      U(    
      O     "PSStartCiclo"
      O     "MemCicloInCorso"
      )     
      UN    "MemFineCiclo"
      =     "MemCicloInCorso"

Network 2 :

      U(    
      O     "MemCicloInCorso"
      O     "ComApreValvola"
      )     
      UN    "FcValvolaTuttaAperta"
      UN    "MemValvolaApertaEseguita"
      UN    "MemFineCiclo"
      =     "ComApreValvola"

Network 3:

      U(    
      O     "MemFineCiclo"
      O     "ComChiudeValvola"
      O     "PSStopCiclo"
      )     
      UN    "FcValvolaTuttaChiusa"
      =     "ComChiudeValvola"

Network 4 :

      U     "MemCicloInCorso"
      L     S5T#1M
      SE    "Timer8Ore"
      U     "PSStopCiclo"
      R     "Timer8Ore"
      NOP   0
      NOP   0

      NOP   0

Network 5 :

      U(    
      U     "MemCicloInCorso"
      U     "FcValvolaTuttaAperta"
      O     "MemValvolaApertaEseguita"
      )     
      UN    "MemFineCiclo"
      =     "MemValvolaApertaEseguita"

Network 6 :

      U(    
      U     "MemCicloInCorso"
      U     "MemValvolaApertaEseguita"
      UN    "FcValvolaTuttaAperta"
      O     "MemInibizionePompa"
      )     
      UN    "MemFineCiclo"
      =     "MemInibizionePompa"

Network 7 :

      U(    
      U     "MemCicloInCorso"
      U     "FcValvolaTuttaAperta"
      O     "ComPompa"
      )     
      UN    "MemInibizionePompa"
      UN    "MemFineCiclo"
      =     "ComPompa"

Network 8 :

      O     "Timer8Ore"
      O     "PSStopCiclo"

      =     "MemFineCiclo"



////////////////////////

LAD:

Network 1 :

    PS          MemFine                     MemCicloIn    
 StartCiclo     Ciclo                        Corso
                                  
+---[ ]----+-----[/]--------------------------( )-|
+          +          
+ CicloIn  +
+  Corso   +  
+          +                                 
+---[ ]----+


Network 2 :

  MenCicloIn FCValvola  MemValvola
    Corso      Tutta    Aperta     MemFine    ComApre
               Aperta   Eseguita    Ciclo     Valvola

+---[ ]----+-----[/]-------[/]-------[/]-------( )-|
+          +          
+  ComApre +
+  Valvola +    
+          +                    
+---[ ]----+


Network 3 :
                               
          

                               
  MemFine      FCValvola                      ComChiude
  Ciclo       TuttaChiusa                      Valvola
                                           
+---[ ]----+------[/]---------------------------( )-|
+          +          
+ ComChiude+
+ Valvola  +  
+          +                                 
+---[ ]----+
+          +          
+ PSStop   +
+  Ciclo   +  
+          +                                 
+---[ ]----+


Network 4 :


   MemCiclo       Timer80Ore
|  InCorso      +-----------+
|               |  S_EVERZ  |
+---[ ]---------+ S       Q +-----------
|               |           |
|               |           |
|        S5T#1M + TW   DUAL +..
|               |           |
|     PSStop    |           |
|     Ciclo   ..+ R    DEZ  +..
|               +-----------+
|
|


Network 5 :
                                             
               FCValvola                    MemValvola
   MenCicloIn  Tutta              MemFine   Aperta
    Ciclo      Aperta              Ciclo    Eseguita

+---[ ]----------[ ]------+----------[/]-------( )-|
+                         +          
+  Mem                    +
+ Valvola                 +
+ Aperta                  +
+ Eseguita                +    
+                         +                    
+---[ ]-------------------+


Network 6 :

                           FC
  MenCicloIn MemValvola   Valvola    Mem      Mem
    Corso     Aperta      Tutta     Fine    Inibizione
              Eseguita    Aperta    Ciclo    Pompa

+---[ ]----------[ ]-------[/]---+---[/]-------( )-|
+   Mem                          +          
+Inibizione                      +
+  Pompa                         +    
+                                +                    
+---[ ]--------------------------+


Network 7 :

              FC
  MenCicloIn  Valvola     Mem        Mem    
    Corso     Tutta    Inibizione    Fine      Com
              Aperta     Pompa       Ciclo     Pompa

+---[ ]----------[ ]---+---[/]-------[/]-------( )-|
+                      +          
+  Com                 +
+  Pompa               +    
+                      +                    
+---[ ]----------------+


Network 8 :

               
   Timer                                       Mem    
   80Ore                                       Fine  
                                               Ciclo      

+---[ ]----+-----------------------------------( )-|
+          +          
+  PSStop  +
+  Ciclo   +    
+          +                    
+---[ ]----+



///////////////////////////////////////////////////////////////

// VAT

M      1.0    "MemFineCiclo"                BOOL         false
M      1.1    "MenCicloInCorso"             BOOL         false
A      0.1    "ComApreValvola"              BOOL         false
M      1.3    "MemValvolaApertaEseguita"    BOOL         false
M      1.4    "MemInibizionePompa"          BOOL         false
T      1      "Timer8Ore"                   SIMATIC_TIME S5T#0ms
E      0.0    "PSStartCiclo"                BOOL         false
E      0.1    "FCValvolaTuttaAperta"        BOOL         false
A      0.0    "ComPompa"                    BOOL         false
A      0.2    "ComChiudeValvola"            BOOL         false
E      0.3    "PSStopCiclo"                 BOOL         false
E      0.2    "FCValvolaTuttaChiusa"        BOOL         false

Modificato: da Savino
Link al commento
Condividi su altri siti

Non mi sembra che i contatori costino più cari dei merker!

Non sono d'accordo.

Un counter rispetto ad un merker non costa certo di più in termine di soldini, ma richiede risorse maggiori. E poi, specialmente in Siemens dove timer e counter certo non abbondano, a mio avviso usare un counter dove basta un semplice merker mi pare un inutile spreco.

Poi certo, come dici tu, ognuno è libero di scegliere quello che preferisce. Ci mancherebbe altro :)

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...