今天和同学们分享一个经典PLC编程方法 - 冒泡法。
我第一次在工作中见到冒泡法是应用在温度排序当中。设备由多个温度探头,需要实时显示最高温度和最低温度以便于调节设备的蒸汽量。
当时的PLC是S7-300,用的是STL语言。感觉语言精炼,短短几行语句就把功能实现了,这也算是文本语言的魅力所在吧。
冒泡法 -通俗一点讲,就是对一组数据进行递增或者递减的排序的方法。其算法是,对相邻两个数据进行比较,按照要求的大或小的要求,进行位置调换,以达到排序的目的。
下面以5个数据的数组为例讲解:
第1轮比较后可以看到,8作为最大数据,被放在最后的位置。比较了4次(1+4=5).
第2轮比较后可以看到,6作为最大数据,被交换到8的前面。比较了3次(2+3=5)
第3轮比较后可以看到,5作为最大数据,被交换到6的前面。比较了2次(3+2=5)
第4轮比较后可以看到,3作为最大数据,被交换到5的前面。比较了1次(4+1=5)
各位同学是不是很容易看出上面数据的关系。也就是,轮数+比较次数 = 总共的数据个数。
这就是我们找到的关键点,既然有次数,那么在编程时候就会用到FOR循环指令。
下面给出流程图:
根据流程图给出SCL语言的编程过程:(n代表数组内数据的个数啊)
根据SCL编程思想,你自己尝试写一个程序吧!