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

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

Thema: Sympolische Adressierung in SCL FCxxx über UDTxxx

  1. #1
    Registriert seit
    16.08.2012
    Beiträge
    18
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    Ich komm einfach nicht drauf wie ich in einem SCL erstellten FC die Adressen wie z.b.: DB100.DBX1.0 Sympolisch eingeben kann. Bei den vorhandenen DB´s im Bausteinordner gehts ja aber wenn ich UDT`s habe und die DB´s werden von der CPU automatisch erzeugt kann ich die Adresse nur Absolut eingeben warum?


    Wenn ich den UDT in der VAR_TEMP bekannt gehts zwar aber die Daten sind dann Temp und bleiben nicht erhalten.

    Gibts da ne lösung in SCL den nicht vorhanden DB im Bausteinordner auch Sympolisch anzusprechen über UDT deklaration?


    Gruss MoChri
    Zitieren Zitieren Sympolische Adressierung in SCL FCxxx über UDTxxx  

  2. #2
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Deine Frage ist zwar nicht so wirklich klar gestellt aber mal ein Versuch zu antworten.

    DBs werden nicht von der CPU automatisch erzeugt. Bzw das geht schon, dann ist aber natürlich kein Symbolischer Zugriff möglich. Nicht nur bei SCL.

    Wenn du einen Globalen DB hast der UDTs beinhaltet dann ist der Zugriff in SCL im Normalfall in dieser Art:
    Code:
      "Testdb".DB_VAR.bool1 := "testdb".DB_VAR.bool2;
    Wenn die DBs und UDTs als Quelle reinkommen ist es zwingend dass diese übersetzt werden bevor der SCL(oder jeder andere) Baustein übersetzt wird. Ansonsten ist das Symbol natürlich nicht bekannt! woher auch?

    mfG René

  3. #3
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.181
    Danke
    923
    Erhielt 3.289 Danke für 2.658 Beiträge

    Standard

    Symbolisch ansprechen kann man nur Variablen, die zur Compilierzeit vorhanden sind oder deren symbolische Struktur erklärt ist. Zur Laufzeit erstellte DB sind grundsätzlich unstrukturiert (einfach ARRAY OF BYTE), Variablen in diesen DB können nicht symbolisch angesprochen werden - nicht in SCL und auch nicht in AWL. UDT belegen keinen Speicher, deshalb kann den Symbolen keine Adresse zugeordnet werden - erst wenn eine Instanz des UDT in einem DB oder TEMP angelegt wird, dann können den Symbolen Adressen zugeordnet werden.

    Warum ist es denn notwendig, den DB erst zur Laufzeit in der CPU zu erzeugen? Ist Dein Ladespeicher zu klein? Im Arbeitsspeicher muß sowieso genug Platz für den DB vorhanden sein. Erstelle den DB auch im offline-Projekt und alles ist easy.

    Alternativ könntest Du Deinem FC einen UDT als Parameter übergeben, dann kennt der FC die symbolische Struktur der übergebenen Daten.

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

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  4. #4
    MoChri ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2012
    Beiträge
    18
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hmm habe ich mich mal wieder falsch ausgedrück...

    Wenn ich im Bausteinordner einen UDT definiere z.B.: UDT 100 und den in der Sympolik zum DB100 zweise z.b.: Global_DB /DB 100 /UDT 100 /Datenbaustein für Globale Datensignale und dann in AWL es Sympolisch eingebe wie...

    Code:
     
    U "Global_DB".SYS.Stoerungen
    = ""Global_DB".SYS.Fehler
    Dann funktioniert das ja auch ohne das der DB100 im Bausteinordner vorhanden ist.

    In SCL wenn ich schreibe

    Code:
    "Global_DB".SYS.Fehler:="Global_DB".SYS.Stoerungen;
    dann erkennt er die sympolische zuweisung nicht warum?

    DBs werden nicht von der CPU automatisch erzeugt. Bzw das geht schon, dann ist aber natürlich kein Symbolischer Zugriff möglich.
    Das automatisch erstellen ist falsch beschrieben ich erstelle den DB100 mit den SFC22 und lösche alle Bits mit SFC21 bei Neustart / wiederanlauf und der zugriff geht da auch sympolisch da ich dies wie oben beschrieben schon ewig in AWL verwende.

    Hat jetzt jemand eine idee wie das in SCL geht?

    gruss Christian

  5. #5
    MoChri ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2012
    Beiträge
    18
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Warum ist es denn notwendig, den DB erst zur Laufzeit in der CPU zu erzeugen? Ist Dein Ladespeicher zu klein? Im Arbeitsspeicher muß sowieso genug Platz für den DB vorhanden sein. Erstelle den DB auch im offline-Projekt und alles ist easy
    Ich will mich nicht immer äussern warum das notwendig ist....ich brauch das einfach um nicht immer überall was ändern zu müssen wenn sich in der Struktur was ändert da dann der DB100.DBX 2.0 plötzlich DB100.DBX 40.5 ist aber die Sympolik bleibt gleich!!!

    Ich denke hier sind erfahrene benutzer oder? Da das wohl in AWL möglich ist Sympolisch zu programmieren mit den UDT und aber den Erstellten CPU DB dann benützen zu können ohne das jemand mekert. Propierts das mal aus oder soll ich euch ein Beispielprogramm senden?? wo es den DB100 im Bausteinortner bei STEP 7 nicht gibt??

    Gruss Christian

  6. #6
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Gerne ein Beispielprogramm wo das geht das eine Symbolische Adresse im AWL aufgelöst wird wenn der DB im Programm nicht existiert.

    mfG René

  7. #7
    MoChri ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2012
    Beiträge
    18
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Beispiel:

    Ja habe gerade ein Projekt erstellt aber wie kann ich die ZIP datei hochladen?? oder Ich sende es per Mail wer wills haben??
    ONLINE.JPG

  8. #8
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Beim Antworten auf Erweitert wechseln da gibts n Anhangsbutton.

  9. #9
    MoChri ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2012
    Beiträge
    18
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Lächeln

    Ja man braucht nur die Hilfe lesen

    Bin mal gespannt was zurückkommt

    Gruss Christian
    Angehängte Dateien Angehängte Dateien

  10. #10
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.622
    Danke
    377
    Erhielt 799 Danke für 642 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Du hast DB100 manuell in den Symboltabelle eingefügt. Dafür geht es.

    Aber ich sehe nicht den Sinn warum DB100 mit SFC21 kreiert werden muss.
    Jesper M. Pedersen

Ähnliche Themen

  1. Absolute Adressierung in SCL
    Von ASi-Master im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 01.10.2015, 09:21
  2. Indirekte Adressierung in SCL
    Von Atlas im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 22.04.2014, 15:27
  3. Dynamische DB adressierung in SCL
    Von thomasgull im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 08.09.2010, 22:14
  4. Dynamische DB Adressierung bei SCL
    Von mr.binford im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 08.11.2009, 11:51
  5. indirekte Adressierung in SCL
    Von BiBi im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 18.05.2007, 23:42

Lesezeichen

Berechtigungen

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