franco1 Inserito: 16 luglio 2009 Segnala Inserito: 16 luglio 2009 Qualcuno puo' darmi questo chiarimento tecnico?Se in una parte del programma viene attivato un bit momentaneo, quali parti del programma vedranno attivo questo bit?Mi spiego meglio. Supponiamo che il mio programma sia così fatto:Task1 - Main routine (Task 1) - Routine 1 - Routine 2Task2 - Main routine (Task 2) - Routine 1 - Routine 2Supponiamo che la Routine 1 del Task2 abbia 100 rami ladder e supponiamo che al ramo 50 si attivi un bit impulsivo.Questo bit rimarrà attivato nell'intervallo di tempo che impiega il plc per leggere il programma dal ramo 50 al ramo 49.Oppure questo bit rimarrà attivato nell'intervallo di tempo che impiega il plc per leggere il programma dal ramo 50 fino all'ultimo ramo della Routine 2 della Task 2 (cioè fino alla fine del ladder)?Un saluto a tutti
jumpier Inserita: 16 luglio 2009 Segnala Inserita: 16 luglio 2009 Vediamo se ho capito ....Quando si parla di bit impulsivo, si intende una bit (memoria) che resta a UNO per UNA SOLAscansione del programma; una sola scansione di tutto il programma ovviamente.Questo perchè alla riga "n" comandi la bobina (coil) del tuo BIT; il BIT rimarrà a UNO fino a quandoil programma non torna a scandire la stessa riga "n" con la bobina del tuo BIT e proprio in questa faseporrà il tuo BIT a ZERO per creare l'impulsività desiderata (ovviamente questo devi gestirlo dacodice o tramite blocchi pre confezionati).Ricorda che la cosa non funziona se per esempio:- usi più bobine dello stesso bit;- esegui dei salti avanti / indietro nel programma (quindi potrebbe capitare che il BIT rimanga a uno ma non per una intera scansione);- se metti la bobina del tuo BIT all'interno di un ciclo ricorsivoCiao
franco1 Inserita: 16 luglio 2009 Autore Segnala Inserita: 16 luglio 2009 Jumpier grazie per la risposta alla mia domanda. E' abbastanza chiaro ciò che spieghi. Non mi è chiaro invece quello che scrivi sotto "Ricorda". Saluti.
mmore Inserita: 16 luglio 2009 Segnala Inserita: 16 luglio 2009 scusa Jumpier,ma direi che "dipende" da come viene realizzato.Ovvero se un un Rung di programma scrivi una logica che cambia lo stato della bobina, otterrati come risultato che partendo dal quella riga il valore sarà (esempio) 1 sino al ripassare per la stessa riga, che lo scriverà a 0.Se per impulsivo intendi fronte (salità o discesa) il discorso cambia, ovvero il fronte è valido dal Rung su cui è utilizzato sino a fine ciclo di programma.
barolo72 Inserita: 16 luglio 2009 Segnala Inserita: 16 luglio 2009 (modificato) Se utilizzi un controllore della famiglia logix dipende da un bel pò di fattori : A - Se il tuo bit è dichiarato come locale, lo vede solamente la Task2B - Se invece è dichiarato a livello globale , TAG del controller, dipende dal tipo di task che utilizzi... ad esempio : task a tempo : se la task 1 è settata a 50 ms e la task 2 è settata a 10 ms ci sono buone probabilità che il tuo bit non lo vedi...C - dammi un pò più di indicazioni e poi ti risponderò meglio... ma prima dai un'occhiata qui http://literature.rockwellautomation.com/i...pm005_-en-p.pdf a pag 12Ciau ! Modificato: 16 luglio 2009 da barolo72
franco1 Inserita: 17 luglio 2009 Autore Segnala Inserita: 17 luglio 2009 Ragazzi scusate ma ho fatto un po' di confusione con i nomi ma il concetto della domanda resta . Il mio Task è unico (Main Task segnalato a video con una cartella e un cerchio con freccetta). In questo task le routine sono 4. Cioè:Main Task- Main routine - Routine 1- Routine 2- Routine 3- Routine 4 ll bit impulsivo è dichiarato nel tag controller.Supponiamo che la Routine 1 abbia 100 rami ladder e supponiamo che al ramo 50 si attivi un bit impulsivo.Questo bit rimarrà attivato nell'intervallo di tempo che impiega il plc per leggere il programma dal ramo 50 al ramo 49.Oppure questo bit rimarrà attivato nell'intervallo di tempo che impiega il plc per leggere il programma dal ramo 50 fino all'ultimo ramo della Routine 4 (cioè fino alla fine del ladder)?Un saluto a tutti
batta Inserita: 17 luglio 2009 Segnala Inserita: 17 luglio 2009 Se non lo modifichi tu con altre istruzioni rimarrà attivo per tutta una scansione, ovvero fino, nell'esempio, al ramo 49 compreso.
franco1 Inserita: 17 luglio 2009 Autore Segnala Inserita: 17 luglio 2009 Grazie a quanti mi hanno risposto.Dubbio chiarito.Vi saluto
jumpier Inserita: 17 luglio 2009 Segnala Inserita: 17 luglio 2009 Dunque ... si, io avevo inteso impulso e non fronte di salita e quindi vale quelloche ho detto nel primo post e che ha ribadito "batta".Il discorso "ricorda" riguarda per l'appunto come viene scritto il codice ladder;faccio alcuni esempio (ma ne puoi trovare molti su web).Esempio 01:- Alla riga 50 imposti il tuo BIT a UNO e lo vuoi utilizzare come impulso;- se alla riga 60 ad esempio esegui un salto alla riga 40 della stessa routine, è ovvio che arrivando nuovamente alla 50 il BIT passerà allo stato ZERO.Esempio 02:- Alla riga 50 imposti il tuo BIT a UNO e lo vuoi utilizzare come impulso;- alla riga 80 della stessa routine utilizzi nuovamente lo stesso BIT (che quindi potrà essere reimpostato a UNO o a ZERO a seconda delle nuove condizioni);- accade la stessa cosa se alla riga 1 della routine 2 (per esempio) utilizzi nuovamente lo stesso BIT (che quindi potrà essere reimpostato a UNO o a ZERO a seconda delle nuove condizioni) e così via
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