Vai al contenuto
PLC Forum


Comunicazione Con S7-400 Con Libnodave E Python


QuEffeTi

Messaggi consigliati

Ciao a tutti.

E' la prima volta che posto sul forum quindi spero di non fare errori marchiani.

Sto facendo un po' di prove di colloquio come da oggetto in vista di un prossimo progetto.

Utilizzo un PC con WinXP dove ho installato Python, la libreria libnodave.dll ed un suo wrapper basato su ctypes.

Sul PLC ho impostato un DB con due BOOL, due INT ed un FLOAT con valore pigreco (3,14159), giusto per provare.

Dopo qualche preliminare per capire un po' come dovevano essere "assortite" le varie componenti SW, Il PC si è connesso ed ho potuto procedere alla lettura del DB.

Ovviamente, ritrovo nel buffer di lettura tutti i valori binari che sono stati impostati.

Volendo poi utilizzare le funzioni di conversione ho cominciato ad utilizzare daveGetU16 per la lettura dal buffer ed ancora ho letto tutti i valori binary corretti. Tale funzione autoincrementa il suo puntatore interno, ciò che in ambiente Python si chiama un generatore, mi pare.

Quindi, ho deciso allora di utilizzare una sequenza di tre daveGetU16 ed una daveGetFloat al fine di ritrovarmi visualizzato sul PC il valore float impostato nel DB (pigreco) ma con mia grande sorpresa mi viene restituito un intero (forse) che ha un valore che nulla ha a che fare con il valore float nella sua notazione binaria IEE big-endian.

Qualcuno gentilmente può darmi qualche suggerimento su dove sbaglio o su come ritrovarmi ciò che mi aspetterei?

Grazie in anticipo a tutti quelli che potranno dedicare un po' della loro attenzione.

Graziano

Link al commento
Condividi su altri siti


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