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)