ArtucovP
Level-1
- Beiträge
- 13
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen,
dies ist mein erster Beitrag und ich möchte mich kurz einmal vorstellen: Patrick, 31 Jahre
Ich arbeite mich gerade im TIA in SCL ein, selbststudium quasi. Als Hilfsmittel nutze ich das Buch "SPS Programmierung mit SCL im TIA-Portal" von Karl Schmitt. Was mich aktuell beschäftigt ist eine sinnvolle und übersichtliche Not-Halt Funktion.
gegeben:
Ich nutze einen NH-Schalter, einen Kontakt zur RM, einen Quittiertaster, einen Ausgang um die Störung anzuzeigen und einen Ausgang um zu signalisieren "quittierbar". Zusätzlich habe ich am Baustein einen Takt Eingang eingefügt, den ich mit einem Taktmerker verschalte.
Mein aktueller Lösungsweg:
FUNCTION_BLOCK "NH_Ueberwachung"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
NH_OK_in : Bool;
NH_Stoerung_in : Bool;
Zusatz_in : Bool;
Takt : Bool;
END_VAR
VAR_OUTPUT
NH_OK_out : Bool;
NH_quitt : Bool;
END_VAR
VAR_OUTPUT RETAIN
NH_Stoerung : Bool;
END_VAR
VAR_TEMP
quittieren : Bool;
END_VAR
BEGIN
//Einfache Not-Halt Funktion
IF
#NH_OK_in AND NOT #NH_Stoerung_in AND NOT #Zusatz_in //Not-Halt Okay
THEN
#NH_OK_out := 1;
#NH_quitt := 0;
#NH_Stoerung := 0;
ELSIF
NOT #NH_OK_in AND #NH_Stoerung_in AND #Zusatz_in //Not-Halt aktiv
THEN
#NH_OK_out := 0;
#NH_quitt := 0;
#NH_Stoerung := 1;
ELSIF
NOT #NH_OK_in AND #NH_Stoerung_in AND NOT #Zusatz_in //Not-Halt quittierbar
THEN
#NH_OK_out := 0;
#quittieren := 1;
#NH_Stoerung := 1;
END_IF;
//Blinken für Quittierung
#NH_quitt := #quittieren AND #Takt; //Der Ausgang quitt blinkt (Taktmerker benötigt)
END_FUNCTION_BLOCK
Gibt es verbesserungsvorschläge? Wie wäre euer Lösungsweg/Vorschlag?
Viele Grüße,
Patrick
dies ist mein erster Beitrag und ich möchte mich kurz einmal vorstellen: Patrick, 31 Jahre

Ich arbeite mich gerade im TIA in SCL ein, selbststudium quasi. Als Hilfsmittel nutze ich das Buch "SPS Programmierung mit SCL im TIA-Portal" von Karl Schmitt. Was mich aktuell beschäftigt ist eine sinnvolle und übersichtliche Not-Halt Funktion.
gegeben:
Ich nutze einen NH-Schalter, einen Kontakt zur RM, einen Quittiertaster, einen Ausgang um die Störung anzuzeigen und einen Ausgang um zu signalisieren "quittierbar". Zusätzlich habe ich am Baustein einen Takt Eingang eingefügt, den ich mit einem Taktmerker verschalte.
Mein aktueller Lösungsweg:
FUNCTION_BLOCK "NH_Ueberwachung"
{ S7_Optimized_Access := 'TRUE' }
VERSION : 0.1
VAR_INPUT
NH_OK_in : Bool;
NH_Stoerung_in : Bool;
Zusatz_in : Bool;
Takt : Bool;
END_VAR
VAR_OUTPUT
NH_OK_out : Bool;
NH_quitt : Bool;
END_VAR
VAR_OUTPUT RETAIN
NH_Stoerung : Bool;
END_VAR
VAR_TEMP
quittieren : Bool;
END_VAR
BEGIN
//Einfache Not-Halt Funktion
IF
#NH_OK_in AND NOT #NH_Stoerung_in AND NOT #Zusatz_in //Not-Halt Okay
THEN
#NH_OK_out := 1;
#NH_quitt := 0;
#NH_Stoerung := 0;
ELSIF
NOT #NH_OK_in AND #NH_Stoerung_in AND #Zusatz_in //Not-Halt aktiv
THEN
#NH_OK_out := 0;
#NH_quitt := 0;
#NH_Stoerung := 1;
ELSIF
NOT #NH_OK_in AND #NH_Stoerung_in AND NOT #Zusatz_in //Not-Halt quittierbar
THEN
#NH_OK_out := 0;
#quittieren := 1;
#NH_Stoerung := 1;
END_IF;
//Blinken für Quittierung
#NH_quitt := #quittieren AND #Takt; //Der Ausgang quitt blinkt (Taktmerker benötigt)
END_FUNCTION_BLOCK
Gibt es verbesserungsvorschläge? Wie wäre euer Lösungsweg/Vorschlag?
Viele Grüße,
Patrick