排序算法

手把手教你|VBS或VBA中的排序算法

最近有朋友向我咨询一个需要在RSViewSE环境中实现的排序算法问题,背景是将若干个PLC内共约2000个DI点的状态变化按先后顺序排列出来,这2000个DI点大约可以分为100组,每组20个DI标签,每组之标签之间无关联。根据排序结果可以实现一些其他的控制功能。

在RSViewSE中,复杂的算法依然需要VBA脚本的参与,在这个需求中,需要先明确以下几点:

算法程序需要不间断运行来捕获DI点的变化

每组DI点在变为1后就一直保持,直到PLC程序内将该组所有的状态复位为0

排序的结果需要能记录下来

算法程序可以随时停止

VBA编写的算法程序可以引申到VBS,因此,该算法不止适用于RSViewSE,还适用于WINCC及其他能够使用VBA或VBS脚本控制的组态软件

算法内参与排序的标签不能局限于20个,可以自由调整。

基于以上条件,本着以往没有条件也要创造条件的态度来实现这种排序算法。

准备工作:

订阅 RSS - 排序算法