Vai al contenuto
PLC Forum


Problema Memorie


Spiddy1

Messaggi consigliati

Buon giorno

provo a spiegarmi 

in sostanza ho da pulsare un’analogica in determinate situazione in altre invece tenerla alta di continuo

Per fare ciò ho fatto 2 Fb 1 x continuo e 1 x pulsanti che li vado a richiamare nel main in condizione precise

il problema lo ho nell’fb Di pulsazioni

all’interno ci sono delle memorie(non sono meeker ma  memorie Db) con dei ton per regolare anche l’intensita Di lampeggio ed a volte mi succede che le 2 memorie mi restano tutte 2 alte così non pulsa più  e basta togliere la corrente  dal plc e ridarla e riparte il tutto 

io ho provato nel main a resettarle se per caso non ho lo start generale però anche se e alto I reset della memoria nell’Fb resta sempre a true

 

succede ogni tanto magari va tutto il giorno e giorni si blocca 3-4 volte 

lo so che è difficile capire senza codice ma purtroppo fino a lunedì non posso postarlo se per caso mi 

Link al commento
Condividi su altri siti


Cosi, a naso, quasi sicuramente dipenderà dalle condizioni con le quali abiliti/disabiliti gli Fb per passare da una condizione all’altra. 
Se togli EN alla funzione tutto all’interno di essa rimane congelato nell’ultimo stato comandato. 
Un consiglio? O queste cose le sai fare e bene,altrimenti finchè non si ha la l’esperienza adeguata meglio gestire tutto magari in un’unica FB, dettando solo li dentro le condizioni per le quali la tua analogica dovrà ‘pulsare’ o stare fissa.

Il richiamo della funzione fallo sempre nel main ma incondizionato. Dentro di essa andrai poi a gestire le varie eccezioni e/o cambi di stato.

Naturalmente il tutto scritto nel modo piu chiaro possibile e scrivendo l’uscita in un rung solo.

Modificato: da step-80
Link al commento
Condividi su altri siti

Senza codice è impossibile capire il problema, intanto sarebbe interessante capire l'applicazione, non mi è mai capitato di far pulsare uscite analogiche e tra quali valori?

Link al commento
Condividi su altri siti

Ok per prima cosa tolgo i 2 Fb e li metto tutto sul main così provo e testo,ed e la cosa più semplice

per aquaman e un traino filo freddo per saldatura a tig,la velocità del filo e data dall’analogica e se la pulso il filo esce ad impulsi ed escono le cappe tipo saldatura dei telai della bici in alluminio

 

grazie

Link al commento
Condividi su altri siti

Come dice acquaman senza codice è difficile, ma se ho ben capito l’applicazione scrive un determinato valore sull’analogica oppure ad intervalli impostabili scrive il valore poi scrive Zero. 
Almeno questo è quello che capisco ma non ho esperienze in merito. 
Se è cosi, mi sembra eccessivo scomodare 2 Fb per scrivere sulla stessa analogica anzi, al 99% il tuo problema sta proprio li...

Avrai un selettore fisico o virtuale che decide se pulsare o meno, quindi ti basta leggerlo per prendere le 2 strade.

Crei il clock con i tempi che vuoi, chiamiamolo appunto ‘clock’. Ora hai un bit che pulsa con la frequenza che vuoi. 
Se selettore modalità == Off , scrivi direttamente l’analogica sul canale. 
Se selettore modalità == On , sul fronte positivo di ‘clock’ carichi il valore sull’analogica, su fronte negativo carichi Zero sull’analogica. 
Cosi su 2 piedi mi viene in mente questo.

Poi se per tua comodità vuoi creare una Fb per farlo, puoi dichiarare una variabile a 16 bit come Output e scrivere li il valore..poi in uscita all’Fb colleghi la tua analogica.

Modificato: da step-80
Link al commento
Condividi su altri siti

L’analogica bassa non è detto che sia a zero comunque ho 4 valori importabili Analogica Alta Analogica Bassa Tempo Analogica Alta e Tempo Analogica Bassa..ho fatto il tutto con 2 Ton e delle memorie che setto e resetto per fare cio

se per caso voi avete qlc idea diversa per fare ciò vi ascolto molto volentieri

se dovete farmi qlc esempio fatemelo in Kop per cortesia

 

grazie mille

Link al commento
Condividi su altri siti

