Vai al contenuto
PLC Forum


Ciclo Pausa / lavoro con PLC Schneider


AlbertoHT

Messaggi consigliati

Ciao a tutti, sono alle prime armi e son nuovo nel forum. Ho necessità utilizzando il software eco struxure di schneider con CPU 340-20 di creare un ciclo pausa / lavoro.

In poche parole tramite un pulsante voglio abilitare il un ciclo automatico.

Con start abilito un timer di "lavoro" di xx tempo e poi allo scadere del tempo preimpostato deve iniziare un secondo timer di "pausa" e così via via in automatico fino a quando non viene premuto il pulsante di stop.

 

Spero di essermi spiegato e che possiate aiutarmi.

 

Grazie mille a tutti 🙂

 

Link al commento
Condividi su altri siti


Non conosco il modello specifico, 

Comunque basta che metti due timer in cascata di cui il secondo resetta entrambi 

Puoi l'uscita T1 sarà ingresso abilitazione T1 &  T1.q negato, mentre T2 sarà T1.q

Spero che sono stato chiaro 

Link al commento
Condividi su altri siti

Io di solito utilizzo un solo timer, al quale passo il preset di pausa o di lavoro, a seconda dello stato dell'uscita. Allo scadere del tempo cambio stato all'uscita e riavvio il timer.

Link al commento
Condividi su altri siti

12 ore fa, max.bocca ha scritto:

Non conosco il modello specifico, 

Comunque basta che metti due timer in cascata di cui il secondo resetta entrambi 

Puoi l'uscita T1 sarà ingresso abilitazione T1 &  T1.q negato, mentre T2 sarà T1.q

Spero che sono stato chiaro 

Ciao, di seguito come ho scritto io il programma. Ti va di darci un occhio? Spero di esser stato chiaro. Grazie mille

Timer lavoro.png

Timer pausa.png

Link al commento
Condividi su altri siti

11 ore fa, batta ha scritto:

Io di solito utilizzo un solo timer, al quale passo il preset di pausa o di lavoro, a seconda dello stato dell'uscita. Allo scadere del tempo cambio stato all'uscita e riavvio il timer.

Grazie mille

Link al commento
Condividi su altri siti

52 minuti fa, dina_supertramp ha scritto:

IMG_2616.jpeg

Grazie della risposta, come l ho fatto io credi che non vada bene? scusa ma il tuo metodo non mi è molto chiaro. mea culpa!!image.thumb.png.a54af485df19a7676f7b5df9269bc126.png

Link al commento
Condividi su altri siti

dina_supertramp

Ciao,

Se hai "memoria start" parte il loop di timer.
Se non hai "memoria start" i timer si arrestano e vengono resettati (indipendentemente da quale stia contando e a che punto del conteggio sia).


Ho usato apposta i contatti dei TON per alimentare le bobine di Lavoro e Pausa, di modo che online hai una chiara interpretazione delle uscite .Q dei timer.

Se non hai esperienza devi vederlo online, con tempi lunghi (5-10s), cosi ti si chiarisce il concetto di come lavorano le uscite dei timer IEC.

Modificato: da dina_supertramp
Link al commento
Condividi su altri siti

2 minuti fa, dina_supertramp ha scritto:

Ciao,

Se hai "memoria start" parte il loop di timer.
Se non hai "memoria start" il loop di timer si arresta all'istante e resetta i timer.

 


Ho usato apposta i contatti dei TON per alimentare le bobine di Lavoro e Pausa, di modo che online hai una chiara interpretazione delle uscite .Q dei timer

Se non hai esperienza devi vederlo online, con tempi lunghi (5-10s), cosi ti si chiarisce il concetto di come lavorano le uscite dei timer IEC.


Se il tuo va bene o no?
Ad occhio si, richiami due TOF in base alle condizioni da te scelte, poi come lavorano quelle condizioni e di conseguenza i timer che alimentano lo puoi sapere solo tu...

Grazie mille!!!!!! Giovedì sarò dal cliente e provo. Speriamo in bene 🙂

 

Link al commento
Condividi su altri siti

Qui sotto c'è il sorgente di una FB in testo strutturato. È stata sviluppata per Siemens ma, con qualche ritocco, dovrebbe essere facilmente trasportabile su qualsiasi PLC.

Sì può anche impostare il modo di avvio: FALSE = partenza con pausa; TRUE = partenza con lavoro.

Viene utilizzato un solo timer.

FUNCTION_BLOCK "FB_PausaLavoro"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
   VAR_INPUT 
      Enable : Bool;
   END_VAR
   VAR_INPUT RETAIN
      StartMode : Bool;   // 0=avvio con Pausa; =Avvio con Lavoro
      Prst_ON : Time;
      Prst_OFF : Time;
   END_VAR

   VAR_OUTPUT 
      Out : Bool;
   END_VAR

   VAR 
      xOut : Bool;
      xosEnable : Bool;
      osEnable : Bool;
      CambioStato : Bool;
      T_OnOff {InstructionName := 'TON_TIME'; LibVersion := '1.0'} : TON_TIME;
   END_VAR

   VAR_TEMP 
      prst : Time;
   END_VAR


