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

Ergebnis 1 bis 10 von 10

Thema: Bereichslängenfehler beim Schreiben in den DB

  1. #1
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe folgendes Programm und bekomme es nicht zum Laufen, weil ich laut Diagnosepuffer einen Bereichslängenfehler beim Schreiben habe.

    L MD 404 //Adresspointer
    L 640
    <D
    SPB gut
    L 0
    T MD 404 //Adresspointer



    gut: AUF DB 3
    L MD 400 //kW-Wert in REAL
    T DBD [MD 404]
    L 8
    L MD 404 //Adresspointer
    +D
    T MD 404 //Adresspointer
    Zitieren Zitieren Gelöst: Bereichslängenfehler beim Schreiben in den DB  

  2. "Nimm unbedingt DINT, INT geht zwar erstmal, aber bei einer hohen Adresse läuft INT dann über und baut Mist, der Pointer hat 32 Bit. Wenn du INT als Zählvariable nutzt, dann wandeln in DINT.

    L MW404 INT
    ITD nach DINT
    SLD3 und DWord schieben !!!
    LAR1


    Warum Doppelposting ???"


  3. #2
    Registriert seit
    30.03.2005
    Beiträge
    239
    Danke
    22
    Erhielt 2 Danke für 2 Beiträge

    Standard

    l
    erstmal: nimm als adresspointer eine integer variable, weiss nicht ob dint dort geht. hier das funktionierende Listing in rot:
    L MD 404 //Adresspointer L mw404
    L 640 L 640
    <D <I
    SPB gut spb gut
    L 0 L 0
    T MD 404 //Adresspointer T mw404
    gut: AUF DB 3 gut:AUF DB3
    L MW404
    SLW3
    LAR1
    L MD 400 //kW-Wert in REAL L MD400
    T DBD [MD 404] t DBD[ar1,P#0.0]
    L 8 L 8
    L MD 404 //Adresspointer L mw404

    +D +i
    T MD 404 //Adresspointer] t mw404


    wofür brauch man sowas kompliziertes? wenn Du weitere Hilfe brauchst, meld dich mit mehr infos . ich hoffe Du hast ne schnelle CPU, die schleife ist zykluszeitmässig nicht ohne....

    Gruß aus oelde
    Zitieren Zitieren dürfte kein problem sein  

  4. #3
    Registriert seit
    23.11.2004
    Beiträge
    347
    Danke
    2
    Erhielt 28 Danke für 28 Beiträge

    Standard

    Hallo mertens2,

    vergleich doch mal Dein MD404-Inhalt mit der Länge des DBs im USTACK.
    Der DB ist bestimmt zu kurz

    Gruß
    raika

    PS:
    Warum erhöhst Du den Zeiger um 8?
    Real hat 4 Byte, laso:
    L P#4.0
    +D
    T MD404

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

    Standard

    Nimm unbedingt DINT, INT geht zwar erstmal, aber bei einer hohen Adresse läuft INT dann über und baut Mist, der Pointer hat 32 Bit. Wenn du INT als Zählvariable nutzt, dann wandeln in DINT.

    L MW404 INT
    ITD nach DINT
    SLD3 und DWord schieben !!!
    LAR1


    Warum Doppelposting ???
    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

  6. #5
    Registriert seit
    30.03.2005
    Beiträge
    239
    Danke
    22
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Zitat Zitat von Ralle
    Nimm unbedingt DINT, INT geht zwar erstmal, aber bei einer hohen Adresse läuft INT dann über und baut Mist, der Pointer hat 32 Bit. Wenn du INT als Zählvariable nutzt, dann wandeln in DINT.

    L MW404 INT
    ITD nach DINT
    SLD3 und DWord schieben !!!
    LAR1


    Warum Doppelposting ???
    Hallo Ralle,

    Du scheinst viel Erfahrung mit ind. Adressierung zu haben. Hier im Forum lese ich oft Adressierungen wie L db[md44]. geht so was direkt in s7 oder muss mann immer über das AR gehen?

    gruß

  7. #6
    Anonymous Gast

    Standard

    Ich habe alle eure Versionen durchprobiert, leider bleibt dieses Fehlermeldung:
    Bereichslängenfehler beim Schreiben.

    Da ich das Programm jede Minute über den OB 10 aufrufe, bekomme ich auch menütlich diese Fehlermeldung.

    Womit kann das zusammenhängen?

    @mertens 2: Warum hast du den Befehl slw3 noch mit im Programm?
    Ich verstehe nicht, warum ich drei Bits herausschieben muss.

  8. #7
    Registriert seit
    21.09.2004
    Beiträge
    92
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Gast,

    ich hoffe du hast auch einen DB (dein DB 3) angelegt, der ausreichend lang ist!
    Die Fehlermeldung kommt eignetlich nur wenn die CPU versucht in einen Bereich auserhalb eines DB's zu schreiben...

    Gruß Küffel

  9. #8
    Registriert seit
    16.12.2004
    Ort
    Schleswig-Holstein
    Beiträge
    400
    Danke
    21
    Erhielt 23 Danke für 20 Beiträge

    Standard

    @mertens 2: Warum hast du den Befehl slw3 noch mit im Programm?
    Ich verstehe nicht, warum ich drei Bits herausschieben muss.
    Dies hat mit dem Addressformat zu tun. Die Zeiger sind DWORDS und haben as Format Byte.Bit (für Bereichsübergreifender Zeiger ist im höchsten zusätzlich der Operandenbereich gespeichert). Weil die Adressierung Byte-orientiert ist muss man die Bit-Zeiger ausblenden und das ist was dieser SRD3 Befehl tut.

    Eine Beschreibung der Zeigerformate findest Du auf Seite 5 in diesem Thread.

  10. #9
    Anonymous Gast

    Standard

    Kann ich das mit dem Schiebebefehl im Handbuch von Siemens nachlesen? Unter was müsste ich suchen?

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Mach einen Baustein auf, gib in AWL z.Bsp. "SLD" ein, Mouseclick drauf und "F1".

    @mertens2

    Das geht auch direkt, aber auch da muß man an byte.bit denken.
    Zottel hat das hier http://www.sps-forum.de/phpBB2/viewtopic.php?t=3001 mal vorgemacht, daher kommt auch das Beispiel am Anfang.
    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

Ähnliche Themen

  1. bereichslängenfehler beim schreiben
    Von dedl im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 26.09.2011, 15:58
  2. Bereichslängenfehler beim Schreiben
    Von Stemmann im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 26.11.2010, 13:28
  3. Antworten: 16
    Letzter Beitrag: 22.08.2009, 15:21
  4. Bereichslängenfehler beim Schreiben
    Von Butty im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 14.07.2008, 23:30
  5. Bereichslängenfehler beim lesen/schreiben
    Von mitchih im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 28.01.2008, 21:57

Lesezeichen

Berechtigungen

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