eine einfache FOR-Schleife mit Min/Max reicht da. Wenn's ein FB sein soll (eine Funktion hat ja per Design nur einen Rückgabeparameter, würde also Maximal nur entweder Min oder nur Max liefern können)
FUNCTION_BLOCKGet_Min_MaxVAR_INPUTÂ Â pArrayInt:Â Â POINTERTOARRAY[0..1]OFINT;Â Â dArraySize:Â Â DINT;END_VARVAR_OUTPUTÂ Â Min_Wert:Â Â INT;Â Â MAX_Wert:INT;END_VARVARÂ Â i:DINT;Â Â pAbs:POINTERTOINT;END_VAR
Min_Wert:=32767;Max_Wert:=-32768;FORi:=0TO(dArraySize-1)DO
  pAbs:=pArrayInt+2*i;
  IFpAbs^<Min_WertTHEN
    Min_Wert:=pAbs^;
  END_IF
  IFpAbs^ >Max_WertTHEN
    Max_Wert:=pAbs^;
  END_IFEND_FOR
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Suche nach einer Funktion die den minimalen, sowie den maximalen Wert eines Integer-Arrays ausgibt. Ich codieren in ST mit CODESYS 3.5 SP1 Patch 2.
Moin.
Guckst du:
http://de.wikipedia.org/wiki/Bubblesort
Man kann auch mit den Operatoren "min" oder "max" sowas bauen.
Halt Geschmackssache.
Gruß schuero
Besten Dank! Schade das es sowas nicht schon implementiert gibt..
eine einfache FOR-Schleife mit Min/Max reicht da. Wenn's ein FB sein soll (eine Funktion hat ja per Design nur einen Rückgabeparameter, würde also Maximal nur entweder Min oder nur Max liefern können)