One thing that I would like to see in a more advanced controller is complex data functions. Seems like the trend is to handle more data. Like running average calculations, sorting and statistics. Omron and AB have some of these instructions and makes the job easier. Also would like to see Standard Deviation, Min and Max,too. I have done Sorting and Std Deviation in AD PLC's and it get's involved. It would be so nice to have 1 box instruction do the whole job at optimum execution rates.
We've been investigating these. We are thinking of implenting two groups of statistical instructions. One that maintains the Sample data in a large table, where the data size grows as you add samples. And another one that just maintains the accumulation of count, sum, sum of squares, and running min/max, but no actual data values, similar to how your calculator does statistical operations.
The former can provide useful information like quartiles (including Median), sorting, histogram/bin type functionality, in addition to avg/std.dev./min/max. The latter can give you basic average, std. dev. and min/max, but not median/quartile type functions where you need the whole data-set.
With the former, we could also allow you to do running average, or even calculate average on a subset of data points. We could also store the current date/time stamp with each sample value and do time-based statistical analysis (just thinking out loud).
Obviously, the former requires more memory since you must maintain ALL data points, and the latter just requires a few memory locations for as large a sample as you like.
We initially preferred to implmenent only the latter since it occupied the least amount of memory, but then realized, as you stated, that people are doing more and more data analysis IN the PLC as memory is cheaper and cheaper, so we thought, rather than CHOOSE which ONE we should implement, why not just implement BOTH.
One issue becomes, how do you distinguish between the two sets of functions? What mnemonic do you use for the Table/Sample based AVG versus the accumulation-based AVG function? TAVG/AVG, TSTD/STD, but just TQ1 (there's no Quartile function for the accumulation based stat operation)

Questions? Comments? Concerns?