Jump to content
PLC Forum

MarioVirgilio

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

Recommended Posts

MarioVirgilio

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 to post
Share on other sites

ken

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 to post
Share on other sites
MarioVirgilio

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 to post
Share on other sites
ken

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 to post
Share on other sites
ken

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

Edited by ken
Link to post
Share on other sites
MarioVirgilio

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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...