Vai al contenuto
PLC Forum


Sistema autoritenuta con un solo pulsante?


Crioclast

Messaggi consigliati

Buonasera a tutti, 

Qualcuno saprebbe come realizzare un sistema di autoritenuta utilizzando un solo pulsante e indicare il suo funzionamento tramite linguaggio LAD? Ovvero alla prima pressione sul pulsante accendo il motore e resta acceso, alla seconda sul medesimo si spegne. 

Grazie per l'attenzione! 

Link al commento
Condividi su altri siti


        PB      FS_PB
--------|p|-------( )

        OUT       FS_PB        OUT
--------|/|--------| |----|----( )
                          |
        OUT        OUT    |
--------| |--------|/|----|

 

Generi fronte salita del pulsante.
La condizione per dare il comando di marcia è: uscita OFF e fronte salita del pulsante.
Poi viene fatta l'autoritenuta con: uscita ON e fronte salita OFF.

Se, con uscita ON arriva nuovo fronte di salita del pulsante, viene a mancare l'autoritenuta e l'uscita diventa OFF.

Link al commento
Condividi su altri siti

c'è un piccolo errore di battitura.

sull'ultima riga out negato deve essere invece FS_PB negato. lo si legge chiaramente dalla descrizione breve, coincisa e perfetta.

Link al commento
Condividi su altri siti

  • 2 weeks later...
Cesare Nicola

Io, dopo aver scoperto l'istruzione ALT in Mitsubishi e simili, non riesco più a farne a meno quindi me la sono creata anche in Siemens, perché non ne ho trovata una simile. Ho creato un FC (guarda caso chiamato "ALT") con questa riga:

 

#Toggle := NOT #Toggle;

 

dove #Toggle è una variabile In/Out

 

Poi richiamo ALT come da immagine qui sotto:
image.png.612b1f3fe695d0cf6ef4866a9e0e1277.png

 

"Motore" cambia di stato ad ogni pressione di "Pulsante".

Link al commento
Condividi su altri siti

Scusate una cosa...pur usando anch'io Mitsubishi non ho trovato l'istruzione ALT. Che plc usate? 

 

Una cortesia per @Cesare Nicola : ho provato a ricreare la tua riga ma non funziona. 

Vorresti essere cosi gentile da spiegarmi come fa la tua uscita a cambiare di stato con solo quella riga? 

 

Il sistema di batta è chiaro e lo uso già da parecchio tempo(grazie ad un’altra discussione dove lo postava e spiegava) ..ma scrivendo pippo:=not pippo ottengo che pippo cambia di stato ad ogni scansione..dove mi perdo?

Modificato: da step-80
Link al commento
Condividi su altri siti

Ciao a tutti

 

Io sono rimasto indietro di almeno 30 anni (ad essere ottimista).

 

Un bello schemino elementare come quello di Nicola Carlotto, d'altri tempi, praticamente ancora a "contatti" come si trattasse veramente di relè, pulsanti, contatti elettromeccanici....... Funzionava sempre alla prima per tutti e a tutti.

 

Ora "funzioni speciali" personalizzate che poi devono essere anche dibattute.....

Decisamente un mondo troppo complicato per me!

Link al commento
Condividi su altri siti

Cesare Nicola
9 ore fa, step-80 scrisse:

Scusate una cosa...pur usando anch'io Mitsubishi non ho trovato l'istruzione ALT. Che plc usate?

Io uso la CPU FX5U ma esiste anche per la CPU FX3U. Dove ti perdi, come dice Giuseppe Signorella, probabilmente sul fronte di salita. Il blocco ALT deve essere richiamato con un fronte di salita, come nell'immagine che ho allegato.

 

Per Semplice 1

 

8 ore fa, Semplice 1 scrisse:

Ora "funzioni speciali" personalizzate che poi devono essere anche dibattute.....

Decisamente un mondo troppo complicato per me!

Non c'è proprio niente di complicato. In Mitsubishi e altri PLC simili è una normalissima istruzione presente di default, nulla di speciale. In Siemens, si tratta di creare un FC con dentro una riga di codice (ma proprio una, non è un modo dire) e richiamarla con un fronte di salita, come da mia immagine. Non si possono ritenere speciali e complicate queste cose: possono non piacere per questione di gusti, questo è ovvio, ma ti suggerisco di fare una prova, prima di decidere di non utilizzarle a priori, altrimenti si rimane sempre legati a schemi del passato, non si progredisce mai.

Link al commento
Condividi su altri siti

Si è vero l'istruzione ALT deve essere utilizzata in impulsivo altrimenti esegue continuamente la commutazione dell'operando in oggetto, per fare ciò ci sono due opzioni, o ciò che è davanti all'istruzione genera un'abilitazione impulsiva oppure si aggiunge un "P" all'istruzione ALT in pratica si scrive ALTP così l'istruzionbe viene eseguita solo per un ciclo di programma dopo che è arrivato il segnale TRUE all'istruzione, per eseguirla di nuovo deve andare via il segnale TRUE e essere nuovamente abilitato.

Preciso anch'io che viene utilizzata nel PLC della serie FX, non so se è disponibile nelle serie superiori, sulla serie Q mi sembra di si sull'iQR non so.

Per riprodurre l'istruzione ALT in Siemens basta crearsi un FB dove un normale contatore avanti passa da 0 a 1, al successivo segnale quando  arriva a 2 viene forzato a 0 e il loop continua.

Scusate l'ignoranza ma non ho capito l'esempio di Nicola Carlotto

Modificato: da leleviola
Link al commento
Condividi su altri siti

Cesare Nicola
17 minuti fa, leleviola scrisse:

