That could work
For finding the highest value, yes, but I don't know why I was convinced that was all you needed.
What makes this entire thing a bit more verbose than it could be is the lack of variable variable names; I.E. you can't use "Set decimal [Value{SMALL:HighestValuePosition}] value to 0".
So, we have to work around that:
Set decimal [Value1] value to 4,7
Set decimal [Value2] value to 43,3
Set decimal [Value3] value to 4,9
-----------------------
Set small int (condition) [LoopCount] value to 1
Start Loop While : [LoopCount] Is Less Than Or Equals 3
Set decimal [HighestValue] value to 0
Begin Decimal Compare : [Value1] Is Greater Than [HighestValue]
Set decimal [HighestValue] value to the value of [Value1]
Set small int (condition) [HighestValuePosition] value to 1
End Condition
Begin Decimal Compare : [Value2] Is Greater Than [HighestValue]
Set decimal [HighestValue] value to the value of [Value2]
Set small int (condition) [HighestValuePosition] value to 2
End Condition
Begin Decimal Compare : [Value3] Is Greater Than [HighestValue]
Set decimal [HighestValue] value to the value of [Value3]
Set small int (condition) [HighestValuePosition] value to 3
End Condition
Begin Small Integer Compare : [HighestValuePosition] Equals 1
Set decimal [Value1] value to -1
Else If Small Integer Compare : [HighestValuePosition] Equals 2
Set decimal [Value2] value to -1
Else If Small Integer Compare : [HighestValuePosition] Equals 3
Set decimal [Value3] value to -1
End Condition
Begin Small Integer Compare : [LoopCount] Equals 1
Set small int (condition) [Panel1] value to the value of [HighestValuePosition]
Else If Small Integer Compare : [LoopCount] Equals 2
Set small int (condition) [Panel2] value to the value of [HighestValuePosition]
Else If Small Integer Compare : [LoopCount] Equals 3
Set small int (condition) [Panel3] value to the value of [HighestValuePosition]
End Condition
Set small int (condition) [LoopCount] value as incremented by 1
End Loop
Write '[Blue] Panel 1 at position {SMALL:Panel1}, Panel 2 at position {SMALL:Panel2}, Panel 3 at position {SMALL:Panel3}' to log
Now you have the position value of each panel, sorted highest to lowest(descending order).
Obviously you'll have to expand this to 10 panels, but you can see how it works.
Out of convenience I set "LoopCount" to 1, so you don't have to worry about 0 indexing.
I'm setting to -1 as I'm assuming the lowest power usage would be 0. If it can be lower you'll need to change that accordingly.
Of course, the limitation of a sorting system is that values that are exactly the same cannot be differentiated, so hopefully that's not something that can occur.