BEGIN
	// Pausa/Lavoro
	
	IF NOT #Enable THEN
	    #Out := #xOut := FALSE;
	    #xosEnable := FALSE;
	    #T_OnOff.IN := FALSE;
	    RETURN;
	END_IF;
	
	// Rilevo fronte salita comando
	#osEnable := #Enable AND NOT #xosEnable;
	#xosEnable := TRUE;
	
	// Se è impostato modo start con lavoro, con fronte salita abilitazione
	// attivare comando
	IF #osEnable AND #StartMode THEN
	    #xOut := TRUE;
	END_IF;
	
	// Imposta preset timer
	IF #xOut THEN
	    #prst := #Prst_ON;
	ELSE
	    #prst := #Prst_OFF;
	END_IF;
	
	#T_OnOff(IN := NOT #CambioStato,
	         PT := #prst,
	         Q => #CambioStato);
	
	// Cambio stato
	IF #CambioStato THEN
	    #xOut := NOT #xOut;
	END_IF;
	
	// Scrivi stato uscita
	#Out := #xOut;
	
	
END_FUNCTION_BLOCK

 

Link al commento
Condividi su altri siti

dina_supertramp

@max.bocca...scritto al volo su un pezzo di carta...passamelo...


fatto bene avrei fatto finire i timer di contare invece di ucciderli al mancare delle condizioni a monte ;) 

Modificato: da dina_supertramp
Link al commento
Condividi su altri siti

22 minuti fa, max.bocca ha scritto:

Come ti dicevo @dina_supertramp ha inteso bene, timer Ton ecc ecc.

Questa è una delle possibili soluzioni.

 

perche' Timer TON e non TOF?

Link al commento
Condividi su altri siti

dina_supertramp

Perché preferisco usare solo Ton (anni fa mi insegnarono così)...

Come si comporta .Q di un TON, in breve:

Se IN = FALSE allora Q = FALSE, indipendentemente dallo scorrere del tempo ET (non conta)

Se IN = TRUE e ET < PT allora Q = FALSE (sta contando)

Se IN = TRUE e ET >= PT allora Q = TRUE (ha contato)

 

Come lavora una cascata di Ton?
Se tieni sempre alimentato l'ingresso del primo TON con "memoria start" e poi ci butti n-mila Ton in cascata, vedrai accendersi le uscite (.Q) dei timer in sequenza, una dopo l'altra.
Ora non ti resta che mettere in fila i contatti  delle uscite .Q per crearti delle memorie come ho fatto io che ti dicono a quale punto della sequenz di conteggio sei

--| / |-----| / |-----| / |---  = sta contando il primo
--|  |-----| / |-----| / |---  = il primo ha contato, sta contando il secondo
--|  |-----|  |-----| / |---  = il primo e il secondo hanno contato, sta contando il terzo

--|  |-----|  |-----|  |---  = tutti e 3 hanno contato
 

Come riparte la cascata di timer in automatico?

Dopo "memoria start" c'è il contatto negato di Ton "Pausa" perché serve a far ripartire in modo automatico il primo Ton "Lavoro".

Se non ci fosse quel contatto negato, non avresti il loop e finito di contare pausa il tutto si arresterebbe.


Prima del primo Ton ci va il contatto negato dell'uscita dell'ultimo Ton, per far ripartire la cascata di Tonin modo automatico dopo che l'ultimo Ton della cascata ha finito di contare.
 

Modificato: da dina_supertramp
Link al commento
Condividi su altri siti

dina_supertramp

Scusa per l'ultima frase dove spiego il concetto della "ripartenza automatica"....è un po' ingarbugliata...

Link al commento
Condividi su altri siti

1 ora fa, dina_supertramp ha scritto:

Scusa per l'ultima frase dove spiego il concetto della "ripartenza automatica"....è un po' ingarbugliata...

sono io che son stupido e non capisco... 🙂

Link al commento
Condividi su altri siti

Il 29/4/2024 alle 16:21 , AlbertoHT ha scritto:

Ciao a tutti, sono alle prime armi e son nuovo nel forum. Ho necessità utilizzando il software eco struxure di schneider con CPU 340-20 di creare un ciclo pausa / lavoro.

In poche parole tramite un pulsante voglio abilitare il un ciclo automatico.

Con start abilito un timer di "lavoro" di xx tempo e poi allo scadere del tempo preimpostato deve iniziare un secondo timer di "pausa" e così via via in automatico fino a quando non viene premuto il pulsante di stop.

 

Spero di essermi spiegato e che possiate aiutarmi.

 

Grazie mille a tutti 🙂

 

Grazie a mille a tutti, il programma funziona così come lo avevo pensato..Grazie del supporto!!!!

Link al commento
Condividi su altri siti

Felice che tu abbia risolto, ma un blocco che fa tutto da solo e che puoi riutilizzare, proprio non ti interessava?

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...