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

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

Thema: HILFE !! Schleifenprogrammierung mit indirekter Adressierung

  1. #1
    Registriert seit
    09.05.2007
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    mit dem unterem Programm sollen 100 hintereinander liegende Speicherzellen in aufsteigender Reigenfolge mit den Werten 1.0 bis 100.0 beschrieben werden.

    Habe einen FC 41 und einen db 41(Db41 Arrey [1-100] REAL erstellt) erstellt und rufe den FC 41 dann über # DB_NUM im OB 1 auf

    LEIDER WIR DER DB 41 NICHT MIT DEN WERTEN BESCHRIEBEN , STEHT ÜBERALL nur NE 0 DRIN. BITTE UM HILFE!!!was habe ich falsch gemacht?


    Netz1.

    L #DB_Num
    T #I_DB_NUM
    AUF DB [#I_DB_NUM]


    Netz 2.

    L P#0.0
    T #Zeiger
    L 1.000000e+000
    T #Ini_Wert
    L 100
    BEGN: T #Zaehler
    L #Ini_Wert
    T DBD [#Zeiger]
    L 1.000000e+000
    +R
    T #Ini_Wert
    L #Zeiger
    L P#4.0
    +D
    T #Zeiger
    L #Zaehler
    LOOP BEGN
    Zitieren Zitieren HILFE !! Schleifenprogrammierung mit indirekter Adressierung  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    was passiert denn ?
    geht die CPU in STOP ?
    M.E. ist deine Schleife nicht ganz vollständig :

    --------------------------
    L P#0.0
    T #Zeiger
    L 1.000000e+000
    T #Ini_Wert

    L 100
    BEGN: T #Zaehler
    L #Zaehler
    L 1
    < I
    spb Ende

    L #Ini_Wert
    T DBD [#Zeiger]
    L 1.000000e+000
    +R
    T #Ini_Wert

    L #Zeiger
    L P#4.0
    +D
    T #Zeiger

    L #Zaehler
    L 1
    -I
    LOOP BEGN

    Ende: nop 0
    -------------------
    Jetzt müsste es funktionieren ...

  3. #3
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard

    Wird denn die Schleife überhaupt von 0-100 durchlaufen?

    Was steht denn im DB Register im Online?
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.

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

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    L #Zaehler
    L 1
    -I
    LOOP BEGN
    Hier ist noch ein kleiner Fehler:

    Code:
          L #Zaehler      // Zaehler wird in Akku 1 geladen
          L 1 
          -I              // Akku 1 wird um 1 verringert  
          LOOP BEGN       // Akku 1 wird nochmal um 1 verringert (LOOP-Befehl)
    Die Schleife läuft also nur bis 50 und nicht bis 100.

    Folgende Lösung sollte aber funktionieren:

    Code:
          L     #DB_NUM
          T     #I_DB_NUM
          AUF   DB [#I_DB_NUM]
     
          L     P#0.0
          T     #Zeiger
          L     1.000000e+000
          T     #Ini_Wert
     
          L     100
    BEGN: T     #Zaehler
          L     #Zaehler
          L     1
          <I    
          SPB   Ende
     
          L     #Ini_Wert
          T     DBD [#Zeiger]
          L     1.000000e+000
          +R    
          T     #Ini_Wert
     
          L     #Zeiger
          L     P#4.0
          +D    
          T     #Zeiger
     
          L     #Zaehler
          L     1
          -I    
          SPA   BEGN
     
    Ende: NOP   0
    Gruß Kai
    Geändert von Kai (09.05.2007 um 19:04 Uhr)

  5. #5
    Arni80 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    09.05.2007
    Beiträge
    7
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    VIELEN DANK an alle für die schnelle HILFE. Programm funktionert jetzt.

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

    Standard

    Und hier noch eine Lösung mit einer LOOP-Programmschleife:

    Code:
          L     #DB_NUM
          T     #I_DB_NUM
          AUF   DB [#I_DB_NUM]
     
          L     P#0.0
          T     #Zeiger
          L     1.000000e+000
          T     #Ini_Wert
     
          L     100
    BEGN: T     #Zaehler
     
          L     #Ini_Wert
          T     DBD [#Zeiger]
          L     1.000000e+000
          +R    
          T     #Ini_Wert
     
          L     #Zeiger
          L     P#4.0
          +D    
          T     #Zeiger
     
          L     #Zaehler
          LOOP  BEGN
    Gruß Kai
    Angehängte Dateien Angehängte Dateien

  7. #7
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Hat zwar keine Bedeutung aber ist das jetzt nicht exakt das Programm vom Threadanfang?

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

    Standard

    Zitat Zitat von borromeus Beitrag anzeigen
    Hat zwar keine Bedeutung aber ist das jetzt nicht exakt das Programm vom Threadanfang?
    Du hast Recht, das ist mir noch gar nicht aufgefallen.

    Da habe ich mir eine so schöne Lösung überlegt, und nun ist mein Programm genau dasselbe wie das Programm von Arnie80.

    Und da mein Programm ohne Probleme funktioniert, muss auch das Programm von Arnie80 funktionieren. Das das Programm von Arnie80 nicht funktioniert hat, kann jedenfalls nicht am Programmcode gelegen haben.

    Gruß Kai

  9. #9
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    OffTopic
    @Kai

    Sag mal, warum sind eigentlich dauernd komplett gelöschte Posts von dir in den Threads? Ich räum das zwar auf, aber gibts einen Grund dafür?
    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

  10. #10
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 182 Danke für 167 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Kai Beitrag anzeigen
    Und hier noch eine Lösung mit einer LOOP-Programmschleife:

    Code:
          L     #DB_NUM
          T     #I_DB_NUM
          AUF   DB [#I_DB_NUM]
     
          L     P#0.0
          T     #Zeiger
          L     1.000000e+000
          T     #Ini_Wert
     
          L     100
    BEGN: T     #Zaehler
     
          L     #Ini_Wert
          T     DBD [#Zeiger]
          L     1.000000e+000
          +R    
          T     #Ini_Wert
     
          L     #Zeiger
          L     P#4.0
          +D    
          T     #Zeiger
     
          L     #Zaehler
          LOOP  BEGN
    Gruß Kai

    Warum macht ihr immer Speicherindirekte Adressierung und keine Adressindirekte?

    Code:
          L     #DB_NUM
          T     #I_DB_NUM
          AUF   DB [#I_DB_NUM]
     
          L     P#0.0
          LAR1
          L     1.000000e+000
          T     #Ini_Wert
     
          L     100
    BEGN: T     #Zaehler
     
          L     #Ini_Wert
          T     DBD [AR1,P#0.0]
          L     1.000000e+000
          +R    
          T     #Ini_Wert
     
          +AR1 P#4.0
     
          L     #Zaehler
          LOOP  BEGN
    Mir gefällt das besser.

    godi

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

    SIGGI (31.10.2008)

Ä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. Kleines Problem mit indirekter Adressierung
    Von TobiS81 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 02.05.2007, 12:31
  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
  •