Jump to content
PLC Forum


Sign in to follow this  
southofsanity

S7-300 - Fronte di salita

Recommended Posts

southofsanity

Se una condizione è vera mi attiva il fronte e qui ci siamo,

ma se spengo il plc con la condizione ancora vera e alla riaccensione è sempre vera

perchè mi devi riattivare il fronte nuovamente ?

Non lo condivido oppure o padellato qualcosa

Share this post


Link to post
Share on other sites

Livio Orsini
Non lo condivido oppure o padellato qualcosa

Qualcosa hai padellato senz'altro. Lo "o" senza la "h", per esempio :) Scherzi a parte è normale che succeda quello che descrivi. Se all'accensione l'ingresso è alto questo "1" viene interpretato come fornte di salita, perchè effettivamente c'è stato un fronte di salita, essendo la memoria immagine dell'ingresso passata da "0" a "1". Se vuoi evitare l'inconveniente devi prevedere, nel blocco di inizializzazione, il reset dei fronti dopo, p.e., 100ms dal power on.

Share this post


Link to post
Share on other sites
mubeta

Se quello che dici è vero, southofsanity, verifica di avere usato un merker per il fronte, tra quelli ritentivi. Se non lo è, semplicemente nella configurazione della CPU aumenta l'area dei dati ritenuti, in modo da comprendere anche il merker in oggetto.

Ovviamente l'area ritentiva ha una durata limitata nel tempo, in caso di lunghi spegnimenti, quindi vedi anche di scrivere una logica capace di capire la riaccensione e non generare il secondo fronte.

Share this post


Link to post
Share on other sites
amed

Se ricordo bene l'area ritentiva non dovrebbe avere una durata limitata nel tempo. Quando la rete diventa OFF, prima dell'arresto della cpu, tutto ciò che è ritentivo è salvato in micro memmory card il cui contenuto è conservato per minimo 10 anni.

Saluti a tutti

Share this post


Link to post
Share on other sites
gaserma

I merker ritentivi sono dichiarati così perché mantengono lo stato acquisito nel processo al momento dello spegnimento della CPU, quindi, se a tua condizione è appoggiata ad un merker ritentivo e allo spegnimento è ancora attiva, alla ripartenza avrai una nuova condizione vera e quindi un nuovo fronte.

Viceversa se una volta acquisito il fronte ti preoccupi di resettare la condizione, vedrai che in caso di ripartenza della CPU il fronte rimane basso.

Share this post


Link to post
Share on other sites
amed

Sotto all'istruzione "P" il merker va messo, in questo caso, ritentivo. Supponiamo di fare il rilevamento del fronte di salita di E0.0 (a sinistra di "P") e di volere l'impulso sulla uscita A0.0 (a destra di "P") per visualizzare il lampo sul Led. Quando il processore esegue l'istruzione "P" nel merker ritentivo (es: M0.0) c'è lo stato che l'ingresso E0.0 aveva nella scansione precedente e così può fare il confronto.

L'istruzione "P" è possibile realizzarla in modo elementarecome si faceva nel veccio S5. Occorre realizzare 2 segmenti. Nel primo si mettono in And E0.0 e M0.0 invertito che comandano A0.0. nel seconod segmento c'è E0.0 che comanda M0.0.

Saluti

Share this post


Link to post
Share on other sites
gaserma
L'istruzione "P" è possibile realizzarla in modo elementare come si faceva nel veccio S5. Occorre realizzare 2 segmenti. Nel primo si mettono in And E0.0 e M0.0 invertito che comandano A0.0. nel seconod segmento c'è E0.0 che comanda M0.0.

E' proprio vero che al giorno d'oggi la grammatica è diventata meno che un'opinione. Guarda che leggendo il tuo scritto si fa fatica a capire cosa intendi, cos'è una domanda? o un'affermazione?.

Comunque per quanto concerne l'istruzione P o N credo che sia sufficientemente elementare, non devi far altro che assegnargli un indirizzo valido e questo merker si attiverà per un ciclo quando la condizione che lo precede passa da falsa a vera ( P ) o da vera a falsa ( N ).

