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

Ergebnis 1 bis 3 von 3

Thema: SFC23

  1. #1
    Registriert seit
    19.03.2004
    Beiträge
    35
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Morgen die Herren,

    vor kurzem hatte ich die Frage gestellt wie ich am besten Bereiche eines oder komplette DB "resete" (vgl. http://www.sps-forum.de/phpBB2/viewtopic.php?t=84)

    Man hat mir unter anderem den SFC23 empfohlen:
    " Mit der SFC 23 "DEL_DB" (delete data block) löschen Sie einen im Arbeitsspeicher und gegebenenfalls im Ladespeicher der CPU liegenden Datenbaustein. Der zu löschende DB darf weder in der aktuellen noch in einer niederprioren Ablaufebene aufgeschlagen sein. D. h., er darf weder in einem der beiden DB-Register noch im B-Stack eingetragen sein. Bei Aufruf der SFC 23 startet die CPU sonst den OB 121. Wenn der OB 121 nicht vorhanden ist, wechselt die CPU in STOP.

    Mit dem SFC 23 ist ein Datenbaustein löschbar wenn:
    Durch Aufruf der SFC 22 "CREAT_DB" erzeugt wurde oder mittels STEP 7 auf die CPU übertragen wurde und nicht mit dem Schlüsselwort
    UNLINKED erzeugt wurde.
    NICHT LÖSCHBAR allerdings wenn er auf der Flashcard gespeichert ist! "


    Nun habe ich meine Funktion damit versucht:
    Um ganz sicher zu gehen die Hirarchieebenen einzuhalten, rufe ich den wie folgt auf :

    OB1 => FB11 => SFC 23

    Der zu "resetende" DB, DB 59 befindet sich tiefer:

    OB1 => FC50 => FB59 => DB59


    Meine SPS geht trotz OB121 in Sammelfehler. Baugruppenzustand:
    "Bereichslängenfehler beim Schreiben
    DB nicht geladen"

    Hat jemand eine Idee was ich falsch mache ?


    Gruß

    Martin
    Zitieren Zitieren SFC23  

  2. #2
    Registriert seit
    19.03.2004
    Beiträge
    35
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    also *g* .....die Funktion ist schon ok so ....weil der SFC23 löscht nämlich meinen Baustein

    Man hatte mich also falsch verstanden....ich will keinen DB entfernen sondern nur mit Nullen befüllen *g*.

    Naja das nur als Info


    Gruß

    Martin
    Zitieren Zitieren Thema erledigt  

  3. #3
    Registriert seit
    25.06.2003
    Ort
    Emden
    Beiträge
    61
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moinsens,
    in dem kleinen Bspl. kannst du sehen, wie man ein Array auf '0' setzt.
    Diese Funktion kannst du natürlich auch auf einen DB übertragen.
    (Fill = SFC 21)

    Code:
    L     0                           // Wert '0' für CLEAR laden
    T     #Wert_0                
    
    U     #T_Clear               //  CLEAR ARRAY
    SPBN  CLR                    
    CALL  "FILL"                  
    BVAL   :=#Wert_0         
    RET_VAL:=#Fehlercode             
    BLK    :=#Visi.Raeumfolge        
    
    CLR: NOP   0
    mfG
    Ingo dV

    Regelmässiges Versagen ist auch
    eine Form der Zuverlässigkeit
    Zitieren Zitieren Löschen  

Lesezeichen

Berechtigungen

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