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

Ergebnis 1 bis 7 von 7

Thema: Daten aus Multiinstanzen kopieren bei optimierten Bausteine

  1. #1
    Registriert seit
    26.03.2010
    Ort
    MAGDEN
    Beiträge
    34
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen
    Nun verwende ich das TIA Portal. Bausteine sind optimiert. Also kann ich nichts mit indirekter Adressierung rechnen.
    Nun würde ich gerne Daten aus einer Multiinstanz anhand einer Nummer auf bestimmte Variable (oder Struktur) kopieren. Und dies ohne Array!

    Beispiel
    Ich habe 30 Aktoren als Multiinstanz definiert.

    Motor1
    Motor2
    .
    .
    Motor30

    Jeder Motor hat zahlreiche Daten. Nun wenn ich in einer Funktion den Wert 3 übergebe, dann sollen die Daten der Instanz von Motor3 auf aktiver_Motor geschrieben und gelesen werden. Übergebe ich den Wert 12, dann sollen die Daten von Motor 12 auf aktiver_Motor geschrieben und gelesen werden. usw.

    Natürlich könnte man dies auf dem HMI mit Multiplexvariablen lösen, doch der Projektierungsaufwand ist dann sehr hoch. Wenn ich dies auf der SPS Seite löse, so muss nur auf dem HMI nur eine Variable pro Info projektiert werden.

    Hat jemand eine gute Idee wie bei optimierten Bausteine auf die Instanzen zugegriffen werden kann?

    Besten Dank für konstruktive Hilfe
    Zitieren Zitieren Daten aus Multiinstanzen kopieren bei optimierten Bausteine  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.341
    Danke
    932
    Erhielt 3.333 Danke für 2.691 Beiträge

    Standard

    Du könntest den Instanzen das Wissen um die eigene Identität als IN-Parameter mitgeben, dann kann die betreffende Instanz ihre internen Instanzdaten in/aus die globale Struktur kopieren.
    Pseudocode:
    Code:
    #Motor1
      myID:=1
      aktID:=selection
    
    #Motor2
      myID:=2
      aktID:=selection
    ...
    #Motor30
      myID:=30
      aktID:=selection
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Registriert seit
    26.03.2010
    Ort
    MAGDEN
    Beiträge
    34
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke Harald, das ist ein guter Ansatz. Dann werde ich im FB wenn die Daten ID und selction gleich sind die Daten kopieren.

  4. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.341
    Danke
    932
    Erhielt 3.333 Danke für 2.691 Beiträge

    Standard

    Ja, genauso meinte ich das.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  5. #5
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Hi

    du kannst auch ein switch/case in SCL oder ein SPL in AWL oder ein MUX verwenden (MUX gibt es auch in SCL und AWL). MUX geht von all diesen Lösungen am schnellsten, ist aber auf 32 beschränkt. Aber kopiert werden muss trotzdem.
    Im Gegensatz zu Haralds Lösung werden deine Daten nicht verändert, was aber kein Schaden sein muss

    'n schön' Tach auch
    HB

  6. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.341
    Danke
    932
    Erhielt 3.333 Danke für 2.691 Beiträge

    Standard

    Zitat Zitat von HelleBarde Beitrag anzeigen
    du kannst auch ein switch/case in SCL oder ein SPL in AWL oder ein MUX verwenden (MUX gibt es auch in SCL und AWL). MUX geht von all diesen Lösungen am schnellsten, ist aber auf 32 beschränkt. Aber kopiert werden muss trotzdem.
    Im Gegensatz zu Haralds Lösung werden deine Daten nicht verändert, was aber kein Schaden sein muss

    Wozu switch/case oder SPL oder MUX wenn es doch nur einen einzigen IF-Zweig gibt???
    Und welche Daten werden verändert???

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #7
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von PN/DP Beitrag anzeigen

    Wozu switch/case oder SPL oder MUX wenn es doch nur einen einzigen IF-Zweig gibt???
    Und welche Daten werden verändert???

    Harald
    Hi

    naja, wenn in der Instanz die Nummer der Instanz enthalten sein soll, dann hat man doch mehr zusätzlich Daten angelegt, die man "nur" zur Verwaltung braucht. Das meine ich mit verändert. Und wenn
    Zitat Zitat von Supermario73 Beitrag anzeigen
    Dann werde ich im FB wenn die Daten ID und selction gleich sind die Daten kopieren.
    schreibt, dann heißt das doch, dass da über eine Schleife iteriert werden muss und in dem einen Fall dann eine Kopie gemacht wird.
    Genau das mach MUX und zwar ganz ohne Schleife. Aber wie ich S kenne, klappt
    Code:
    aktiver_motor := MUX( k:=selektion, in1:=Motor1, in2:=Motor2, in3:=Motor3 ....
    nicht weil das ja ganze Strukturen sind
    Switch Käse geht aber.

    'n schön' Tach auch
    HB

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 28.03.2013, 07:53
  2. Antworten: 3
    Letzter Beitrag: 24.01.2011, 19:42
  3. Daten in DB schreiben /aus DB lesen/ kopieren
    Von Heizerfraktion im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 28.03.2010, 23:36
  4. CPU übergreifend Bausteine Kopieren
    Von bit_schubser im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 04.02.2010, 13:51
  5. Antworten: 2
    Letzter Beitrag: 24.11.2005, 08:24

Lesezeichen

Berechtigungen

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