剑指工控 星期五, 04/26/2024 - 12:08 发表
最近有朋友向我咨询一个需要在RSViewSE环境中实现的排序算法问题,背景是将若干个PLC内共约2000个DI点的状态变化按先后顺序排列出来,这2000个DI点大约可以分为100组,每组20个DI标签,每组之标签之间无关联。根据排序结果可以实现一些其他的控制功能。
在RSViewSE中,复杂的算法依然需要VBA脚本的参与,在这个需求中,需要先明确以下几点:
算法程序需要不间断运行来捕获DI点的变化
每组DI点在变为1后就一直保持,直到PLC程序内将该组所有的状态复位为0
排序的结果需要能记录下来
算法程序可以随时停止
VBA编写的算法程序可以引申到VBS,因此,该算法不止适用于RSViewSE,还适用于WINCC及其他能够使用VBA或VBS脚本控制的组态软件
算法内参与排序的标签不能局限于20个,可以自由调整。
基于以上条件,本着以往没有条件也要创造条件的态度来实现这种排序算法。
准备工作: