-> Hier kostenlos registrieren
Hallo Leute !
Ich habe gestern mit einem Problem gekämpft wozu ich noch keine Lösung gefunden habe und gern mal Eure Meinung hören wollte.
Ich habe eine Funktion, die ausschließlich mit Eingangs/Ausgangsvariablen arbeitet. Diese Variablen dienen letztlich dazu, ein RS-Flipflop zu setzen.
Wenn ich diese Funktion aufrufe und Parametriere, sind alle angelegten Parameter Datenworte in einem DB, die jedoch stark schwanken (Analogwerte).
Das Problem ist nun, dass der RS-FF nicht gesetzt bleibt sondern ständig flackert, obwohl die Rücksetzbedingung nicht erfüllt ist.
Wenn ich den Code aus dem FC direkt dort einfüge, wo der FC normalerweise aufgerufen wird, und ihn exakt so parametriere, dann funktioniert es genau so wie es sein soll. Weiß jemand Rat dazu ?
Sinnbildlich soll der folgende Code das mal darstellen. Bei dem echten Programm sieht die Funktion weit komplexer aus. Falls das wichtig sein sollte, stell ich das auch nochmal mit hinein.
Funktion:
Funktionsaufruf
Danke für Eure Mühe
Ich habe gestern mit einem Problem gekämpft wozu ich noch keine Lösung gefunden habe und gern mal Eure Meinung hören wollte.
Ich habe eine Funktion, die ausschließlich mit Eingangs/Ausgangsvariablen arbeitet. Diese Variablen dienen letztlich dazu, ein RS-Flipflop zu setzen.
Wenn ich diese Funktion aufrufe und Parametriere, sind alle angelegten Parameter Datenworte in einem DB, die jedoch stark schwanken (Analogwerte).
Das Problem ist nun, dass der RS-FF nicht gesetzt bleibt sondern ständig flackert, obwohl die Rücksetzbedingung nicht erfüllt ist.
Wenn ich den Code aus dem FC direkt dort einfüge, wo der FC normalerweise aufgerufen wird, und ihn exakt so parametriere, dann funktioniert es genau so wie es sein soll. Weiß jemand Rat dazu ?
Sinnbildlich soll der folgende Code das mal darstellen. Bei dem echten Programm sieht die Funktion weit komplexer aus. Falls das wichtig sein sollte, stell ich das auch nochmal mit hinein.
Funktion:
Code:
U #IN1
S #OUT
U #IN2
R #OUT
NOP 0
Funktionsaufruf
Code:
U DB240.DBX 0.1
= L 0.0
BLD 103
U DB240.DBX 0.2
= L 0.1
BLD 103
CALL FC 240
IN1:=L0.0
IN2:=L0.1
OUT:=DB240.DBX0.3
Danke für Eure Mühe