Vai al contenuto
PLC Forum


Awl: Fronte Di Salita?


Messaggi consigliati

Inserito:

Ciao,

sto 'studiando' l'AWL dello Step 7 e mi sono imbattuto nelle istruzioni FP ( fronte di salita positivo ) ed FN ( fronte di salita negativo ( discesa)), Da quanto ho capito servono x catturare l'evento ' ingresso area sensore' ed 'uscita area sensore ).

Chi ne sa di piu?

Ciao

grenzo


Inserita:

Hai già la soluzione...

Posso dirti solo che la durata dell'impulso che questi fp e fn danno :D durano precisamente quanto dura un ciclo di CPU quindi ti danno solamente un impulso (One - Shot)

Inserita:

Ok, quindi x catturare l'avvenuto fronte devo settare una memoria? Non ho capito bene questo:

U E indirizzosensore ( quando lo stato del sensore diventa attivo?)

FP M indirizzodimemoria a caso ( rileva l'avvenuto fronte positivo setta una memoria in modo che venga 'ricordato' su piu' cicli ( fino a che non si resetta la memoria indirizzata) l'avvenuto fronte?)

e' cosi?

ciao

grenzo

Inserita:

Il fronte di salita ti puo' servire per sapere quando e' successo l'evento.

Per esempio se devi contare quanti pezzi passano davanti ad un sensore usi un fronte di salita.

Il programma con il fronte incrementa il contatore , ma al prossimo ciclo plc lo stesso pezzo e' davanti al sensore , verra' ignorato dal programma .

Avverra il prossimo fronte solo quando verra' liberato il sensore e un altro pezzo sara di fronte allo stesso.

Non hai bisogno di memorie se devi solo usare il fronte , lo usi nello stesso ciclo del programma

se sensore =1 setta FU

se fu=1 incrementa contatore

Chiaro che se ti serve per piu' cicli devi usare una memoria.

Saluti

Luca

Inserita:

Penso si stia parlando di S7-300, in tal caso l'istruzione di rilevamento fronte (a differenza di moltri altri plc) necessita di un bit per la memorizzazione dello stato dell'ingresso. Attenzione che se usi tante istruzioni FP (o FN) dovrai usare altrettanti flag (diversi) pena il malfunzionamento del programma.

Non puoi usare nell'istruzione FP (o FN):

- un flag già usato

- un flag locale TEMP di un FC/FB

Puoi usare:

- M***.*

- DBX***.*

La sintassi giusta è questa (scritta in simbolico, per l'assoluto ci metti quello che vuoi):

U "Ingresso1"
FP "flag_qualsiasi_1"
= "FrontePositivo"          

U "Ingresso1"
FN "flag_qualsiasi_2"
= "FronteNegativo"          

Il bit "FrontePositivo" ti dà un impulso della durata di un ciclo di scansione del programma ogni volta che il bit "Ingresso1" passa da FALSE a TRUE.

Il bit "FronteNegativo" ti dà un impulso della durata di un ciclo di scansione del programma ogni volta che il bit "Ingresso1" passa da TRUE a FALSE.

Gli usi sono i + svariati, in genere servono per assicurarsi che un determinato ingresso non mantenga forzato un merker o una funzione, per avere quindi la possibilità di resettare il merker anche se l'ingresso è ancora a 1 o per far si che una funzione venga elaborata solo una volta , o che un contatore (autocostruito) non conti i cicli del plc :D (vedi risposta di Dlgcom)

Ciao

Inserita:

Ok, grazie ma:

Penso si stia parlando di S7-300, in tal caso l'istruzione di rilevamento fronte (a differenza di moltri altri plc) necessita di un bit per la memorizzazione dello stato dell'ingresso.

vuole dire che l'istruzione : FP M***.* deve *assoultamente* esistere in quanto il Fronte viene rilevato *solamente* ponendo a 1 un bit della memoria richiamata?

Ciao

grenzo

Inserita:

Non ho ancora capito cosa non ti è chiaro, se vuoi rilevare un fronte è chiaro che FP (o FN) deve esistere, il flag che tu gli assegni (di fianco alla istruzione) serve solo ad'uso esclusivo della funzione FP (o FN), si arrangia la cpu a settarlo o resettarlo, tu non devi usare quel flag in nessun'altro posto del programma.

Il flag che tu userai nel resto del programma (se hai bisogno di un'impulso generato da un fronte) è quello posto sulla riga successiva alla istruzione FP.

Ciao

Inserita: (modificato)

Grenzo,

Come dice JumpMan la differenza tra s7200 e 300 e che il 300 appoggia il fronte di salita ad un merker.

Tu non devi fare niente , solo dichiarare quale merker usare.

Naturalmente devi usare un merker differente per ogni fronte che usi.

Qui un esempio del fronte di salita:

|  I1.0         M1.0           Z1
|---|  |--------(P)---------(ZV)
|

Come vedi sul simbolo del fronte devi inserire il merker associato... poi ci pensa lui

Saluti

Luca

Modificato: da dlgcom
Inserita:

Grazie delle Vs. delucidazioni ma quello che ho capito e' questo:

1) Il fronte viene rilevato solamente appoggiandolo ad una memoria ( merker o altro ?) : riga di istruzione FP o FN

2) questo e', probabilmente, necessario perche' il fronte 'dura' un solo ciclo del programma

3) Questa memoria *non* puo' essere usata in nessun altra istruzione del programma ( e questo non mi e' chiaro, perche' non la posso usare visto che e' una memoria come un'altra? )

