Vai al contenuto
PLC Forum


Spostamento Dm - come ?


Messaggi consigliati

Inserito:

Devo spostare il contenuto di una DM con un numero decimale a virgola mobile in una CIO precisamente la CIO3110 (ovvero una delle CIO riservate il il collegamento seriale PC link.)

Ho provato con MOV , ma vengono dei gran pasticci... qualcuno sa darmi qualche dritta ?

Grazie ...


Inserita:

Un numero in virgola mobile occupa 2 word (canali) ed è codificato in forma particolare. Se lo devi trasferire in un canale devi prima convertirlo in numero intero, però perdi tutti i numeri a destra della virgola. Spero ti basti quanto scritto, Ciao

Inserita:

Se usi Omron, hai la bellezza di una guida on-line, dall'. in linea, su tutte le funzioni e quindi che tu non l'abbia trovata la dice un poco lunghetta. E' vero che le istruzioni variano un poco tra i diversi tipi di CPU, comunque usa MOVL, se non è suportata, cerca meglio per la tua CPU. Ovviamente, il canale sorgente e di destinazione dovranno essere di tipo REAL.

Inserita: (modificato)

Senza entrare in polemica , ma il manuale l'ho letto ( ed il pc-link e' possibile solo su le cpu cj1m-cpl1 che mi risulti) ed ho provato sia il MOV che il MOVL .

Non funzionano !

Non serve quindi solo leggere il manuale.......

La parte decimale , mi serve ,ed e' questo il problema!! (forse)

Modificato: da minihidro
Inserita:

potresti moltiplicare il numero in modo che le tue cifre decimali facciano parte del numero intero, per esempio se hai 325, 456 come valore lo moltiplichi per 1000 e ti diventa 325456 così lo puoi mettere in una doppia word e non perdi alcun valore, poi quando fai l'operazione inversa di lettura devi ricordarti di dividere per 1000

Non so se mi sono spiegato però spesso uso questo sistema.

Inserita:

Ho seguito il tuo consiglio , ma non ho moltiplicato per 1000 ma per +1 e inserito il risualtato nella CIO e FUNZIONA !! :)

In pratica moltiplicando per 1 ottieni lo stesso risultato in virgola mobile inserito su una CIO.

Mi sembra comunque una soluzione di "ripiego" , possibile che non ci sia un'istruzione apposita ?

Ciao

Inserita:

Per scrupolo ho appena verificato, e ti garantisco che non serve nulla di più che un MOVL.

  • 2 weeks later...
Inserita:

Scusa , ma come hai fatto ? A me non appare la stessa variabile in virgola mobile dopo aver eseguito una MOVL .....

E' solo un problema di visualizzazione ?

Inserita: (modificato)

Confermo anch'io che, se il DM sorgente contiene già il dato in virgola mobile, la MOVL è sufficiente.

Considera che, a livello di bit, il numero reale è incomprensibile rispetto alla rappresentazione binaria standard (perchè dei 32 bit, oltre al bit di segno, una parte rappresenta la mantissa e una l'esponente del numero) quindi sì, credo che il tuo sia un problema di visualizzazione.

Prova ad aprire la finestra di controllo (ALT + 4) inserisci il tuo CIO3110 e come tipo di dato specifica REAL.

Ciao!

Modificato: da edogol

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