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

Ergebnis 1 bis 7 von 7

Thema: "Arrayverwaltung" in WinCC flexible, machbar?

  1. #1
    Registriert seit
    23.12.2011
    Beiträge
    29
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo liebe Forummitglieder,

    ich habe hier eine CPU 315-2DP (v1), die via PROFIBUS-DP mit einem TP177B verbunden ist, das ich mit WinCC flexible 2008 (ich meine SP2) projektiere.

    An besagtem TP soll der Bediener eine alpanumerische Zeichenfolge (nicht mehr als 8 Zeichen) aus einer Vorgabe von ca. 60 Stück auswählen können.
    Das ist aktuell wie folgt realisiert: In der WinCC-Projektierung gibt es eine Textliste. Die Namen der Einträge dieser List sind identisch mit den Vorgaben.
    Mit einem EA-Feld wählt der Bediener einen Eintrag und in einer Variablen (die via PROFIBUS-DP an die CPU kommuniziert wird) wird der
    Index des Eintrags hinterlegt. In der CPU (genauer: in einem Instanz-DB) liegt ein 2-dimensionales Array aus Bytes, aus dem dann
    an der Stelle [Index][0-7] die Zeichen ausgelesen und im weiteren Programmablauf verwendet werden.

    Mein Anliegen ist, eine Änderung des Arrays (Einträge hinzufügen, entfernen) über das TP zu implementieren, die zur Laufzeit ohne die Verwendung eines
    PGs durchgeführt werden kann. Habt ihr eine Idee?

    Den Teil in der CPU müsste ich hinbekommen. Ich würde das Array größer als notwendig auslegen, sagen wir 100x8 Bytes und neben den Bytes die
    aktuelle Länge hinterlegen.
    In einem EA-Feld am TP gibt Fachpersonal eine Zeichenfolge ein und betätigt entweder die Schaltfläche Entfernen oder die Schaltfläche Hinzufügen,
    woraufhin in der Steuerung eben diese Eingabe entfernt oder hinzugefügt wird. Oh ich sehe noch ein Problem: Wie ermögliche ich die Eingabe von
    bspw. 00OQLRP1?

    Wie passe ich dem das Auswählen durch den Bediener an, der ausdrücklich wählen soll und nicht selber eingeben!?

    Das Array muss zwingend aus Bytes bestehen, String bringt nichts. Möglich währe ein Struct-Array, die Zeichen müssen aber
    zeichenweise zur Verfügung stehen.
    Zitieren Zitieren "Arrayverwaltung" in WinCC flexible, machbar?  

  2. #2
    Registriert seit
    19.06.2015
    Beiträge
    459
    Danke
    26
    Erhielt 40 Danke für 35 Beiträge

    Standard

    Verstehe ich nicht was du mit Löschen meinst?Du kannst doch keine Variable löschen vom Panel.Du könntest höchstens mit Löschen in den entsprechenden Index
    Null schreiben.Das bedeuted die Adresse wäre wieder frei für Daten.Desweiteren wäre hinzufügen eine Adresse mit Null suchen und dort was eintragen.

    Oder verstehe ich das nicht richtig?Das muss zuerst geklärt werden.Die Anzahl der Array-Elemente bleibt.Ein nicht mehr benötigter Eintrag wird mit Null besetzt in dem entsprechendem Index.

  3. #3
    Registriert seit
    11.12.2009
    Beiträge
    2.115
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Also verstehe ich das richtig...

    Du hast eine Textliste mit 60 Einträgen (immer fix). Diese Textliste wird in ein 2D Array geladen (2x Anzeige der Textliste auf je 1 Index des Arrays).
    Du willst nun bis zu 100 statt 2 Felder haben.

    Mein Ansatz wäre:

    Eine Textliste mit den 60 Einträgen auf eine ArrayOfByte[0..7] zeigen lassen.
    Eine Textliste oder Numerische Eingabe vorsehen für Auswahl des Index des Zielarrays[0..100][0..7] (Natürlich auch 0-100 begrenzen)
    Einen Button zum "laden" des Wertes

    Beim Laden Inhalt von dem Eintragsarray in den ausgewählten Index im Zielarray.

    Anzeige der einzelnen Inhalte durch EA Feld möglich. (ggf. Multiplexvariable) (Das wäre der zweite Ansatz, Textliste auf Multiplexvariable und "durchschalten" des Index 0-100)

    Grüße

    Marcel
    Stell Dir vor es geht, und keiner kriegts hin!

  4. #4
    KarlOtto ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.12.2011
    Beiträge
    29
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Entschuldigung, dass mein Anliegen nicht klar wurde.In der Steuerung gibt es ein Array a la "einArray: ARRAY[ 0 .. 99 ][ 0 .. 7 ] OF BYTE".Die Bytes (ASCII-Zeichen) einArray[ einIndex ][ 0-7 ] sind eine Identnummer.Es müssen nun am TP zwei Funktionalitäten gewährleistet werden.1. Der Anlagenbediener muss eine dieser Identnummern auswählen können. Das nach Möglichkeit einfach (also nicht bspw. "Arrayelement 3", sondern eher "Identnummer BlaBlaBla").2. Das Wartungspersonal muss zur Laufzeit über das TP (ohne PG) Identnummern in das Arrayaufnehmen können (oder auch entfernen), die der Bediener dann natürlich auch wählen können muss.Was ich mit Löschen meine: Sei das Array wie beschrieben. Aktuell gibt es aber nur knapp 60 IDs. Also kann ich am Index 61 noch eine Hinzufügen, zur Laufzeit, einfach zeichenweise reinschreiben. "Löschen" würde ich, indem ich die Variable, die die aktuelle Länge hält, um 1 verringere und ggf. die auf die zu entfernende ID folgenden IDs um 1 aufrücke.Eben an diesen Vorgang muss sich die WinCC-Projektierung "anpasen".

  5. #5
    Registriert seit
    19.06.2015
    Beiträge
    459
    Danke
    26
    Erhielt 40 Danke für 35 Beiträge

    Standard

    Irgendwie kommt mir deine Aufgabenstellung eher wie eine Rezeptfunktion vor.Du wählst aus vorhandenen Datensätzen was aus und schickst es an die SPS herunter.Auch wenn es in diesem Fall nur eine Nummer ist.Datensatz löschen und Datensatz neu anlegen sind typische Standartfunktionen eines Rezepteditors.
    Die Indexnummer ist eigentlich konstant.
    Allerdings weiss ich jetzt nicht viel darüber was das WinnCC flexible alles für Rezeptfunktionen kann.War aber nur so laut gedacht jetzt.

  6. #6
    Registriert seit
    11.12.2009
    Beiträge
    2.115
    Danke
    388
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Ja das klingt wirklich nach der Rezeptur.

    Du kannst als Variable eine Fortlaufende Nummer oder den Namen als String (auf 7 Zeichen begrenzbar) anlegen und dann Datensätze anlegen.
    Guck Dir das doch einfach mal an, wenn das TP das unterstützt!

    Grüße

    Marcel
    Stell Dir vor es geht, und keiner kriegts hin!

  7. #7
    Registriert seit
    18.03.2013
    Beiträge
    43
    Danke
    2
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich glaube KarlOtto meint, wie kann man variable textlisten realisieren, deren Inhalt sich zur Laufzeit ändern lässt.
    Oder lieg ich da falsch? Würde mich jedenfalls auch mal interessieren, ob es da was im WinCCflex gibt oder jetzt im TIA.

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 17.03.2015, 15:04
  2. Antworten: 2
    Letzter Beitrag: 28.11.2012, 13:19
  3. Antworten: 8
    Letzter Beitrag: 10.10.2012, 22:26
  4. Antworten: 6
    Letzter Beitrag: 23.02.2011, 09:16
  5. Antworten: 31
    Letzter Beitrag: 13.02.2008, 08:07

Lesezeichen

Berechtigungen

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