gabriele123 Inserito: 14 febbraio 2013 Segnala Inserito: 14 febbraio 2013 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
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora