Vai al contenuto
PLC Forum


Lettura Schede Analog In /out


Messaggi consigliati

Inserito:

Buongiorno,

ho un dubbietto : quando collego un trasmettitore 4-20 mA o un qualsiasi altro apparecchio a un canale analogico, da un punto di vista numerico cosa leggo?? la lettura varia in funzione dell'impostazione del TIPO di dati nel editor dei simboli??

grazie delle ev. risposte


Matteo Montanari
Inserita:
la lettura varia in funzione dell'impostazione del TIPO di dati nel editor dei simboli

varia la visualizzazione numerica, non la lettura fatta dalla scheda, se viene utilizzata una scheda analogica il valore è rappresentato a 16 bit (una word).

questa word può assumere il valore di:

Cifra binaria               da 2#0 a 2#1111_1111_1111_1111 [2#0000_0000_0001_0000]
  
Esadecimale                 da W#16#0 a W#16#FFFF          [L W#16#1000 o L word16#1000]
  
BCD                         da C#0 a C#999                 [L C#998]

Numero decimale senza segno da B#(0,0) a B#(255,255)       [L B#(10,20) o L byte#(10,20)]

(presente nel manuale in linea alla voce: Tipi di dati semplici) :angry:

Inserita:

salve keosmm

si l'avevo vista .... ma non ho capito cosa cambia nella tabella dei simboli impostare come tipo di dati INT,BOOL,WORD,DWORD..ecc

se la scheda legge il valore binario, quando leggo una PEW o una PED, leggo sempre un valore binario non mi varia in funzione del parametro impostato nella tab dei simboli......??

io le mie analogiche le ho dichiarate nella tabella simboli, le richiamo in un fc dove le scalo e le sposto in un DB dove le usero' nella logica.

il dubbio e semplicemente perche nel blocco SCALE accetta in ingresso un valore INT e io ho modificato nella tabella simboli il tipo di dati in INT....e' corretto?

Matteo Montanari
Inserita:

il valore dell'anologica in esadecimale "EBCA" equivale in decimale "60362" ed in binario a "1110101111001010".

il numero è uguale, ed a seconda di come lo "leggi" cambia il valore numerico di "lettura" non il numero.

nella dichiarazione delle varibili, che tu metta INT o WORD o nulla, non cambia assolutamente niente.

se il blocco richiede un valore INT, devi richiarare la variabile, se vuoi dichiararla, come INT, solamente per far piacere al blocco, per niente altro.

il blocco scale al suo interno trasforma la varibile "INT" in una varibile in virgola mobile:

// convert input (IN) to real

      L     #IN                         // ACC1=IN
      ITD                               // convert to double integer 
      DTR                               // convert to real
      T     #IN_REAL                    // IN_REAL-IN as a real

questo per eseguire tutte le operazioni nella stessa base... (valori di limiti min e max ed uscita sono in virgola mobile).

quindi non preoccuparti, il numero rimane sempre lo stesso numero.

per semplificare, prova ad aprire una tabella delle varibili, metti la stessa varibile tutte le volte che vuoi, cambiando il sistema di rappresentazione. modifica il valore e fai la "prova" con la calcolatrice...

Inserita:

Aggiungo solo che il formato che dichiari nella tabella dei simboli

deve essere uguale a quello che richiede il blocco parametrizzato dove lo inserisci,

altrimenti si "arrabbia un po'...".

Ciao.

Inserita:

Ciao,

non ho capito se può esserti utile, comunque quando leggi un ingresso analogico il "fondo scala" (10 V, 20 mA, 10 kOhm o quant'altro puoi specificare nella config HW di quella scheda...) equivale a 27648.

Il "fondo scala negativo" (-10 Volt...) se applicabile equivale a -27648.

Tutti i valori intermedi sono in proporzione (es. 5Volt=13824).

Ciao, Emanuele

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