Vai al contenuto
PLC Forum


Sequenza Di 2 Pulsanti - Devo attivare 2 uscite diverse


franco1

Messaggi consigliati

Ho 2 pulsanti : P1 e P2.

Se premo prima P1 e poi P2 devo attivare l' uscita Q1;

Se premo Prima P2 e poi P1 o premo, contemporaneamente, P1 e P2 devo attivare l'uscita Q2.

Potete aiutarmi?

Grazie. Saluti.

P.s. in ladder per favore.

Link al commento
Condividi su altri siti


christianyougou

ciao.i pulsanti sono premuti da panello? ti posso mandare un codice scritto in AWL.

Modificato: da christianyougou
Link al commento
Condividi su altri siti

christianyougou

ECCO IL CODICE

//azzero contenitore indice

L 0

T MW 500

//premuto p1

U M 600.0 //pulsante p1(BIT CHE ALZI DA SUPERVIS)

FP M 40.0

= M 40.1

//confermo pulsante premuto

U M 40.1

S M 50.0 //memorizzo p1

//premuto p2

U M 700.0 //pulsante p2

FP M 60.0

= M 60.1

//confermo pulsante premuto

U M 60.1

S M 70.0 //memorizzo p2

// lancio timer quando ho premuto p1 resetto sua mem.

U M 50.0

UN "TEMP_DA_PC".Q1(USCITA Q1)

L S5T#5S

SE T 50

U T 50

UN M 70.0

R M 50.0

// lancio timer quando ho premuto p2 resetto sua mem.()

U M 70.0

UN "TEMP_DA_PC".Q1

L S5T#5S

SE T 60

U T 60

UN M 50.0

R M 70.0()

//CERCO PRIMO PULSANTE PREMUTO P1

UN "TEMP_DA_PC".Q1

U M 50.0

SPBN VA

L 1

T MW 500

VA: NOP 0

//CARICO P2

UN "TEMP_DA_PC".Q1

U M 70.0

SPBN DA

L 2

T MW 500

DA: NOP 0

//pulsanti premuti contemp O PRIMA P2 POI P1

L MW 500

L 1

==I

= M 400.0

O(

U M 400.0

U M 70.0

)

O(

U M 600.0

U M 700.0

)

S "TEMP_DA_PC".Q1

//ATTIVO L'USCITA Q2 :PRIMA P1 POI P2

L MW 500

L 2

==I

= M 300.0

U M 300.0

U M 50.0

S "TEMP_DA_PC".Q2

// RESSETO MEMORIA P1 E P2

O "TEMP_DA_PC".Q2

O "TEMP_DA_PC".Q1

R M 50.0

R M 70.0

Link al commento
Condividi su altri siti

Non mi pare difficile: non è che vuoi la soluzione di un esercizio scolastico, vero? <_<

P1 e P2 settano la rispettiva memoria (M1 e M2) se, e solo se, l'altra memoria è 0; la serie NA del contatto d'uscita di M1, assieme al contatto d'uscita NO di M2 e con il contatto di P2, attiva Q1, mentre la serie del contatto d'uscita di M2 con il contatto di P1 ed in parallelo a questo il contatto d'uscita di M1, attiva Q2; .

Con 4 segmenti più uno per il reset delle memorie hai sviluppato tutto: questo è il massimo dell'aiuto che puoi ottenere, per il resto usa la tua testa. ;)

Link al commento
Condividi su altri siti

christianyougou

fRANCO1

TI FACCIO QUALCHE DOMANDA:

I PULSANTI P1 ED P2 DA SUPERVISIONE PREMUTI SETTANO 2 BIT.LI RISETTA IL PLC?

Cè UN RITARDO PER POTER PREMERE IL PULSANTE SUCCESSIVO?

CIOè SE MAGARI PREMO P1 ED PREMO DOPO P2 QUANDO è SCADUTO IL RITARDO NON VIENNE FATTO NULLA.

non AVREBBE SENSO PREMERE P1 E ANCHE FRA 1 ORA SI TORNA A PREMERE P2 ALZIAMO L'USCITA LO STESSO.SECONDO ME NON N'è PRATICO.COMMUNQUE IL CODICE TELLO SCRITTO IN LADEER DIAGRAM.CHE PLC STA PROMMANDO?

GRAZIE.

Link al commento
Condividi su altri siti

