Vai al contenuto
PLC Forum


Differenza Sostanziale Tra Rileva Fronte (P) (N) E Interroga Fronte Neg,pos


coquinati

Messaggi consigliati

ciao ragazzi ho messo in funzione il mio pannello di prova con la 314 ifm.

Nel provare a scrivere un programmino mi sono imbattuto nei fronti

non capisco bene cosa serve la funzione interroga fronte,

da quello che ho letto ,interroga fronte memorizza il precedente segnale interrogato,

Io ho provato metterlo dentro al mio plc per capirci qualcosa di più,ho assegnato al operando 2(quello che memorizza)una variabile di tipo temp , interna al fc ,

nel simularlo ho visto che operando 2 non mi memorizzava lo stato prencedente di operando 1 ma era allo stato attuale,quindi li sono iniziati i dubbi che non ti fanno dormire=(

inoltre vorrei capire che differenza ce tra rileva e interroga fronte per capirci qualcosa di più.

,ciao ragazzi spero in un vostro aiuto ciao ragazzi

Link al commento
Condividi su altri siti


Rilevare il fronte ti serve quando devi fare una certa operazione solo sul cambio di stato di un segnale.

Come esempio pensa di accendere e spegnere la luce con un solo pulsante.

Quando rilevi il fronte dell'ingresso relativo al pulsante cambi lo stato dell'uscita che pilota la lampada, così ad ogni pressione del pulsante accendi o spegni la lampada.

Rilevare il fronte positivo o il fronte negativo, dipende dal segnale e dalla logica con cui stai progettando la tua automazione.

Link al commento
Condividi su altri siti

Rilevare il fronte ti serve quando devi fare una certa operazione solo sul cambio di stato di un segnale.

Come esempio pensa di accendere e spegnere la luce con un solo pulsante.

Quando rilevi il fronte dell'ingresso relativo al pulsante cambi lo stato dell'uscita che pilota la lampada, così ad ogni pressione del pulsante accendi o spegni la lampada.

Rilevare il fronte positivo o il fronte negativo, dipende dal segnale e dalla logica con cui stai progettando la tua automazione.

sig. Orsini grazie della risposta,

ma per eseguire l'esempio da te indicato devo usare un interroga fronte giusto?

Link al commento
Condividi su altri siti

Certo

grazie sig. Orsini, oggi pomeriggiò che torno a casa eseguo una prova sul mio pannello , e poi vi facciò sapere:-)graziè ancora .

Link al commento
Condividi su altri siti

Io ho provato metterlo dentro al mio plc per capirci qualcosa di più,ho assegnato al operando 2(quello che memorizza)una variabile di tipo temp , interna al fc

