@Felo
Vermutumg:
Deine AusgangsVariablen sind
OUT_Fehler (Bit)
OUT_Null (Bit)
OUT_Int
OUT_Ergebnis1, OUT_Ergebnis2, OUT_Ergebnis3, OUT_Ergebnis4
und Deine EingangsVariablen sind anscheinend
IN_AAD, IN_SUB, IN_MUL und IN_DIV (Bit)
IN_Int
IN__Int
wenn das kein Schreibfehler ist, sind die beiden Namen zumindest schlecht zu unterscheiden.
IN_Int_1 und IN_Int_2 wäre klarer.
16-Bit-INT-Variablen können keine Werte > 32.767 oder < -32.768 annehmen bzw. darstellen.
Vergleiche >I bzw. <I sind so gesehen witzlos.
Wenn Du EingangsWerte vom Typ DINT hast, aber die GrundrechenArten auf INT beschränken willst, na ja ... aber dann mit <D bzw. >D.
Dann könntest Du aber gleich beide EingangsWerte auf MIN bzw. MAX prüfen.
Wo werden Wert1, Wert2, ... Wert7 und Wert8 befruchtet?
Hast Du vor, mit OUT_Ergebnis1, OUT_Ergebnis2, OUT_Ergebnis3 und OUT_Ergebnis4 noch etwas zu tun? Sind das AusgangsVariablen des FC? Für welchen Zweck ist dann OUT_Int vorgesehen?
L IN__Int
L 0
<> I
BEB
SET
= OUT_Null
Wenn der Divisor nicht 0 ist, wird der FC verlassen(beendet) - was soll das? Aber ist es wirklich der Divisor? Oder der Summand? Oder der ... ?
L IN_Int
L32767
1
BEB
soll was bewirken? VergleichsOperator 1 ?!
Im folgenden wird -32.768 mit -32.768 verglichen - da kann eigentlich immer nur "gleich" rauskommen, nie "kleiner"!?
L -32768
T OUT_Int
L -32768
< I
BEB
u.s.w. etc.p.p. ...
Ansonsten, siehe #2
Gruss, Heinileini