Zyklischer Variablenexport WinCC

Hannibal16

Level-1
Beiträge
91
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Community,

ist es möglich in WinCC (bei mir 6.0 SP3) einen zyklischen Variablenexport nach Excelfile oder Textfile zu generieren,
sodass es zum Beispiel alle 10 Sek. automatisch in die File den Variablenwert schreibt?

In WinCC Flexible funktioniert das ohne Probleme mittels Logfile, aber sowas gibts anscheinend nicht für WinCC..

Danke schon mal für die Info ;)
 
Hallo,

Mit global scripts in C oder VBA. Im jeweiligen Editor kannst du auch den Trigger des scripts wählen.

Gruß
Sailor
 
Ok hab mir jetzt ein global scipt erstellt in wincc mit dem folgendem quellcode:

On Error Resume Next

Dim appExcel , fs , wbExcel , wsExcel
Dim Verzeichnis , Datei
Dim Zeile
'------------------------------------------------------------------------------
' Variablen-Zuweisungen ...
Verzeichnis = "c:\daten\"
Datei = "test.xls"
'------------------------------------------------------------------------------
' Pointer auf Tabelle laden
Set appExcel = CreateObject ("EXCEL.Application")
Set fs = CreateObject ("Scripting.FileSystemObject")
'------------------------------------------------------------------------------
' Objekte erzeugen
' prüfe ob datei existiert. wenn nicht erzeugen.
If Not fs.fileexists (Verzeichnis + Datei) Then
appExcel.Workbooks.Add
appExcel.ActiveWorkbook.SaveAs(Verzeichnis + Datei)
End If

Set wbExcel = appExcel.Workbooks.Open (Verzeichnis + Datei)
Set wsExcel = wbExcel.Worksheets("Tabelle1")

' Zelle lesen und um 1 erhöhen
Zeile = wsExcel.Range("D1") + 1

' Zelle beschreiben
wsExcel.Cells (Zeile , 1) = Date
wsExcel.Cells (Zeile , 2) = Time
wsExcel.Range("D1") = Zeile

' Tabelle abspeichern
wbExcel.Close True 'false
appExcel.Quit ()

'------------------------------------------------------------------------------
' verwendeten Speicher wieder freigeben
Set wsExcel = Nothing
Set wbExcel = Nothing
Set fs = Nothing
Set appExcel = Nothing
Set Verzeichnis = Nothing
Set Datei = Nothing




Wie deklariere ich jetzt den Code auf die Variable, sodass der Wert der Variable in die Excel Tabelle geschrieben wird?
 
wsExcel.Cells (X , Y) = HMIRunitme.Tags("MeinWert").Read

EDIT: Ups hatte C und Vbs ein wenig vermischt....:rolleyes:
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hab jetzt meine Variablen deklariert und in dem HMI Befehl eingebunden, nur schreibt er erstens nicht die Werte der Variablen in die Excelfile
und zweitens schreibt er nur wenn ich im Global Script Editor abspeichere. Während Runtime läuft schreibt er nix in die File.
Gibts da nicht einen Trigger oder sowas?



On Error Resume Next

Dim appExcel , fs , wbExcel , wsExcel
Dim Verzeichnis , Datei
Dim Zeile
Dim Licht , Taster

'------------------------------------------------------------------------------
' Variablen-Zuweisungen ...
Verzeichnis = "c:\daten\"
Datei = "test.xls"
Licht = "Licht"
Taster = "Taster"
'------------------------------------------------------------------------------
' Pointer auf Tabelle laden
Set appExcel = CreateObject ("EXCEL.Application")
Set fs = CreateObject ("Scripting.FileSystemObject")
'------------------------------------------------------------------------------
' Objekte erzeugen
' prüfe ob datei existiert. wenn nicht erzeugen.
If Not fs.fileexists (Verzeichnis + Datei) Then
appExcel.Workbooks.Add
appExcel.ActiveWorkbook.SaveAs(Verzeichnis + Datei)
End If

Set wbExcel = appExcel.Workbooks.Open (Verzeichnis + Datei)
Set wsExcel = wbExcel.Worksheets("Tabelle1")

' Zelle lesen und um 1 erhöhen
Zeile = wsExcel.Range("H1") + 1

' Zelle beschreiben
wsExcel.Cells (Zeile , 1) = Date
wsExcel.Cells (Zeile , 2) = Time
wsExcel.Range("H1") = Zeile
wsExcel.Cells (Zeile , 3) = HMIRunitme.Tags("Licht").Read
wsExcel.Cells (Zeile , 4) = HMIRunitme.Tags("Taster").Read


' Tabelle abspeichern
wbExcel.Close True 'false
appExcel.Quit ()

'------------------------------------------------------------------------------
' verwendeten Speicher wieder freigeben
Set wsExcel = Nothing
Set wbExcel = Nothing
Set fs = Nothing
Set appExcel = Nothing
Set Verzeichnis = Nothing
Set Datei = Nothing
 
Zurück
Oben