WinCC + Excel

Move

Level-2
Beiträge
510
Reaktionspunkte
58
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich habe es in der letzen Zeit mit Hilfe des Forums schon geschafft, Werte aus einer Excel-Liste auf WinCC-Variablen zu schreiben. Klappt super.

Jetzt benötige ich blöderweise die umgekehrte Richtung, also WinCC-Variablenwerte in Excel ablegen.

Kann ich (wenn ja wie) mein Script hierzu entsprechend umbiegen?

Gruß
Move

Script: (Werte Excel->WinCC):

Option Explicit
Function action
Dim excel, wbActive, wsActive
'Create an Excel-Application object
Set excel = CreateObject("Excel.Application")
excel.Visible = 0
Set wbActive = excel.Workbooks.Open("D:\Projekt\KIS\Prognosen\KIS Wetterprognose WinCC.xls")
Set wsActive = wbActive.Worksheets("Tabelle1")
'----------------- WinCC Variable schreiben --------------------
'wsActive.cells(3,2) = Zeile 3, Spalte 2
'Temperaturwerte -> S7 schreiben
Dim objTag
Set objTag = HMIRuntime.Tags("Temp_00_T0_B2") ' Temperatur 0:00 Uhr
objTag.Value = wsActive.cells(2,2).Value
objTag.Write
wbActive.Close True 'Exceldatei schliessen
excel.Quit 'Excel schliessen
Set wsActive = Nothing 'Speicher freigeben
Set wbActive = Nothing
Set excel = Nothing
End Function
 
Hallo,
ja .. das läßt sich auch umdrehen - warum auch nicht ?

Einfach anders herum hinschreiben :
Code:
statt :
objTag.Value = wsActive.cells(2,2)
dann :
wsActive.cells(2,2) = objTag.Value
Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

habs jetzt mal gedreht:
aber es gibt sicher noch ein Problem mit dem Schreibbefehl?
Meine Variable "Test_Ex_9" steht auf 45.0
Wird das Script gestartet wird der Wert auf 0 gesetzt und in der Excel-Zelle steht nichts, auch keine Null.
Gruß
Move

Dim objTag
Set objTag = HMIRuntime.Tags("Test_Ex_9") ' Temperatur 0:00 Uhr

wsActive.cells(2,2).Value = objTag.Value

objTag.write ??

wbActive.Close True 'Exceldatei schliessen
excel.Quit 'Excel schliessen
Set wsActive = Nothing 'Speicher freigeben
Set wbActive = Nothing
Set excel = Nothing
 
Sorry ... ich verstehe dein Problem gerade nicht ...
Das Ding, das im Hintergrund deinen Tag mit der SPS aktualisiert (und umgekehrt) kümmert sich da schon drum.
 
Die WinCC-Variable muss noch mit der Read-Methode gelesen werden:

Code:
Dim objTag 
Set objTag = HMIRuntime.Tags("Test_Ex_9") ' Temperatur 0:00 Uhr
objTag.Read
wsActive.cells(2,2).Value = objTag.Value
 
wbActive.Close True 'Exceldatei schliessen 
excel.Quit 'Excel schliessen 
Set wsActive = Nothing 'Speicher freigeben
Set wbActive = Nothing
Set excel = Nothing

Oder:

Code:
Dim objTag 
Set objTag = HMIRuntime.Tags("Test_Ex_9") ' Temperatur 0:00 Uhr
wsActive.cells(2,2).Value = objTag.Read
 
wbActive.Close True 'Exceldatei schliessen 
excel.Quit 'Excel schliessen 
Set wsActive = Nothing 'Speicher freigeben
Set wbActive = Nothing
Set excel = Nothing

Gruß Kai
 
Zurück
Oben