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

Ergebnis 1 bis 7 von 7

Thema: WinCC - durch Array blättern

  1. #1
    Registriert seit
    27.03.2012
    Beiträge
    56
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen,

    ich hab ein Array [1..XX] mit je 10 Werten im DB und möchte dieses gerne in WinCC ausgeben und zwischen den Werten blättern können. Wie stelle ich dies am geschicktesten an? Ich könnte XX Seiten erstellen und mir einen hin- und her Copy-Pasten, aber das muss doch auch einfacher/bequemer gehen, oder nicht?

    Danke für Ansätze
    Zitieren Zitieren WinCC - durch Array blättern  

  2. #2
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.849
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    du könntest ein ea-feld anlegen welches die startadresse vorgibt. dann kopierst du ab dort eine gewissen anzahl in einen arbeits-db den du auf den hmi anzeigst.

    eine andere möglichkeit wäre multiplexen. schau dazu mal in die hilfe von wcc
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #3
    Registriert seit
    27.03.2012
    Beiträge
    56
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    So umständlich es mit CoDeSys manchmal ist - Bilder exportieren, Suchen und Ersetzen, importieren fehlt mir
    Werd mir den Multiplexer mal anschauen. Danke!

    EDIT: Ok, Prinzip verstanden und ich probiere gerade auch schon, aber:
    Code:
    Array[1..10]
    
     
    0.0 Value_1 BOOL
    2.0 Value_2 REAL
    6.0 Value_3 REAL
    10.0 Value_4 INT
    12.0 Value_5 REAL
    16.0 Value_6 REAL
    20.0 Value_7 BOOL
    20.1 Value_8 BOOL
    22.0 Value_9 INT
    24.0 Value_10 DATE_AND_TIME
    32.0 Value_11 TIME
    Wenn ich eine Variable nehme um zu multiplexen, dann brauche ich elf Variablen um die Adressen innerhalb des DB/des Arrays erreichen zu können, oder?
    Geändert von MrChiliCheese (06.07.2012 um 09:49 Uhr)

  4. #4
    Registriert seit
    27.03.2012
    Beiträge
    56
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ok, habe den Multiplexer soweit verstanden - glaube ich.
    Optimal funktioniert der Multiplexer wenn ich Daten in verschiedenen DBs habe - dann brauche ich nur eine Variable. Bei mir liegt alles in einem DB, bräuchte dann ein paar mehr Variablen, wird mir zu umständlich. Spricht was dagegen mir über Schaltflächen einen Zähler zu erhöhen und mittels dann im DB rumzukopieren?

    Kann ich den FETT markierten Part dynamisch machen?

    Code:
          TAR1  #AR1_TEMP
          AUF   "BRAKE_VALUES_DATA"
          L     364
          L     28
          -I    
          T     #ZAEHLER
    STA:  NOP   0
          L     #ZAEHLER
          SLD   3
          LAR1  
          L     DBB [AR1,P#0.0]
          T     DBB [AR1,P#28.0]
          L     #ZAEHLER
          L     1
          -I    
          T     #ZAEHLER
          L     1
          +I    
          L     16
          <=I   
          SPB   END
          SPA   STA
    END:  NOP   0
          LAR1  #AR1_TEMP
    Also in etwa so:
    Code:
    Wenn MeineIndexVariable = 28 dann T     DBB [AR1,P#28.0]
    Wenn MeineIndexVariable = 56 dann T     DBB [AR1,P#56.0]
    Danke euch!

  5. #5
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Ich gehe mal davon aus dass du WinCC flexible und nicht WinCC meinst, oder?
    Bei WinCCflebile gibt es noch das Adressmultiplexen. Dabei legst du eine Variable an. Z.B. bei einer DB-Variable im Feld für das Datenbyte/wort/doppelword kannst du eine weitere Variable (auch interne) einsetzen.
    Wenn du z.B. ein Integer-Array hast, kannst du durch erhöhen/erniedrigen der Variable um 2 durch das Array navigieren. Du solltest natürlich an irgendeiner Stelle die Grenzen überprüfen.

  6. #6
    Registriert seit
    27.03.2012
    Beiträge
    56
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich meine WinCC flexible, sorry!

    Hab leider kein "sauberes" Array, es ist eines mit Mischwerten. Da könnte ich natürlich auch wieder mit mehreren Variablen arbeiten.

    Noch mal zum besseren Verständnis
    Array[1...10]
    0.0 Value_1 BOOL
    2.0 Value_2 REAL
    6.0 Value_3 REAL
    10.0 Value_4 INT
    12.0 Value_5 REAL
    16.0 Value_6 REAL
    20.0 Value_7 BOOL
    20.1 Value_8 BOOL
    22.0 Value_9 INT
    24.0 Value_10 DATE_AND_TIME
    32.0 Value_11 TIME

    Ich möchte diese Werte als reine Ausgabewerte in meiner Visu darstellen (alle auf einem Bild) und dann mit Schaltflächen durch das Array blättern. Wenn ich das mit dem Adressmultiplexen richtig verstanden habe heißt das:

    Eine Variable für den "Index". Aus diesem Index mache ich mir dann 11 Variablen für die Adresse innerhalb des Bausteines (INDEX * ARRAYLÄNGE + ADRESSE_VALUE_1) etc. Ist das ein guter Ansatz? Mir fliegen gerade soviele Ideen im Kopf rum

  7. #7
    Registriert seit
    27.03.2012
    Beiträge
    56
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Die Fragestellung ist auch gelöst, lag zum einen am Verständnis, zum Anderen daran, dass ich das Skript ungewollt jeden Zyklus aufgerufen habe.

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 17.11.2010, 08:28
  2. Rezept durch SPS starten WinCC Flex
    Von Ingo dV im Forum HMI
    Antworten: 1
    Letzter Beitrag: 05.05.2009, 12:33
  3. Antworten: 7
    Letzter Beitrag: 18.11.2007, 09:10
  4. Antworten: 12
    Letzter Beitrag: 14.11.2006, 11:09
  5. Antworten: 1
    Letzter Beitrag: 06.05.2004, 08:21

Lesezeichen

Berechtigungen

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