Page 1 of 1
Valori Float PL110
Posted: 20/02/2015, 12:01
by user8927
Ho necessità di far comunicare il PL110 con un analizzatore di rete che comunica misure solamente in Float. C'è la possibilità di registrare i dati in questo modo?
Re: Valori Float PL110
Posted: 20/02/2015, 12:58
by Pixsys tecnico 1
Deve scrivere quella parte di programma in C e richiamare nel ladder la procedura.
Altrimenti dia un'occhiata se i nostri nostri analizzatori di rete possono fare al caso suo:
http://www.pixsys.net/prodotti/converti ... rs485-1311
Re: Valori Float PL110
Posted: 20/02/2015, 17:00
by user8927
La scrittura per prelevare un valore float composto da N°2Word, dallo Slave 4, all'indirizzo modbus 20, con destinazione VD10 dovrebbe essere la presente per il linguaggio C:
"float EXP_Set(int Indice,int Azione,int Slave,int Tipo,int Address,int Area,int Numero,0,char NDati);"
e nella bobina all'interno del LADDER la descrizione dovrà essere:
EXP_Set(1, 03H, 4, float, 20, 1, 10, 12, 2);
Almeno cosi l'ho scritto ma non mi compila il programma.
Re: Valori Float PL110
Posted: 23/02/2015, 8:27
by Pixsys tecnico 2
Nel ladder dovrà essere inserita la seguente bobina per effettuare la lettura modbus delle due word dallo slave, e salvare il risultato nella VW10 e VW11 (che compongono la VD10).
EXP_1(Read_Slave4, INDWord20,VW10, N°Word2);
A questo punto le due word che compongono il dato float, sono salvate in 2 word consecutive VW10-VW11. Ora dal ladder, non è possibile gestire dati di tipo float, ma è possibile farlo richiamando una funzione "c". Posso quindi inserire una nuova bobina nel ladder:
c 'ConvertiValoreFloat();'
Aprendo l'editor del "c", andrò a scrivere il seguente testo:
void ConvertiValoreFloat(void);
void ConvertiValoreFloat(void)
{
VD(0) = (long)((float)(VD(10)));
}
Queste istruzioni, convertono il valore float in un valore intero a 32 bit e lo salvano nell VD(0)