Einen schönen Montag Morgen allen 
Ich habe mir den Code zum Einlesen noch einmal genauer angeschaut eben, so wie OHGN ihn vorgeschlagen hat:
Code:
U E 0.4 //Prüfen ob noch in Endlage
SPBN P401
CALL FC 105
IN :=PEW6 //angenommen es wäre dieser Analog-Eingang
HI_LIM :=2.000000e+001 //Maxwert ist 20kN
LO_LIM :=0.000000e+000 //Minwert ist 0kN
BIPOLAR:=FALSE
RET_VAL:=MW50
OUT :=MD0 //normierter Wert
L MD 0 //normierter Wert
L MD 4 //max Speicherwert
<R //wenn neuer Wert grösser als alter wert
SPB P402
TAK
T MD 4 //dann neuen Wert in MD 4 schreiben
SPA P402
P401: L 0.000000e+000 //wenn nicht mehr in Endlage
T MD 0 // 0 in MD0 schreiben
T MD 4 //und MD4 schreiben
P402: NOP 0
Dabei ist mir allerdings etwas aufgefallen, so in etwa in der Mitte (fett geschrieben). Insgesamt würde diese Variante dann bedeuten dass er den Wert einliest, mit dem gespeicherten Maximalwert vergleicht, und wenn der aktuelle Wert grösser ist als der Maximalwert, dann Sprung zu P402 ohne vorher den aktuellen Wert als neuen Maximalwert zu speichern für den nächsten Zyklus.
Da es mir aber darum geht, am Ende in MD 4 den höchsten Wert gespeichert zu haben, der während der ganzen Zeit gemessen wurde, wäre es da nicht sinnvoller das Fettgedruckte durch
zu ersetzen?
Weil das <R vergleicht ja ob MD4 < MD0 und wenn ja (VKE=1) dann sollte er doch die nächsten beiden Zeilen
Code:
TAK
T MD 4 //dann neuen Wert in MD 4 schreiben
auch gleich umsetzen, da diese ja dann den (höheren) Wert von MD0 in MD4 schreiben, und sich somit ein neuer Maximalwert ergibt für den nächsten Zyklus.
Oder habe ich die <R Anweisung falsch verstanden?
Bookmarks