FUNCTION_BLOCK "MBlinken"
TITLE = Anzeige blinken lassen
{ S7_Optimized_Access := 'FALSE' }
VERSION : 0.1
   VAR_INPUT 
      Impulsdauer : Bool;   // Impulsdauer
      Error_1 : Bool;
      Error_2 : Bool;
      Error_3 : Bool;
      Error_4 : Bool;
      Error_5 : Bool;
      Error_6 : Bool;
      Error_7 : Bool;
      Error_8 : Bool;
      Error_9 : Bool;
      Error_10 : Bool;
   END_VAR

   VAR_OUTPUT 
      hAnzeige : Bool;   // Anzeige
   END_VAR

   VAR 
      Flanke_Ausschalttakt : Bool;
      Kein_Blinken : Bool;
      Ausschalttakte : Int;   // Betriebsbereit ist ausgeschaltet
   END_VAR


BEGIN
NETWORK
TITLE = Anzeige bei Error 1-10 1-10 mal blinken lassen

//Anzeige ausschalten:
      UN #Error_1;
      UN #Error_2;
      UN #Error_3;
      UN #Error_4;
      UN #Error_5;
      UN #Error_6;
      UN #Error_7;
      UN #Error_8;
      UN #Error_9;
      UN #Error_10;
      R #hAnzeige;
      R #Flanke_Ausschalttakt;
      R #Kein_Blinken;
      SPB NoAn;

//Anzeige aktivieren
      U #Impulsdauer;
      UN #Kein_Blinken;
      = #hAnzeige;

      U #Impulsdauer;
      FN #Flanke_Ausschalttakt;
      SPBN mHu;

      L #Ausschalttakte;
      + 1;
      T #Ausschalttakte;


mHu:      L #Ausschalttakte;
      L 2;
      >=I;
      U #Kein_Blinken;
      R #Kein_Blinken;
      SPB NoAn;

      U #Kein_Blinken;
      SPB En01;

      TAK;
      L 1;
      >=I;
      U #Error_1;
      S #Kein_Blinken;
      SPB NoAn;

      TAK;
      L 2;
      >=I;
      U #Error_2;
      S #Kein_Blinken;
      SPB NoAn;

      TAK;
      L 3;
      >=I;
      U #Error_3;
      S #Kein_Blinken;
      SPB NoAn;

      TAK;
      L 4;
      >=I;
      U #Error_4;
      S #Kein_Blinken;
      SPB NoAn;

      TAK;
      L 5;
      >=I;
      U #Error_5;
      S #Kein_Blinken;
      SPB NoAn;

      TAK;
      L 6;
      >=I;
      U #Error_6;
      S #Kein_Blinken;
      SPB NoAn;

      TAK;
      L 7;
      >=I;
      U #Error_7;
      S #Kein_Blinken;
      SPB NoAn;

      TAK;
      L 8;
      >=I;
      U #Error_8;
      S #Kein_Blinken;
      SPB NoAn;

      TAK;
      L 9;
      >=I;
      U #Error_9;
      S #Kein_Blinken;
      SPB NoAn;

      TAK;
      L 10;
      >=I;
      U #Error_10;
      S #Kein_Blinken;
      SPB NoAn;

      TAK;
      L 10;
      >I;
      S #Kein_Blinken;
      SPB NoAn;

      SPA En01;

NoAn:      L 0;
      T #Ausschalttakte;

En01:      NOP 0;

NETWORK
TITLE = Ende
      BE;


END_FUNCTION_BLOCK

