Vai al contenuto
PLC Forum


Tutto Con Un Pulsante - ...........gestione uscite in un FB


niky

Messaggi consigliati

salve vi pongo un problema:

devo poter gestire una logica in un FB avendo come ingresso di riferimento solo ed esclusivamente un pulsante.

listato attribuzione:

PULSANTE: E0.0

USCITA A: A0.0

USCITA B: A0.1

USCITA C: A0.2

USCITA D: A0.3

USCITA E: A0.4

il lavoro che devo realizzare è questo:

- tenendo premuto per 5 secondi il pulsante attivo una memoria M0.0 dove questa memoria mi abilita la fase successiva.

- se ho la memoria attiva(M0.0) ad ogni fronte di salita del pulsante devo poter saltare in successione da una etichetta ad un'altra M001-M002-M003..............

-in ogni etichetta devo settare le mie uscite in ogni combinazione di bit possibili seguendo questa tabella:

post-205109-0-18945300-1396529885_thumb.

Link al commento
Condividi su altri siti


La tabella che hai allegato non è altro che un numero binario composto da 5 bit in cui l'uscita E (A0.4) è il LSB (Less Significative Bit), e l'uscita A il MSB (Most Significative Bit).

Non devi fare altro, dopo la prima pressione del pulsante per 5 secondi, tramite un temp. SS settare il merker M0.0; tramite l'and di questa memoria attiva con il pulsante d'ingresso, aggiungere 1 al byte d'uscita A0 ad ogni pressione di E0.0. Imposta il valore massimo, tramite un confronto, a 31 (corrispondente al binario 11111).

Mi sembra tanto un compitino scolastico, o mi sbaglio? <_<

Link al commento
Condividi su altri siti

la tua idea è perfetta ma ho commesso un errore nella domanda.

le uscite che ho citato sono solo un esempio perchè nella mia applicazione non sono sullo stesso byte,perdonami ma ho trascurato nella mia spiegazione forse una cosa importante,di conseguenza non posso applicare il tuo suggerimento.

GRAZIE

secondo te come potrei effettivamente fare?

Link al commento
Condividi su altri siti

secondo te come potrei effettivamente fare?

Spiega esattamente cosa devi fare, come gestire le uscite e quali sono precisamente: solo con informazioni dettagliate si può vedere se è possibile applicare un'algoritmo di calcolo di qualche tipo.

Link al commento
Condividi su altri siti

devo poter gestire una logica in un FB avendo come ingresso di riferimento solo ed esclusivamente un pulsante.

listato attribuzione:

PULSANTE: E0.0

USCITA A: A7.3

USCITA B: A7.4

USCITA C: A7.5

USCITA D: A7.6

USCITA E: A6.1

il lavoro che devo realizzare è questo:

- tenendo premuto per 5 secondi il pulsante attivo una memoria M0.0 dove questa memoria mi abilita la fase successiva.

- se ho la memoria attiva(M0.0) ad ogni fronte di salita dello stesso pulsante devo poter saltare in successione da una etichetta ad un'altra M001-M002-M003..............

- in ogni etichetta devo settare le mie uscite in ogni combinazione di bit possibili seguendo questa tabella:

Riduzione del 83%

cosi facendo ho tutte le possibili combinazioni ad ogni pressione del pulsante,in successione , naturalmente essendo che le mie uscite non sono sullo stesso byte ho difficoltà a creare una logica tipo come quella che ha proposto busanela.

io stavo pensando che ad ogni fronte del pulsante incremento un contatore Z1 e poi creo i confronti per poi saltare nell'etichetta esempio:

U E0.0

LKT 500.0

SS T1

U T1

S M0.0

M0.1 (FRONTE DI SALITA DI E0.0)

U M0.0

U M0.1 (FRONTE DI SALITA DI E0.0)

ZV Z1

L Z1

LK F 1

!=F

SPB M001

M001: S A7.3

S A7.4

S A7.5

S A 7.6

S A 6.1

BEB

E COSI VIA.........

Modificato: da niky
Link al commento
Condividi su altri siti

Se proprio vuoi utilizzare i salti, studia il funzionamento dell'istruzione SPL.

Io però seguirei lo stesso l'esempio di busanela, utilizzando un byte di merker d'appoggio anziché utilizzare direttamente il byte delle uscite, e poi trasferendo, secondo le tue necessità, lo stato di questi merker alle tue uscite.

Con un incremento e un paio di comparazioni risolvi il tuo problema, senza tirare in ballo 31 etichette di salto.

Link al commento
Condividi su altri siti

utilizzando un byte di merker d'appoggio anziché utilizzare direttamente il byte delle uscite

E' la soluzione migliore visto che le uscite non sono utilizzabili con lo stesso byte: il confronto del merker con le uscite, permette di trasferire il valore alle uscite vere e proprie:

U M7.3

= A7.3

U M7.4

= A7.4

...

U M7.7

= A6.1

Ricorda che se utilizzi il comando di SET come nel tuo esempio anzichè l'attribuzione di stato, devi resettare le uscite prima di attivare le uscite per la successiva combinazione, altrimenti rimangono tutte attivate. ;)

Modificato: da busanela
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...