AranBenjio Inserito: 23 febbraio 2009 Segnala Share Inserito: 23 febbraio 2009 Ciao ragazzi,giusto due premesse per comprendere i miei dubbi:1.non ho mai 'dialogato' con un PLC2.in questo momento non ho un PLC ne virtuale ne fisico per i testQuello che stò facendo è un programma di prova per scrivere dei dati in un PLC modello: 6ES7 343-1CX10-0XE0Da questo forum ho scaricato gli esempi in Vb.net che usano LibNoDave e ora stavo chiudendo un prototipo che proverò in questi giorni, collegandomi al PLC via Ethernet.Il dubbio è questo:Supponiamo di avere un elenco di questo tipo da dover scrivere nel DB del plc1:Codice 1, Descrizione 12:Codice 2, Descrizione 2etc.. ect..:Riporto il prototipo della funzione per la scrittura:WriteByteOnPLC(libnodave.daveDB,NumeroDB,StartAddress,NumElem,buffer)Ora dovendo scrivere una WORD, devo comunque richiamare per ogni riga 2 volte la funzione, gestendo il valore dei parametri : NumeroDB e StartAddress oppure posso fare diversamente?esempio ( linguaggio Like Visual Basic ): DB di scrittura = 10Prima Word in cui scrivere è : Word 5 (mi è stata passata come specifica)for i=0 to LunghezzaElenco-1 Dim buf As Byte() = New Byte(2) {} buf(0) = Lista.Codice(i) buf(1) = Lista.Valore(i) ..WriteByteOnPLC(libnodave.daveDB, DbCorrente, myStart, myLen, buf)nextGrazie, Link al commento Condividi su altri siti More sharing options...
AranBenjio Inserita: 23 febbraio 2009 Autore Segnala Share Inserita: 23 febbraio 2009 scusate ho inviato il topic prima di concluderlo e poi mi ha dato un errore in modalità di modifica,lo riscrivo:Ciao ragazzi,giusto due premesse per comprendere i miei dubbi:1.non ho mai 'dialogato' con un PLC2.in questo momento non ho un PLC ne virtuale ne fisico per i testQuello che stò facendo è un programma di prova per scrivere dei dati in un PLC modello: 6ES7 343-1CX10-0XE0Da questo forum ho scaricato gli esempi in Vb.net che usano LibNoDave e ora stavo chiudendo un prototipo che proverò in questi giorni, collegandomi al PLC via Ethernet.Considerando che la funzione di collegmanto al PLC è presente negli esempi e la do per buona,il dubbio è questo:Supponiamo di avere un elenco di questo tipo da dover scrivere nel DB del plc1:Codice 1, Descrizione 12:Codice 2, Descrizione 2etc.. ect..Quindi ho 'n' righe composte da due colonne da scrivere, ciascuna, ina una WORD del DB.Riporto il prototipo della funzione per la scrittura che ho trovato negli esempi:WriteByteOnPLC(libnodave.daveDB,NumeroDB,StartAddress,NumElem,buffer)Ora dovendo scrivere una WORD, devo comunque richiamare per ogni riga 2 volte la funzione, gestendo il valore dei parametri : NumeroDB e StartAddress oppure posso fare diversamente?esempio ( linguaggio Like Visual Basic ): DB di scrittura = 10Prima Word in cui scrivere è : Word 5 (mi è stata passata come specifica)StartAddress=cosa si intende, per start address? nelle specifiche ho solo un elenco del tipo: Byte 0: descrizioneByte 1:descrizione..Word 5:descrizione..Quindi per me lo start address iniziale vale : 5'codice:for i=0 to LunghezzaElenco-1 'leggo gli elementi della lista Dim buf As Byte() = New Byte(2) {} buf(0) = Lista.Codice(i) buf(1) = Lista.Valore(i) 'parametro StartAddress StartAddress=5 ' lo inizializzo al valore della Word in cui scrivere? ..WriteByteOnPLC(libnodave.daveDB,11, StartAddress, 2, buf) StartAddress= StartAddress +2 'devo aumentare di 2 per considerare che scrivendo una word la prossima è Word7,Word9 etc..etc ??nextSpero di non essere stato troppo 'generico'..Grazie in anticipo.Grazie, Link al commento Condividi su altri siti More sharing options...
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