Nei PLC Siemens le variabili temporanee (spesso chiamate anche locali) non sono solo locali (nel senso di appartenenti solo alla funzione all'interno della quale sono dichiarate), ma sono proprio temporanee. Questo significa che la loro vita è legata all'esecuzione della funzione. Quando esco dalla funzione, il valore di una variabile temporanea non viene mantenuto.

In termini un po' più tecnici, diciamo che l'area dedicata alle variabili temporanee è comune a tutte le funzioni. Entrando in una funzione, il sistema dedica parte di quest'area alle variabili temporanee della funzione stessa. Quando si esce dalla funzione, l'area di memoria che era stata dedicata alle variabili temporanee viene considerata libera. Quando entro in un'altra funzione quindi, la stessa area di memoria viene messa a disposizione di quest'ultima funzione.

Si deve quindi fare molta attenzione all'uso delle variabili temporanee. Non posso leggere il valore di una variabile temporanea se prima non l'ho scritto.

Nel caso del rilevamento del fronte di salita, non puoi quindi utilizzare una variabile temporanea per memorizzare lo stato del segnale.

inoltre vorrei capire che differenza ce tra rileva e interroga fronte per capirci qualcosa di più.

Nessuna. Sono due modi per dire la stessa cosa.

Link al commento
Condividi su altri siti

Nei PLC Siemens le variabili temporanee (spesso chiamate anche locali) non sono solo locali (nel senso di appartenenti solo alla funzione all'interno della quale sono dichiarate), ma sono proprio temporanee. Questo significa che la loro vita è legata all'esecuzione della funzione. Quando esco dalla funzione, il valore di una variabile temporanea non viene mantenuto.

In termini un po' più tecnici, diciamo che l'area dedicata alle variabili temporanee è comune a tutte le funzioni. Entrando in una funzione, il sistema dedica parte di quest'area alle variabili temporanee della funzione stessa. Quando si esce dalla funzione, l'area di memoria che era stata dedicata alle variabili temporanee viene considerata libera. Quando entro in un'altra funzione quindi, la stessa area di memoria viene messa a disposizione di quest'ultima funzione.

Si deve quindi fare molta attenzione all'uso delle variabili temporanee. Non posso leggere il valore di una variabile temporanea se prima non l'ho scritto.

Nel caso del rilevamento del fronte di salita, non puoi quindi utilizzare una variabile temporanea per memorizzare lo stato del segnale.

Nessuna. Sono due modi per dire la stessa cosa.

grazie,chiarissimo come sempre sig. Batta ,infatti come lei dice ho riscontrato questo errore ,

ma allora praticamente quando la cpu esegue un altra funzione lo stato si azzera,giusto?

Ma come posso fare allora per memorizzare mbit?lo assegno a un merker?

Un ultima cosa sig.batta ma rileva fronte non mi sembra che abbia la funzione memorizza lo stato di segnale,almeno io che ho provato ad usarla non mi sembrava,

Grazie mille sig.batta=)

Link al commento
Condividi su altri siti

ma allora praticamente quando la cpu esegue un altra funzione lo stato si azzera,giusto?

No, non è che si azzeri. Potrebbe avere un valore qualsiasi. Dipende da cosa è stato scritto per ultimo in quella locazione di memoria.

Dire che contiene un valore casuale è sbagliato, perché in realtà contiene l'ultimo valore scritto. Ma, dato che è praticamente impossibile sapere chi e cosa ha scritto per ultimo in quella locazione di memoria, di fatto è come se ti ritrovassi un valore casuale.

Insomma, per fare il caso più semplice di una variabile booleana, potrebbe contenere indifferentemente il valore 1 o 0.

Ma come posso fare allora per memorizzare mbit?lo assegno a un merker?

Certo. Sono fatti apposta.

Oppure potresti usare un bit di un DB, o una variabile STAT di una FB.

Ma non vorrei farti confusione. Usa un merker che va benissimo.

Per ultimo: sul forum non si usano titoli. Qui siamo tutti amici e ci diamo tutti del tu.

Link al commento
Condividi su altri siti

No, non è che si azzeri. Potrebbe avere un valore qualsiasi. Dipende da cosa è stato scritto per ultimo in quella locazione di memoria.

Dire che contiene un valore casuale è sbagliato, perché in realtà contiene l'ultimo valore scritto. Ma, dato che è praticamente impossibile sapere chi e cosa ha scritto per ultimo in quella locazione di memoria, di fatto è come se ti ritrovassi un valore casuale.

Insomma, per fare il caso più semplice di una variabile booleana, potrebbe contenere indifferentemente il valore 1 o 0.

Certo. Sono fatti apposta.

Oppure potresti usare un bit di un DB, o una variabile STAT di una FB.

Ma non vorrei farti confusione. Usa un merker che va benissimo.

Per ultimo: sul forum non si usano titoli. Qui siamo tutti amici e ci diamo tutti del tu.

grazie batta,e che portare rispetto alle persone ,sopratutto voi che siete dei professionisti,con anni e anni di programmazione alle spalle ,mi rende più sereno con me stesso,

comunque grazie mille dei consigli,o notato anche che step 7 se inserisci il valore di memoria su una variabile del fc dice che il valore potrebbe cambiare adirittura potrebbe mandarmi in stop la cpu,io ho provato lo stesso per vedere e mi ha mandato in stop la cpu e si é acceso il led SF,.

Link al commento
Condividi su altri siti

ragazzi ho provato farlo con il quadro dì prova l'esempio di premere il pulsante si accende la luce, e poi ripremerlo e fare in modo che essa si spenga,

risultato:

ho inserito un merker su m_bit,assegnato il pulsante sul blocco POS ,e un uscita assegnata ad una spia 24vdc

,alla fine quando premevo il pulsante la lampadina si accendeva per un tratto brevissimo non so quanti ms,

e anche il merker di memoria prendeva sempre il valore attuale del pulsante, ma é normale?

Io so che il fronte di salita viene usato sui contatori perché non impazzisca il conto,quindi mi viene spontaneo pensare che quel micro impulso sia giusto cosi o sbaglio?

Spero in un vostro aiuto ciao ragazzi

Link al commento
Condividi su altri siti

Non è che si capisca molto.

Probabilmente il tuo pulsante ha dei rimbalzi quindi i fronti sono più di 1. I genere sul primo fornte si fa partire un temporizzatore da 50 ms - 100 ms che impedisce la rilettura del medesimo ingresso sino a che non è scaduto il tempo.

Link al commento
Condividi su altri siti

Roberto Gioachin

ragazzi ho provato farlo con il quadro dì prova l'esempio di premere il pulsante si accende la luce, e poi ripremerlo e fare in modo che essa si spenga,

risultato:

Da quello che scrivi sembra tu abbia confuso il fronte di salita con una funzione che in genere viene definita "alternate" o per dirlo più semplicemente, il classico relè passo-passo.

Il fronte di salita fornisce un segnale a livello logico alto solamente per una scansione di programma, quindi solamente per alcuni milisecondi, quello che noti perciò è corretto.

Roberto

Link al commento
Condividi su altri siti

Non è che si capisca molto.

Probabilmente il tuo pulsante ha dei rimbalzi quindi i fronti sono più di 1. I genere sul primo fornte si fa partire un temporizzatore da 50 ms - 100 ms che impedisce la rilettura del medesimo ingresso sino a che non è scaduto il tempo.

praticamente il temporizzatore lo uso come anti rimbalzo?

Da quello che scrivi sembra tu abbia confuso il fronte di salita con una funzione che in genere viene definita "alternate" o per dirlo più semplicemente, il classico relè passo-passo.

Il fronte di salita fornisce un segnale a livello logico alto solamente per una scansione di programma, quindi solamente per alcuni milisecondi, quello che noti perciò è corretto.

Roberto

infatto lo immaginavo ,grazie mille

Modificato: da coquinati
Link al commento
Condividi su altri siti

Quello che spiega Livio è proprio l'utilizzo di un temporizzatore come antirimbalzo.

grazie roberto

lo inserisco dopo il contatto normalmente aperto del pulsante?

Penso che dovro usare un temporizzatore ad impulso ,o sbaglio?

Comunque ragazzi non riesco capire come accendere l'uscita con un pulsante,e spegnerla con lo stesso pulsante.

Grazie ancora ciao ragazzi

Link al commento
Condividi su altri siti

Rilevi il fronte e neghi un'uscita fisica dove hai connesso la lampada. Se l'uscita era alta va bassa e viceversa. Ci sono differenti modi per fare questo.

Idem per l'antirimbalzo.

Usi il merker di un timer che sia vero quando il timer è scaduto, se il merker è vero allora rilevi il fronte altrimenti no. Se rilevi il fronte oltre a negare lo stato dell'uscita fai partire il timer, quindi il merker diventa falso e non puoi rileggere il medesimo ingresso.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Roberto Gioachin
Comunque ragazzi non riesco capire come accendere l'uscita con un pulsante,e spegnerla con lo stesso pulsante.

No so in che linguaggio lo vuoi fare,

Ti propongo una versione molto semplice in ST (testo strutturato)

-----------------------------------

bMemoria:=DF(bPulsante);
bLampada:=(bMemoria AND Not bLampada)OR (NOT bMemoria AND bLampada);
-----------------------------------
La stessa cosa la puoi fare in Ladder, sono due network
Link al commento
Condividi su altri siti

livio ,roberto grazie mille,purtoppo non ho ancora imparato il linguaggio awl ,penso di avere capito cosa devo fare ma non riesco farlo in leadder, 2 giorni che cerco di capire come fare ,intanto grazie mille se ci riesco ve lo faccio sapere

Link al commento
Condividi su altri siti

nella mia lista ho una porta not, ma io so che esiste una assegnazione(bobina) che nega,e penso che sia quella che livio intendeva,e non la ho,comunque non dovrebbe cambiare niente da porta not ad assegnazione negata

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

ragazzi funziona :smile: peccato che non ci sono arrivato da solo :( questo mi rattrista davvero molto :toobad:

ero andato leggermente vicino ma niente :wacko: ero fuori strada

provero farlo in modi differenti.

grazie a voi del forum con la vostra pazienza e gentilezza siete sempre di grande aiuto. grazie

Link al commento
Condividi su altri siti

ciao ragazzi sono sempre io :smile: . o trovato e risolto un problema che ora voglio esporvi e sentire vostre opinioni ;)

SPECIFICHè PROGRAMMA:

1)scritto un programmino che con un pulsante apro un elettrovalvola a solenoide e con la stesso pulsante la chiudo .

