Jump to content
PLC Forum

boba3aggiusta

Consiglio Programmazione

Recommended Posts

boba3aggiusta

salve a tutti mi sono bloccato in una parte di programma che stò tentando di fare, ora vi spiego cosa dovrei fare:

Alla presnza di un ingresso (%I1.0) mi si deve attivare un ciclo in cui si deve attivare uscita (%Q.1.0) di tempo (x) e subito dopo altro tempo (y) dove l'uscita (Q.1.0) deve rimanere a 0! quindi:

sia che %I1.0 per un istante è attivo, sia che rimanga sempre attivo (nell'arco del ciclo) il ciclo deve essere sempre Tempo X on e tempo Y off, poi se terminato il ciclo ancore è presente l'ingresso allora il ciclo ricomincia.

Non sò se è chiaro ciò che ho scritto, ho provato con un flip flop ma non ci sono riuscito.

Ringrazio anticipatamente

Link to post
Share on other sites

elettrificato

ciao potresti provare usando due timer di tipo TP il primo attivato dal fronte di salita del %I1.0 o dal termine del conteggio del secondo timer + I1.0, il secondo attivato dalla fine conteggio del primo timer. L'uscita Q1.0 sarà uguale allo stato dell'uscita del primo TP. Il codice in ST potrebbe essere:

IF RE (%I1.0) or (FE (%TM2.Q) and %I1.0 then start %TM1;end_if;

IF FE (%TM1) then start %TM2;end_if;

%Q1.0:=%TM1.Q;

considera che non l'ho testato e non ricordo se il fronte di salita/discesa è utilizzabile sull'out dei timer, se così non fosse devi appoggiare gli out dei timer a variabili di tipo EBOOL.

Link to post
Share on other sites
boba3aggiusta

ciao non riesco a farlo funzionare... come faccio ad attivare il secondo temporizzatore alla fine del conteggio del primo?? che riferimento ho, della fine del temporizzatore??

Link to post
Share on other sites
elettrificato

ciao ho ricontrollato quanto scritto, nella seconda riga c'è un errore, devi utilizzare il %TM1.Q, se non funziona fai così, visto che non sono sicuro del funzionamento del controllo dei fronti di salita/discesa sull'out del timer

IF RE (%I1.0) or (FE (%M1) and %I1.0 then start %TM1;end_if;

IF FE (%Q1.0) then start %TM2;end_if;

%Q1.0:=%TM1.Q;

%M1:=%TM2.Q

Link to post
Share on other sites
boba3aggiusta

Questa sera provo, e' sempre meglio utilizzare i fronti di salita e di discesa?

Edited by boba3aggiusta
Link to post
Share on other sites
elettrificato

i fronti di salita e discesa servono per valutare la variazione di stato di un segnale digitale, non esiste una regola che dice se meglio o peggio è necessario valutare di volta in volta ciò che serve, ad esempio se voglio incrementare un valore intero al passaggio di un pezzo, senza utilizzare un contatore, dovrò utilizzare il fronte altrimenti ad ogni ciclo di programma il mio intero verrebbe incrementato. ciao

Link to post
Share on other sites
boba3aggiusta

ciao non riesco a capire dove sbaglio... non riesco a far funzionare sto benedeto fronte!!! teoricamente se scrivessi:

test_1 := fe (pippo) , in teoria test_1 diventa 1 solo dopo che pippo da 1 va a 0 e rimane ad 1 solo per il tempo ciclo del plc giusto? Invece a me accade questo: al primo ciclo, pippo è a 0 e test_1 è a 0, ora porto pippo a 1 e test_1 rimane a 0, poi riporto pippo a 0 e test_1 va ad 1, però poi ci rimane fino a quando non riporto pippo a 1. dove sbaglio?

Link to post
Share on other sites
elettrificato
test_1 := fe (pippo) , in teoria test_1 diventa 1 solo dopo che pippo da 1 va a 0 e rimane ad 1 solo per il tempo ciclo del plc giusto?

giusto se pippo è dichiarato come variabile di tipo EBOOL, ciao

Link to post
Share on other sites
boba3aggiusta

non risco a capire dove è l'inghippo ma non mi funziona!! si è impostata come ebool ma nulla da fare!!

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.


×
×
  • Create New...