Hallo und guten Morgen,

Ich habe eben mal ein altes Programm von mir aufgerufen und wollte das Programm simulieren.
Explizit geht es hier um eine Dimmung über 1-10V (Analogausgabewort).

Nun sind bei mir in der Simulation aber manchmal einfach so irgendwelche EIngänge oder Ausgänge auf TRUE gesetzt, was ich auch durch forcen nicht ändern kann, der Ausgang/Eingang springt wieder auf TRUE zurück.

Ich habe allerdings auch schon bemerkt, dass bei Übertragung des Programms auf eine PLC Hardware (ich nutze immer die 750-881)
die Probleme oft verschwinden.

Habt ihr hier vieleicht auch Erfahrungen gesammelt mit der Simulation oder gibt es vieleicht bekannte Probleme?

Ich würde das Programm gerne einem Interessierten schicken, damit dieser es bei sich testen kann. Öffentlich will ich es nicht komplett einstellen, da es ja immerhin meiner Firma "gehört".

Einen Auszug daraus (Die Stelle, um die es geht) seht ihr hier:

Code:
FUNCTION_BLOCK OnOffDimAnalogue
VAR_INPUT
    xLicht_EIN_AUS: BOOL;
    bEinschalthelligkeit: BYTE;
    xLicht_Heller: BOOL;
    xLicht_Dunkler: BOOL;
END_VAR
VAR_OUTPUT
    iAnalogwert_Ausgabe: INT;
    xCBOnOff: BOOL;
END_VAR
VAR
    Instanz1_R_TRIG: R_TRIG;
    Analogwert: INT;
END_VAR
Code:
Instanz1_R_TRIG(CLK:=xLicht_EIN_AUS);

IF Analogwert = 0 AND Instanz1_R_TRIG.Q = TRUE THEN
Analogwert := REAL_TO_INT((BYTE_TO_REAL(bEinschalthelligkeit)/INT_TO_REAL(100)) * 32761);
ELSIF Analogwert > 0 AND Instanz1_R_TRIG.Q = TRUE THEN
Analogwert := 0;
END_IF;

IF xLicht_Heller = TRUE AND Analogwert < 32761 THEN
Analogwert := LIMIT(0, Analogwert + 100, 32761);
ELSIF xLicht_Dunkler = TRUE AND Analogwert > 0 THEN
Analogwert := LIMIT(0, Analogwert - 100, 32761);
END_IF;

iAnalogwert_Ausgabe:=LIMIT(0,Analogwert,32761);

IF Analogwert = 0
THEN
xCBOnOff := TRUE;
ELSIF
Analogwert > 0
THEN
xCBOnOff := FALSE;
ELSE
xCBOnOff := FALSE;
END_IF;
- CB steht für CheckBack

Die Variable xLicht_EIN_AUS ist dauerhaft auf TRUE obwohl sie eigentlich FALSE sein müsste. Die Variablen in dem FB in welchem dieser FB instanziert wurde, sind schließlich auch auf FALSE.

Das ergibt für mich überhaupt keinen Sinn.