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




Archiviazione Variabili Wincc 2008 Advanced


Messaggi consigliati

AC Automation
Inserito:

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


Inserita:

puoi trovare tanti succosi esempi cercando sempre nel forum HMI, chiave di ricerca script; wincc; xls .....

AC Automation
Inserita:

Grazie mille ho provato a cercare ma non ho trovato nulla che fa al caso mio....

Qualcuno riesce ad aiutarmi???

Grazie

Inserita:

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:

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

Inserita:

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:

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?

Inserita:

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.

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