Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Istruzione Itd - conversione da 16 a 32 bit


Messaggi consigliati

Inserito:

Nel manuale Istruzioni AWL Siemens vi è il seguente esempio:

Esempio: MW12 = "-10" (numero intero a 16 bit)

Contenuto ACCU1-H ACCU1-L

Bit 31 . . . . . . . . . . 16 15 . . . . . . . . . . 0

prima dell'esecuzione di ITD XXXX XXXX XXXX XXXX 1111 1111 1111 0110

dopo l'esecuzione di ITD 1111 1111 1111 1111 1111 1111 1111 0110

(X = 0 o 1, bit non necessari per la conversione)

1)non capisco perchè (-10) in binario (16 bit) è pari: 1111 1111 1111 0110 non dovrebbe essere: 1000 0000 0000 1010

2)perchè dopo l'istruzione ITD nella word (ACCU1-H) vengono inseriti tutti uni?

grazie per la collaborazione!!!


Inserita:

ciao

1)quello che c'è scritto è corretto nel manuale,inoltre nella tua supposizione non consideri il segno negativo

2)il 32 bit è il segno che assumendo statol logico indica il segno -....tutti gli altri non saprei sinceramente..comunque il risultato della conversione è corretto.

attendo smentite e magari chiarimenti ciao

Inserita:

ciao alfa84,

infatti il 32 bit è messo a uno (segno -) anche da me ma non comprendo i restanti!

Se consideriamo gli ultimi 4 bit:

0110 = 6 decimale

1010 = 10 decimale

Inserita:

dunque considerando il fatto che un numero intero a 32bit con segno può rappresentare un campo di valori che va da -4294967286 a 4294967286

direi che è proprio questo il motivo per cui vengono inseriti tutti gli uno ad eccezzione degli ultini 4 bit meno significativi nella quale trovi il tuo risultato ossia 0110 che convertito in decimale viene 6.

al limite ci penserà qualcun'altro a chiarire meglio la posizione

ciao

Inserita:

Ciao JumpMan, quindi:

valore decimale 10 a 16 bit: 0000 0000 0000 1010

compl. a 1: 1111 1111 1111 0101

sommo 1: +1

---------------------------

1111 1111 1111 0110 Valore -(10)

Inserita:

Direi proprio di sì, ma per correttezza rappresentiamo tutto in binario:

valore decimale 10 a 16 bit: 0000 0000 0000 1010

compl. a 1: 1111 1111 1111 0101

sommo 1: 0000 0000 0000 0001

---------------------------

1111 1111 1111 0110 Valore -(10)

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