Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: [TIA V13] Durch (nichtstetige) Textlisten blättern mit Button

  1. #1
    Registriert seit
    21.01.2014
    Beiträge
    8
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    habe ein kleines Problem, bei dem mein Arbeitskollege gemeint hat, dass es mit älteren Panels über die Folientastatur lösbar gewesen ist. Eine solche Funktion suche ich in TIA V13 WinCCflex für mein TP700 Comfort vergeblich.

    Ich habe eine Textliste die ich per Dropdown anwählen kann. Die Nummerierung dieser Textliste ist nicht fortlaufend.
    Beispiel für die Werte (in Spalte Werte): 0,1,2,3,50,51,52,53,... etc.

    Zusätzlich zu dem Dropdown soll mit Pfeiltasten (auf dem HMI) durch die verschiedenen Textlisten navigiert werden und genau hier liegt das Problem. Lege ich einen Wert zum in-/dekrementieren des aktuellen Wertes (Zeigt auf die Textliste) auf die Pfeiltasten, so wird von 3 auf 4 gesprungen und nicht wie im obigen Beispiel auf 50. Ist ja auch logisch.

    Ich würde halt gerne Mithilfe der Pfeiltasten direkt auf das nächste Textlistenelement springen.
    Ist das durch irgendeine Funktion innerhalb von WinCCflex möglich oder muss ich mir etwas in der SPS basteln?


    Danke und schönes Wochende.
    Zitieren Zitieren [TIA V13] Durch (nichtstetige) Textlisten blättern mit Button  

  2. Folgender Benutzer sagt Danke zu eternr3 für den nützlichen Beitrag:

    Lipperlandstern (19.09.2014)

  3. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Kann das TP700 Comfort Skripte?

    Unter WinCC flexible funktionieren die folgenden Skripte.
    Eine Schaltfläche ruft das Skript TL_Up() auf, eine zweite Schaltfläche ruft das Skript TL_Down() auf.
    SmartTags("_Intern\listvalue") ist die mit dem symbolischen EA-Feld verbundene Prozessvariable.
    Code:
    ' Sub TL_Up()
    ' Textliste 1 Eintrag höher (kleinerer Wert) auswählen
    ' Sprachcode für LookupText: "de-DE" = 1031 = Deutsch-Standard / "en-US" = 1033 = Englisch-USA
    
    Const TL_minValue = 0 'kleinster Wert der Textliste
    Dim i, listtext
    
    For i = SmartTags("_Intern\listvalue") - 1 To TL_minValue Step -1
      LookupText listtext, i, 1031, "Textliste_1"
      If listtext <> "" Then Exit For
    Next
    If i < TL_minValue Then i = TL_minValue
    SmartTags("_Intern\listvalue") = i
    Code:
    ' Sub TL_Down()
    ' Textliste 1 Eintrag tiefer (größerer Wert) auswählen
    ' Sprachcode für LookupText: "de-DE" = 1031 = Deutsch-Standard / "en-US" = 1033 = Englisch-USA
    
    Const TL_maxValue = 53 'größter Wert der Textliste
    Dim i, listtext
    
    For i = SmartTags("_Intern\listvalue") + 1 To TL_maxValue
      LookupText listtext, i, 1031, "Textliste_1"
      If listtext <> "" Then Exit For
    Next
    If i > TL_maxValue Then i = TL_maxValue
    SmartTags("_Intern\listvalue") = i
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. Folgende 2 Benutzer sagen Danke zu PN/DP für den nützlichen Beitrag:

    eternr3 (20.09.2014),Zonder (15.10.2014)

  5. #3
    Registriert seit
    13.10.2007
    Beiträge
    12.064
    Danke
    2.793
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Kann das TP700 Comfort Skripte?
    Kann es, runter bis zum kleinsten Gerät den xx400.
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  6. Folgender Benutzer sagt Danke zu rostiger Nagel für den nützlichen Beitrag:

    eternr3 (20.09.2014)

  7. #4
    eternr3 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.01.2014
    Beiträge
    8
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke erstmal für den Code.
    Wenn ich ihn mir anschaue, verstehe ich ihn und er ergibt Sinn.
    Nur leider versteht die Simulation den Code nicht.

    *Die Prozessvariable ist im DB als Wort definiert und entsprechend eingepflegt.
    *Der Verweis auf die richtige Textliste.
    *Die Sprache habe ich auf 1033 (Englisch) umgestellt, so wie in der Textliste projektiert.
    *TL_maxValue bzw. TL_minValue angepasst.

    Habe das Panel simuliert (mit PLCSim) und ein Aufruf des Skriptes per Schaltfläche ändert am Wert im DB nichts.
    Kannst du mir auf die Sprünge helfen?

    Code:
    Const TL_maxValue = 101 'größter Wert der Textliste
    Dim i, listtext
    
    
    For i = SmartTags("DB_TP700: Interface_XY") + 1 To TL_maxValue
      LookupText listtext, i, 1033, "XY"
      If listtext <> "" Then Exit For
    Next
    If i > TL_maxValue Then i = TL_maxValue
    SmartTags("DB_TP700: XY") = i

  8. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Hast Du Dich jetzt nur beim Posten vertippt?
    Die beiden Smarttags(...) müssen die selbe Variable sein
    Code:
    Const TL_maxValue = 101 'größter Wert der Textliste
    Dim i, listtext
    
    
    For i = SmartTags("DB_TP700: Interface_XY") + 1 To TL_maxValue
      LookupText listtext, i, 1033, "XY"
      If listtext <> "" Then Exit For
    Next
    If i > TL_maxValue Then i = TL_maxValue
    SmartTags("DB_TP700: XY") = i
    
    ShowSystemAlarm "Skript TL_Down() wurde ausgeführt" 'für Test eine Debug-Meldung ausgeben
    Wird der Wert im DB bei Dir vielleicht dauernd beschrieben? Ist die Variable im HMI-Teil richtig angelegt? Adresse richtig?
    Probiere es mal mit einer Panel-internen Variable aus.

    Wird das Skript auch tatsächlich aufgerufen?
    - baue mal zum Test eine Laufmeldung ein: ShowSystemAlarm "Skript TL_Down() wurde ausgeführt"
    - setze mal den Wert der Prozessvariable auf 200 und ruft dann TL_Down() auf --> das Skript muß den Wert auf 101 ändern

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. #6
    eternr3 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.01.2014
    Beiträge
    8
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hast Du Dich jetzt nur beim Posten vertippt?
    Ja. Wollte die Variablen eben hier einkürzen, da die doch sehr lang waren.

    Probiere es mal mit einer Panel-internen Variable aus.
    Also der DB wird über die Variable nur durch das DropDown-Menü gesetzt. Aus der PLC kommt nichts.
    Ein ändern (nur des Skriptes) auf eine interne Variable bringt nichts.

    Ich habe die Laufmeldung in das Skript eingebaut und es tut sich definitiv nichts. Auch die Prozessvariable wird nicht ersetzt (< 101).

    Bin grade auf die Option Simulation mit Skript-Debugger gestoßen. WinCC gibt mir die Meldung "Es ist kein Skript-Debugger installiert." aus. Wird es daran liegen?

  10. #7
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Nein. Ein Skript-Debugger bringt nicht viel, wenn die Runtime für ein Panel ist. (Der Debugger müsste in der Testumgebung installiert werden.) Ich habe jedenfalls noch nie einen gebraucht, ich mache mir passende Testausgaben rein mit ShowSystemAlarm, damit kann man notfalls auch Variablenwerte ausgeben.
    Zum Skript-Debugger gibt es ein Hilfe-Thema, da steht näheres.

    "tut sich definitiv nichts" - dann wird entweder das Skript nicht aufgerufen oder es kommt nicht bis zur Testmeldung oder Du siehst die Meldung nur nicht.
    Kannst Du Systemmeldungen überhaupt sehen? Wenn nicht, dann bekommst Du Runtime-Errors und Testausgaben garnicht mit.
    Mache mal in die Vorlage (oder wie heißt das Vorlagebild bei TIA???) ein Meldefenster für anstehende Meldungen nur der Meldeklasse System rein.
    Praktisch ist auch eine Meldeanzeige für Meldeereignisse in einem Bild, dann kann man in Ruhe die Systemmeldungen nachlesen.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  11. #8
    eternr3 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.01.2014
    Beiträge
    8
    Danke
    2
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Kannst Du Systemmeldungen überhaupt sehen?
    Ja natürlich. Systemmeldungen sind auf einem entsprechendem Bild schon lange projektiert.
    Und genau hier wird nichts angezeigt, daher gehe ich davon aus, dass nichts aufgerufen wird.
    Ich finde meinen Fehler aber einfach nicht.

  12. #9
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard

    Funktioniert es denn in der Simulation? (Runtime auf dem TIA-PC starten)

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  13. #10
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.314
    Danke
    932
    Erhielt 3.329 Danke für 2.688 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn Du bei einer der Schaltflächen beim Ereignis Klicken (oder Drücken) in der Funktionsliste vor und nach dem Skriptaufruf die Ausgabe von Systemmeldungen einfügst (ZeigeSystemmeldung oder ShowSystemAlarm), kommen dann diese Systemmeldungen?

    Code:
    Schaltfläche Liste_runter
    Ereignisse
    -> Klicken
       Funktionsliste:
       1  ZeigeSystemmeldung
          Text/Wert   "Schaltfläche Liste_runter: geklickt"
       2  TL_Down
       3  ZeigeSystemmeldung
          Text/Wert   "Schaltfläche Liste_runter: Ende Funktionsliste"
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 18.09.2014, 12:16
  2. Antworten: 2
    Letzter Beitrag: 11.05.2014, 08:14
  3. Antworten: 0
    Letzter Beitrag: 07.05.2014, 08:22
  4. TIA TIA-V13 Datenbausteine mit Offset?
    Von wolder im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 25.04.2014, 10:04
  5. WinCC - durch Array blättern
    Von MrChiliCheese im Forum HMI
    Antworten: 6
    Letzter Beitrag: 10.07.2012, 22:21

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •