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

Ergebnis 1 bis 6 von 6

Thema: DB_ANY in SCL verwenden

  1. #1
    Registriert seit
    02.10.2013
    Beiträge
    16
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Experten;
    Kann ich bei Verwendung des Datentyps „DB_ANY“ in SCL nur noch absolut weiterprogrammieren?
    Ich möchte gerne in einem SCL Code Baustein auf „full“ zugreifen (siehe Bild).

    DatenDB.jpg

    #full := "FIFO DB".Daten.FIFO_Kopf.full; //SCL Code
    funzt;
    dabei ist aber „FIFO DB“ eben der Name des entsprechenden DBs, dieser soll aber eben variabel sein und ich denke man kann ihn am besten mit einem „DB_ANY“ Typ einlesen? Wenn ich das mache, gehts aber irgendwie symbolisch nicht weiter...
    Jochen fragt
    Geändert von joru_sps (28.11.2013 um 12:18 Uhr)
    Zitieren Zitieren DB_ANY in SCL verwenden  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.715
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    Hallo,
    immer daran denken, wie ein Compiler, der einen Code erstellt, arbeitet ...
    Zur Compile-Zeit wird aus den vorliegenden Informationen ein Code gebildet. Ein variabel zu übergebender DB ist aber keine vorliegende Information. Der Compiler erzeugt aus deiner symbolischen Programmierung am Ende doch wieder absolute Adressen - in diesem Fall von was ???

    Gruß
    Larry

  3. #3
    joru_sps ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.10.2013
    Beiträge
    16
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,
    danke für die Antwort. Ich glaube ich habe mich missverständlich ausgedrückt: Der SCL Code wird in einem FB verwendet, der einen Input Parameter bekommen soll, wo man für jeden FB Aufruf fest einen DB eintragen kann.
    Frage ist halt nur, wie man diesen DB Namen in den SCL Code bekommt… (Als DB_Any wohl nicht?)
    Beispiel.jpg
    Geändert von joru_sps (28.11.2013 um 13:24 Uhr)

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.715
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    Nein ... als Block_DB deklarieren (auf der Schnittstelle) - siehe dazu auch die SCL-Hilfe.
    Alle Zugriffe darauf sind dann aber IMMER absolut (also nicht symbolisch) und erfolgen nur im Format Bit, Byte, Word, DWord. Das umcasten obliegt dir dann auch wieder selber.

    Wofür willst du das so machen ? Ich finde diese Vorgehensweise nun nicht unbedingt elegant ...

    Gruß
    Larry

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

    Standard

    Hi joru_sps

    du willst auf eine 1516. Vergiss den ANY. Und vergiss auch den Block_DB

    Du hast einen UDT_FIFO gemacht. Also mach an deiner Schnittstelle einen INOUT myFIFO vom Type UDT_FIFO.
    Dann kannst du im FB mit #myFIFO.FIFO_Kopf.full drauf zugreifen.
    Dann mach soviele DB als UDT_FIFO wie du willst.
    Den FB versorgst du an myFIFO mit einem dieser DB Namen. An anderer Stell mit einem anderen DB Namen.

    Du kannst natürlich auch in einem DB (nennen wir den mal AlleFifos) ein Array of UDT_FIFO anlegen (genannt FifoArray). Und dann den FB am Beinchen myFIFO mit "AlleFifos".FifoArray[#i] versorgen.
    Optimierte DB sind nicht auf 64K beschränkt

    'n schön' Tach auch
    HB

  6. Folgender Benutzer sagt Danke zu HelleBarde für den nützlichen Beitrag:

    joru_sps (03.12.2013)

  7. #6
    joru_sps ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.10.2013
    Beiträge
    16
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ...ah, danke, dass sind ja bisher unentdeckte Möglichkeiten. Vom Block_DB hatte ich mich schon verabschiedet. Den Datentyp UDT für einen InOut habe ich bisher noch nicht gekannt.
    n' schön' Tach re joru_sps

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 22.11.2012, 14:32
  2. FB mehrfach verwenden
    Von RH1950 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 16.01.2012, 13:37
  3. DB-Register 2 in FC verwenden
    Von ErwinLSE im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 01.04.2011, 00:03
  4. Bibliothek verwenden
    Von Speedo im Forum CODESYS und IEC61131
    Antworten: 4
    Letzter Beitrag: 23.02.2010, 11:10
  5. Verwenden der Adressregister in SCL
    Von Zappel im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 31.12.2003, 13:03

Stichworte

Lesezeichen

Berechtigungen

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