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

Ergebnis 1 bis 3 von 3

Thema: UDT`s flecibel kopieren

  1. #1
    Registriert seit
    23.03.2005
    Beiträge
    31
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, allerseits!

    Ich habe hier eine Anlage, bei der ich 100 "Rezepte" verwalten muß, die ich in Form von UDT`s mit je 50Byte Länge in einem Array Rezept[1..100] of UDT
    global abgelegt habe. Nun kann ich bis zu 24 Materialien und die zugehörigen Rezepturen gleichzeitig in der Anlage haben, möchte also die Information über die "Belegung" der Anlage in der Form eines Arrays hinterlegen, nach dem Muster Belegung[1..24] of Int, wobei der Intererwert den jeweiligen Speicherplatz des Rezeptes darstellt.
    Aufbau ist etwa so:

    Belegung[1] = 12 -> In Platz 1 liegt Produkt mit Rezept Nr. 12
    Belegung[2] = 04 -> In Platz 2 liegt Produkt mit Rezept Nr. 04
    ...
    Belegung[24] = 0 -> In Platz 24 liegt gar kein Produkt (kein Rezept)


    Das ist soweit auch kein Problem, aber...

    1.
    Gibt es eine Möglichkeit, direkt über den Index auf Werte der UDT`s im globalen DB zuzugreifen, nach der Art

    U DB10.Rezept[variable].boolwert1
    = DB10.Rezept[variable].boolwert2

    Geht das???

    2.
    Bearbeitet (also nicht zu verwechseln mit der Belegung!) werden immer max. 2 Produkte. Diese zwei Rezepte möchte ich zur Sicherheit vor der Bearbeitung nochmal lokal in einem DB ablegen, falls mittendrin jemand über die Visu das Rezept ändert...

    Ich würde also gerne eine Möglichkeit haben, relativ komfortabel folgendes zu realisieren:

    Rezept[Belegung[x]] -> BLKMOV -> LokalDB.Rezept1

    Einen UDT kann ich ja mit BLKMOV kopieren, aber STEP7 möchte immer absolute Zeiger bei SRCBLK und DSTBLK haben. Rezept[15] geht z.B., aber nicht Rezept[Variable].

    Ich denke, ich könnte mir einen Any-Zeiger mühsam zusammenbasteln, aber geht das nicht auch einfacher???

    Bin für jeden Tip bzw. Anregung dankbar...
    Zitieren Zitieren UDT`s flecibel kopieren  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Was du gerne machen möchtest ist mit SCL problemlos zu realisieren.
    Ohne SCL kommst du um indirekte Adressierung nicht herum, also Zeiger auf das Rezept zurechtbasteln und dann über den Zeiger und das AR1 auf die einzelnen Variablen zugreifen. Dazu gabs hier gerade in der letzen Zeit einige Beiträge. Das Umkopieren geht mit einem Baustein, den du hier:
    http://www.sps-forum.de/showthread.p...ighlight=SFC20
    findest, darin ist der Blk_move enthalten. Als Input legt man die DB-Nummer und die DW-Nummer von Quelle und Ziel an, sowie die Anzahl der zu kopierenden Bytes.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Auf UDT zugreifen:

    Du kannst an einen FC/FB bei den In/OUT/INOUT-Daten auch direkt ein UDT als Variablentyp angeben. Diesen UDT mußt du dann beim Aufruf dort anparametrieren, entweder symbolisch, oder wie einen Any-Typ (der wird dann in der symbolischen Schreibweise dargestellt und nicht mehr zurückgewandelt, nicht wundern!) In dem Baustein kannst du dann auf die UDT-Variablen direkt zugreifen z.Bsp. mit L #UDT_INOUT_DEF.UDT_Variable_Int ;
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Ähnliche Themen

  1. DBs kopieren
    Von mdosch im Forum Simatic
    Antworten: 28
    Letzter Beitrag: 19.11.2010, 09:36
  2. B&R Kopieren memcpy
    Von Hannes im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 21.06.2007, 09:09
  3. PEB's kopieren
    Von kolbendosierer im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 19.11.2006, 20:31
  4. DB's kopieren
    Von Anonymous im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 28.11.2005, 12:52
  5. ANY kopieren
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 29.02.2004, 21:09

Lesezeichen

Berechtigungen

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