Vai al contenuto
PLC Forum


Aggiornare Valori Solo Una Volta


avafab

Messaggi consigliati

Ciao a tutti, ho un problemino dovuto all'inesperienza, ho bisogno di fare un MOVE di parametri soltanto una volta al cambio di una certa condizione, ho usato dei --(P)-- associando una variabile temporanea ma ho letto da un po' di parti che così non va bene... vi posto un immagine..

L'obiettivo è questo:

quando "MachineVersNumber" assume valore 1, allora muovo determinati valori dentro dei paramentri, questa operazione deve essere fatta soltanto 1 volta non appena il valore di "machineVersNumber" passa da un numero qualsiasi al numero 1 (non deve essere fatta in continuazione, per questo ho pensato all'impulso).

quando "MachineVersNumber" assume valore 2, allora muovo altri valori dentro gli stessi paramentri di prima, anche questa operazione deve essere fatta soltanto 1 volta non appena il valore di "machineVersNumber" passa da un numero qualsiasi al numero 2. (non deve essere fatta in continuazione, per questo ho pensato all'impulso).

è corretto quanto si vede in figura? grazie

post-201851-0-31334100-1418566038_thumb.

Modificato: da avafab
Link al commento
Condividi su altri siti


Ciao.

Senza andare troppo nei dettagli...

Per l'appogio dei fronti di salita o discesa devi usare delle variabili pubbliche (es m127.1 o db17.dbx17.7, inoltre questi bit lungo il programma non vanno + richiamati a meno che non usi dei salti).

ciao

Link al commento
Condividi su altri siti

Ciao, la gestione date fatta sembra corretta.

Due consigli:

1- Sul contatto -p-, come ti ha detto GixRamones devi inserire un bit che non viene utilizzato da nessun'altra parte;

2- Invece di usare MOVE, prova a guardare SFC20 (Block Move)

Ciao

Link al commento
Condividi su altri siti

grazie a tutti e due alla fine ho risolto così:

ho creato una bella "DB Pulses", con un array di 100 booleani, così ho "DB Pulses".pulse[1], pulse[2] etc etc, così li uso una sola volta quando serve...

per il BLKMOV lo conosco solo che i dati che devo spostare ahimè non fanno parte di un'area contigua di memoria ma sono sparpagliati e quindi li devo fare singolarmente..

grazie a tutti e buon lavoro :D

Link al commento
Condividi su altri siti

ho usato dei --(P)-- associando una variabile temporanea ma ho letto da un po' di parti che così non va bene...

E hai letto bene.

Non puoi usare variabili locali temporanee per la gestione dei fronti.

Se ci pensi, è anche logico.

Link al commento
Condividi su altri siti

grazie Batta,

è logico perchè il --(P)-- è semplicemente un confronto tra il valore che la variabile associata aveva precendentemente e quello attuale, se gli associamo una var temporanea essa viene azzerata ad ogni chiamata della funzione e quindi perdiamo l'informazione precedente ed il confronto non è più attendibile..

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