Vai al contenuto
PLC Forum


Leggere dati da un file CSV con un Comfort Panel Windows CE


MarioVirgilio

Messaggi consigliati

Salve a tutti

Premetto che non sono un esperto di Visual Basic Script

Ho realizzato uno script per leggere i dati da un file CSV per un PC panel e funziona

Dovrei fare la stessa cosa per un Comfort Panel Windows CE 

Dopo aver visto che lo stesso script non funziona, ho cercato tra gli esempi di Siemens (art. 59604194_it)

L'esempio che ho trovato funziona ma legge solo l'ultima riga del file (dovrei leggere 10 righe per 4 colonne)

Credo che il problema sia qui, ma non ho la conoscenza per modificarlo

 

While fo.EOF = False
data=fo.LineInputString
Wend

'Write data to HMI-Tags
data=Replace(data,vbTab & vbTab,delimiter)
splitdata=Split(data,delimiter)
SmartTags("Name_product_1")= splitdata(0)
SmartTags("Name_product_2")= splitdata(1)

 

Ringraziando per l'aiuto cordialmente saluto

 

Link al commento
Condividi su altri siti


legge tutte le righe ma valorizza solo l'ultima che scrive perchè non esiste un loop.

Do While Not f.AtEndOfStream 
	MyZf = f.ReadLine
splitdata = Split(MyZf, ";")


' leggi prima riga
If splitdata(0)="nome variabile 1" Then
SmartTags("nome variabile")=splitdata(1)
End If
' leggi seconda riga
If splitdata(0)="nome variabile 2" Then
SmartTags("nome variabile")=splitdata(1)
End If
Loop

 

Link al commento
Condividi su altri siti

Ringrazio per la risposta

Sempre per quello che ho scritto sopra ti dispiace aggiungere qualche spiegazione in più

Questo è quello che devo leggere

image.png.f581c0c979e0fec54a1dcd7e26e0ed3e.png 

 

Grazie

Link al commento
Condividi su altri siti

Non c'è molto in più da dire.

Il tuo esempio va bene ma legge una riga e scrive le variabili. 

Scriverà in name_product_1 quello che trova prima del primo punto e virgola (il delimiter) e in name_product_2 quello che c'è dopo il primo punto e virgola. 

Basta, non fa altro.

Quello che hai postato è un file di excel, un modo come un'altra per leggere un CSV. La realtà è invece un file di testo dove ogni diverso valore è diviso da un ; (punto e virgola).

 

Nell'esempio che ti ho messo invece legge riga per riga, guarda il primo dato, se uguale al nome della variabile scrive ciò che c'è dopo il ; nella variabile

Esempio 

Variabile_1;100

Variabile_2;200

Quando legge Variabile_1 scriverà 100 nella variabile tag che hai scelto e così via fino alla fine del file.

 

Il tuo file non mi è chiaro. Non capisco cosa sia la prima colonna.

 

Come ti ho scritto il tuo script inizia a leggere il file. Scrive la prima riga sulla variabile, poi la seconda riga sempre sulla stessa variabile e così via. Tu vedi solo l'ultima perché è l'ultima ad essere scritta.

Link al commento
Condividi su altri siti

Visto che sembra sia una ricetta potresti anche non usare nessuno script. Puoi importare il file CSV in una ricetta. Viene scritta la ricetta nella memoria del pannello. Con la visualizzazione ricette oppure con una funzione apposita (mi sembra ci sia un ordine del controllore) viene inviata al plc (vengono scritte le variabili).

 

Vedi

https://www.dmcinfo.com/latest-thinking/blog/id/9770/importing-csv-recipe-files-into-siemens-hmi-and-iteratively-downloading-multiple-data-records-from-hmi-into-plc

Modificato: da ken
Link al commento
Condividi su altri siti

Scusami se non ho risposto prima ma purtroppo non avevo il HMI per provare

Lo farò questo fine settimana

Ti ringrazio per le risposte, sto studiando e ti farò sapere 

 

 

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