Più che usare 2 TON non vedo altre soluzioni, il fatto che non funziona bisogna vedere il codice.

L'FB è sempre richiamato? Se richiami l'FB con il timer già abilitato il timer potrebbe non vedere il fronte di salita e il temporizzatore non parte.

Link al commento
Condividi su altri siti

Grazie mille

una domanda al volo penso che quello sia il software per il logo in tia il fronte viene gestito in maniera diversa sopra ci metto il mio clock user e sotto una variabile booleana che serve a lui per i suoi conti vero?

la variabile deve essere diversa tra il blocco fronte di salita o fronte di discesa o la stessa?

 

Grazie

Link al commento
Condividi su altri siti

Ciao

no è un software japan (Mitsubishi) dove i fronti sono gestiti in maniera implicita. 

 

Ti consiglio di approfondire il concetto di ‘i suoi conti’ , cosi ti sarà chiaro anche il perchè NON puoi assegnare la stessa variabile al fronte positivo e a quello negativo, almeno se vuoi che il tuo programma giri correttamente. 
 

Comunque sia qui sul forum trovi parecchie discussioni che trattano l’argomento fronti.
 

Link al commento
Condividi su altri siti

2 ore fa, Spiddy1 ha scritto:

la variabile deve essere diversa tra il blocco fronte di salita o fronte di discesa o la stessa?

Se intendi le variabili di appoggio per il rilevamento del fronte, ogni fronte deve avere la sua variabile.

Comunque, al posto dei fronti di salita e discesa, puoi anche lavorare con lo stato alto e lo stato basso della variabile.

Link al commento
Condividi su altri siti

Secondo voi se ho tempi ad esempio 100/200 ms di tempo alto e di tempo bassa mi vengono rilevati i fronti con l’esempio fatto da Step-80?

grazie

Link al commento
Condividi su altri siti

Bisogna vedere il tempo di scansione del plc, se non è altissimo non ci dovrebbero essere problemi, ma con le attuali cpu, a meno che non sia piena, raramente si hanno scansioni vicine ai 100ms che possano darti problemi.

Link al commento
Condividi su altri siti

Come diceva Batta, in questo caso puoi usare anche lo stato alto o basso del segnale. 
I fronti derivano da una mia mania di trattare i plc come un parente, pensando che facendo continuamente ‘move’ anzichè una volta sola si stanchino e poi abbiano bisogno di riposo

🤣
 

Comunque sia, anche tu avessi tempi di scansione di 50 ms (cosa altamente improbabile) i fronti verrebbero rilevati comunque. Il problema è che sarebbero in ritardo rispetto all’andamento reale del segnale. 

Modificato: da step-80
Link al commento
Condividi su altri siti

Ho provato e funziona alla grande in simulazione logicamente

una domanda,le 2 variabili che ho legato al fronte di salita e al fronte di discesa ha senso quando non sono in ciclo di pulsazione fargli un R per essere sicuri che quando rientro nel ciclo di pulsazione siano tutte e 2 a false?

Link al commento
Condividi su altri siti

No non ha nessun senso. 

Quei bit servono al sistema per memorizzare lo stato del clock ed eseguire le istruzioni solo una volta al cambio di stato. Se non dovessi metterle, te ne preoccuperesti? 

Link al commento
Condividi su altri siti

Fronti_1.png.2bc15fd6f575657cbab223db8699bf7f.png

 

Ecco a cosa servono le memorie di appoggio che ti fa inserire il TIA. Nel mio esempio potrebbero essere 'Memoria_Segnale'.

 

Nello specifico,nel primo segmento il fronte viene generato per una scansione sul passaggio da OFF a ON di 'Segnale'. 

Se all'accensione del plc il segnale è alto, verrà generato un fronte.

Nel secondo rung invece se all'accensione del plc il segnale è alto non viene generato il fronte, ma ci deve essere un cambio di stato da ON a OFF e poi di nuovo ON perchè questo avvenga. 

Dipende dai casi. Potresti aver necessità di uno o dell'altro sistema. 

Questo per consigliarti di imparare a staccarti per quanto possibile dai meccanismi preconfezionati e di ragionare con la tua testa , riuscendo ad entrare il piu possibile nella mentalità del plc e su come ragiona lui. Questo ti renderà a poco a poco indipendente.

 

Prova a ragionare su cosa succede nei 2 segmenti e poi se qualcosa non ti è chiaro ci ritorniamo.

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