Per riprodurre l'istruzione ALT in Siemens basta crearsi un FB dove un normale contatore avanti passa da 0 a 1, al successivo segnale quando  arriva a 2 viene forzato a 0 e il loop continua.

Un FB ti costringe ad avere la DB di istanza o comunque una variabile di appoggio del valore; poca roba ma è sempre una piccola complicazione. Il mio esempio funziona con un FC che contiene una riga di codice ed è equivalente in tutto e per tutto a ALT di Mitsubishi.

Link al commento
Condividi su altri siti

21 minuti fa, Cesare Nicola scrisse:

Un FB ti costringe ad avere la DB di istanza o comunque una variabile di appoggio del valore; poca roba ma è sempre una piccola complicazione. Il mio esempio funziona con un FC che contiene una riga di codice ed è equivalente in tutto e per tutto a ALT di Mitsubishi.

Si è vero un FC non un FB

Link al commento
Condividi su altri siti

Uso serie Q e confermo che l’istruzione ALT non c è. 

Tuttavia ho provato a creare una FB(non

è possibile creare FC in Mitsubishi) con dentro la riga suggerita da @Cesare Nicola

; ho dichiarato la variabile ‘Toggle’ come in/out e poi l’ho inserita nel Main(naturalmente con la propria istanza generata) . Messo un fronte di salita generico davanti a EN ma non funziona. 

Scusate la mia immensa ignoranza ma

non capisco come possa funzionare quella riga...a questo punto sarei disposto pure a pagare per saperlo🤣

Link al commento
Condividi su altri siti

Ma no, dai...

Non mi puoi tirare in ballo addirittura un timer per una cosa così semplice.

 

E pensare che, nel tanto bistrattato AWL, diventa ancora più semplice:

U Pulsante

FP bit_os

X Marcia

= Marcia

 

(X sta per XOR)

 

Oppure, sempre in AWL, l'esempio di Cesare Nicola, senza l'utilizzo di una FC, si potrebbe scrivere così:

U Pulsante

FP bit_os

SPBN _000

UN Marcia

= Marcia

_000: NOP 0

 

Di fatto, utilizzando la FC succede esattamente questo: se non ho il fronte, l'FC non viene eseguita e quindi il bit passato come IN/OUT non cambia di stato.

Con il fronte di salita, l'FC viene eseguita per una sola scansione, e il bit cambia di stato.

Effettivamente, in ladder risulta una soluzione molto pratica.

 

Link al commento
Condividi su altri siti

Cesare Nicola
7 ore fa, batta scrisse:

Oppure, sempre in AWL, l'esempio di Cesare Nicola, senza l'utilizzo di una FC, si potrebbe scrivere così:

U Pulsante

FP bit_os

SPBN _000

UN Marcia

= Marcia

_000: NOP 0

Infatti in AWL ho sempre fatto così. L'altro esempio con X l'avevo già visto ma non l'ho mai usato.

 

 

10 ore fa, step-80 scrisse:

Tuttavia ho provato a creare una FB(non

è possibile creare FC in Mitsubishi) con dentro la riga suggerita da @Cesare Nicola

; ho dichiarato la variabile ‘Toggle’ come in/out e poi l’ho inserita nel Main(naturalmente con la propria istanza generata) . Messo un fronte di salita generico davanti a EN ma non funziona. 

Non conosco la serie Q, ho provato in simulazione con una FX5U e confermo che funziona; direi che deve funzionare anche con la Q.

 

ALT.thumb.PNG.9df94053935a49d7de3beeaebb1aa5d0.PNG

 

Link al commento
Condividi su altri siti

Salve a tutti, io di solito utilizzo un fronte di salita e una funzione di inversione dello stato dei bit, in poche parole utilizzo un canale intero e ne iverto lo stato alla pressione del pulsante.

Link al commento
Condividi su altri siti

Ok , ho riprovato e funziona. Una cosa: se collego come hai fatto tu @Cesare Nicola l'input 'Toggle' (sempre vero) in compilazione mi da errore. Perchè funzioni devo passare in entrata Un Merker oppure la stessa 'Uscita'. 

Link al commento
Condividi su altri siti

Cesare Nicola
13 minuti fa, step-80 scrisse:

Ok , ho riprovato e funziona. Una cosa: se collego come hai fatto tu @Cesare Nicola l'input 'Toggle' (sempre vero) in compilazione mi da errore. Perchè funzioni devo passare in entrata Un Merker oppure la stessa 'Uscita'. 

Non saprei. Magari è perché usi la serie Q, boh. Credo che prima della prova di stamattina non avevo mai usato un FB in Mitsubishi con delle variabili di tipo I/O: l'ho inserito in un programma così come è in immagine, non so se c'era un altro modo, so che ha funzionato. Francamente, sono alle prese con un progetto piuttosto complesso con Mitsubishi, che rispetto a Siemens trovo decisamente cervellotico e sto già tribolando abbastanza: scusa ma lascio volentieri ad altri capire cosa non va nel tuo test, prima che Mitsubishi mi vada del tutto di traverso! 🙂 🙂 🙂 

 

Modificato: da Cesare Nicola
Link al commento
Condividi su altri siti

Nicola Carlotto

 

Batta awl con il 1200 non esiste ...

il ladder della siemens e' molto limitato rispetto a quello della omron , pero' si possono ottenere gli stessi risultati , io nell'esempio  aggiungo un temporizzatore altri creano delle function block in scl, forse e' piu semplice un temporizzatore .

Il circuitino che hai proposto tu con omron funziona perfettamente, con siemens s71200 no , dipende da come vengono eseguite le istruzioni nella scansione tra i due plc .

Ciao

 

 

 

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