christianyougou

//premuto p1

U "TEMP_DA_PC".pulsante_p1 //pulsante p1

FP M 40.0

= M 40.1

//confermo pulsante premuto

U M 40.1

S M 50.0 //memorizzo p1

U M 50.0

UN M 18.0

S M 17.0 //p1 primo

//premuto p2

U "TEMP_DA_PC".pulsante_p2 //pulsante p2

FP M 60.0

= M 60.1

//confermo pulsante premuto

U M 60.1

S M 70.0 //memorizzo p2

U M 70.0

UN M 17.0

S M 18.0

// lancio timer quando ho premuto p1 resetto sua mem.

U M 50.0

// UN "TEMP_DA_PC".Q2

L S5T#5S

SE T 50

U T 50

UN M 70.0

R M 50.0

R M 17.0

// lancio timer quando ho premuto p2 resetto sua mem.

U M 70.0

//UN "TEMP_DA_PC".Q1

L S5T#5S

SE T 60

U T 60

UN M 50.0

R M 70.0

R M 18.0

//pulsanti premuti contemp O PRIMA P2 POI P1

O(

U M 18.0

U M 50.0 //P1 PREMUTO

U M 70.0 //P2 PREMUTO

)

O(

U "TEMP_DA_PC".pulsante_p1

U "TEMP_DA_PC".pulsante_p2

)

S "TEMP_DA_PC".Q1

//ATTIVO L'USCITA Q2 :PRIMA P1 POI P2

U M 17.0

U M 50.0

U M 70.0

S "TEMP_DA_PC".Q2

// resetto i memoria

U "TEMP_DA_PC".Q2

FP M 35.0

= M 35.1

U "TEMP_DA_PC".Q1

FP M 36.0

= M 36.1

U M 35.1

R M 50.0

R M 70.0

R M 17.0

R M 18.0

/////////////////// yyyy

U M 36.1

R M 50.0

R M 70.0

R M 17.0

R M 18.0

ECCO IL CODICE IN AWL TUTTO FUNZIONA BENE.hO MESSO UN RITARDO DI 5 SECONDI

Link al commento
Condividi su altri siti

christianyougou, guarda che una buccia di arancia sulla tastiera ti blocca il caps- lock. :)

non AVREBBE SENSO PREMERE P1 E ANCHE FRA 1 ORA SI TORNA A PREMERE P2 ALZIAMO L'USCITA LO STESSO.SECONDO ME NON N'è PRATICO.

Già... Per me è un esercizio scolastico e tu, nonostante la tua ammirevole disponibilità, credo non stia facendo la cosa più corretta a dare il lavoro bell'e fatto! <_<

E comunque, si potrebbe fare con 5 righe di istruzioni, 6 al massimo. ;)

Link al commento
Condividi su altri siti

  • 1 month later...

Per Busanela: il circuito da te suggerito ha 2 problemi (se ho ben inteso ciò che scrivi).

1) si attiva solo una uscita (non si attiva l'uscita associata all'altra sequenza);

