Vai al contenuto
PLC Forum


CODIFICA DIAGRAMMI DI STATO,SONO CONFUSO AIUTO


raw

Messaggi consigliati

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.image.thumb.png.e0c9e0af4652446fb53008a2bd7e6b69.png

Link al commento
Condividi su altri siti


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

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

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

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

Marco Fornaciari

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

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

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: da raw
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...