Валенок, всё гениальное просто)
MinI := 1;
FOR incr := 1 TO 3 DO
IF MhArr[incr] < MhArr[MinI] THEN
MinI := incr;
END_IF
END_FOR
И что мне было так заморачиваться...
Валенок, всё гениальное просто)
MinI := 1;
FOR incr := 1 TO 3 DO
IF MhArr[incr] < MhArr[MinI] THEN
MinI := incr;
END_IF
END_FOR
И что мне было так заморачиваться...
Ремонтно-строительная компания, г.Ставрополь
Всем спасибо за советы. 7 лет спустя нашел вашу ветку.
пользовался http://www.drivesandsystems.com/code...-plc-programs/
и https://forum.codesys.com/viewtopic.php?t=8099
моя задача: передать процедуре (функции) массив, получить отсортированный массив
мое решение для Codesys2.3:
текст PLC_PRG
PROGRAM PLC_PRG
VAR CONSTANT
N:INT:=9;
END_VAR
VAR
arr1: ARRAY [0..N] OF INT := 399,288,1,4,5,6,7,8,9;
xRunSort:BOOL;
END_VAR
VAR CONSTANT
END_VAR
IF xRunSort THEN
sort2(ADR(arr1));
xRunSort := FALSE;
END_IF
текст функции Сортировки
FUNCTION sort2 : BOOL
VAR_INPUT
ptr:POINTER TO ARRAY [0..N] OF INT;
END_VAR
VAR
i,j:INT;
iTemp:INT;
iOne: INT;
iTwo: INT;
END_VAR
FOR j := 0 TO N-1 DO
FOR i:=0 TO N-j-1 DO
iOne:=ptr^[i];
iTwo:=ptr^[i+1];
IF iOne>iTwo THEN iTemp:= iOne; iOne:=iTwo; iTwo:=iTemp; END_IF
ptr^[i]:=iOne;
ptr^[i+1]:=iTwo;
END_FOR
END_FOR