Vai al contenuto
PLC Forum


Libnodave:scrivere Una Word - Chiarimenti sulla funzione:WriteByteOnPLC


AranBenjio

Messaggi consigliati

Ciao ragazzi,

giusto due premesse per comprendere i miei dubbi:

1.non ho mai 'dialogato' con un PLC

2.in questo momento non ho un PLC ne virtuale ne fisico per i test

Quello che stò facendo è un programma di prova per scrivere dei dati in un PLC modello: 6ES7 343-1CX10-0XE0

Da 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 plc

1:Codice 1, Descrizione 1

2:Codice 2, Descrizione 2

etc.. 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 = 10

Prima 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)

next

Grazie,

Link al commento
Condividi su altri siti


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 PLC

2.in questo momento non ho un PLC ne virtuale ne fisico per i test

Quello che stò facendo è un programma di prova per scrivere dei dati in un PLC modello: 6ES7 343-1CX10-0XE0

Da 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 plc

1:Codice 1, Descrizione 1

2:Codice 2, Descrizione 2

etc.. 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 = 10

Prima 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: descrizione

Byte 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 ??

next

Spero di non essere stato troppo 'generico'..

Grazie in anticipo.

Grazie,

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