TIA Comfort-Panel: Bildnummer ermitteln

Hallo hub,

ja - bei Protool, WinCCflex und TIA


  • Bereichszeiger Bildnummer einrichten
  • im Wort 2 ist die aktuelle Bildnummer
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Links im Projektfenster "Verbindungen" aufrufen, dort gibt es dann einen Reiter Bereichszeiger für die Bildnummer. Hier am Besten ein Array (0..4 of Uint) aus einem DB.
 
dann lege doch auf die die Bildnummervariable der SPS eine HMI Variable

ist zwar etwas umständlich, aber wenns so funktioniert

HMI Bereichszeiger Bildnummer -> SPS Variable Bildnummer -> HMI Variable Bildnummer
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei der Lösung mit dem Bereichszeiger bekommt man nur dann die aktuelle Bildnummer, wenn die HMI-Verbindung mit dem Bereichszeiger aufgebaut ist.

Wenn das Panel die Bildnummer auch offline braucht: in jedem Bild beim Ereignis "Aufgebaut" die Bildnummer (und ggf. den Bildname) in Panel-interne Variablen schreiben. Bildnummer und Bildname müssen allerdings per Hand in die Systemfunktionen eingetragen werden.

Oder in einem Skript HmiRuntime.BaseScreenName abfragen. Das Skript könnte man im Aufgabenplaner beim Trigger "Bildwechsel" aufrufen und den Bildname in eine Panel-interne Variable schreiben.

Harald
 
Zuletzt bearbeitet:
Deinen ersten Vorschlag nutzen wir aktuell.
Bildnummer beim Ereignis "Aufgebaut" in interne Variable schreiben.
=> darf man halt nicht übersehen/vergessen

Deinen zweiten Vorschlag hatte ich mir auch schon überlegt.
Werde ich noch ausprobieren.

Meine Überlegung war, dass es vielleicht sowas ähnlich fertiges wie beim Benutzernamen gibt.
(LeseBenutzername)
 
Code:
Sub vbsScnInfo()
' Aufruf aus Aufgabenplaner Event 'Bildwechsel'
' der HMI-Bildname muss mit der Bildnummer
'   und einem Leerzeichen beginnen,
'   gefolgt vom eigentlichen Bildname
' erfordert die lokalen HMI-Variablen
'   #ScnName WSTRING
'   #ScnNr UNIT

  On Error Resume Next
  Dim Str,i
  Str = HmiRuntime.BaseScreenName
  i = InStr(Str," ")
  SmartTags("#ScnName") = Mid(Str,i+1)
  SmartTags("#ScnNr") = Left(Str,i)
End Sub

Mit diesem vbScript erhalte ich das gewünsche Ergebnis 😉
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
Sub vbsScnInfo()
' Aufruf bei Bildaufbau
(...)

Mit diesem vbScript erhalte ich das gewünsche Ergebnis 😉
Da müsstest Du das Skript in jedem Bild beim Ereignis "Aufgebaut" projektieren.
Besser:
in einem Skript HmiRuntime.BaseScreenName abfragen. Das Skript könnte man im Aufgabenplaner beim Trigger "Bildwechsel" aufrufen und den Bildname in eine Panel-interne Variable schreiben.
 
Da müsstest Du das Skript in jedem Bild beim Ereignis "Aufgebaut" projektieren.
Besser:
Wer hat denn das behauptet? Ich hab lediglich den ScriptCode gepostet, der HmiRuntime.BaseScreenName entsprechend zerpflückt. Dass man dieses Script natürlich NICHT mit dem Event 'Aufgebaut' eines jeden Bildes aufruft versteht sich - dachre ich - von selber. Natürlich nutze ich dazu das System-Event "Bildwechsel".
 
Zurück
Oben