有坛友问有关排序的问题,我也正好在完善【S7-200 Smart开源标准化编程】里的排序子程序,现在测试完成了,我把这个子程序单独出来给大家使用。
首先排序子程序使用三个区域:
1、源数据区
2、排序后的目的数据区
3、源数据地址的指针排序区
子程序功能:
1、单周期内排序和多周期内排序的选择:单周期内排序适合少量的数据排序,多周期内排序适合大量的数据排序。多周期排序属于异步操作,所以在完成信号为真之前,启动排序的信号不能为0。
2、排序功能在源数据区内实现,或者是源数据区内的数据不变在目的数据区进行排序的选择。此功能可用于多周期内排序,这样源数据区数值的变化不会影响排序结果。
3、源数据地址的指针排序功能的选择。此功能可用于间接寻址。
4、排序功能升序和降序的选择。
5、子程序内的看门狗复位功能选择。
6、对待排序数据的数据类型的选择,可以选择字节,整数,双整数,浮点数。
7、数据数量可选择范围2-32767(这个最大范围值都大于200的V区了,子程序中多处使用了看门狗复位,但还是不能保证在实际应用中不出现看门狗超时)
8、最最重要的一条,这个子程序可以重复调用。
程序是在2.6软件版本下创建的。
下面的文件是子程序的导出文件,下载后解压,导入,祝玩愉快。有使用问题回复就行。
------------------------------------
73楼说的对,程序里确实循环次数多,所以进行了改进,并进行了测试。
smart200标准化2.6实践20230421.smart.zip
排序测试.smart.zip