Ciao,
condivido un metodo che ho utilizzato per interfacciare IDF a una bilancia della Cooperativa Bilanciai, raggiungibile tramite collegamento di rete.
Il collegamento si effettua tramite un terminale di pesatura della serie Diade DD 1050, che è raggiungibile tramite rete TCP/IP sulla porta 6001.
Purtroppo non è presente un’interfaccia di tipo Web API e quindi per l’interfacciamento ho deciso di usare la libreria System.Net.Sockets.TcpClient di .NET.
Tramite Visual Studio ho creato una DLL c# con all’interno una sola funzione che effettua la chiamata alla bilancia per recuperare il peso misurato.
La funzione, denominata “InviaMessaggio”, non fa alcuna elaborazione, invia solamente il messaggio in formato stringa e ritorna il risultato sempre in formato stringa.
Che messaggio inviare e come elaborare il risultato viene fatto direttamente in IDF.
Ad esempio, inviando il messaggio
XNS<CR><LF>
la bilancia risponde con il peso attualmente misurato dalla bilancia nel formato
#########<SP><um><SP>NT<CR><LF>
Ad esempio potrebbe rispondere
3850 kg NT
La funzione InviaMessaggio, oltre al messaggio stesso, ha come parametri anche il “server” (nome o ip) , la porta e il timeout.
Questo un esempio di chiamata dalla app di test da Visual Studio:
risposta=Bilancia.LibreriaBilancia.InviaMessaggio(“192.168.1.1”, 6001, “XNS”+“\r”, 5000);
Vi allego il progetto Visual Studio per la creazione della DLL.
Bilancia.zip (46,6 KB)
Lato IDF ho importato la DLL come Libreria, ho mappato la funzione InviaMessaggio e l’ho inserita nella directory Custom.
Vi allego anche qui un piccolo progetto di esempio.
BilanciaIDF.zip (500,8 KB)
Questo è un piccolo esempio di come si possono interfacciare dispositivi che non hanno una interfaccia di tipo Web API.
Spero possa essere utile a qualcuno.
Francesco
