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

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

Thema: Adresse von Struct in TEMP ermitteln

  1. #1
    Registriert seit
    07.02.2008
    Ort
    Tonga
    Beiträge
    72
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe Probleme beim ermitteln der Adresse einer Temporären Variable vom Typ Struct.

    Warum wird nicht eine Adresse von 32 ermittelt?
    Bitte schaut euch das Bild an.
    Angehängte Grafiken Angehängte Grafiken
    Zitieren Zitieren Adresse von Struct in TEMP ermitteln  

  2. #2
    Registriert seit
    19.06.2008
    Ort
    Ostalbkreis
    Beiträge
    3.140
    Danke
    201
    Erhielt 553 Danke für 498 Beiträge

    Standard

    Hallo,

    Sind das nicht die vorherigen Loaldaten des aufrufenden Bausteins?
    Geändert von Verpolt (06.04.2011 um 12:08 Uhr) Grund: nix richtig gelesen

  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

    er lädt doch die 32, nur wird sie dir nicht im adressregister angezeigt, weil du die adresse nicht dahin, sondern in den akku1 lädst...
    L -> akku1
    LAR1 -> adressregister 1
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. #4
    Registriert seit
    11.05.2005
    Ort
    Baden-Württemberg
    Beiträge
    669
    Danke
    113
    Erhielt 153 Danke für 124 Beiträge

    Standard

    Zitat Zitat von cosmomaster Beitrag anzeigen
    Ich habe Probleme beim ermitteln der Adresse einer Temporären Variable vom Typ Struct.

    Warum wird nicht eine Adresse von 32 ermittelt?
    Bitte schaut euch das Bild an.
    ... weil die Syntax falsch ist.
    Du hast ja schon was im AR1 stehen. Dazu addierst du 32 Byte.

    Richtig wäre:
    Code:
    Lar1 p#....
    Micha
    "arbeite klug, nicht hart" - deutsches Sprichwort

  5. Folgender Benutzer sagt Danke zu SPSKILLER für den nützlichen Beitrag:

    cosmomaster (15.04.2011)

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

    noch zur erläuternden erklärung:

    die 8600 0100 in akku1 (standard) heißt:

    32.0 (100) in L-stack (86)
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    cosmomaster (15.04.2011)

  8. #6
    Registriert seit
    07.02.2008
    Ort
    Tonga
    Beiträge
    72
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habs geblickt.

    Vielen Dank.
    Angehängte Grafiken Angehängte Grafiken

  9. #7
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Und warum nicht so?

    Code:
         L    P##cmd_Mod
         SRW  3
         T    #BASE.ADR_INT
    
    Du arbeitest sinnloserweise mit dem Adressregister
    mfG Aventinus

  10. #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 Aventinus Beitrag anzeigen

    Du arbeitest sinnloserweise mit dem Adressregister
    kann man das anhand des RIESIGEN ausschnitts wirklich so sagen? weißt du, ob danach dann gleich BE ist? dass das ermittelte AR1 vielleicht nicht doch noch gebraucht wird?
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  11. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    cosmomaster (15.04.2011)

  12. #9
    Registriert seit
    27.03.2011
    Beiträge
    10
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo zusammen,
    wer kann mir erklären was das alles bedeutet?
    AUF #DB_dat
    LAR1 P#0.0
    L DBW [AR1,P#0.0]
    SLD 3
    T #ErrorWord
    U DBX [AR1,P#2.0]
    = #reset
    Warum muss man DBW im AR um 3 bits nach links schieben und dann ins AKKU1 laden?

    Zitieren Zitieren Adressregister,Pointer...Bitte um Hilfe!!!  

  13. #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 serpantin Beitrag anzeigen
    Warum muss man DBW im AR um 3 bits nach links schieben und dann ins AKKU1 laden?

    genau kann dir das nur der programmierer sagen.

    eine mögliche theorie:
    im DB_dat.DBW0 steht eine nummer, die den fehler repräsentiert.
    zu dem fehler gehört ein anderes datenbausteinfeld (<= word) in dem irgendwas zu dem fehler steht, eine beschaltung der warnlampen oder eine eindeutige fehler-id oder was weiß ich.
    mit dem laden der fehlernummer und dem schieben um 3 nach links wird die fehlernummer gleich zur byte-adresse des "anderen datenbausteinfelds", so dass in der folgenden bearbeitung nur noch ein LAR1 #ErrorWord notwendig ist um einen pointer auf dieses feld zu adressieren.
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  14. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    Paule (19.05.2011)

Ähnliche Themen

  1. in SCL Adresse von String im IDB ermitteln
    Von Ralle im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 03.03.2011, 09:39
  2. DB Adresse ermitteln
    Von Marc_Quark im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 22.10.2009, 08:22
  3. Adresse des geöffneten DBs ermitteln
    Von Woto im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 29.09.2008, 12:09
  4. Adresse im Instanzdatenbaustein ermitteln
    Von hubiwahn im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 25.09.2006, 16:14
  5. pointer über temp struct...
    Von Jochen Kühner im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 24.09.2006, 10:23

Stichworte

Lesezeichen

Berechtigungen

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