
Сообщение от
Солнечный заяц
Этот блок выдает 0, если будет 2 и более максимальных.
Если будет достаточно значения и индекса 1-го максимального, попробуйте:
Код:
function_block MAX10_
var_input
X1 : udint;
X2 : udint;
X3 : udint;
X4 : udint;
X5 : udint;
X6 : udint;
X7 : udint;
X8 : udint;
X9 : udint;
X10 : udint;
end_var
var_output
VMax : udint;
NMax : udint;
end_var
VMax := X1; NMax := 1;
if X2 > VMax then VMax := X2; NMax := 2; end_if
if X3 > VMax then VMax := X3; NMax := 3; end_if
if X4 > VMax then VMax := X4; NMax := 4; end_if
if X5 > VMax then VMax := X5; NMax := 5; end_if
if X6 > VMax then VMax := X6; NMax := 6; end_if
if X7 > VMax then VMax := X7; NMax := 7; end_if
if X8 > VMax then VMax := X8; NMax := 8; end_if
if X9 > VMax then VMax := X9; NMax := 9; end_if
if X10 > VMax then VMax := X10; NMax := 10; end_if
end_function_block