Jump to content
PLC Forum


Ciclo Pausa / lavoro con PLC Schneider


Recommended Posts

Posted

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 🙂

 


Posted

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 

Posted

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.

Posted
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

Posted
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

Posted
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

dina_supertramp
Posted (edited)

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.

Edited by dina_supertramp
Posted
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 🙂

 

Posted
2 hours ago, dina_supertramp said:

IMG_2616.jpeg

Io contatto Ton Pausa, si potrebbe non mettere... Non si aprirà mai

Posted

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

 

dina_supertramp
Posted (edited)

@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 ;) 

Edited by dina_supertramp
Posted
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?

dina_supertramp
Posted (edited)

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.
 

Edited by dina_supertramp
dina_supertramp
Posted

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

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

AlbertoHT
Posted
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!!!!

Posted

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...