4) In una riga successiva *devo* settare un'altra memoria ( S M**.* ) allo scopo di utilizzare tale memoria per verifiche, confronti, reset nel resto del programma.

Giusto?

Ciao

grenzo

Inserita:

Grenzo,

1) Il fronte viene rilevato solamente appoggiandolo ad una memoria ( merker o altro ?) : riga di istruzione FP o FN

2) questo e', probabilmente, necessario perche' il fronte 'dura' un solo ciclo del programma

No non e' per questo , infatti nello S7 200 non serve il merker. serve come appoggio interno.

3) Questa memoria *non* puo' essere usata in nessun altra istruzione del programma ( e questo non mi e' chiaro, perche' non la posso usare visto che e' una memoria come un'altra? )

Perche' non e' una memoria normale , ma un merker di appoggio al sistema , verra' modificato dal plc secondo le sue necessita' quindi non e' affidabile lo stato.

Come vedi non e' la classica assegnazione tipo u = M

4) In una riga successiva *devo* settare un'altra memoria ( S M**.* ) allo scopo di utilizzare tale memoria per verifiche, confronti, reset nel resto del programma.

Questo dipende da te.

Come vedi nel mio esempio , io lo uso per incrementare un contatore e non mi serve per fare altro quindi non uso altri merker.

Ma se a te serve memorizzare l'avvenuto fronte allora si che devi usare un'altra memoria.

Dimmi, quale s7 stai usando?

Saluti

Luca

Inserita:
Perche' non e' una memoria normale , ma un merker di appoggio al sistema , verra' modificato dal plc secondo le sue necessita' quindi non e' affidabile lo stato.

Come vedi non e' la classica assegnazione tipo u = M

visto che ci siamo mi dici *esattamente* cos'e' un merker? a me hanno detto che e' una memoria di sistema la cui quantita' dipende dal tipo di CPU, ma non ho capito bene a cosa server e se puo' essere usata come qualsiasi altra memoria.... :(
Dimmi, quale s7 stai usando?

S7 300

ciao e grazie

grenzo

Inserita:

Grenzo,

Il merker e' una memoria , in inglese si chiama flag ( bandiera) normalmente si usa per memorizare uno stato.

I merker sono composti in Byte per esempio da M1.0 a M 1.7.

Li puoi usare come memorie in tutto il tuo programma e la quantita' dipende dal plc.

Esempio uso merker

|   I0.0     M1.0
|---|  |----- (S )
|
|
|  M1.0     O1.0
|---|  |------(    )
|

Si diceva di non usare quelli che usi per i fronti perche' li usa il sistema , ma gli altri li puoi settare e resettare come vuoi.

Saluti

Luca

  • 1 month later...
Inserita:

u Ex.x

fp mx.x

zv zx

Mi pare una istruzione da ......

zv fa gia il fronte da se

comunque tanto per la chiarezza tecnica un fronte di salita è una transizione dallo stato 0 allo stato 1.

il bit di appoggio serve nell'. step7 è spiegato bene come funziona e ci sono pure i diagrammi temporali.

se non li si capisce suggerisco di cambiare ......

Mica tutti possonno fare i dottori. :P

Inserita:
se non li si capisce suggerisco di cambiare ......

Ciao Rango

Ti diro', io non e' che li capisco molto gli esempi nell'. dello Step7.Pero' onestamente mi dispiacerebbe cambiare mestiere.Preferisco continuare a far danni.Sorry :lol:

Inserita:

gli . sono difficili da interpretare perchè danno per scontato alcune cose

