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

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

Thema: WinCC V7.2 Listenfeld dynamisch mit Werten aus Textfile befüllen

  1. #1
    Registriert seit
    13.05.2013
    Beiträge
    81
    Danke
    29
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe ein Textfile, in welches mir durch ein externes Programm Werte/Fehlermeldungen geschrieben werden. Ich möchte nun in WinCC gerne dieses Textfile Zeile für Zeile auslesen, und dann sollte jede Zeile ein Item in der Listbox anzeigen, nur habe ich leider keine Ahnung wie ich hier vorgehen sollte...habe mal das Textfile auszulesen versucht, und einfach alles in einer MessageBox angezeigt...aber um das Ganze in einem Listenfeld anzeigen zu können, müsste ich ja auch die Anzahl der vorhanden Einträge zuvor herausfinden, oder? Habe zwar einige Tipps aus dem Internet ausprobiert, nur hat das nicht wirklich etwas Richtiges angezeigt... Hätte hier vll. jemand eine Idee, wie ich so etwas lösen könnte?

    Vielen Dank im Voraus.
    Zitieren Zitieren WinCC V7.2 Listenfeld dynamisch mit Werten aus Textfile befüllen  

  2. #2
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Gibt sicherlich viele Wege. Vielleicht nimmst Du in WinCC nen Textfeld und schiebst mit nem Script einfach alle 5 Sekunden den ganzen Text aus dem Textfile in das Textfeld...

  3. #3
    Jennsy ist offline Benutzer
    Themenstarter
    Registriert seit
    13.05.2013
    Beiträge
    81
    Danke
    29
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke für die Antwort.
    Naja,nur das mit dem Textfeld ist nicht wirklich das wonach ich suche...ich hätte schon gerne jede Zeile in dem Textfile in einem separaten Listenfeld Item gehabt, um danach damit weiterarbeiten zu können. Aber irgendwie funktioniert das hier nicht so recht..(habe es auch als vb.net Anwendung, die ich aufrufen kann, nur hätte ich eben alles gerne nur in WinCC ohne Aufruf auf ein externes Programm gelöst)

  4. #4
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    Sollte doch eigentlich im WinCC mit Scripten auch alles machbar sein... Nur vermutlich nicht mal eben.

    Was hast Du denn bis jetzt und an welcher Stelle hakt es konkret?

    gruß.

  5. #5
    Registriert seit
    09.08.2006
    Beiträge
    3.626
    Danke
    911
    Erhielt 656 Danke für 542 Beiträge

    Standard

    In der Hilfe steht: Das Attribut "Zuordnungen" ist nicht dynamisierbar.
    Also kannst Du die Texte der Textliste vermutlich nicht über ein Script verändern.

    Aber es gibt ja noch einige andere Smart-Objekte, oder Du bastelst Dir selber was passendes zusammen...

    Gruß.

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

    Jennsy (11.03.2014)

  7. #6
    Jennsy ist offline Benutzer
    Themenstarter
    Registriert seit
    13.05.2013
    Beiträge
    81
    Danke
    29
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von ducati Beitrag anzeigen
    In der Hilfe steht: Das Attribut "Zuordnungen" ist nicht dynamisierbar.
    Danke, tut mir leid, das hätte mir auch selbst auffallen können hab' da gar nicht nachgeschaut, weil ich davon ausgegangen bin, dass das schon funktionieren wird.
    Vielen Dank nochmals, ich hab's jetzt ziemlich einfach gelöst, aber für diesen Anwendungsfall reicht's auch so erstmal..

  8. #7
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Also ein Listenfeld aus dem Ordner der Smart Objekte kann ich per Skript befüllen.
    Nach dem gleichen Schema wie auch bei anderen Objekten, erst Index passend setzen, und dann kann man den Text für diesen Index setzen.
    Über die Eigenschaft "NumerLines" legt man fest wie viele Einträge überhaupt vorhanden sind.

    Code:
    // Eigenschaft "Anzahl Zeilen" setzen
    SetPropWord(lpszPictureName, "Listenfeld1", "NumberLines", 2);
    // Index selektieren
    SetPropWord(lpszPictureName, "Listenfeld1", "Index", 1);
    // Eintrag für diesen Index setzen
    SetPropChar(lpszPictureName,"Listenfeld1", "Text", "Testeintrag 1");
    // Index selektieren
    SetPropWord(lpszPictureName, "Listenfeld1", "Index", 2);
    // Eintrag für diesen Index setzen
    SetPropChar(lpszPictureName,"Listenfeld1", "Text", "Testeintrag 2");

  9. Folgende 2 Benutzer sagen Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    ducati (12.03.2014),Jennsy (12.03.2014)

  10. #8
    Registriert seit
    22.11.2012
    Beiträge
    111
    Danke
    15
    Erhielt 19 Danke für 18 Beiträge

    Standard

    Servus,

    ich möchte zur Runtime ein Kombinationsfeld mit Texten befüllen - das was ausgewählt werden kann, soll bei der IBN einmal manuell eingegeben werden (ohne PG), dabei geht es um Typenbezeichnungen also STRINGs.
    Gleicher Code wie oben funktioniert, aber bei Bildwechsel sind die Eintragungen wieder weg.
    Wie kann ich das verhindern? Müssen die Texte noch in Variablen gespeichert werden?

    Das befüllen soll wenn möglich von einem anderen Bild aus geschehen, was schon das nächste Problem aufwirft.
    "WinCC Runtime: PDL Runtime : Bild nicht angewählt" erscheint als Error-Message
    Hie mal mein Versuch:

    Code:
    SetPropWord("FP_Konfiguration_Ladestation.pdl","Kombinationsfeld1","Index",2);
    SetPropChar("FP_Konfiguration_Ladestation.pdl","Kombinationsfeld1","Text","160D");
    Hoffe ihr könnt mir weiterhelfen,
    Danke
    michstein

  11. #9
    Registriert seit
    29.03.2004
    Beiträge
    5.735
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Ich würde das Listenfeld im Bildaufbau-Ereignis des Bildes mit dem Listenfeld über ein Script befüllen.
    In dem Script kannst du auch vorher die Texte aus internen/externen Variablen auslesen, und diese dann in der Liste eintragen.

    Auf Elemente eines Bildes das nicht aktiv ist kannst du nicht zugreifen, zumindest nicht aus der Runtime.

  12. #10
    Registriert seit
    22.11.2012
    Beiträge
    111
    Danke
    15
    Erhielt 19 Danke für 18 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Thomas_v2.1
    Deine Idee finde ich ganz gut das Kombinationsfeld (ich verwende kein Listenfeld, aber das macht glaub ich keinen Unterschied in dem Zusammenhang) beim Aufbau des Bildfensters zu befüllen.

    So, aber: Das Kombinationsfeld befindet sich in einem Bildfenster, welches mit verschiedenen Variablen-Präfixen aufgerufen wird.

    Derzeit sieht das ganze so aus, halt nur mal für einen Index:
    Code:
    // Index selektieren
    SetPropWord(lpszPictureName,"Kombinationsfeld1","Index",1);
    
    // Eintrag für diesen Index setzen
    SetPropChar(lpszPictureName,"Kombinationsfeld1","Text", GetTagChar("Steckertyp_1") );
    "Steckertyp_1" ist eine STRING-Variable in einem S7-DB
    In einem anderen Bild (Konfigurations-Ebene, nicht Bediener-Ebene) wird mittels EA Feld der Typ eingegeben.

    Klar, dass hier ein Fehler auftaucht, weil es den Tag nun mal nicht gibt.
    Wie kann ich also bei manchen Variablen den Präfix verwenden und bei manchen nicht? Geht das Überhaupt?

    Bild.jpg

    MFG &Danke
    michstein

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 27.05.2013, 21:59
  2. Antworten: 6
    Letzter Beitrag: 24.10.2012, 08:40
  3. Antworten: 1
    Letzter Beitrag: 30.10.2008, 16:02
  4. Graph aus Werten zeichen in WinCC
    Von Florian_Niedermaier im Forum HMI
    Antworten: 0
    Letzter Beitrag: 19.06.2008, 11:48
  5. Anzeige von Werten aus DBs in WinCC
    Von Abbath im Forum HMI
    Antworten: 11
    Letzter Beitrag: 26.04.2005, 13:16

Lesezeichen

Berechtigungen

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