m.fochesato Inserito: 13 febbraio 2017 Segnala Share Inserito: 13 febbraio 2017 Buonasera, U E0.0 S M120.0 L 2 L 3 +I T MW 22 ciò che non mi è chiaro è il seguente: Se E0.0 è a True setto M120.0 e trasferisco anche in MW22 la somma dei 2 numeri? Il dubbio sta nel fatto che l'operazione di sommare i due numeri venga fatta anche se E0.0 è a False. Grazie. Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 13 febbraio 2017 Segnala Share Inserita: 13 febbraio 2017 Le istruzioni L e T e +I non sono dipendenti da RLC, se vuoi che non siano eseguite devi saltarle con uno SPB o SPBN che sono istruzioni di salto condizionato sullo stato di rlc, la prima salta se RLC=1, la seconda salta se RLC=0. Link al commento Condividi su altri siti More sharing options...
m.fochesato Inserita: 13 febbraio 2017 Autore Segnala Share Inserita: 13 febbraio 2017 Ok grazie. Ti chiedo per sicurezza che se scrivo così: U E0.0 L 2 L 3 +I T MW 22 S M120.0 Faccio la somma e setto M120.0 solo se E0.0 è a True? Grazie Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 13 febbraio 2017 Segnala Share Inserita: 13 febbraio 2017 Come succede in tutti i PLC, quel codice che hai scritto viene elaborato ciclicamente, facciamo finta che la tua cpu abbia un tempo di scansione di 5ms, quindi ogni 5ms farebbe le seguenti operazioni: - Controlla ingresso E0.0 - Somma 3+2 (CON QUALSIASI STATO DI E0.0) - Scrive il risultato della somma su MW22 (SEMPRE) - Setta M120.0 se RLC=1 (quindi solo se E0.0 = TRUE) Per esempio se il codice fosse stato invece: U E0.0 L 2 L MW22 +I T MW 22 S M120.0 Vedresti MW22 che aumenta di 2 in 2 all'impazzata, sia con E0.0=FALSE che con E0.0= TRUE Altro esempio, se vuoi che MW22 venga incrementato di 1 ogni volta che E0.0 passa da false a true: U E0.0 FP M100.0 SPBN L1 // inizio istruzioni elaborate solo su fronte positivo di E0.0 L 1 L MW22 +I T MW 22 // fine istruzioni elaborate solo su fronte positivo di E0.0 L1: NOP 0 Link al commento Condividi su altri siti More sharing options...
ken Inserita: 13 febbraio 2017 Segnala Share Inserita: 13 febbraio 2017 no. come ti ha già detto jumpman Le istruzioni L e T e +I non sono dipendenti da RLC, se vuoi che non siano eseguite devi saltarle con uno SPB o SPBN che sono istruzioni di salto condizionato sullo stato di rlc, la prima salta se RLC=1, la seconda salta se RLC=0. quindi la cosa corretta è: U E0.0 spbn _001 L 2 L 3 +I T MW 22 S M120.0 _001: nop 0 in questo modo se E0.0 è a 0 salta a nop 0 (nessuna istruzione e quindi non esege la somma e non setta nulla. se invece è a 1 non esegue il salto ed esegue la somma Link al commento Condividi su altri siti More sharing options...
m.fochesato Inserita: 13 febbraio 2017 Autore Segnala Share Inserita: 13 febbraio 2017 Grazie mille, ora è tutto più chiaro. 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