AC Automation Inserito: 23 maggio 2015 Segnala Inserito: 23 maggio 2015 Salve, innanzitutto buongiorno. Sono nuovo del forum l'ho sempre seguito e stimato ma senza chiedere nessun aiuto. Ora però mi trovo con un'esigenza particolare a cui dovrei trovare una soluzione. Un mio cliente vorrebbe poter archiviare una variabile di tipo dint o int in una cartella del pc con cui viene fatta la supervisione dell'impianto e su cui è installato il runtime del wincc flexible 2008. Questo dovrebbe accadere ogni volta che un bit particolare passa da 0 a 1 o viceversa. Nello specifico 2 volte al giorno ad un orario prestabilito cioè la fine del turno per archiviare la produzione. Inoltre un'ulteriore archiviazione dovrebbe servire per supervisionare il mio bit di "ciclo automatico in corso" e quindi archiviare i fermi maccina giornalieri.... Qualcuno riesce ad aiutarmi??? Grazie mille
pigroplc Inserita: 23 maggio 2015 Segnala Inserita: 23 maggio 2015 puoi trovare tanti succosi esempi cercando sempre nel forum HMI, chiave di ricerca script; wincc; xls .....
AC Automation Inserita: 25 maggio 2015 Autore Segnala Inserita: 25 maggio 2015 Grazie mille ho provato a cercare ma non ho trovato nulla che fa al caso mio.... Qualcuno riesce ad aiutarmi??? Grazie
acquaman Inserita: 26 maggio 2015 Segnala Inserita: 26 maggio 2015 Sotto c'è un esempio di quello che hai bisogno. La variabile "Salvataggi.Vasca_1.Salva" è un byte, che il plc carica il valore 1, nel flexible ho impostato il valore limite alto a 0 e negli eventi della variabile al superamento del valore limite lancio questo script. Lo script è abbastanza ben commentato non dovrebbe essere difficile capirlo. ' =============================================================== ' Definizione oggetti Dim objFSO, objFolder, objFile ' Definizioni variabili Dim strData, strHeader, StrChkFolder, strFullPath ' =============================================================== ' Abilitato gestione errori On Error Resume Next Err.Number = 0 ' Valorizzo variabili percorso e nome file strFullPath =SmartTags("Salvataggi.Vasca_2.Nome_file") ' Valorizzazione stringa dati strData = "Vasca 2;"& Time If SmartTags("Ciclo vasca 2") = 768 Then strData = strData &";Riempimento;"& SmartTags("Analogiche.T_Vasetto_2.C") &";;" If SmartTags("Ciclo vasca 2") = 1280 Then strData = strData &";Attesa;"& SmartTags("Analogiche.T_Vasetto_2.C") &";;" If SmartTags("Ciclo vasca 2") = 2304 Then strData = strData &";Riscaldamento;"& SmartTags("Analogiche.T_Vasetto_2.C") &";"& SmartTags("Analogiche.T_Acqua_calda.C") &";" If SmartTags("Ciclo vasca 2") = 4352 Then strData = strData &";Pastorizzazione;"& SmartTags("Analogiche.T_Vasetto_2.C") &";"& SmartTags("Analogiche.T_Acqua_calda.C") &";" If SmartTags("Ciclo vasca 2") = 8448 Then strData = strData &";Stramazzo;"& SmartTags("Analogiche.T_Vasetto_2.C") &";;" If SmartTags("Ciclo vasca 2") = 16640 Then strData = strData &";Svuotamento;"& SmartTags("Analogiche.T_Vasetto_2.C") &";;" If SmartTags("Ciclo vasca 2") = 33024 Then strData = strData &";Raffreddamento;"& SmartTags("Analogiche.T_Vasetto_2.C") &";;" If SmartTags("Ciclo vasca 2") = 257 Then strData = strData &";Raffreddamento;"& SmartTags("Analogiche.T_Vasetto_2.C") &";;" strData= strData & SmartTags("Analogiche.Livello_vasca_2.mm") ' Creazione oggetto FileSystem per accesso ai dati Set objFSO = CreateObject("Scripting.FileSystemObject") ' =============================================================== ' ---------------------------------------- ' Controllo esistenza cartelle e creazione ' ---------------------------------------- 'C:\Pastorizzazione\aa\mm\xxxxxxxxxxxx_gg_oo.csv' StrChkFolder = "C:\Pastorizzazione" If (Not objFSO.FolderExists(StrChkFolder)) Then Set objFolder = objFSO.CreateFolder(StrChkFolder) End If StrChkFolder = StrChkFolder & "\" & SmartTags("Vasca 2 N file anno") If (Not objFSO.FolderExists(StrChkFolder)) Then Set objFolder = objFSO.CreateFolder(StrChkFolder) End If StrChkFolder = StrChkFolder & "\" & SmartTags("Vasca 2 N file mese") If (Not objFSO.FolderExists(StrChkFolder)) Then Set objFolder = objFSO.CreateFolder(StrChkFolder) End If ' =============================================================== ' ----------------------------------------- ' Controllo esistenza file e creazione: ' ----------------------------------------- If (Not objFSO.FileExists(strFullPath))Then ' Valorizzo stringa intestazione file: strHeader = "Vasca;" strHeader = strHeader & "Ora;" strHeader = strHeader & "Fase;" strHeader = strHeader & "Temperatura;" strHeader = strHeader & "Temperatura acqua;Livello" Set objFile = objFSO.OpenTextFile(strFullPath, 8, True) If Err.Number = 0 Then objFile.WriteLine (strHeader) objFile.WriteLine (strData) objFile.Close End If Else Set objFile = objFSO.OpenTextFile(strFullPath, 8, True) If Err.Number = 0 Then objFile.WriteLine (strData) objFile.Close End If End If ' =============================================================== ' Distruggo gli oggetti Set objFile = Nothing Set objFolder = Nothing Set objFSO = Nothing ' Reset Flag SmartTags("Salvataggi.Vasca_1.Salva")=0
AC Automation Inserita: 26 maggio 2015 Autore Segnala Inserita: 26 maggio 2015 Grazie, Purtroppo io mastico ben poco gli script provenendo dalla semplice e pura programmazione siemens..... so di chiedere troppo ma cosa dovrei cambiare nello script che mi hai inviato per fare in modo che la mia variabile "Pippo" al cambiamento di stato di un bit plc "Bit_stato" da zero a uno venga salvata nell'hard disk del pc in un file che riporti data e ora? Grazie mille ancora per la pazienza
acquaman Inserita: 26 maggio 2015 Segnala Inserita: 26 maggio 2015 Nello script nell'ultima riga devi sostituire il nome della mia variabile "Salvataggi.Vasca_1.Salva" con il nome della tua variabile, in quella riga metto a zero il valore della variabile. Invece come ti ho scritto nelle proprietà della tua variabile abiliti il limite superiore e gli metti come valore 1, sempre sulle proprietà delle variabili negli eventi, all'evento superamento del valore limite superiore" fai eseguire lo script. A quel punto da plc caricando un valore maggiore di 1 nella variabile, lo scada memorizza i tuoi dati sul file.
AC Automation Inserita: 26 maggio 2015 Autore Segnala Inserita: 26 maggio 2015 si questo è chiaro ma la mia variabile "Pippo" di cui devo salvare il valore in quale punto dello script devo andarla a sotituire??? cioè: il mio bit lo metto a 1 leggo il valore della variabile creo un file in c:........ con il valore della variabile letta e il cui nome è data e ora mi sembra inoltre di capire che il punto "Valorizzazione stringa dati" a me non serva o sbaglio?
acquaman Inserita: 26 maggio 2015 Segnala Inserita: 26 maggio 2015 Nel mio script l'"strData" è la stringa che salva, quindi la devi comporre come nell'esempio con testi e variabili separati dal ";" visto che con il mio script crei file CSV. La "strHeader" invece è la prima riga di intestazione che lo script scrive se il file non esiste.
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