Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




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


Messaggi consigliati

Inserito:

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

 


Inserita:

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

 

Inserita:

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

Inserita:

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.

Inserita: (modificato)

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
Inserita:

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 

 

 

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