2) se i pulsanti si attivano insieme il sistema "va in crisi" (le uscite si accendono e si spengono secondo i tempi di scansione.

Per Christianyougou: ho provato ad aprire il tuo file ma non leggo nulla...forse perchè ho l'Open Office. Potresti inserirlo in pdf?

Sono in attesa di altri suggerimenti.

P.s. non è un esercizio scolastico; il reset (scusate se non l'ho detto prima) lo fa un timer (quindi dopo un certo tempo viene eseguito il reset).

Link al commento
Condividi su altri siti

2) se i pulsanti si attivano insieme il sistema "va in crisi" (le uscite si accendono e si spengono secondo i tempi di scansione.

Non mi sembra così, perchè "Busanela" nel suo esempio dice:

P1 e P2 settano la rispettiva memoria (M1 e M2) se, e solo se, l'altra memoria è 0

ovvero faccio una discriminazione del pulsante che viene premuto per primo, altrimenti non so quale sequenza attivare.

1) si attiva solo una uscita (non si attiva l'uscita associata all'altra sequenza);

La condizione per la pressione contemporanea dei due pulsanti, va di conseguenza, ovvero con una terza memoria, ed un segmento prima di quello suggerito da "Busanela" ti risolve il tutto.

"Busanela" come prassi in questo forum ti ha suggerito una strada, non la pappa pronta, se vuoi maggiori informazioni posta tu un codice o una soluzione da te trovata e noi saremmo ben lieti di aiutarti nel debug.

Per riassumere con 3 memorie di appoggio per l'attivazione della sequenza desiderata ed altri 4 segmenti hai fatto tutto come suggerito da "Busanela".

Per "christianyougou" controlla meglio quello che hai proposto in awl, non sono un esperto, però il codice da te proposto non è il massimo della leggibilità e sopratutto ha tante ridondanze, che per me sono inutili, o indice di poca confidenza con l' awl. Con ciò non voglio sminuire il tuo lavoro ma solo spronarti a migliorare le tue conoscenze. :rolleyes:

Modificato: da TravelMen
Link al commento
Condividi su altri siti

Io ho pensato a questo.

A fine temporizzazione dei due Timer (T1 e T2) le uscite si disattivano. I timer sono attivati in altra parte del programma.

Scusate per la scarsa leggibilità ma ho dovuto inserire i puntini perchè non venivano rispettati gli spazi :(

.......P1...............M2...............M1

-----| |----------|/|----------( )

.......P2...............M1...............M2

-----| |----------|/|----------( )

.......M1...............P2...............Q1

-----| |----------|/|----+-----( )

....................................|

....................................|

-----| |----------|/|-------+

......Q1............T1

.......M2...............P1...............Q2

-----| |----------|/|----+-----( )

....................................|

....................................|

-----| |----------|/|-------+

......Q2............T2

Modificato: da franco1
Link al commento
Condividi su altri siti

Ho 2 pulsanti : P1 e P2.

Se premo prima P1 e poi P2 devo attivare l' uscita Q1;

Se premo Prima P2 e poi P1 o premo, contemporaneamente, P1 e P2 devo attivare l'uscita Q2.

Potete aiutarmi?

Grazie. Saluti.

P.s. in ladder per favore.

Premesso che, come già detto da altri, sembra un problemino "scolastico" per cui sarebbe meglio che ci ragionassi tu (al massimo ti si può dare delle dritte, ma non la soluzione completa), a mio avviso ci sono dei punti non chiari...

Quando dici "premo prima P1 e poi P2", cosa intendi a livello temporale? Entro quanto dev'essere premuto P2? P1 dev'essere rilasciato quando premo P2?

E ancora, quando dici "contemporaneamente", intendi esaminare la contemporaneità di pressione, o solo il fatto che sono entrambi premuti in un determinato momento?

In ogni caso, supponendo di indovinare quello che devi fare, io prenderei il fronte di discesa dei pulsanti per far partire degli SA di qualche secondo. A quel punto, quando premi un pulsante, se hai l'SA dell'altro ecciti l'uscita... anche qui perà non si capisce quanto tempo deve restare eccitata l'uscita... potresti aver bisogno di settare una memoria che si resetta quanto entrambi i pulsanti sono rilasciati. La Q2 inoltre avrà un altro ramo in parallelo con la serie dei due pulsanti (se invece devi esaminare la "contemporaneità di pressione", devi fare un'altro giochetto tipo quello sopra, ma con tempi più stretti)

ciao

Modificato: da Gapo
Link al commento
Condividi su altri siti

Ciao, "franco1", dal codice che riportato manca la "contemporaneità" dei due pulsanti, ovvero in quello da te riportato comanda sempre P1, se i pulsanti vengono premuti assieme.

Nel codice da te proposto manca una cosa richiesta da te

Se premo Prima P2 e poi P1 o premo, contemporaneamente, P1 e P2 devo attivare l'uscita Q2.
se vengono premuti contemporaneamente si attiva nessuna uscita.

Concentrati, come prima cosa, sulla discriminazione degli stati che vuoi alazizzare, ovvero P1 poi P2; P2 poi P1 ed in fine P1&P2.

Un piccolo suggerimento metti i tuoi pulsanti in una tabella di verità e vedi le varie soluzioni (AND, OR, XOR, ecc)

| P1 | P2 | And | Or | Xor |
|  0 | 0  |  0  |  0 |  0  |  
|  0 | 1  |  0  |  1 |  1  | 
|  1 | 0  |  0  |  1 |  1  |
|  1 | 1  |  1  |  1 |  0  |

Parti da qui per creare le memorie.

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