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

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

Thema: kleine Zeigerfrage

  1. #1
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich hab gerade einen Fehler zu suchen. Irgendein Baustein schreibt Daten wild in die SPS, denke ein Pointerproblem. Dazu seh ich mir gerade einen Fremdbaustein an und stolpere über 2 Sachen:

    1.

    Code:
    //Adresse der DP in Adressregister
          L     DID  134
          L     DIW  138
          LAR2
    AR2 lädt das Adreßregister AR2 mit dem Inhalt von AKKU 1 (32 Bit-Pointer).
    Ok, merke gerade, das kann ich mir noch erklären, Grundadresse und dann nochmal überschmieren, dafür würd ich dem Progger die Finger spitzen.

    2.

    Code:
          TAR1  #RettAR2                    //Adresse der DP in Adressregister
          L     DID  128
          L     DIW  132
          LAR2  
          L     DIB    0                    //TAG übermitteln
          T     PAB [AR2,P#5.0]
          L     DIB    1
          T     PAB [AR2,P#4.0]
          L     DIB    2
          T     PAB [AR2,P#3.0]
          L     DIB    3
          T     PAB [AR2,P#2.0]
          NOP   0
    
    ...
    
          L     PEB [AR2,P#1.0]
          T     DIB  272
          L     PEB [AR2,P#0.0]
          T     DIB  273
          LAR1  #RettAR2
          NOP   0
    Er arbeitet die ganze Zeit nur mit AR2, rettet aber AR1.
    Macht das Sinn, sollte man nicht AR2 retten (ist ein FB, der wiederumg in einem FB aufgerufen wird, aber keine Multiinstanz!)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal
    Zitieren Zitieren kleine Zeigerfrage  

  2. #2
    Registriert seit
    13.11.2006
    Ort
    Lengerich
    Beiträge
    68
    Danke
    0
    Erhielt 14 Danke für 14 Beiträge

    Standard

    Ich sehe den Sinn noch nicht warum der Vogel das Adressregister 2 überhaupt benutzt. Schreib das Ganze mal so um das das Adressregister 1 benutzt wird. Dann braucht man das 2er auch nicht retten, mit dem kann man nämlich ne Menge kaputt machen.
    Der Fehler liegt oft zwischen den Ohren!

  3. #3
    Avatar von Ralle
    Ralle ist offline Super-Moderator
    Themenstarter
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von Tetrade Beitrag anzeigen
    Ich sehe den Sinn noch nicht warum der Vogel das Adressregister 2 überhaupt benutzt. Schreib das Ganze mal so um das das Adressregister 1 benutzt wird. Dann braucht man das 2er auch nicht retten, mit dem kann man nämlich ne Menge kaputt machen.
    Genau das befürchte ich auch!
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #4
    Registriert seit
    22.12.2006
    Beiträge
    43
    Danke
    0
    Erhielt 6 Danke für 6 Beiträge

    Standard

    gibt das nicht Probleme wenn ich mit dem AR2 arbeite und auf den DI zugreife.

    Dachte immer wenn mit dem AR2 gearbeitet wird, dürfen keine Lokaldatenzugriffe erfolgen, da der FB seine IDb verwaltung im AR2 vornimmt.

  5. #5
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Ist der FB denn multiinstanzfähig? Oder wurde beim Anlegen des FB als neuer Baustein der Haken bei Multiinstanzfähigkeit entfernt? Wenn der FB nicht multiinstanzfähig ist, kann man ganz normal mit dem AR2 arbeiten.

    Gruß Kai

  6. #6
    Avatar von Ralle
    Ralle ist offline Super-Moderator
    Themenstarter
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    @Kai
    Der betreffende FB, als auch der Aufrufende FB sind Multiinstanzfähig, aber nicht als solche verwendet, sondern ganz normal mit Call FBxy, DBxy aufgerufen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  7. #7
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Code:
    //Adresse der DP in Adressregister
          L     DID  134                    // DID134 => AKKU 1
          L     DIW  138                    // AKKU 1 => AKKU 2 / DIW138 => AKKU 1
          LAR2                              // AKKU 1 => AR2
    So richtig verstehen kann ich den Programmcode nicht.

    Gruß Kai

  8. #8
    Avatar von Ralle
    Ralle ist offline Super-Moderator
    Themenstarter
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.224
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von Kai Beitrag anzeigen
    Code:
    //Adresse der DP in Adressregister
          L     DID  134                    // DID134 => AKKU 1
          L     DIW  138                    // AKKU 1 => AKKU 2 / DIW138 => AKKU 1
          LAR2                              // AKKU 1 => AR2
    So richtig verstehen kann ich den Programmcode nicht.

    Gruß Kai
    Ich denke mal, ein Teil des DID 134 bleibt ja stehen im Akku1, da ja in der zweiten Zeile nur noch ein DIW geschrieben wird. Wer sich sowas nur einfallen läßt?
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  9. #9
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Ich denke mal, ein Teil des DID 134 bleibt ja stehen im Akku1, da ja in der zweiten Zeile nur noch ein DIW geschrieben wird. Wer sich sowas nur einfallen läßt?
    Das stimmt nicht, es bleibt kein Teil des DID 134 im AKKU 1 stehen.

    Es wird zuerst der Inhalt von AKKU 1 (DID 134) nach AKKU 2 geschrieben.

    Und dann wird der Wert von DIW 138 rechtsbündig als 32-Bit Wert in den AKKU 1 geschrieben.

    Gruß Kai

  10. #10
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle Beitrag anzeigen
    Ich denke mal, ein Teil des DID 134 bleibt ja stehen im Akku1, da ja in der zweiten Zeile nur noch ein DIW geschrieben wird. Wer sich sowas nur einfallen läßt?
    Derjenige denkt aber bestimmt, er ist der grösste, 100%.
    @Ralle, ich verstehe langsam, was du meinst mit unsaubere Implementierungen; ich habe so was noch nicht gesehen..
    Man, man, gibt es Programmierer..

    @Kai: vielleicht war es so bei S5, mit den Akkus?

    Vladi
    ______________________________________
    relax, take it easy
    Zitieren Zitieren Aber aufpassen..  

Ähnliche Themen

  1. SPS für kleine Hobbybrauerei
    Von borsti27 im Forum Elektronik
    Antworten: 74
    Letzter Beitrag: 23.02.2009, 18:30
  2. Mal ne kleine Zwischenfrage
    Von arcis im Forum Stammtisch
    Antworten: 51
    Letzter Beitrag: 27.06.2008, 19:04
  3. kleine Laptop für DOS und S5
    Von huggy im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.05.2008, 18:23
  4. Kleine Stanzvorrichtung
    Von stefand im Forum Elektronik
    Antworten: 40
    Letzter Beitrag: 17.08.2007, 22:18
  5. Kleine Rechenaufgabe
    Von Flo im Forum Programmierstrategien
    Antworten: 8
    Letzter Beitrag: 05.08.2007, 21:46

Lesezeichen

Berechtigungen

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