最近在学习SCL,看了SCL编程中的例子程序:10个数去掉最大和最小值求平均。其中有个数据初始化,它先把堆栈中的0位置的数据作为初始值赋给了最大和最小值,然后进行了先入先出操作。那么这个最大和最小值的初值并不是堆栈中的数据,如果它恰好是最大或者最小值,结果不就有问题了吗?(TOTAL_FILTERD:=TOTAL-MAX_DATA-MIN_DATA;)是我理解错了吗?附件中是截图。不过我现在是纸上谈兵,还没用到实际工程。
之前在论坛里发了帖子,没人解答。那个帖子已经被我删除。
图片说明:
最佳答案
楼主在论坛的帖子我也看到过,我认为楼主的想法是对的。例子也不一定就是完全正确,楼主有怀疑可以用模拟器测试一下。
至于解决办法,我想了2个:
1、把最大最小值的初始化放到堆栈操作后面,就是第一和第二段位置互换,就可以了。
2、如果一定想把初始化放在开头,只要把最大最小值的初始值从Data_store[0]改成scaled_val就行了。
提问者对于答案的评价:
谢谢大家的关注!
难道这段程序从来没有应用于实际工程?
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc244888.html