Vai al contenuto
PLC Forum


Pulsante on/off


Matteo Grasso

Messaggi consigliati

Matteo Grasso

Scusate se sono abbastanza un novellino sui plc ma mi chiedevo se esistesse il modo grazie al linguaggio ladder di creare un pulsante on/off avendo solo come input un pulsante normalmente aperto 

Link al commento
Condividi su altri siti


si certo! quello di cui parli è piu comunemente chiamato Toggle in elettronica. In Step7 lo puoi programmare usando un pulsante configurato fronte di salita e una medesima uscita set/reset

                          Q0.0

----IPI----------------I/I------------(M0.0S)

                           Q0.0

                     ------I I------------(M0.0R)

 

 

 

--IM0.0I-----------------------------(Q0.0)

 

Gioca tutto sui tempi di ciclo della CPU e della velocità di azione del fronte di salita.

 

Se hai dubbi chiedi 😉

Link al commento
Condividi su altri siti

Questo è il classico esercizio per insegnare a capire come funziona la logica del plc, magari era meglio cercare di aiutarlo a capire e risolvere il problema piuttosto che buttare giù la soluzione.

Link al commento
Condividi su altri siti

Matteo Grasso
10 ore fa, TheOutSideR ha scritto:

si certo! quello di cui parli è piu comunemente chiamato Toggle in elettronica. In Step7 lo puoi programmare usando un pulsante configurato fronte di salita e una medesima uscita set/reset

                          Q0.0

----IPI----------------I/I------------(M0.0S)

                           Q0.0

                     ------I I------------(M0.0R)

 

 

 

--IM0.0I-----------------------------(Q0.0)

 

Gioca tutto sui tempi di ciclo della CPU e della velocità di azione del fronte di salita.

 

Se hai dubbi chiedi 😉

Grazie di tutto ma visto che, come ti ho detto, sono un novellino, cosa sarebbero le variabili m?

Link al commento
Condividi su altri siti

Il modo corretto per iniziare a programmare un plc sarebbe quello di leggere il manuale prima; capire le variabili e altro (vedi timer e altre funzione booleane).

Iniziare poi pian piano a fare le cose più semplici per poi arrivare a tutto il resto.

 

Sembra come mai guidato, salgo in automobile accendo e metto la marcia per poi chiedere cosa sono i pedali...

 

M è una variabile Merker, un bit interno alla CPU

Link al commento
Condividi su altri siti

13 ore fa, TheOutSideR ha scritto:

si certo! quello di cui parli è piu comunemente chiamato Toggle in elettronica. In Step7 lo puoi programmare usando un pulsante configurato fronte di salita e una medesima uscita set/reset

                          Q0.0

----IPI----------------I/I------------(M0.0S)

                           Q0.0

                     ------I I------------(M0.0R)

 

 

 

--IM0.0I-----------------------------(Q0.0)

 

Gioca tutto sui tempi di ciclo della CPU e della velocità di azione del fronte di salita.

 

Se hai dubbi chiedi 😉

 

Non mi piace per niente con i Set/Reset e la lettura dell'area Q...preferisco funzioni più riciclabili, ma alla fine son gusti

Link al commento
Condividi su altri siti

La metodologia descritta sopra è un po' contorta e si appoggia a una memoria interna ulteriore che considera lo stato passato del sistema, nel caso descritto un uscita,

 

per me l'inversione di un bit derivante da un unico ingresso non è altro che un contatore che conta solo in due stati 0 e 1,

l'ingresso percepito come fronte di salita è l'ingresso che fa incrementare il contatore da 0 a 1 quando precedentemente è a 0

e da 1 a 0 quando precedentemente il contatore è a 1, in pratica un'alternanza,

in Siemens un'istruzione diretta di alternanza o in inglese "toggle" non esiste, altri PLC hanno l'istruzione diretta ALT "operando",

molto più comodo perchè basta porre in ingresso all'istruzione ALT la condizione abilitante e si fa l'inversione del bit

Link al commento
Condividi su altri siti

Usare un contatore per fare un flip flop mi sembra eccessivo.

1 ora fa, leleviola ha scritto:

per me l'inversione di un bit derivante da un unico ingresso non è altro che un contatore che conta solo in due stati 0 e 1

alla fine è uguale, ma per contare 2 stati basta un bit.

Link al commento
Condividi su altri siti

Ci sono molti modi diversi per fare una inversione..questo è uno

 

Toggle1.png.88b704becc203c5e5aa801981e24a4d9.png

 

..e questo un altro:

 

Toggle2.png.24f985bafea769eb4ae0a8138cc0bd56.png

ma ce ne sono ancora. Personalmente scarto sia metodi con contatori che, peggio ancora, con timers.

Link al commento
Condividi su altri siti

16 ore fa, acquaman ha scritto:

Questo è il classico esercizio per insegnare a capire come funziona la logica del plc, magari era meglio cercare di aiutarlo a capire e risolvere il problema piuttosto che buttare giù la soluzione.

Certo hai perfettamente ragione,ma dato che appunto l'utente è un inesperto avrei lasciato poi a lui le domande; anche perchè bisogna far molte prove prima di afferrare i concetti di memorie a livello pratico (specialmente se non hai nessuno che ti segue).

 

12 ore fa, Matteo Grasso ha scritto:

Grazie di tutto ma visto che, come ti ho detto, sono un novellino, cosa sarebbero le variabili m?

Ti consiglio di leggerti per un po' qualche libro o documento sul web che spieghino le nozioni base della programmazione. Il forum è pieno di informazioni. Sebbene sia difficile metterle in ordine, con un po' di pazienza capirai. Nessuno vieta di porre domande, ma secondo me dovresti avere dei dubbi più mirati (cioè informazioni che non trovi da nessua parte). Buonaserata

Link al commento
Condividi su altri siti

buondì

io se mi serve scrivo così :

 

//L'ingresso "E0.0" è il comando da pulsante
//IL merker "M40.0" è il comando modo flip-flop
      U     E      0.0
      FP    M     40.1
      X     M     40.0
      =     M     40.0
___________________

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