Vai al contenuto
PLC Forum


Popolare Campo I\O Simbolico


lamentechemente

Messaggi consigliati

lamentechemente

Chiedo per informazione,

è possibile popolare un campo I\O Simbolico non con un elenco testi predefinito in fase di progettazione, ma con, per esempio, file .csv o .txt che scrivo direttamente da pannello operatore?

Grazie

Link al commento
Condividi su altri siti


E' possibile:
1) devi mettere una variabile stringa al posto del testo statico 
2) devi prelevare la variabile stringa da un file .txt o .csv tramite script come da esempio:

 

esempio per scrivere il file depurato solamente per i due tag esempio.
Set fs = objFileSystem.OpenTextFile ("C:\Pigro\Progs\" + CStr(SmartTags("DB_HMI_Variabili_Globali.hmi_nomeprogramma")) + ".prg", 2)
fs.WriteLine CStr(SmartTags("DB_HMI_Variabili_Globali.hmi_nomeprogramma"))
fs.WriteLine CStr(SmartTags("DB_HMI_Variabili_Globali.hmi_lunghezzalamiera"))

eccetera ecc 

 

esempio per leggere il file
' Legge il nome del programma selezionato 
strNomeFile = SmartTags("Line_" & SmartTags("Index_program"))
strNomeFile = "C:\Pigro\Progs\" + strNomeFile + ".prg"

'Verifica se il file esiste, altrimenti conclude con un messaggio di errore
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
If objFileSystem.FileExists(strNomeFile) = True Then

' apre il file in lettura
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
Set fs = objFileSystem.OpenTextFile(strNomeFile, 1, False)

' Legge il contenuto delle variabili NON ARRAY dal file e lo mette nelle variabili di appoggio.
' Il limite superiore del ciclo FOR è pari al numero di variabili NON ARRAY da leggere
' e va quindi aumentato se si aggiungono variabili. Le variabili singole comprendono
' sia dati generici del programma, sia dati relativi alla piega.
For Puntatore_array = 1 To 42            'Numero da cambiare in funzione dei tag "non array" presenti nel programma    
ArrSing(Puntatore_array) = fs.ReadLine
Next

............................

 

' chiude il file in lettura
fs.Close


' copia dalle variabili interne di appoggio a quelle in Simotion
SmartTags("DB_HMI_Variabili_Globali.hmi_nomeprogramma")             = ArrSing(1)
SmartTags("DB_HMI_Variabili_Globali.hmi_lunghezzalamiera")            = ArrSing(2)

 

eccetera eccetera

 

Link al commento
Condividi su altri siti

lamentechemente

Forse non mi sono spiegato bene io (a priori ringrazio per la risposta).

Devo creare un dropdown (elenco a discesa)

premetto che già utilizzo i testi dinamici negli elenchi testi.

 

Avrei voluto mettere il campo i\o simbolico(elenco a discesa)

quando clicco sull'oggetto, e quindi compare la lista, questa lista deve essere presa da un file .csv o .txt che il cliente si può modificare a piacimento sia come testo, che come valore in base alla scelta, che quantità di voci che compongono elenco.

 

Se io creo un elenco, anche con testi dinamici, ma di 4 voci, se il cliente vuole modificarlo e metterne 6, devo per forza ricaricare il programma modificato con 6 voci, anche perchè a priori non si può sapere quante voci ci saranno.

 

ESEMPIO

 

File csv:

CELLA_A1

primo

secondo

terzo

quarto

 

Cliccando sull'elenco a discesa visualizzo

 

primo

secondo

terzo

quarto

 

Il cliente vuole modificare il file e cambia i nomi con

 

CELLA_A1

primo

secondo

terzo

quarto

quinto

sesto

 

e visualizzare

 

primo

secondo

terzo

quarto

quinto

sesto

 

e poter assegnare alla scelta, in base quindi all'indice di scelta un valore.

 

Spero di essere stato un pò più chiaro

 

Problemi a leggere e scrivere file in vb non ne ho, già lo faccio per molte funzioni.

Grazie

Link al commento
Condividi su altri siti

Beh, 

adesso sei stato chiaro.

 

per quanto ne so io non è possibile dinamizzare il numero di voci nell'elenco testi, né il suo numero corrispondente.

 

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