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

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

Thema: Datenbausteinregister

  1. #1
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe eine Frage zum Aufschlagen eines Datenbausteins.

    Die CPU stellt ja zwei Datenbausteinregister zur Verfügung, wobei die Behandlung der Register durch die CPU absolut gleichwertig ist. Man spricht ja vom DB-Register und vom DI-Register.

    Ich war bisher immer der Meinung, dass ein Global-DB über ein DB-Register und entsprechend ein Instanz-DB über ein DI-Register aufgeschlagen werden muss.

    Nun habe ich gelesen:

    Jeder Datenbaustein kann über eines der beiden Register (auch über beide gleichzeitig) aufgeschlagen werden.

    Frage:

    Heißt das nun, dass ein Instanz-DB auch über ein DB-Register aufgeschlagen werden kann, oder wie muss ich den Satz verstehen?

    Danke für eine Erklärung!

    Grüße
    pinolino
    Zitieren Zitieren Datenbausteinregister  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von pinolino Beitrag anzeigen
    Heißt das nun, dass ein Instanz-DB auch über ein DB-Register aufgeschlagen werden kann, oder wie muss ich den Satz verstehen?
    nu, geht, macht sich toll, wenn du indirekt in zwei DBs rumvorwerken willst...
    (das beispiel adressiert nicht indirekt, ist nur als bsp. gedacht)

    Code:
    *
          AUF    DB  5   //DB5 öffnen
          AUF    DI  6   //DB6 öffnen
    
          L      DBD 4   //DB5.DBD4 laden
          L      DID 8   //DB6.DBD8 laden
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #3
    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 pinolino Beitrag anzeigen
    Frage:

    Heißt das nun, dass ein Instanz-DB auch über ein DB-Register aufgeschlagen werden kann, oder wie muss ich den Satz verstehen?
    Hi Pinolino,

    nehmen wir mal an Du hast einen FB1 mit dem dazu gehörenden DB1.
    Dann greifst Du innerhalb des FB auf den DB mit dem Befehl DI zu ( L DIWx )
    Du kannst aber auch von außen z.B.: im FC 5 ein Datenwort des DB1 laden.
    Ganz normal mit L DB1.DBWx
    Ich finde solche Zugriffe nicht so sauber, aber das kann hier ganz schnell in einer Grundsatz Diskussion enden.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

  4. #4
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für eure Beispiele...

    @Paule: Ja, habe ich verstanden!

    @vierlagig:
    In deinem Beispiel wird ja der DB5 über das DB-Register und der DB6 über das DI-Register aufgeschlagen. Ist jetzt der DB6 ein Global- oder ein Instanz-Datenbaustein?

  5. #5
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von pinolino Beitrag anzeigen
    @vierlagig:
    In deinem Beispiel wird ja der DB5 über das DB-Register und der DB6 über das DI-Register aufgeschlagen. Ist jetzt der DB6 ein Global- oder ein Instanz-Datenbaustein?
    es sind beides globale
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. #6
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    es sind beides globale
    Ok, das heißt also, es kann auch ein globaler-DB über das DI-Register aufgeschlagen werden!

    Aber ich denke mal, dass man das in der Praxis eher unterlassen sollte, oder?

    Danke
    pinolino

  7. #7
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von pinolino Beitrag anzeigen
    Aber ich denke mal, dass man das in der Praxis eher unterlassen sollte, oder?
    warum? es muß abgesichert sein (besonders in FBs) und sauber dokumentiert. wenn das gewährleistet ist, dann spricht da IMHO nichts dagegen. unterstützt doch nur die performance... wenn man sich den MC7 code für einen qualifizierten aufruf anschaut, kommts auf "AUF DB x", "AUF DB y", "AUF DB x", "AUF DB y" usw. raus und das verbrät zeit ohne ende... wenn man nur eine operation zwischen zwei DBs durchführen will gehts, aber bei umständlichen und/oder längeren funktionen würde ich immer auf die möglichkeit, beide register benutzen zu können, zurückgreifen.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  8. #8
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok, vierlagig - danke.

    Ein Problem habe ich noch mit:

    Code:
     
    AUF    DB  5   //DB5 öffnen
    AUF    DI  6   //DB6 öffnen
     
    L      DBD 4   //DB5.DBD4 laden
    L      DID 8   //DB6.DBD8 laden
    Müsste es hier nicht heißen:

    L DBD 8

    Wenn der DB6 ein globaler DB ist, dann kann ich doch in ihm auch nur auf ein DBD und nicht auf ein DID zugreifen, oder?

  9. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von pinolino Beitrag anzeigen
    Müsste es hier nicht heißen:

    L DBD 8
    NÖ, weil du dann das DB5.DBD8 laden würdest

    Zitat Zitat von pinolino Beitrag anzeigen
    Wenn der DB6 ein globaler DB ist, dann kann ich doch in ihm auch nur auf ein DBD und nicht auf ein DID zugreifen, oder?
    das I kennzeichnet lediglich das register, welches benutzt werden soll, nicht die art des bausteines. das ist der steuerung nämlich herzlichst egal.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #10
    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
    Zitat Zitat von vierlagig Beitrag anzeigen
    warum? es muß abgesichert sein (besonders in FBs) und sauber dokumentiert.
    NOP 0,
    Was willst Du dokumentieren?
    "Hallo Leute ich greife gerade von außen auf eine Instanz zu bitte den FB xxx nicht im Statischen Bereich ändern sonst geht mein Zugriff ins Nimmerland.
    Wenn dann muss das alles durchgängig Symbolisch sein.
    Zitat Zitat von vierlagig Beitrag anzeigen
    ... wenn man sich den MC7 code für einen qualifizierten aufruf anschaut,
    Klar mache ich das, jedes mal wenn ich einen Baustein fertig habe.
    Hör lieber auf mit dem Spruch, sonst kommt wieder einer und will wissen wie das geht, und Du willst es ja nicht rausrücken. Hatten wir das nicht erst letztens mal?
    Zitat Zitat von vierlagig Beitrag anzeigen
    für einen qualifizierten aufruf anschaut,
    Was ist ein qualifizierter Aufruf? Adressregister?
    Sind alle anderen Aufrufe unqualifiziert?
    Zitat Zitat von vierlagig Beitrag anzeigen
    wenn man sich den MC7 code für einen qualifizierten aufruf anschaut, kommts auf "AUF DB x", "AUF DB y", "AUF DB x", "AUF DB y" usw. raus und das verbrät zeit ohne ende...
    Also mittlerweile haben die Steuerung ordentlich was auf der Brust, die können damit schon fertig werden.

    Natürlich können die Daten über Pointer und UDT, sprich ganze Strukturen an andere Bausteine übergeben werden. Aber das hat ja nichts mit der Frage zu tun.
    Gruß
    Paule
    ----------------------------------------------------------------------------
    > manchmal verliert man und manchmal gewinnen die anderen <

Lesezeichen

Berechtigungen

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