Ghisla Inserito: 27 giugno 2019 Segnala Share Inserito: 27 giugno 2019 Ciao ragazzi, mi sono imbattuto in un problema al quale non riesco ad uscirne. Ho sempre saputo che un intero ha come range -32768..+32767 mentre una word 0..65535 , provando tramite una tabella di comando mi sono accorto che non è possibile dare un valore maggiore di 32767 ad una word. Come mai? allora che differenza ci sarebbe tra INT e WORD? Grazie Link al commento Condividi su altri siti More sharing options...
Marco Fornaciari Inserita: 27 giugno 2019 Segnala Share Inserita: 27 giugno 2019 Ma ... stai parlando di una generica variabile chiamato Word, o della variabile tipo Word? C'è differenza. Ma tutto ciò vuole anche contestualizzato nel tipo di PLC e nel suo SO, se ante CEI EN 61131, e fino a circa il 2005: c'era di tutto. Normalmente nella generica variabile Word ante 61131 si può scrivere FFFF/7FFF quindi -32768/+32767 oppure 0-65536. Nella variabile tipo Word puoi scrivere FFFF quindi 65536. Nella variabile tipo INT si può scrivere -32768-+32767, poi magari la si vede anche come FFFF/7FFF Ma bisogna stare attenti, alcuni SO permettono di vedere e scrivere i valori in qualunque variabile in qualunque modo, poi il valore della variabile è gestito in coerenza con le istruzioni o/e funzioni utilizzate nel programma. Link al commento Condividi su altri siti More sharing options...
Ghisla Inserita: 28 giugno 2019 Autore Segnala Share Inserita: 28 giugno 2019 Sto parlando delle word di siemens, in una word non è possibile assegnare il valore 65535 Link al commento Condividi su altri siti More sharing options...
Marco Fornaciari Inserita: 28 giugno 2019 Segnala Share Inserita: 28 giugno 2019 Semplice, lo scrivi in esadecimale FFFF, oppure usi una UINT. Quindi nel programma lo usi con coerenza, ma quando lo visualizzi segli il formato che ti serve. Ma, scusa è indispensabile utilizzare il formato WORD? Come abbiamo già scritto c'è differenza tra variabile Word e formato WORD. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 29 giugno 2019 Segnala Share Inserita: 29 giugno 2019 Quote Sto parlando delle word di siemens, in una word non è possibile assegnare il valore 65535 Nel 300 non esistono le "UINT", ma solo le "INT", quindi con valore da -32768 a +32767. Che poi la differenza è solo nel modo di interpretare il contenuto dei 16 bit. Se hai bisogno di gestire, con interi, valori da +32768 a +65535, usi una DINT, che va da -2147483648 a +2147483647. Nelle CPU 1200/1500 invece ci sono anche BYTE, SINT, USINT (8 bit), WORD, INT, UINT (16 bit), DWORD, DINT, UDINT (32 bit), LWORD, LINT, ULINT (64 bit). Link al commento Condividi su altri siti More sharing options...
Marco Fornaciari Inserita: 29 giugno 2019 Segnala Share Inserita: 29 giugno 2019 (modificato) Dopo anni, mi sono accarto adesso che nel 300 non ci sono le UINT ... 😊 Sarà perchè già nel progetto evito di avere necesstà di numeri negativi ... che poi vallo a spiegare a manutentori e tecnologi 😕 Modificato: 29 giugno 2019 da Marco Fornaciari 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