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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 24

Thema: Schnell ändernde Werte in Array speichern und in einer Kurvenanzeige darstellen

  1. #1
    Registriert seit
    27.09.2015
    Ort
    Hamburg
    Beiträge
    10
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich bin neu hier und benötige eure Hilfe.

    Ich möchte die Ist- und Sollwerte eines Pneumatik Regler aufnehmen und in einer Kurve in WINCC Runtime anzeigen. Die Sollwerte werden über verschiedene Schaltflächen in WINCC und MOVE Bausteinen in der SPS generiert. Da sich die Istwerte des Reglers sehr schnell ändern (Millisekunden Bereich) müssen die Messwerte irgendwie zwischen gespeichert werden. Ich nutze eine S-1214C und WINCC Runtime auf meinen PC (genaue Infos zu der Hardware und meiner Software findet ihr weiter unten).

    Nun zu meinem Problem:
    Ich möchte die Istwerte (Eingang IW64) jeden Zyklus über einen OB Weckalarm (5ms) in den Array (Array [0-2000] of Int) schieben und dann in WINCC in einer Kurve anzeigen lassen.
    Leider weis ich nicht wie ich das umsetzen kann und bin mit meinen Wissen am Ende.

    Da ich das erste Mal mit einer S-1214 und mit TIA Portal programmiere, quäle ich mich um eine Lösung.
    Unter dem Thread Messdaten Speichern in DB finde ich eine Lösung über AWL, diese bekomme ich aber über FUP nicht umgesetzt.

    Ich hoffe ihr könnt mir weiterhelfen.

    Infos zu meinem System:
    - CPU 1214C DC/DC/Rly (6ES7 214-1HG31-0XB0)
    - TIA V12 SP1
    - WINCC flexible 2008 SP2

    Schönen Sonntagnachmittag
    Zitieren Zitieren Schnell ändernde Werte in Array speichern und in einer Kurvenanzeige darstellen  

  2. #2
    a.klughardt ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.09.2015
    Ort
    Hamburg
    Beiträge
    10
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen,

    so ich bin jetzt soweit, dass ich über einen OB35 mit einer Zykluszeit von 5ms den Analogeneingang IW64 in ein REAL Format umwandle und in ein „Array (0…99 of REAL“ schiebe.
    Den Index dafür erstelle ich auch in dem OB35, in jedem Zyklus, also alle 5ms, setze ich den Index dafür um einen nach oben.
    Bisher ist soweit alles gut, die Daten werden genauso abgespeichert wie ich mir das gedacht hatte.

    Nun aber zu meinen nächsten Problem.
    Ich möchte diese 999 Daten aus dem Array in einer Kurvenanzeige in WINCC anzeigen.
    Als erstes habe ich in der Variablentabelle in WINCC die benötigten Variablen „IST_WERT“ angelegt:
    - „IST_WERT“, diese greift auf den DB 2 DBD 0 mit 999 zu (das oben genannte Array).
    - „Kurvenanforderung“ (DB1 DBW12)
    - „Kurvenübertragung“ (DB1 DBW14)

    Danach habe ich in einem Bild eine neue Kurvenanzeige angelegt. Unter den Eigenschaften der Kurvenanzeige und habe ich bei Kurven die Variable „IST_WERT“ eingetragen.
    Zusätzlich noch:
    - Linien bei Display
    - Massiv als Typ
    - 999 Kurvenwerte Grenzlinien
    - nein bei Grenzlinien
    - Puffer bitgetriggert bei Kurventyp
    -bei Quelleneinstellungen unter Kurvenpuffer meine Variable „IST_WERT“, bei Bit „1“, bei Kurvenanforderung die Variable „Kurvenanforderung“ (DB1 DBW12) und bei Kurvenübertragung 1 die Variable „Kurvenübertragung“ (DB1 DBW14)

    Was muss ich jetzt noch machen damit die Daten aus dem Array in der Kurvenanzeige angezeigt werden?
    Müssen die Variablen Kurvenanforderung“ und bei „Kurvenübertragung“ noch zusätzlich in der Steuerung verarbeitet werden?
    Leider hilft mir die Beschreibung unter dem Link „Wie werden bitgetriggerte Kurven (Trendkurven) in WinCC flexible projektiert?“ nicht wirklich weiter. Auch hier im Forum habe ich nichts wirklich hilfreiches gefunden.
    Jetzt Frage ich mich erstmal, ist dies überhaupt in dieser Art umsetzbar und wenn ja wie?

    Hoffe jemand hat hier einen guten Hinweis für mich

    Schönes Wochenende noch

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.786
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Wenn du so eine bit-getriggerte Kurve anlegst dann stellst du irgendwo auch das Triggerbit ein (ich kann dazu morgen ggf. auch ein paar Screenshots nachliefern).
    Dieses Triggerbit bezieht sich auf den genannten Datenbereich "Kurven-Übertragung" und dieses Triggerbit und das für den Datenbereich auch noch zugehörige Sammelbit mußt du im SPS-Programm setzen damit die Visu daraufhin dein Datenarray aus der SPS ausliest und anschließend anzeigt.
    Zu dem Datenbereich "Kurven-Übertragung" sollte du aber auch in der Flex-Hilfe etwas nachlesen können ...

    Nachsatz:
    der von dir eingestellte Link ist dazu übrigens aus meiner Sicht SEHR aufschlussreich.
    Was verstehst du davon denn konkret nicht ? Vielleicht sollten wir dort mal ansetzen ...

    Gruß
    Larry

  4. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    a.klughardt (04.10.2015)

  5. #4
    a.klughardt ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.09.2015
    Ort
    Hamburg
    Beiträge
    10
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die Antwort Larry.

    Mit fehlt gerade etwas das Verständnis für das Trigger Bit, bevor bei mir der Groschen fällt.

    Also zum Thema, wenn ich im SPS Programm die Integrer Variable „Kurvenanforderung“ (DB1 DBW12) beobachte, sehe ich, dass das Bit 1 gesetzt wird. So wie es auch sein soll.
    Jetzt habe ich Spaßes halber mal alle Bits in der Variable „Kurvenübertragung“ (DB1 DBW14) auf true gesetzt. Leider hat das auf meine Kurve im WINCC keinen Einfluss.
    Muss dafür noch etwas im WINCC eingestellt werden, außer das entsprechende Trigger Bit? Oder liegt es nur an meinem Steuerungsprogramm?

  6. #5
    a.klughardt ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.09.2015
    Ort
    Hamburg
    Beiträge
    10
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habe jetzt nochmal etwas rum experimentiert und setze alle Bits der Variable „Kurvenübertragung“ auf „true“.
    Dies geschieht über einen MOVE Baustein und am Eingang EN eine Abfrage auf eine positive Flanke einer anderen Variablen (zum Testen erstmal). Der Move Baustein schiebt 16#FFFF in die Variable „Kurvenübertragung“.
    Wenn ich diese Variable beobachte sehe ich auch, dass das Bit „1“ immer von der Kurve auf „false“ gesetzt wird.

    Leider passiert bei meiner Kurvenanzeige gar nichts….

    Trotzdem allen einen schönen Sonntag Abend.

  7. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.786
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Stell doch mal ein paar Screenshots von deiner Kurven-Projektierung in WinCCFlexibel ein ...

  8. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.786
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Grundsätzlich gilt für dein Vorhaben folgendes :
    - du hast in deinem SPS-Programm ein Array mit den Kurvenwerten (z.B. myKurve : Array[1..500] of REAL) - aufpassen : hier gibt es für Flex eine maximale Obergrenze für die Wertezahl - ich meine es wären 900 ... es können aber auch 999 sein - auf keinen Fall mehr.
    - du legst dir in Flex dieses Array als Variable (mit den entsprechenden Anzahl von Elemente darin) an
    - du projektierst in Flex dein Kurven-Control auf einer Seite und projektierst das entsprechend der Bilder 7 - 10 aus der Beschreibung deines Links.

    auf Seiten des SPS-Programms bekommst du in dem Bereich Kurven-Anforderung nun ein Bit gesetzt, wenn die Visu das Bild mit deiner Kurvenanzeige anwählt. Das positionsgleiche Pendant zu diesem Bit in der Kurvenübertragung benötigt die Visu (und das Sammelbit) nun um zu Erkennen, dass es neue Daten gibt. Da ich es im Augenblick nicht nachsehen kann behaupte ich mal, dass es hier auf einen doppelten Flankenwechsel ankommt - das Kurvenbit und das Sammelbit muss irgendwann auch wieder zu 0 werden.

    Aber auf jeden Fall wären ein paar Screenshots nicht schlecht um hier weiter zu kommen ...

  9. #8
    a.klughardt ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.09.2015
    Ort
    Hamburg
    Beiträge
    10
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

  10. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.786
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    In deinem Fall ist das Triggerbit das Bit 1 aus der Kurven-Übertragung.
    Stell in der Variablentabelle das Kurvenarray mal bei Erfassung von "zyklisch fortlaufend" auf "auf Anforderung" um.

  11. #10
    a.klughardt ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.09.2015
    Ort
    Hamburg
    Beiträge
    10
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die Anzahl des Array habe ich nochmal kontrolliert und überall auf 999 Elemente eingestellt, bezogen auch auf die Warnmeldung im Fenster der Kurven Eigenschaften und auf deinen Hinweis.
    Habe das Ganze auch noch mal mit 50 Array Werte getestet, jedoch ohne Unterschied.

    Auch habe ich in WINCC die Array Variablen auf die Erfassungsart „Auf Anforderung“ umgestellt.
    Ich glaube allerdings, dass der Fehler an meiner Steuerung liegt.
    Momentan setzte ich alle 16 Bit der Variable „Kurvenübertragung“ auf „true“. Nach einem Zyklus werden das Bit 1 und das Bit 15 (Sammelbit) durch die HMI auf „false“ gesetzt.
    Somit bekommt WINCC doch ein True Signal auf der Variabel „Kurvenübertragung“ und müsste sich die Daten aus dem Array holen.

    Was mir bloß gerade aufgefallen ist, das unten im Ausgabefenster folgende Meldung erscheint die mich stutzig macht:
    Info: Erforderliche Lizenz: WinCC flexible /Archives for PC-RT --> hoffe nicht das ich mir jetzt ein Lizenzschlüssel fehlt. Allerdings funktionieren alle Funktionen in meiner Runtime bis auf die Kurvenanzeige mit dem Array.

Ähnliche Themen

  1. Array schreiben und Werte vermitteln
    Von arcomp im Forum PHOENIX CONTACT
    Antworten: 10
    Letzter Beitrag: 14.02.2014, 07:14
  2. Werte eines Array dauerhaft speichern
    Von Impact84 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 17.10.2013, 07:43
  3. WinCC Kurvenanzeige Bits darstellen
    Von stemue im Forum HMI
    Antworten: 0
    Letzter Beitrag: 02.01.2012, 14:31
  4. Antworten: 2
    Letzter Beitrag: 10.07.2011, 21:04
  5. Werte eines Array dauerhaft speichern!!
    Von SliderZ im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 23.02.2007, 12:49

Stichworte

Lesezeichen

Berechtigungen

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