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

Ergebnis 1 bis 8 von 8

Thema: SFC14 Fehler bei unterschiedlicher Länge von E/A Daten

  1. #1
    Registriert seit
    23.07.2013
    Beiträge
    16
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich verstehe es einfach nicht. Mache jetzt seit 2 Stunden an diesem SFC 14 rum.
    Ich benutzte den Baustein mehrfach in einem FB in SCL geschrieben. Ich hatte noch nie Probleme irgendwelche Daten in den E oder A Bereich zu kopieren. Ich weiss also wie ich mit dem Baustein umgehen muss und wie er eigentlich funktioniert.

    Das ist meine Hardwarekonfig (siehe Bild)


    und das mein Aufruf:

    VAR
    safety_test: ARRAY[0..31] OF BYTE;
    END_VAR

    error := DPRD_DAT(LADDR:=INT_TO_WORD(32), RECORD=>safety_test);

    Das hat bis jetzt immer funktioniert!
    Als error bekomme ich immer 16#80B1. Also das etwas mit der Länge nicht stimmt?
    Bei allen anderen Aufrufen sind die E/A Adressbereiche gleich lang! Kann es daran liegen?

    Für Tipps wie ich das debuggen kann oder gelöst bekomme wäre ich sehr dankbar.

    Grüße
    Chris
    Angehängte Grafiken Angehängte Grafiken
    • Dateityp: png hw.PNG (1,1 KB, 28x aufgerufen)
    Geändert von ChrissT (23.05.2016 um 16:08 Uhr)
    Zitieren Zitieren SFC14 Fehler bei unterschiedlicher Länge von E/A Daten  

  2. #2
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.337
    Danke
    449
    Erhielt 688 Danke für 513 Beiträge

    Standard

    Die ungleichen EA-Längen sind egal. Die parametrierten Längen schauen OK aus.
    Was aber ein Problem sein kann (bringt glaub ich auf Fehler 80B1) ist wenn das von dir in der Hardware-Konfig verwendete Modul Daten-Konsistenz unterstützt.
    Die SFC14/15 erlauben nur Module mit Datenkonsistenz.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  3. #3
    ChrissT ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.07.2013
    Beiträge
    16
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi,

    Danke für die Antwort. Habs nur nicht ganz verstanden
    Will der SFC14 Datenkonsistenz oder nicht?
    Kannst du mir vielleicht sagen wie ich herausfinden kann ob die Daten konsistent sind?

    Gibt es dazu eine Alternative? Kann man sonst noch in SCL irgendwie die Daten aus dem Eingangsdatenbereich kopieren bei der die Datenkonsistenz keine Rolle spielt?

  4. #4
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.727
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    Also der SFC14 will Datenkonsistenz über die ganze Länge (nicht nur über die Einheit) ... das ist unumgänglicher Fakt, das steht bei Step7 überlicherweise in den Moduleinstellungen (wo du auch die E/A Adresse vorgibst). Was hast du da für ein Modul vor dir? Hersteller/Typ/GSD?
    Bei manchen Sachen wie DP/DP Koppler ist das einstellbar, bei anderen Sachen ist das vom Gerätehersteller vorgegeben.

    2.te Möglichkeit (notfalls mit Prozessabbild vergrößern):
    Einfach SFC20/BLKMOV verwenden.

    Mfg
    Manuel
    Geändert von MSB (23.05.2016 um 18:18 Uhr)
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  5. #5
    ChrissT ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.07.2013
    Beiträge
    16
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo!

    Jap, das wars. Ist nur Byte-Konsistent! Hast du eben ein Beispiel für BLKMOV?
    Danke!

  6. #6
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.337
    Danke
    449
    Erhielt 688 Danke für 513 Beiträge

    Standard

    Zitat Zitat von ChrissT Beitrag anzeigen
    Hast du eben ein Beispiel für BLKMOV?
    Einfach BLKMOV mit "P#E 32.0 BYTE 32" am SRC Eingang.
    Dafür muss der Eingangsbereich aber innerhalb des Prozessabbildes sein (Zugriff auf EW und nicht PEW) sein.
    Das ist aber mit 32 eh gegeben.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  7. #7
    ChrissT ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    23.07.2013
    Beiträge
    16
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    vielen Dank nochmal! Meinst du so?

    Code:
    TYPE AnyPointer
        STRUCT
            ID      : BYTE;
            TYPE    : BYTE;
            Count   : INT;
            DB      : WORD;
            Pointer : DWORD;
        END_STRUCT
    END_TYPE
    
    VAR_INPUT
        DB_Num : INT;
    END_VAR
    
    VAR
        dest: AnyPointer;
        dest_any AT dest: ANY;
        error : INT;
    END_VAR
    
    dest.ID      := 16#10;
    dest.TYPE    := 16#02; // Byte
    dest.COUNT   := 16#20; // 32
    dest.DB      := INT_TO_WORD(DB_Num);
    dest.Pointer := DW#16#84000000;
    
        error := SFC20(srcblk:=P#E 32.0 BYTE 32, dstblk:=dest_any);
    Funktioniert so oder?
    Zum testen könnte ich doch auch ersteinmal so schreiben:

    Für DB10 und Offset 64

    Code:
       error := SFC20(srcblk:=P#E 32.0 BYTE 32, dstblk:=P#DB10.DBX64.0 BYTE 32);
    Geändert von ChrissT (23.05.2016 um 19:42 Uhr)

  8. #8
    Registriert seit
    06.10.2003
    Beiträge
    3.408
    Danke
    449
    Erhielt 504 Danke für 407 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von RONIN Beitrag anzeigen
    .. Dafür muss der Eingangsbereich aber innerhalb des Prozessabbildes sein (Zugriff auf EW und nicht PEW) sein.
    Das ist aber mit 32 eh gegeben.
    Zumindest kann man das vermuten. Das ist übrigens ein weiterer Grund, weshalb es mit der SFC14/15 nicht funktioniert. Die SFC14/15 verlangen nach konfigurierten Peripherieadressen mit Datenkonsistenz über den gesamten Bereich.
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

Ähnliche Themen

  1. UDT Länge ändern. Daten nicht verlieren
    Von klauserl im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 26.01.2014, 20:22
  2. Antworten: 4
    Letzter Beitrag: 11.02.2013, 10:34
  3. Fehler bei Ausfürhung von MID in SCL
    Von Tigerente1974 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 21.02.2012, 22:15
  4. Fehler bei der Installation von Simocode ES
    Von Tommy1981 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 23.08.2010, 10:13
  5. SFC14/15 konstistente Daten
    Von Fileplayer im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 07.05.2008, 08:59

Lesezeichen

Berechtigungen

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