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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Indirektes lesen eine DBD...

  1. #1
    Registriert seit
    08.01.2007
    Ort
    Dülmen
    Beiträge
    393
    Danke
    58
    Erhielt 24 Danke für 17 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also soweit bin ich schon...

    L D [AR1,P#0.0]

    Wenn ich nun in 4er Schritten ab DBD0 erfassen will muß ich den AR1 hochzählen? Habe ich das richtig verstanden?

    Also in einer Schleife...
    L 4
    +AR1

    Dann würde ich die Doppelwörter 0,4,8,... lesen...

    Wie kann ich dann zu beginn der Schleife den AR1 auf 0 setzen?

    Oder ist das ein Denkfehler?
    Ich bedanke mich schon mal vorab und entschuldige mich für die geistige Belastung am Montag Vormittag...
    Zitieren Zitieren Indirektes lesen eine DBD...  

  2. #2
    Registriert seit
    08.04.2008
    Ort
    Köln
    Beiträge
    844
    Danke
    39
    Erhielt 244 Danke für 199 Beiträge

    Standard

    Hallo Andre,

    das AR1 auf null setzten:
    L 0
    LAR1

    beim aufaddieren des AR1 musst Du beachten, dass die rechten 3 Bit des Pointers
    die Bit-Adresse sind. Deshalb nach dem L 4 ein SLD3 einbauen.

    Grüße
    Gebs

  3. #3
    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

    kannst auch mit

    Code:
    +AR1    P#4.0
    hochzählen

    nullen geht mit

    Code:
    L    0
    LAR1
    um mit deiner 4 zu arbeiten vorher SLD 3 machen ... da die ersten drei bit das bit und die folgenden das byte adressieren
    Geändert von vierlagig (19.10.2009 um 11:10 Uhr)
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    nicht richtig ...

    wenn du den AR1 Doppelwortweise hochzählen willst so ginge das mit :
    Code:
    L P#4.0
    +AR1
    den du zum AR1-Register hinzuzählst ...

    Auf 0 setzen kannst du dann mit :
    Code:
    L 0
    LAR1
    Gruß
    LL

    Nachsatz:
    da du jetzt 3 Mal deine Lösung hast wird es dann wohl klappen ...

  5. #5
    AndreK ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.01.2007
    Ort
    Dülmen
    Beiträge
    393
    Danke
    58
    Erhielt 24 Danke für 17 Beiträge

    Standard

    kann man da auch Variabelen (Integer) irgendwo reinbauen?

    Ich habe eine Schleife 0-100, dazu werden ab DBW0 die Doppelwörter gelesen... bei einer Bedingung X wird aus der Schleife gesprungen. Soll für Sollwertkurven sein... 0-100 kann man schön skalieren

    So... jetzt zum AR1 oder dem Pointer...
    Ich kann jetzt entweder:
    L x (wobei X = Schleife * 4 ist)
    L AR1
    L D [AR1,P#0.0]
    dann habe ich meinen DBD geladen?

    kann man auch die Aufrufadresse direkt im Pointer einbauen? Also die P#0.0 durch eine Variabele ersetzen...
    L D [AR1,P#0.0]
    Zitieren Zitieren Alles wunderschön... aber...  

  6. #6
    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 AndreK Beitrag anzeigen
    kann man da auch Variabelen (Integer) irgendwo reinbauen?
    schau dir den unterschied zwischen registerindirekten und speicherindirekten adressierung an.

    Zitat Zitat von AndreK Beitrag anzeigen
    So... jetzt zum AR1 oder dem Pointer...
    Ich kann jetzt entweder:
    L x (wobei X = Schleife * 4 ist)
    L AR1
    L D [AR1,P#0.0]
    dann habe ich meinen DBD geladen?
    nö. haste nich, zumindest nicht das, was du laden wolltest ... SLD 3

    Zitat Zitat von AndreK Beitrag anzeigen
    kann man auch die Aufrufadresse direkt im Pointer einbauen? Also die P#0.0 durch eine Variabele ersetzen...
    L D [AR1,P#0.0]
    nö, nicht bei der registerindirekten adressierung ... bei der speicherindirekten schon
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. #7
    AndreK ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.01.2007
    Ort
    Dülmen
    Beiträge
    393
    Danke
    58
    Erhielt 24 Danke für 17 Beiträge

    Standard

    L x (wobei X = Schleife * 4 ist)
    SLD 3
    L AR1
    L D [AR1,P#0.0]
    dann habe ich meinen DBD geladen?

    Ich glaube ich tippe den Zugriff doch 100 mal ein
    Zitieren Zitieren Also, so...  

  8. #8
    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 AndreK Beitrag anzeigen
    L x (wobei X = Schleife * 4 ist)
    SLD 3
    L AR1
    L D [AR1,P#0.0]
    dann habe ich meinen DBD geladen?
    jopp ... so einfach kann es sein ... wobei du, wenn du aus einem globalen datenbaustein laden willst auf

    Code:
    *
          L     DBD [AR1,P#0.0]
    zugreifen solltest und vor der schleife das

    Code:
    *
          AUF   DB     y
    nicht vergessen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  9. #9
    AndreK ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.01.2007
    Ort
    Dülmen
    Beiträge
    393
    Danke
    58
    Erhielt 24 Danke für 17 Beiträge

    Standard

    das AUF DB hab ich schon...

    Mich nervt nur der extrem lange Baustein... in dem der Inputwert auf 0.100 verglichen wird um dann entsprechend den Werd aus dem DB zu laden...

    Also das hier 100 mal...
    //============================
    L #IN
    L 9.800000e+001
    <R
    = #TMP
    U #TMP
    SPB ENDE
    L DBD 392
    T #out

    Warum kann man eine SPS nicht in VB programmieren ...
    Zitieren Zitieren Ja...  

  10. #10
    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


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von AndreK Beitrag anzeigen

    Warum kann man eine SPS nicht in VB programmieren ...
    stichwort: SCL
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

Ähnliche Themen

  1. Frage: benötige für eine LOGO eine Steuerung
    Von movie im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 15.08.2011, 14:16
  2. Antworten: 3
    Letzter Beitrag: 13.04.2011, 07:22
  3. Antworten: 8
    Letzter Beitrag: 08.10.2010, 10:10
  4. Antworten: 4
    Letzter Beitrag: 29.05.2009, 21:02
  5. Antworten: 3
    Letzter Beitrag: 23.05.2005, 11:34

Lesezeichen

Berechtigungen

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