Autor Thema: dimm_i Fehler bei Netzausfall  (Gelesen 19635 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

dalbi

  • Gast
Re: dimm_i Fehler bei Netzausfall
« Antwort #15 am: 27. Januar 2008, 15:20:54 »
Falls das so ist, musste nur der entsprechende Hinweis am Kopf der Funktion.

Meines wissen nach kann man das nur hier Einstellen (siehe Bild).

Das Problem ist nur das davon dann der ganze DB betroffen ist.

MfG
Daniel



[gelöscht durch Administrator]
« Letzte Änderung: 27. Januar 2008, 15:28:23 von dalbi »

dalbi

  • Gast
Re: dimm_i Fehler bei Netzausfall
« Antwort #16 am: 27. Januar 2008, 15:27:08 »
Um beim Beispiel des dimm_i zu bleiben würde das hier bedeuten das die Dimmfunktion komplett bei 0 startet das heisst nach einem Neustart wär das Licht bei Mac erst mal dunkel.  ;D

MfG
Daniel

Offline MacDeath

  • Newbie
  • *
  • Beiträge: 29
    • Profil anzeigen
Re: dimm_i Fehler bei Netzausfall
« Antwort #17 am: 27. Januar 2008, 17:02:53 »
das wär nich so schön. Und... wenn man so wie ich das ganze jetzt in eine bzw. so wie bei mir mehrere verschachtelte multiinstanzen gepackt hat.  ist alles betroffen!
bei mir gibt es ja keinen direkten instanz-DB zum dimm_i (hatte ich nicht erwähnt). dimm_i ist teil eines FB's für einen lichtsteuerungskreis, der ja auch einen db hat ...dieser ist wiederum in einem FB der alle lichtsteuerungskreise_FB's in sich hat...alles multiinstanz. nur der hauptfb für licht hat dann einen db in dem alle anderen db natürlich drinstecken.
Vorteil: speicherbedarf und ordung in sachen übersicht und struktur.
 nachteil: ändere ich eine in/out/stat-variable in einem fb der verschachtelt is, muss ich den ganzen quark von unten nach obenneu generieren also die fb's bis zum eigentlichen db vom licht FB, der dann im OB 1 ist. wie auch Rolleden haupt fb etc.
das is ne frimelei ...aber es klappt und ich habe keine vielen db's  pro hauptprogrammteil nur einen instanz an dem ich nich ran muss. und ein paar globale DB's für daten abfragen.... für HMI etc.

 
« Letzte Änderung: 27. Januar 2008, 17:10:20 von MacDeath »

dalbi

  • Gast
Re: dimm_i Fehler bei Netzausfall
« Antwort #18 am: 27. Januar 2008, 22:01:36 »
Habe noch eine Möglichkeit gefunden, der Baustein erkennt selbstständig ob ein Neustart war.

Beispiel:
FUNCTION FC200 : BYTE

VAR_IN_OUT
  Startup : BOOL;
END_VAR
VAR_TEMP
  (* Strukte für SFC6 "RD_INFO" *)
  TOP_SI: struct
    EV_CLASS: byte;
    EV_NUM:   byte;
    PRIORITY: byte;
    NUM:      byte;
    TYP2_3:   byte;
    TYP1:     byte;
    ZI1:      word;
    ZI2_3:    dword;
  end_struct;
  START_UP_SI: struct
    EV_CLASS: byte;
    EV_NUM:   byte;
    PRIORITY: byte;
    NUM:      byte;
    TYP2_3:   byte;
    TYP1:     byte;
    ZI1:      word;
    ZI2_3:    dword;
  end_struct;
  ERR : INT;
END_VAR

BEGIN

(*****************************************************************************
 Startinformation des aktuellen OBs auslesen mit der SFC 6 "RD_SINFO"
*****************************************************************************)
  ERR := RD_SINFO (TOP_SI := TOP_SI, START_UP_SI := START_UP_SI);

(***************************************************************************** 
 Anlauf merken TOP_SI.EV_NUM   
 
 OB1_SCAN_1  BYTE  -  B#16#01: Abschluss des Neustarts (Warmstarts)
                   -  B#16#02: Abschluss des Wiederanlaufs
                   -  B#16#03: Abschluss des freien Zyklus
                   -  B#16#04: Abschluss des Kaltstarts
                   -  B#16#05: Erster OB 1-Zyklus der neuen Master-CPU nach
                               Master-Reserve-Umschaltung und STOP des
                               bisherigen Masters
*****************************************************************************)
  IF TOP_SI.EV_NUM = 1 OR TOP_SI.EV_NUM = 2 OR TOP_SI.EV_NUM = 4 THEN
    Startup := TRUE;
  END_IF; 
 
  FC200 := TOP_SI.EV_NUM;
 
END_FUNCTION

Müsste man dann allerdings in alle Funktionen einfügen die da betroffen sind. (arbeit)

MfG
Daniel