L'unica avvertenza che bisogna rispettare è che in caso di utilizzo in una funzione con indirizzamento simbolico, la variabile deve essere assegnata all'area di In/Out.

Share this post


Link to post
Share on other sites
mubeta
L'unica avvertenza che bisogna rispettare è che in caso di utilizzo in una funzione con indirizzamento simbolico, la variabile deve essere assegnata all'area di In/Out.

Cosa vuol dire?

Share this post


Link to post
Share on other sites
batta

Per la generazione dei fronti di salita ove non prevista la relativa funzione (esempio S5), proprio in relazione al discorso dell'attivazione rilevando allìavvio lo stato già alto anziché la variazione da basso ad alto, c'è da dire che gli esempi di programmazione sono sempre sbagliati.

Generalmente negli esempi si trova quanto segue:

U E0.0
UN M0.0
= M0.1

U E0.0
= M0.0
Se M0.0 non è ritentivo, all'avvio con E0.0 alo verrebbe rilevato un fronte. Si può aggirare il prolema come segue:
U E0.0
U M0.0
= M0.1

UN E0.0
= M0.0

Share this post


Link to post
Share on other sites
mubeta

Questo è ciò che andiamo dicendo fin dall'inizio del thread.

Io però voglio chiedere a gaserma quanto ha affermato in merito al simbolico, essendo io fervo sostenitore del medesimo; ma non comprendo l'affermazione sua che avevo quotato. ???

Share this post


Link to post
Share on other sites
gaserma

Significa che se tu usi una funzione con indirizzamento simbolico (che anch'io apprezzo molto) non puoi assegnare il merker di "Fronte" all'area di In ma lo devi assegnare all'area In/Out.

Questo almeno è la mia esperienza con il Kop, non so dire se in Awl non ci sia questa esigenza.

Edited by gaserma

Share this post


Link to post
Share on other sites
batta

Intendi se lo passi come parametro ad una funzione?

Certo che, in questo caso, il parametro deve essere di IN/OUT, indipendentemente dal linguaggio usato.

Mi pare più che logico. La funzione infatti ha bisogno sia di leggere che di modificare lo stato del bit usato per generare il fronte.

Share this post


Link to post
Share on other sites
amed

Ho cercato di spiegare cosa fa e come funziona l'istruzione "P" facendo vedere come essa è realizzabile manualmente. In S7-300 ed in S7-1200 c'è la possibilità di scegliere se si vuole ancora, oppore no, l'impulsino della durata di una scansione se la rete diventa OFF e poi ON con il contatto sempre chiuso sull'ingresso: si tratta di scegliere la memoria sotto all'istruzione "P" (KOP) ritentiva o non ritentiva. In S7-200 questa possibilità non c'è.

Mi sembra che solo ragionado, passo passo come fa il PLC, sulla funzione di rilevamento realizzata manualmente, si possa capire chiaramente.

sSaluti

Share this post


Link to post
Share on other sites
sergio78x

Buongiorno,

 

Anche se sono messaggi molto vecchi, voglio comunicarvi la mia esperienza. premetto che si tratta di PLC s7 1500, quindi mi scuso anticipatamente se mi accodo a queti messaggi per S7 300

 

Ho avuto la stessa problematica di southofsanity, ho risolto mascherando la "falsa" transizione da 0 a 1 da memoria ritentiva a memoria di lavoro, mediante l'utilizzo del bit "FirstScan",

in questo modo la CPU riporta il bit ritentivo allo stato "pre spegnimento" di 1 e poi tutto sembra funzionare regolarmente. Per adesso sto lavorando con PLC SIM Advanced

Farò altri test con CPU fisiche.

 

Grazie a tutti

 

Sergio

Share this post


Link to post
Share on other sites
batta

Se come memoria di appoggio per il rilevamento del fronte usi una memoria ritentiva, non viene rilevato il fronte, nel passaggio in run, se il segnale è già alto.
Comunque, anche con il FirstScan va bene.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...