WinCC 7.0.1.4 Variablenaktualisierung

Hotsch

Level-1
Beiträge
149
Reaktionspunkte
13
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,
ich hab in einem Bildfenster 128 Variablen aus einer SPS projektiert. Ich aktualisiere die Variablen mittels eines Scripts das ich über einen Button aufrufe:
Code:
Sub OnClick(ByVal Item)    
Dim Fenster
Set Fenster=ScreenItems("Bildfenster2") 
Fenster.Visible=False
Fenster.Visible=True 
  Dim Artikel_Inhalt,Inhalt,Artikel_Nummer,Nummer,Artikel_Einheit,Einheit
  Dim Artikel_Geraet,Geraet,Artikel_Volumenbildend,Volumenbildend,Artikel_Sollmenge,Sollmenge,i
 
  For ii= 1 To 32
   Set Artikel_Inhalt = HMIRuntime.Tags("S7-Programm/TempRezeptDB.Artikel_Inhalt" & ii)
   Set Artikel_Nummer = HMIRuntime.Tags("S7-Programm/TempRezeptDB.Artikel_Nummer" & ii)
   Set Artikel_Einheit = HMIRuntime.Tags("S7-Programm/TempRezeptDB.Artikel_Einheit" & ii)
   Set Artikel_Geraet = HMIRuntime.Tags("S7-Programm/TempRezeptDB.Artikel_Geraet" & ii)
   Set Artikel_Volumenbildend = HMIRuntime.Tags("S7-Programm/TempRezeptDB.Volumenbildend" & ii)
   Set Artikel_Sollmenge = HMIRuntime.Tags("S7-Programm/TempRezeptDB.Sollmenge" & ii)
   Set Inhalt = HMIRuntime.Screens("Main.Bildfenster2").ScreenItems("Inhalt" & ii)
   Artikel_Inhalt.read
   Inhalt.AddItem(Artikel_Inhalt.value)
   Inhalt.ListIndex=0
 
   Set Nummer = HMIRuntime.Screens("Main.Bildfenster2").ScreenItems("ArtNr" & ii) 
   Artikel_Nummer.read
   Nummer.AddItem(Artikel_Nummer.value)
   Nummer.ListIndex=0
 
   Set Einheit = HMIRuntime.Screens("Main.Bildfenster2").ScreenItems("Einheit" & ii)
   Artikel_Einheit.read
   Einheit.Text= Artikel_Einheit.value
 
   Set Geraet = HMIRuntime.Screens("Main.Bildfenster2").ScreenItems("Geraet" & ii)
   Artikel_Geraet.read
   HMIRuntime.Trace ii & vbCrLf
  Next
end sub

Nachdem ich die Runtime gestartet habe und das Bildfenster das erstemal aufmache, gebraucht das Script eine Ewigkeit bis es durchgelaufen ist. Wenn ich das Bildfenster wieder schließe und neu aufrufe wird das Script erheblich schneller abgearbeitet. Woran kann dies liegen?
 
Hallo,
ich könnte mir vorstellen, dass die Visu eine "Ewigkeit" braucht um alle Script-Variablen zu aktualisieren. Möglicherweise stehts du beim 2. Aufruf auf der Zeitschiene günstiger da ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab mal die Zeit gemessen: Beim ersten Aufruf gebraucht das Script 23 sec, bis es komplett durchgelaufen ist. Bei allen anderen Aufrufen maximal 1,5 sec. Selbst wenn ich auf der Zeitschiene ungünstig darstehe ist mir die Differenz da doch etwas zu groß.
Im Moment befindet sich in dem Projekt auch keine anderen Skripte oder Bilder die im Hintergrund laufen.
 
Wurden die Variablen bis dahin (erster Aufruf) schon mal benötigt ? Wahrscheinlich ja nicht ... eine bessere Erklärung als die genannte habe ich für das Verhalten nicht.
Wie sind die Variablen denn projektiert ?
Wie ist die Verbindung SPS - Visu ?

Gruß
Larry
 
Da haste recht die Variablen wurde noch nicht aufgerufen.
Sie wurden direkt über den Symbolserver angebunden mittels einer TCP/IP Verbindung.

Da ich noch nicht solange mit dem großen WinCC arbeite kann ich nicht wirklich beurteilen ob dieses Verhalten "normal" ist. Nur wenn dies normal ist müsste es doch irgendwo einen Schalter geben womit sich WinCC beim Runtime start mit den Variablen synchronisieren lässt. So das der Start zwar länger dauert, aber danach ein normales Arbeiten mit den Bildern möglich wird.
 
War vielleicht etwas knapp in meinem letzten Post also nochmal etwa ausführlicher:

Eine S7 315 ist mittels einer TCP/IP Verbindung direkt mit dem PC verbunden. Auf dem PC läuft die Runtime von WinCC. Die betreffenden Variablen befinden sich alle in den gleichen globalen Datenbaustein. Hier habe ich jede einzelne Variable mittels dem Attribut "S7_m_c=true" für WinCC "sichtbar" geschaltet. Anschließend habe ich das obige Script programmiert und mit einem Button verbunden. Wenn jetzt die Runtime einmal neu gestartet wird tritt die Verzögerung auf, anschließend aber nicht mehr. Ich hab das Bildfenster geschlossen und eine halbe Stunde die Runtime nicht mehr angerührt, nach der halben Stunde habe ich nochmal auf den Button gedrückt und das Script wurde flott abgearbeitet. Erst beim erstmaligen Starten der Runtime und anschließenden öffnen des Bildfensters tritt die Verzögerung auf.

Ich hoffe du kannst mit dieser Erklärung mehr anfangen.
 
Das hat mir nicht weitergeholfen ...
Ich hatte ein bißchen gehofft, dass du jetzt vielleicht mit einer lahmen Verbindung ankommst, aber dem ist ja nun wirklich nicht.
Also ... tut mir leid ... da muß ich passen ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Trotzdem danke für deine Bemühungen.
Ich hab das Problem jetzt so gelöst das ich den Inhalt von den Variablen überprüfe und sobald welche mit einem "leeren" Inhalt auftauchen breche ich die Schleife ab. Das ist zwar keine gute Lösung aber es funktioniert zumindest.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Aus dem Grund verwende ich ja auch kein Siemens sondern eine Vipa 315SN.
icon6.gif
 
Zurück
Oben