Vai al contenuto
PLC Forum


Libnodave Lettura Dati


Messaggi consigliati

Inserito:

Buongiono

Sono alle prese con la comunicazione con un PLC Siemens S7 300 -CPU 315 -2 PN/DP, uso Visual C-Sharp 2010.

Il codice che utilizzo per leggere la DB100.DBW0 è il seguente.

Vi prego di leggere i commenti per dirmi dove si trova l'errore:

byte[] buffer = new byte[2];//Dichiaro un array di due elementi che passero' come par. alla funzione "readBytes".

int rack = 0;//Dichiaro una variabile che contiene il numero associato al rack

int slot = 2;// " " " " " " " " allo slot

int dato; //Dichiaro una variabile che conterrà il valore di ritorno della funzione "readBytes"---attualmente -1050 (Che cosa vuol dire questo numero?)

fds.rfd = libnodave.openSocket(102, "172.30.4.13");//Apro la connessione con il PLC --(Che cosa vuol dire "fds.rfd" ?)

fds.wfd = fds.rfd; //(Che cosa fa questa istruzione ?)

if (fds.rfd > 0)

{

textBox2.Text = ("Connesso");

di = new libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k);//Creo un'interfaccia

dc = new libnodave.daveConnection(di, 0, rack, slot);//Creo la connessione

}

else

{

textBox2.Text = ("Disconnesso");

}

dato = dc.readBytes(1,3, 0, 1, buffer);//DUBBIO ENORME : Il primo parametro esprime il TIPO AREA: E' CORRETTO SCRIVERE 1 PER DB ,2 PER MERKER,.....DOVE TROVO LA LEGENDA?

A questo punto devo leggere il dato, come devo fare ?

Grazie a tutti

Ciao


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