una per tutte che tu sia un programmatore di PLC e no di temporizzatori!!!

;)

Inserita:
tu sia un programmatore di PLC e no di temporizzatori!!!

Ricevuto...passo e chiudo.

Inserita:
una per tutte che tu sia un programmatore di PLC e no di temporizzatori!!!

Il forum non e' riservato solo a persone esperte di PLC.

Io avro fatto altre domande che possono sembrare banali ad altri che gia' hanno la soluzione... per questo che chiedo!

Come si dice ... non ci sono damande banali ... ma solo risposte....

Saluti

Luca

Inserita:

Io personalmente apprezzo molto i programmatori di " TEMPORIZZATORI" conosciuti in questo forum :P

Cristina Fantoni
Inserita:
Io personalmente apprezzo molto i programmatori di " TEMPORIZZATORI" conosciuti in questo forum 
Concordo, tra l'altro credo che qualcuno programmi anche dei contatori :D

Come si dice ... non ci sono damande banali ... ma solo risposte....

Sai come si dice: la scienza ha i suoi limiti, in compenso l'ignoranza è senza confini.... ;):lol:

:wub:

Inserita:

Ciao a tutti,

mi permetto di intervenire nella discussione per sottolineare una cosa.

Mi sono iscritta recentemente al forum perchè trovo sia un mezzo utilissimo per lo scambio di informazioni ed esperienze.

Poco tempo fa ho posto un quesito perchè avevo necessità di risolvere un problema incontrato nella fase di sviluppo di un progetto.

Un gentilissimo utente del forum mi ha fornito le informazioni che mi servivano con grande chiarezza e mi ha permesso di risolvere con grande velocità.

Immagino che questo sia da attribuire al fatto che la mia domanda fosse per lui "banale" (anzi approfitto per ringraziare Fabios per il cortesissimo aiuto :) ).

Adesso anche per me quel piccolo problema è diventato "banale".

Probabilmente a mia volta potrò dare indicazioni a qualcuno che si troverà ad affrontare il problema per la prima volta.

E così le informazioni si diffondono...

Non è questo che rivela la potenza e l'utilità di un mezzo come un forum in rete?

Buon lavoro a tutti

Enya

Inserita:

Vacca ragazzi!!!

Era un po' che mi aggiornavo su questa discussione e devo dire che non mi sarei mai aspettato che si sviluppasse in questa maniera!!! :D

PLCforum: nei suoi meandri si annidano cellule di resistenza e focolai di lotta tra fazioni....vieni a trovarci anche tu!

Anche questo fa bene allo sviluppo di un forum...

  • 2 weeks later...
Inserita:

ma gurda un pò!!! tutti si incazzano

nessuno è nato maestro certo! il forum è uno strumento di scambio di idee, certo

Ma alcune cosa le si deve sapere prima di mettersi a scrivere codice.

Prima si impara a camminare poi a correre.

un concetto base non è un problema!!

la prossima domanda?

01+01=?

oh! cavoli quanto fa?

no perche il livello era questo!

Inserita:
Prima si impara a camminare poi a correre.

Sono completamente d' accordo , ma chi impara a camminare con l' aiuto di qualcuno evita perlomeno di battere la testa e di perdere la ragione ! :D

Saluti . Robgvp

Inserita:

ciao

daiiiii su !!!

e' chiaro che entrambi anno ragione!!!!

gli . sono scritti per chi gia' sa come funziona , anzi , alcune volte bisogna sapere piu' di chi li scrive!!

(perche' sono sbagliati)

pero'...... questa e' la sezione didattica e chiunque puo' scegliarla per cominciare , chiunque puo' sceglierla

per migliorare , chiunque puo' sceglierla per segnalare le cazzate che scrivono (talvolta) negli . e nei manuali

MI PARE CHIARO !

iaoc a tutti

dario

Inserita:
la prossima domanda?

01+01=?

oh! cavoli quanto fa?

no perche il livello era questo!

Ok Rango , ma la cosa piu' ovvia da fare , se la domanda ti irrita, e' non rispondere.

Chi ha aperto questa discussione , non ti ha obbligato a fare niente.... .

Immagina se domani fai una domanda su come configurare un Driver nuovo e per risposta hai :

" leggi l'.! " ," e una cosa banale! " " se non sai programmare gli inversori ... torna alle valvole!"

Penso che non ti piacerebbe.

Alla domanda se e' possibile una risposta , io la do' ... mi costa 30" di tempo.

Saluti

Luca

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