-> Hier kostenlos registrieren
Hallo Leute,
ich habe hier ein Konstrukt im Kopf und frage mich, ob ich das so machen kann. Habe dazu nichts gefunden.
Die Idee ist, Persistente Statusvariablen zu kapseln, dass die nur auf definierte weise manipuliert werden können. also ungefähr so. Ich saug mir mal zu Anschauungszwecken ne statusID aus den Fingern:
der Aufruf sähe dann so aus:
Wie seht ihr das? Brauche ich den Aufruf von statusID=> im Aufruf oder ist das Dank der persistenten Output Variablen überflüssig? Es geht natülich in Wahrheit um viel mehr als nur EINE Statusvariable.
Würdet ihr das Problem ähnlich lösen oder lieber völlig anders?
ich habe hier ein Konstrukt im Kopf und frage mich, ob ich das so machen kann. Habe dazu nichts gefunden.
Die Idee ist, Persistente Statusvariablen zu kapseln, dass die nur auf definierte weise manipuliert werden können. also ungefähr so. Ich saug mir mal zu Anschauungszwecken ne statusID aus den Fingern:
Code:
FUNCTION_BLOCK SysStatus
VAR_INPUT
//zum Variablen auslesen wird der code nicht ausgeführt.
bExecute: BOOL:=FALSE;
//Nutzdaten
addToStatusID: INT;
//...
END_VAR
VAR_OUTPUT PERSISTENT
statusID: INT;
//...
END_VAR
============================
//zum Variablen auslesen wird der code nicht ausgeführt.
IF NOT bExecute THEN
RETURN;
END_IF
//manipuliere die Daten...
//statusID darf keine priemenzahlen beinhalten...irgendwas halt ;)
//bExecute zurücksetzen
bExecute := FALSE;
der Aufruf sähe dann so aus:
Code:
SysStatus(bExecute:=TRUE, addToStatusID:=3, [B]statusID=>[/B]);
IF SysStatus.statusID > 15 THEN //FB wird hier nicht ausgeführt (ist das mit dem bExecute eigentlich notwending?)
//Juhuuuu! mach hier was...
END_IF
Wie seht ihr das? Brauche ich den Aufruf von statusID=> im Aufruf oder ist das Dank der persistenten Output Variablen überflüssig? Es geht natülich in Wahrheit um viel mehr als nur EINE Statusvariable.
Würdet ihr das Problem ähnlich lösen oder lieber völlig anders?