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

Ergebnis 1 bis 7 von 7

Thema: Ret_val nach BLKMOV

  1. #1
    Registriert seit
    02.03.2007
    Beiträge
    43
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    benutze eine Vorlage von Siemens (FAQ)um einen DB in den anderen zu kopieren.
    Per Blkmov über einen FC.
    Nun mein Poblem.
    Ist der der Ziel DB länger als der Quell-DB so wird mir ein RET_VAT 8003 (unterschiedliche länge) gemeldet.Was auch klar ist.
    Und die Übertragung wird abgebrochen.
    Hab die Fehlerausgabe schon rausgeschmissen. Wird der Ret-Val auch für interne Funtkionen benutzt auf die ich kein Zugriff habe?

    Mein Ziel-DB muß aber länger bzw. gleich lang sein wie der längste Quell-DB. (ca. 60 versch. lange Quell-DB´s).

    Wie kann ich diesen Fehler-/Fehlermeldung umgehen?

    Gruß

    Der link zu Siemens FAQ ...Benutze das 2-te Programm.

    http://support.automation.siemens.co...iew/de/2738030
    Zitieren Zitieren Ret_val nach BLKMOV  

  2. #2
    Registriert seit
    17.04.2007
    Ort
    Kiel
    Beiträge
    496
    Danke
    162
    Erhielt 67 Danke für 63 Beiträge

    Standard

    Warum überprüfst Du in Deinem Programm nicht vorher die Länge der DB? Dann kannst Du den BLKMOV doch für den ermittelten Bereich ausführen. Wäre das nicht viel sauberer?

    Kieler
    So einfach wie möglich – so kompliziert wie nötig.
    Zitieren Zitieren DB Länge  

  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

    die 8003 wird hier aber vom projekt generiert, das ist keine fehlerinformation des SFC20 BLKMOV ...

    Quell- und Zielfeld dürfen sich nicht überlappen. Ist das angegebene Zielfeld
    größer als das Quellfeld, dann werden auch nur so viele Daten in das Zielfeld
    kopiert, wie im Quellfeld stehen.
    Ist das angegebene Zielfeld kleiner als das Quellfeld, dann werden nur so viele
    Daten kopiert, wie das Zielfeld aufnehmen kann.
    also solltest du die größen-prüfung abschalten, z.b. auskommentieren
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. #4
    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 Kieler Beitrag anzeigen
    Warum überprüfst Du in Deinem Programm nicht vorher die Länge der DB? Dann kannst Du den BLKMOV doch für den ermittelten Bereich ausführen. Wäre das nicht viel sauberer?

    Kieler
    schau dir mal das projekt an, genau die überprüfung ist das problem
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #5
    Registriert seit
    28.11.2007
    Beiträge
    51
    Danke
    1
    Erhielt 9 Danke für 9 Beiträge

    Standard

    Hallo,

    das funktioniert so nicht mit dem Beispiel, da im FC81 vorher die Gleichheit der DB's geprüft wird
    Code:
    // Check Equal Source- and Destination Length
    // if different exit with Ret_Val H8003
          L     #Src_Len
          L     #Dsc_Len
          ==I   
          SPB   L_OK
          L     W#16#8003
          T     #RET_VAL
          BEA
    und zudem die Länge des Ziel-DB als Länge für den Zielblock angegeben wird.
    Code:
    // Number of Bytes to Copy
          L     #Test_DB_Length
          T     W [AR1,P#2.0]
    Das wäre dann so als ob als Quelle z.B. P#DBX0.0 BYTE 10 und als Ziel P#DBX0.0 BYTE 20 deklariert wird.


    Damit es grundsätzlich erstmal funktioniert musst Du die Gleichheits-Abfrage der DB's entfernen und die Länge des Quell-DB's als Länge für den Ziel-DB eintragen.

    Code:
    // Number of Bytes to Copy
          L     #Src_Len
          T     W [AR1,P#2.0]
    Software-Programmierung ist das Rennen zwischen Programmierern,
    die immer größere, idiotensichere Programme zu entwickeln versuchen
    und dem Universum, das immer größere Idioten entwickelt.

  6. Folgender Benutzer sagt Danke zu MTec für den nützlichen Beitrag:

    Kodan (28.05.2008)

  7. #6
    Registriert seit
    17.04.2007
    Ort
    Kiel
    Beiträge
    496
    Danke
    162
    Erhielt 67 Danke für 63 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    schau dir mal das projekt an, genau die überprüfung ist das problem
    Schon recht. Das kommt davon, wenn einem das Problem nicht bis zu Ende liest.
    So einfach wie möglich – so kompliziert wie nötig.

  8. #7
    Kodan ist offline Benutzer
    Themenstarter
    Registriert seit
    02.03.2007
    Beiträge
    43
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi zusammen...


    Das abschalten der Abfrage (länge DB hatte ich schon entfernt) und die Änderung der Anzahl der zu übertragenden Bytes hat die Lösung gebracht...


    Danke an alle ..besonders an MTec...

    Es zeigt ich hab noch nicht alles verstanden was das Pointerformat angeht...

    Gruß Kodan
    Zitieren Zitieren Funktioniert so jetzt einwandfrei  

Ähnliche Themen

  1. FC105 - Ret_Val 8
    Von Roos im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 03.05.2011, 09:05
  2. SFC84 - trotz REQ - FLANKE 7002 als RET_VAL
    Von Gerri im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 01.11.2010, 09:06
  3. Blkmov
    Von sps_mitte im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 06.08.2010, 12:24
  4. Antworten: 8
    Letzter Beitrag: 15.12.2009, 00:13
  5. BlkMov
    Von Anonymous im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 15.02.2004, 11:33

Lesezeichen

Berechtigungen

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