CODESYS - das IEC 61131-3 Programmiersystem

Willkommen im offiziellen CODESYS - Forum von 3S-Smart Software Solutions | A member of the CODESYS Group
Deutsche Version English version russian version 
Aktuelle Zeit: Fr Okt 18, 2019 9:46 am

Alle Zeiten sind UTC




Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Funktion für Min bzw. Max-Werte
BeitragVerfasst: Mo Dez 17, 2012 9:50 am 
Offline
Benutzeravatar

Registriert: Fr Dez 14, 2012 1:12 pm
Beiträge: 2
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.


Nach oben
   
 Betreff des Beitrags: Re: Funktion für Min bzw. Max-Werte
BeitragVerfasst: Mo Dez 17, 2012 11:20 am 
Offline

Registriert: Mo Mär 12, 2007 11:35 am
Beiträge: 44
Moin.

Guckst du:
http://de.wikipedia.org/wiki/Bubblesort

Man kann auch mit den Operatoren "min" oder "max" sowas bauen.

Halt Geschmackssache.

Gruß schuero


Nach oben
   
 Betreff des Beitrags: Re: Funktion für Min bzw. Max-Werte
BeitragVerfasst: Mo Dez 17, 2012 12:51 pm 
Offline
Benutzeravatar

Registriert: Fr Dez 14, 2012 1:12 pm
Beiträge: 2
Besten Dank! Schade das es sowas nicht schon implementiert gibt..


Nach oben
   
 Betreff des Beitrags: Re: Funktion für Min bzw. Max-Werte
BeitragVerfasst: Mo Dez 17, 2012 10:07 pm 
Offline

Registriert: Di Aug 23, 2005 7:12 am
Beiträge: 15
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)

Code:
FUNCTION_BLOCK Get_Min_Max
VAR_INPUT
   pArrayInt:   POINTER TO ARRAY[0..1] OF INT;
   dArraySize:   DINT;
END_VAR
VAR_OUTPUT
   Min_Wert:   INT;
   MAX_Wert: INT;
END_VAR
VAR
   i:DINT;
   pAbs: POINTER TO INT;
END_VAR


Code:
Min_Wert:=32767;
Max_Wert:=-32768;

FOR i:= 0 TO (dArraySize-1) DO

   pAbs:= pArrayInt+2*i;

   IF pAbs^ < Min_Wert THEN
      Min_Wert:=pAbs^;
   END_IF
   IF pAbs^  > Max_Wert THEN
      Max_Wert:=pAbs^;
   END_IF

END_FOR


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de