2)collegato una spia luminosa di colore verde per segnalare quando la valvola è su "OPEN"

3)collegato un interruttore bistabile per resettarmi il VALORE "OPEN" e usarla come sicurezza

ECCO IL PROGRAMMA ALLA PRIMA BATTITURA COME SI PRESENTA:

r3fe.jpg
I PRIMI PROBLEMI AL COLLAUDO PROGRAMMA:
1)mettendo in sicurezza la valvola con (RESET_VALVOLA_LAMPADA), mi succedeva una cosa, quando io cercavo di portare in OPEN la valvola con la sicurezza si accendeva in un tempo molto ma molto molto breve la lampada verde, ecco il FLIP-FLOP che gestisce la lampada verde:
vo1l.jpg
ADIRITTURa se insistevo la valvola si portava su OPEN con la sicurezza attivata.
MIA TEORIA RIGUARDO AL PROBLEMA :whistling: :
1)LA CPU PARTE DAL ALTO VERSO AL BASSO, SINISTRA VERSO DESTRA A LEGGERE IL PROGRAMMA. POTREBBE SUCCEDERE CHE LA CPU ORA CHE Va a LEGGERE IL TERZO SEGMENTO che li dice resettami la valvola ACCENDE PER 10MS LA LAMPADA verde.
HO RAGIONE?
SOLUZIONI:
1)inserito temporizzatore di 50ms di tipo "ritardo al inserzione" per dare tempo alla cpu di leggere il terzo segmento.
ksd4.jpg
2)inserito un contatto NC in modo che quando metto in sicura la valvola mi apre il circuito cosa non arriva nemmeno l'impulso al set ne al reset
.qia7.jpg
:smile: e giusto? probabile che la cpu crea questo problema per il fatto che deve leggere il segmento 2?
io non ne sono convinto però :toobad: c'è mi sembra molto strano :toobad:
Modificato: da coquinati
Link al commento
Condividi su altri siti

1)mettendo in sicurezza la valvola con (RESET_VALVOLA_LAMPADA), mi succedeva una cosa, quando io cercavo di portare in OPEN la valvola con la sicurezza si accendeva in un tempo molto ma molto molto breve la lampada verde,

Certo, perché il reset di "MERKER_" lo fai dopo che "MERKER_" ha già attivato l'uscita (per essere più precisi l'immagine dell'uscita). Quindi, per una scansione "VALVOLA_OPEN_" è attiva.

Per risolvere, non ti serve il timer, e nemmeno l'interblocco dopo il fronte di salita del comando. Ti basta semplicemente scambiare tra di loro i segmenti 2 e 3.

Poi non capisco a cosa ti serva usare l'istruzione "SR" semplicemente per passare a "LAMPADA_VERDE" lo stato di "VALVOLA_OPEN_".

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