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

Ergebnis 1 bis 9 von 9

Thema: Zugriff auf globalen DB

  1. #1
    Registriert seit
    08.07.2011
    Beiträge
    37
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo alle zusammen,
    ich habe ein kleines Zugriffsproblem auf eines globales DB

    Code:
    DB23:
     
                 Struct
    Modus1   Struct
       Data1  BYTE     B#16#01
       Data2  BYTE     B#16#0C
                 END_Struct
    Modus2   Struct
       Data1  BYTE     B#16#02
       Data2  BYTE     B#16#33
                 END_Struct 
                 END_Struct
    In einem FB will ich nun auf die Daten der beiden Modi zugreifen und jeweils an die Ausgänge rausschreiben.

    Code:
    U Modus_Wahl
    SPBN MO2
    
    L DB23.Modus1.Data1
    T PAB 0
    
    L DB23.Modus1.Data2
    T PAB 1
    
    SPA END
    
    MO2: L DB23.Modus2.Data1
    T PAB 0
    
    L DB23.Modus2.Data2
    T PAB 1
    
    
    END: NOP 0
    Auf diese Art schreibt er nicht die richtigen Werte in den Ausgang. Wenn ich aber anstatt der DB-Inhaltsaufrufe die Werte direkt schreibe, funktioniert es also an der grundsätzlichen Logik kann es nicht liegen. Es muss der Zugriff auf den DB sein.

    Kann mir jemand sagen, was ich falsch mache?

    Gruß
    FinalMistery
    Geändert von FinalMistery (05.08.2011 um 08:40 Uhr)
    Zitieren Zitieren Zugriff auf globalen DB  

  2. #2
    Registriert seit
    11.03.2009
    Beiträge
    32
    Danke
    4
    Erhielt 6 Danke für 6 Beiträge

    Standard

    Hallo FinalMistery,

    das sieht mir nach einem Tipp-Fehler aus.

    Code:
    U Modus_Wahl
    SPBN MO2
    
    L DB23.Modus1.Data1
    T PAB 0
    
    L DB23.Modus1.Data2   // war vorher  L DB23.Modus2.Data2
    T PAB 1
    
    :
    END: NOP 0
    Gruß, yy1

    ------------------------------------------------------------------------------------
    Woher soll ich wissen, was ich denke, bevor ich gehört habe, was ich sage?

  3. #3
    Registriert seit
    08.07.2011
    Beiträge
    37
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ja da hast du recht aber leider nur hier im Forum habe die Begriffe etwas vereinfacht und dabei wohl den Fehler gemacht.
    Also das ist nicht der Fehler

  4. #4
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.620
    Danke
    777
    Erhielt 647 Danke für 493 Beiträge

    Standard

    Zitat Zitat von FinalMistery Beitrag anzeigen
    ja da hast du recht aber leider nur hier im Forum habe die Begriffe etwas vereinfacht und dabei wohl den Fehler gemacht.
    Also das ist nicht der Fehler
    Wandelt dir das AWL die teilsymbolischen Zugriffe nicht nach der eingabe direkt in Absolutwerte um? Sind die Zugriffe dann an der richtigen stelle?

    Wieso gibst du dem DB selber nicht auch einen Symbolischen Namen?

    mfG René

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.402 Danke für 2.001 Beiträge

    Standard

    Hallo,
    du schreibst, dass er nicht dir richtigen Werte überträgt. Was überträgt er denn ? Was steht in den DBB's des DB23 drin ? Wirklich (noch) das, was du per Voreinstellung zugewiesen hast ?

    Gruß
    Larry

  6. #6
    Registriert seit
    08.07.2011
    Beiträge
    37
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ja es steht noch das richtige im DB.

    Er schreibt immer nur die Werte des Modus 1 in den Ausgang nie die aus Modus2.
    Ich kann es mir aber nicht erklären warum?

  7. #7
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard

    Zitat Zitat von FinalMistery Beitrag anzeigen
    Er schreibt immer nur die Werte des Modus 1 in den Ausgang nie die aus Modus2.
    Ich kann es mir aber nicht erklären warum?
    Dann kann es doch nur an dem Bit "Modus_Wahl" liegen.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  8. #8
    Registriert seit
    08.07.2011
    Beiträge
    37
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ne da wenn ich ja statt den Ausdrücken DB23.ModusX.Daten1 den direkten Wert
    B#16#XX scheieb funktioniert es.

  9. #9
    Registriert seit
    23.04.2009
    Ort
    Allgäu
    Beiträge
    3.042
    Danke
    241
    Erhielt 863 Danke für 617 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Schau dir mal den Inhalt der 4 Daten-Byte, das Umschaltbit und die Ausgangsbyte mit der Funktion "Status Variable" an.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

Ähnliche Themen

  1. globalen DB in OB ???
    Von Rici im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 14.10.2011, 12:36
  2. Anfangswerte im globalen DB laden
    Von Ric im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 27.06.2008, 16:22
  3. Inhalte eines globalen Datenbausteins löschen?
    Von tino2512 im Forum Programmierstrategien
    Antworten: 1
    Letzter Beitrag: 05.09.2006, 10:22
  4. Antworten: 4
    Letzter Beitrag: 10.01.2006, 11:45
  5. Im CPU314-C 2DP globalen DB1 remanent machen.
    Von Boernie im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 10.10.2005, 11:26

Lesezeichen

Berechtigungen

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