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

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

Thema: Sfc14 - ret_val_fehlercode: 80b1

  1. #1
    Registriert seit
    17.08.2012
    Beiträge
    48
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,



    ich bekomme in folgendem Programm, immer einen Fehler (beim beobachten) - RET_VAL-FEHLERCODE: 80B1 = [Die Länge des angegebenen Zielbereichs ist ungleich der mit HW Konfig projektierten Nutzdatenlänge.]

    Ich find den Fehler nicht!

    Hier meine Programm ausschnitte (Programm ist eigentlich für mehrere Regler - ich wills aber erstmal mit einem hinkriegen):


    Danke im Vorraus


    [DB]
    Adresse Deklaration Name Typ Anfangswert Aktualwert Kommentar
    0.0 stat:in Regler_01.Adresse_IN WORD W#16#0 W#16#0
    2.0 stat:in Regler_01.Adresse_OUT WORD W#16#0 W#16#0
    4.0 stat Regler_01.Regler.IN.PEW1 DWORD DW#16#0 DW#16#0 Flow Rd
    8.0 stat Regler_01.Regler.IN.PEW2 DWORD DW#16#0 DW#16#0 Setpoint Rd
    12.0 stat Regler_01.Regler.IN.PEW3 WORD W#16#0 W#16#0 HW Error Rd
    14.0 stat Regler_01.Regler.IN.PEW4 DWORD DW#16#0 DW#16#0 SerialNumber Rd
    18.0 stat Regler_01.Regler.OUT.PAW1 DWORD DW#16#0 DW#16#0 Setpoint Wr

    22.0 stat Regler_01.Regler.OUT.PAW2 WORD W#16#0 W#16#0 HW Error Reset WR

    [FB10]
    Netzwerk: 1 EINLESEN
    CALL "DPRD_DAT" SFC14 -- Read Consistent Data of a Standard DP Slave
    LADDR :=#Adresse_IN #Adresse_IN
    RET_VAL:=#retval #retval
    RECORD :=#Regler.IN #Regler.IN

    Netzwerk: 2 VERARBEITUNG
    //VERARBEITUNG

    Netzwerk: 3 AUSGABE
    CALL "DPWR_DAT" SFC15 -- Write Consistent Data to a Standard DP Slave
    LADDR :=#Adresse_OUT #Adresse_OUT
    RECORD :=#Regler.OUT #Regler.OUT

    RET_VAL:=#retval #retval


    [FB1]
    Netzwerk: 1 Aufruf Regler_1

    CALL #Regler_01
    Adresse_IN :=W#16#100


    Adresse_OUT:=W#16#100


    [HW-KONFIG]
    67 256...259 E ---- 1(3) - - - 1 -
    67 260...263 E ---- 1(3) - - - 2 -
    67 264...265 E ---- 1(3) - - - 3 -
    67 266...269 E ---- 1(3) - - - 4 -
    131 256...259 A ---- 1(3) - - - 5 -

    131 260...261 A ---- 1(3) - - - 6 -

    Zitieren Zitieren Sfc14 - ret_val_fehlercode: 80b1  

  2. #2
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.616
    Danke
    377
    Erhielt 799 Danke für 642 Beiträge

    Standard

    Das Problem lieg bei den RECORD Parameter für SFC14, also #Regler.IN.
    Ich kann es nicht durchschauen. Irgendwo verschwindet es wo #Regler.IN deklariert ist.

    Es scheint das den HW Eingangsbereich das SFC14 transferieren muss ist die Bytes 256 bis 259. Das sind nur 4 bytes.
    SFC14 kann nur für 3 bytes, oder 5 bytes oder grösser verwendet werden.
    Jesper M. Pedersen

  3. #3
    GSOhm ist offline Benutzer
    Themenstarter
    Registriert seit
    17.08.2012
    Beiträge
    48
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Heisst das ich kann gar keinen SFC 14/15 verwenden ??

  4. #4
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.849
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    genau das heisst es. um sfc14/15 nutzen zu können muss in der hw-config der bereich als konsitent angegeben werden.
    hier mal als beispiel dp/dp-koppler. ist aber grundsätzlich bei anderen genauso
    Angehängte Grafiken Angehängte Grafiken
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  5. #5
    Registriert seit
    19.07.2010
    Beiträge
    1.288
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Ich sehe ein anderes Problem. Du möchtest mit SFC14 entsprechend der Deklaration von Regler.In 16 Byte kopieren, aber auf deiner EA-Adresse 100 liegen nur 4 Byte. Du müsstest 4 Aufrufe mit den Variablen Regler.In.PEW1 bis -PEW4 zaubern.

    PS: Ich würde die Variablen -.PED1 nennen
    mfG Aventinus

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

    GSOhm (05.09.2012)

  7. #6
    GSOhm ist offline Benutzer
    Themenstarter
    Registriert seit
    17.08.2012
    Beiträge
    48
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi Aventinus,

    wäre schön wenn es so enifach wäre aber wenn ich im FB10 bei Record #Regler.IN.PED1 hinschreibe gibts mir nen fehler aus

    oder mach ich was falsch?

  8. #7
    Registriert seit
    15.12.2007
    Beiträge
    712
    Danke
    84
    Erhielt 105 Danke für 94 Beiträge

    Standard

    Zitat Zitat von GSOhm Beitrag anzeigen
    Hi Aventinus,

    wäre schön wenn es so enifach wäre aber wenn ich im FB10 bei Record #Regler.IN.PED1 hinschreibe gibts mir nen fehler aus

    oder mach ich was falsch?
    Das liegt daran das du in dem Struct die Variable auch PEW1 und nicht PED1 benannt hast. Trotzdem ist dein PEW1 im Stat-Bereich ein Doppelwort und sollte somit passen.
    **Edit: Oder du änderst in deinem Struct für die 4 "PED's" den Datentyp von DWORD auf BYTE und lässt den Rest am SFC14. Das ergibt dann auch wieder die richtige Breite.

  9. #8
    GSOhm ist offline Benutzer
    Themenstarter
    Registriert seit
    17.08.2012
    Beiträge
    48
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Könntest du mir dein EDIT noch mal erklären, das verstehe ich nicht ganz

  10. #9
    Registriert seit
    15.12.2007
    Beiträge
    712
    Danke
    84
    Erhielt 105 Danke für 94 Beiträge

    Standard

    Das hier

    4.0 stat Regler_01.Regler.IN.PEW1 DWORD DW#16#0 DW#16#0 Flow Rd
    8.0 stat Regler_01.Regler.IN.PEW2 DWORD DW#16#0 DW#16#0 Setpoint Rd
    12.0 stat Regler_01.Regler.IN.PEW3 WORD W#16#0 W#16#0 HW Error Rd
    14.0 stat Regler_01.Regler.IN.PEW4 DWORD DW#16#0 DW#16#0 SerialNumber Rd


    ändern auf:

    4.0 stat Regler_01.Regler.IN.PEW1 BYTE B#16#0 B#16#0 Flow Rd
    5.0 stat Regler_01.Regler.IN.PEW2 BYTE B#16#0 B#16#0 Setpoint Rd
    6.0 stat Regler_01.Regler.IN.PEW3 BYTE B#16#0 B#16#0 HW Error Rd
    7.0 stat Regler_01.Regler.IN.PEW4 BYTE B#16#0 B#16#0 SerialNumber Rd

    Die Frage ist nur ob die Daten wie von die geplant auch wirklich in ein Byte passen. Aber das musst du schon selber schauen.

  11. #10
    Registriert seit
    15.12.2007
    Beiträge
    712
    Danke
    84
    Erhielt 105 Danke für 94 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ach Stopp, Kommando zurück. Ich habe zu schnell gelesen. Ja das Problem ist, wie schon richtig erkannt, das die Daten in HW-Konfig nicht konsistent sind und du im Moment mehrere Aufrufe vom SFC14 brauchst. Lass die Änderung in Byte von mir. Das war quatsch!

Ähnliche Themen

  1. SFC14 steuern
    Von Alex 84 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 21.04.2009, 15:21
  2. SFC14 - Pointerproblem
    Von Wiggi0606 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 28.01.2009, 19:01
  3. SFC14 in AG
    Von Andy_speedy im Forum Feldbusse
    Antworten: 8
    Letzter Beitrag: 16.03.2008, 15:35
  4. Sfc14 / Sfc 15
    Von WL7001 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 14.02.2008, 12:25
  5. SFC14/SFC15
    Von Anonymous im Forum Feldbusse
    Antworten: 10
    Letzter Beitrag: 19.07.2004, 20:17

Lesezeichen

Berechtigungen

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