raw Inserito: 12 maggio 2019 Segnala Share Inserito: 12 maggio 2019 Ciao a tutti,sto studiando la codifica dei diagrammi di stato,e quello descritto nell'immagine mi lascia un po perplesso,ho capito come funziona ma non mi spiego il perché,a parte l'inversione del Byte dei plc Siemens,mi spiego meglio,se voglio porre a 1 il bit 101.2,dovrei scrfivere move 4 in MW100,perche non scrivere move 1 in bit 101.2,invece di usare i multipli?,inoltre cosa succede se scrivo move 0 in MW100,pone tutta la word a 0?,grazie a chi mi aiuta a capire meglio. Link al commento Condividi su altri siti More sharing options...
84paolo Inserita: 12 maggio 2019 Segnala Share Inserita: 12 maggio 2019 Ciao. se utilizzi il move scrivi il valore in tutta la word. Se vuoi semplicemente mettere a 1 o a 0 il singolo bit devi utilizzare le istruzioni di Set e Reset sul singolo bit. Il fatto che siemens utilizza i byte invertiti rispetto a altre marche di PLC quello è così e basta. Il fatto di usare il move o il set/reset quello dipende da cosa devi fare. Se usi il set/reset modifichi solo il singolo bit e tutto il resto della word rimane inalterata. Se usi il move invece vai a modificare tutta la word. Link al commento Condividi su altri siti More sharing options...
raw Inserita: 12 maggio 2019 Autore Segnala Share Inserita: 12 maggio 2019 Ciao,grazie per essere intervenuto,mi stai dicendo una cosa nuova per me,nel senso che da quello che so io,lo dice in un corso che sto seguendo,da cui ho estratto l'immagine,muovendo con l'istruzione move per esempio il valore 4,pongo ad 1 solo il bit 101.2 della word,usando i multipli per tutti gli altri bit,ancora un esempio,move 8 per porre ad 1 il bit 101.3,se guardi l'immagine è chiaro,tu però mi stai dicendo il contrario,potresti essere più chiaro,grazie. Link al commento Condividi su altri siti More sharing options...
max.bocca Inserita: 12 maggio 2019 Segnala Share Inserita: 12 maggio 2019 Quello che dici è vero, se tu usi move con valore 7 per esempio troverai alti i tre bit con peso 4,2,1 e tutti gli altri a zero. Se vuoi toccare solo bit devi agire con set e reset. Link al commento Condividi su altri siti More sharing options...
raw Inserita: 12 maggio 2019 Autore Segnala Share Inserita: 12 maggio 2019 Ciao,grazie anche a te,sto facendo prove con simulatore,ed è vero quello che dicevo nel post,per porre ad uno un bit qualsiasi di una word,con l'istruzione move, bisogna spostare il valore dei multipli corrispondente alla tabella da me postata,se sposto il valore 0,ho tutta la word a 0.Non capisco il perché però, di quello che dici tu,infatti o provato a spostare il 7,come dal tuo esempio,in MW6,ed i bit ad uno sono 7.0 ,7.1 ,7.2.Potresti spiegarmi bene come funziona il discorso?,magari con qualcosa da leggere,grazie ancora. Link al commento Condividi su altri siti More sharing options...
84paolo Inserita: 12 maggio 2019 Segnala Share Inserita: 12 maggio 2019 ma state dicendo la stessa cosa. il valore 7 in binario é 111 perciò é normale che se valorizzi la mw6 trovi a 1 il bit 7.0 7.1 e 7.2 Link al commento Condividi su altri siti More sharing options...
Marco Fornaciari Inserita: 12 maggio 2019 Segnala Share Inserita: 12 maggio 2019 Una considerazione sorge spontanea, per usare il 95% delle istruzionei di un PLC bisogna conoscere la matenatica binaria, diversamente ci si perde, quindi anche la domanda è sponatanea: quanto si conosce della matematica binaria. ... Poi in realtà per modificare lo stato di singoli bit all'interno di word o byte è meglio imparare ad usare le istruzioni di logica binaria. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 13 maggio 2019 Segnala Share Inserita: 13 maggio 2019 Quote muovendo con l'istruzione move per esempio il valore 4,pongo ad 1 solo il bit 101.2 della word,usando i multipli per tutti gli altri bit,ancora un esempio,move 8 per porre ad 1 il bit 101.3,se guardi l'immagine è chiaro,tu però mi stai dicendo il contrario,potresti essere più chiaro No, nell'esempio è dimostrato esattamente il contrario. Del resto, direi che non c'è nulla di più logico: se scrivo un valore in una word, scrivo tutta la word, non un solo bit. Per settare un solo bit di tutta la word dovresti fare un OR, non un MOVE. MOVE significa che scrivo tutta la variabile, non un solo bit. Puoi usare una qualsiasi calcolatrice che supporti anche operazioni in binario (va benissimo quella di Windows), e fare le conversioni da un qualsiasi valore in decimale in binario e viceversa. Ricordati poi di scambiare tra di loro i primi 8 bit con gli ultimi 8 bit. Come dice Marco, non ci si può avvicinare ad un PLC senza avere un minimo di basi di cosa sia un sistema binario. Quello che succede nell'esempio di codifica infatti non è una caratteristica specifica dei PLC, ma è semplicemente una conversione da decimale a binario. Link al commento Condividi su altri siti More sharing options...
raw Inserita: 14 maggio 2019 Autore Segnala Share Inserita: 14 maggio 2019 (modificato) Adesso è tutto chiaro,l'autore della tabella sfrutta diciamo un escamotage,spostando con il move i multipli,è vero che setta ad uno un singolo bit,ma in realtà scrive tutta la word,il bit ad uno è semplicemente perché fa parte della sequenza di 0 ed 1 corrispondenti in binario del multiplo in decimale,è giusto? Modificato: 14 maggio 2019 da raw Link al commento Condividi su altri siti More sharing options...
84paolo Inserita: 14 maggio 2019 Segnala Share Inserita: 14 maggio 2019 si Link al commento Condividi su altri siti More sharing options...
raw Inserita: 15 maggio 2019 Autore Segnala Share Inserita: 15 maggio 2019 Ok,grazie a tutti. 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