niky Inserito: 6 dicembre 2008 Segnala Share Inserito: 6 dicembre 2008 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.0USCITA A: A0.0USCITA B: A0.1USCITA C: A0.2USCITA D: A0.3USCITA E: A0.4il 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: Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 6 dicembre 2008 Segnala Share Inserita: 6 dicembre 2008 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 More sharing options...
niky Inserita: 6 dicembre 2008 Autore Segnala Share Inserita: 6 dicembre 2008 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.GRAZIEsecondo te come potrei effettivamente fare? Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 7 dicembre 2008 Segnala Share Inserita: 7 dicembre 2008 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 More sharing options...
niky Inserita: 7 dicembre 2008 Autore Segnala Share Inserita: 7 dicembre 2008 (modificato) devo poter gestire una logica in un FB avendo come ingresso di riferimento solo ed esclusivamente un pulsante.listato attribuzione:PULSANTE: E0.0USCITA A: A7.3USCITA B: A7.4USCITA C: A7.5USCITA D: A7.6USCITA E: A6.1il 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 M001M001: S A7.3 S A7.4 S A7.5 S A 7.6 S A 6.1 BEBE COSI VIA......... Modificato: 7 dicembre 2008 da niky Link al commento Condividi su altri siti More sharing options...
batta Inserita: 8 dicembre 2008 Segnala Share Inserita: 8 dicembre 2008 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 More sharing options...
busanela Inserita: 9 dicembre 2008 Segnala Share Inserita: 9 dicembre 2008 (modificato) utilizzando un byte di merker d'appoggio anziché utilizzare direttamente il byte delle usciteE' 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.3U M7.4= A7.4...U M7.7= A6.1Ricorda 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: 9 dicembre 2008 da busanela Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora