Vai al contenuto
PLC Forum


Attivare Un Bit Impulsivo - Quali rami del Ladder lo rileveranno?


Messaggi consigliati

Inserito:

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 2

Task2

- Main routine (Task 2)

- Routine 1

- Routine 2

Supponiamo 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


Inserita:

Vediamo se ho capito ....

Quando si parla di bit impulsivo, si intende una bit (memoria) che resta a UNO per UNA SOLA

scansione 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 quando

il programma non torna a scandire la stessa riga "n" con la bobina del tuo BIT e proprio in questa fase

porrà il tuo BIT a ZERO per creare l'impulsività desiderata (ovviamente questo devi gestirlo da

codice 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 ricorsivo

Ciao

Inserita:

Jumpier grazie per la risposta alla mia domanda. E' abbastanza chiaro ciò che spieghi. Non mi è chiaro invece quello che scrivi sotto "Ricorda". Saluti.

Inserita:

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.

Inserita: (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 Task2

B - 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 12

Ciau !

Modificato: da barolo72
Inserita:

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

Inserita:

Se non lo modifichi tu con altre istruzioni rimarrà attivo per tutta una scansione, ovvero fino, nell'esempio, al ramo 49 compreso.

Inserita:

Grazie a quanti mi hanno risposto.

Dubbio chiarito.

Vi saluto

Inserita:

Dunque ... si, io avevo inteso impulso e non fronte di salita e quindi vale quello

che 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

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