lamentechemente Inserito: 31 gennaio 2018 Segnala Share Inserito: 31 gennaio 2018 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 More sharing options...
pigroplc Inserita: 31 gennaio 2018 Segnala Share Inserita: 31 gennaio 2018 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 More sharing options...
lamentechemente Inserita: 31 gennaio 2018 Autore Segnala Share Inserita: 31 gennaio 2018 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 More sharing options...
pigroplc Inserita: 31 gennaio 2018 Segnala Share Inserita: 31 gennaio 2018 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 More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora