DDuesentrieb
Level-1
- Beiträge
- 44
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
Hallo Ihr,
ich habe folgendes Problem. Ich möchte mit Hilfe dieser Funktion, abhängig von einem Sollwert und dem Aktualwert, einen Setpoint Merker zuweisen, setzen oder zurücksetzen.
Wenn ich den Setpoint Merker zuweise funktioniert dies problemlos. Sobald ich aber das Setzen oder Rücksetzen verwende wird der Ausgang dauerhaft auf 1 geschrieben.
Kann mir bitte jemand weiterhelfen, wo der Fehler ist.
Wahrscheinlich hab ich ein grundlegenden Mechanismus von Step7 außer acht gelassen, wo mir noch das tiefere Verständnis von Step7 fehlt.
Nachfolgend habe ich die Quelle von meiner Funktion angefügt.
ich habe folgendes Problem. Ich möchte mit Hilfe dieser Funktion, abhängig von einem Sollwert und dem Aktualwert, einen Setpoint Merker zuweisen, setzen oder zurücksetzen.
Wenn ich den Setpoint Merker zuweise funktioniert dies problemlos. Sobald ich aber das Setzen oder Rücksetzen verwende wird der Ausgang dauerhaft auf 1 geschrieben.
Kann mir bitte jemand weiterhelfen, wo der Fehler ist.
Wahrscheinlich hab ich ein grundlegenden Mechanismus von Step7 außer acht gelassen, wo mir noch das tiefere Verständnis von Step7 fehlt.
Nachfolgend habe ich die Quelle von meiner Funktion angefügt.
Code:
FUNCTION "Creating _Setpoint" : VOID
TITLE =
VERSION : 0.1
VAR_INPUT
Act_Value : REAL ;
Set_Value : REAL ;
Delay_Timer_Set : TIMER ;
Delay_Set_Value : S5TIME ;
Type_Setting : INT ; //0 = "=" 1 = "S" 2 = "R"
Type_Setpoint : INT ; //0 = "==" 1 = "<>" 2 = "<" 3 = "<=" 4 = ">" 5 = ">="
Release_Setpoint_Set : BOOL ;
END_VAR
VAR_OUTPUT
Setpoint_Out : BOOL ;
END_VAR
BEGIN
NETWORK
TITLE =Selection of Type
L 0;
L #Type_Setpoint;
==I ;
SPB J000;
L 1;
L #Type_Setpoint;
==I ;
SPB J001;
L 2;
L #Type_Setpoint;
==I ;
SPB J002;
L 3;
L #Type_Setpoint;
==I ;
SPB J003;
L 4;
L #Type_Setpoint;
==I ;
SPB J004;
L 5;
L #Type_Setpoint;
==I ;
SPB J005;
BE ; //Bausteinende
NETWORK
TITLE =Create Setponit "=="
J000: NOP 0;
L #Act_Value;
L #Set_Value;
==R ;
U #Release_Setpoint_Set;
L #Delay_Set_Value;
SE #Delay_Timer_Set;
SPA Ende;
NETWORK
TITLE =Create Setponit "<>"
J001: NOP 0;
L #Act_Value;
L #Set_Value;
<>R ;
U #Release_Setpoint_Set;
L #Delay_Set_Value;
SE #Delay_Timer_Set;
SPA Ende;
NETWORK
TITLE =Create Setponit "<"
J002: NOP 0;
L #Act_Value;
L #Set_Value;
<R ;
U #Release_Setpoint_Set;
L #Delay_Set_Value;
SE #Delay_Timer_Set;
SPA Ende;
NETWORK
TITLE =Create Setponit "<="
J003: NOP 0;
L #Act_Value;
L #Set_Value;
<=R ;
U #Release_Setpoint_Set;
L #Delay_Set_Value;
SE #Delay_Timer_Set;
SPA Ende;
NETWORK
TITLE =Create Setponit ">"
J004: NOP 0;
L #Act_Value;
L #Set_Value;
>R ;
U #Release_Setpoint_Set;
L #Delay_Set_Value;
SE #Delay_Timer_Set;
SPA Ende;
NETWORK
TITLE =Create Setponit ">="
J005: NOP 0;
L #Act_Value;
L #Set_Value;
>=R ;
U #Release_Setpoint_Set;
L #Delay_Set_Value;
SE #Delay_Timer_Set;
Ende: NOP 0;
NETWORK
TITLE =Select Type of Setting
L 0;
L #Type_Setting;
==I ;
SPB S000;
L 1;
L #Type_Setting;
==I ;
SPB S001;
L 2;
L #Type_Setting;
==I ;
SPB S002;
NETWORK
TITLE =Set bit with "="
S000: NOP 0;
U #Delay_Timer_Set;
= #Setpoint_Out;
BE ;
NETWORK
TITLE =Set bit with "S"
S001: NOP 0;
U #Delay_Timer_Set;
S #Setpoint_Out;
BE ;
NETWORK
TITLE =Reset bit with "R"
S002: NOP 0;
U #Delay_Timer_Set;
R #Setpoint_Out;
BE ;
END_FUNCTION