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

Ergebnis 1 bis 10 von 10

Thema: Kleines Problem mit indirekter Adressierung

  1. #1
    Registriert seit
    27.04.2007
    Beiträge
    4
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen, ich möchte einen kleinen FB schreiben in dem ich abhängig vom Monat (LB13) bestimmte DBD´s aus eienm DB lade und in ein MD ablege, den DBD für den Monat Januar will ich auch extern durch eine Zahl vorgeben. Ich probiere jetzt schon seit 2 Tagen alles mögliche aus, komme aber zu keiner Lösung. Kann mir jemand mal ein bischen auf die Sprünge helfen?
    Zitieren Zitieren Kleines Problem mit indirekter Adressierung  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.783
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Hallo,
    du müßtest dein Problem m.E. etwas konkretisieren ...
    Vielleicht stellst du mal ein (Dein) Beispiel ins Forum und dann findet sich bestimmt was ...

  3. #3
    TobiS81 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.04.2007
    Beiträge
    4
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Das Problem ist das ich überhaupt keine Ahnung habe wo ich da anfangen soll.
    Hatte bisher mit indirekter Adressierung nichts am Hut. Ein Noob sozusagen

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.783
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Dann gib doch mal unter Suchen "Indirekte Adressierung" ein.
    Dort stehen m.E. viele interessante Ansätze. Wenn du dir da was herausgepickt hast und nicht weiterkommst hast du auf jeden Fall schon mal einen Anfang, der hier ausgebaut werden kann ...

  5. #5
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    Zitat Zitat von TobiS81 Beitrag anzeigen
    Das Problem ist das ich überhaupt keine Ahnung habe wo ich da anfangen soll.
    Hatte bisher mit indirekter Adressierung nichts am Hut. Ein Noob sozusagen
    genau.
    und wo sollte man zuerst mal schauen ?
    ganau.... in der FAQ
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.783
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Ein Beispiel wäre auch schon das Thema "Kann man Zugriffe auf DB's adressieren / berechnen ?"
    Vielleicht hilft dir das schon ...

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

    TobiS81 (02.05.2007)

  8. #7
    TobiS81 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.04.2007
    Beiträge
    4
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe mir jetzt folgenden FB zusammengeschustert:
    Code:
    VAR_INPUT
      Monat : INT ;    
      Anfang_DBD : INT ;    
      Pt_db : INT ;    
    END_VAR
    VAR_OUTPUT
      MW_ausgelesener_Wert : INT ;    
    END_VAR
    VAR_TEMP
      Pt_db_1 : WORD ;    
    END_VAR
    BEGIN
    NETWORK
    TITLE =
    
          L     #Pt_db; 
          T     #Pt_db_1; 
          AUF   DB [#Pt_db_1]; 
    
    
    NETWORK
    TITLE =
    
          L     #Anfang_DBD; 
          SLD   3; 
          LAR1  ; 
    
    
    NETWORK
    TITLE =
    
          L     #Monat; 
          SPL   M046; 
          SPA   M042; 
          SPA   M031; 
          SPA   M032; 
          SPA   M033; 
          SPA   M034; 
          SPA   M035; 
          SPA   M036; 
          SPA   M037; 
          SPA   M038; 
          SPA   M039; 
          SPA   M040; 
          SPA   M041; 
          SPA   M042; 
    M046: SPA   M015; 
    
    M031: L     P#0.0; 
          +AR1  ; 
          SPA   M044; 
    M032: L     P#2.0; 
          +AR1  ; 
          SPA   M044; 
    M033: L     P#4.0; 
          +AR1  ; 
          SPA   M044; 
    M034: L     P#6.0; 
          +AR1  ; 
          SPA   M044; 
    M035: L     P#8.0; 
          +AR1  ; 
          SPA   M044; 
    M036: L     P#10.0; 
          +AR1  ; 
          SPA   M044; 
    M037: L     P#12.0; 
          +AR1  ; 
          SPA   M044; 
    M038: L     P#14.0; 
          +AR1  ; 
          SPA   M044; 
    M039: L     P#16.0; 
          +AR1  ; 
          SPA   M044; 
    M040: L     P#18.0; 
          +AR1  ; 
          SPA   M044; 
    M041: L     P#20.0; 
          +AR1  ; 
          SPA   M044; 
    M042: L     P#22.0; 
          +AR1  ; 
          SPA   M044; 
    
    
    
    
    NETWORK
    TITLE =
    
    M044: NOP   0; 
          L     DBD [AR1,P#0.0]; 
          T     #MW_ausgelesener_Wert; 
    
    
    NETWORK
    TITLE =
    
    M015: BEA   ; 
    
    END_FUNCTION_BLOCK
    Leider ruft er immer den wert des Folgemonats auf. Ich will im Januar (input Variable Monat=1) zb.dbw12 aufrufen der Baustein gibt mir aber den Inhalt des dbw 14 aus dabei steht im AR1 12.0. Den gleichen Baustein habe ich nocheinmal (nur mit größeren Schritten um meine Realzahlen aus einem DB zu holen dort funktioniert alles einwandfrei. Nur Worte werden falsch abgeholt.

  9. #8
    Registriert seit
    17.09.2003
    Ort
    Zell bei Dietfurt a.d. Altmühl
    Beiträge
    358
    Danke
    8
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hallo.

    Dein Fehler liegt darin, dass du ein Doppelwordwert lädst statt eines Wordwertes.

    Dien Code:
    Code:
    M044: NOP   0;
    Code:
         L     DBD [AR1,P#0.0]; 
         T     #MW_ausgelesener_Wert; 
    So wäre es richtig für einen Wordzugriff.
    Code:
    M044: NOP   0;
    Code:
         L     DBW [AR1,P#0.0]; 
         T     #MW_ausgelesener_Wert; 
    Wird ein 32Bit Wert geladen (DWord, DINT) und wird dieser in einen 16Bit Wert transferiert (Word, INT) so wird vom 32Bit Wert immer das Niederwertig Word geladen. Somit greift er immer um einen Plus 2 Versatz auf dein Datenfach. Bei Fragen stehe ich gerne zur Verfügung.
    MfG

    Hubert

    \"Never change a running system. \"

  10. Folgende 2 Benutzer sagen Danke zu hubert für den nützlichen Beitrag:

    SIGGI (31.10.2008),TobiS81 (02.05.2007)

  11. #9
    Registriert seit
    06.10.2003
    Beiträge
    3.445
    Danke
    453
    Erhielt 509 Danke für 411 Beiträge

    Standard

    Hallo Tobi,

    Zitat Zitat von TobiS81 Beitrag anzeigen
    Ich habe mir jetzt folgenden FB zusammengeschustert:
    Code:
    ...
          M044: NOP   0; 
          L     DBD [AR1,P#0.0]; 
          T     #MW_ausgelesener_Wert; 
    ..
    ..Nur Worte werden falsch abgeholt.
    Ja, wenn du ein Doppelwort lädst, kann das schon mal vorkommen .

    Code:
    ...
          M044: NOP   0; 
          L     DBW [AR1,P#0.0]; 
          T     #MW_ausgelesener_Wert; 
    ..
    Gruß, Onkel
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  12. Folgender Benutzer sagt Danke zu Onkel Dagobert für den nützlichen Beitrag:

    TobiS81 (02.05.2007)

  13. #10
    TobiS81 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.04.2007
    Beiträge
    4
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Oh ja stimmt - das ich da nicht selbst drauf gekommen bin.

    Danke euch beiden.

Ähnliche Themen

  1. IN_OUT mit Indirekter Adressierung
    Von SCM im Forum Simatic
    Antworten: 24
    Letzter Beitrag: 14.10.2011, 12:07
  2. Problem mit indirekter Adressierung
    Von Astralavista im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.09.2010, 11:25
  3. Antworten: 12
    Letzter Beitrag: 02.06.2009, 10:19
  4. Antworten: 12
    Letzter Beitrag: 10.05.2007, 21:14
  5. Antworten: 1
    Letzter Beitrag: 19.06.2003, 19:34

Lesezeichen

Berechtigungen

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