西门子S7-200PLC由“冒泡法”排序算法的逆向思考

时间:2023-03-18作者:佚名
在一些C语言资料上看到,“冒泡法”排序一般是从最后一个数据开始,向地址小的方向相邻两个数据比较,并按照从小到大或者从大到小排序的一种算法。在数据比较、移动的过程中,数据的运动,看起来好像水中的气泡向上运动。故而称之为“冒泡法”排序。
“冒泡法”排序,在知道数据的起始地址、数据个数、数据类型后,需要算出最后一个数据的地址,并从最后的一个地址开始运算排序。我在想,为什么不能从数据的起始地址开始排序呢,如果采用这种“下沉法”排序,还能省去计算数据的结束地址,程序应该会更简洁。于是自己就试着写了一下“下沉法”排序的plc程序代码,并测试通过。
排序环境:224CPU,从VB1000开始连续20个整数,从小到大排序。“下沉法”排序算法参考代码如下:

//******************给外循环体、内循环体的循环次数赋初值***********************
LD SM0.0 //开始执行从小到大的排序程序
MOVW 19, LW2 //给外循环次数(数据个数-1)赋初值
MOVW 19, LW6 //给内循环次数(数据个数-1)赋初值

//*******************建立外循环体并定义排序的其实地址*****************************
FOR LW0, 1, LW2 //FOR外循环体循执行LW2次
MOVD &VB1000, AC1 //将V区的起始地址赋给AC1,定义排序的起始地址

//**************建立内循环体并开始进行相邻的两个数据比较、移动****************
FOR LW4, 1, LW6 //FOR内循环体循执行LW6次
MOVD AC1, AC2 //把当前AC1里面的地址存储到AC2里面
D 2, AC2 //AC2当前地址 2,存入AC2
LDW< *AC2, *AC1 //如果AC2指向的地址里面的内容小于AC1指向的地址里面的内容
MOVW *AC1, LW8 //那么将当前两个地址里面的内容互换
MOVW *AC2, LW10 //如果AC2指向的地址里面的内容不小于AC1指向的地址里面的内容
MOVW LW8, *AC2 //那么当前两个地址里面的内容保持不变
MOVW LW10, *AC1 //如果把小于比较指令改成大于比较指令,那么数据就是从大到小排序
LD SM0.0
D 2, AC1 //AC1当前地址 2,存入AC1
NEXT //跳转到FOR内循环,如果内循环执行结束,程序往下执行

//*******************内循环执行结束,进入外循环执行*****************************
DECW LW6 //内循环体执行结束,将内循环体的循环次数减1
NEXT //跳转到FOR外循环,如果外循环执行结束,程序往下执行
上面代码基本采用临时变量作运算的,其实还可以将其封装成一个子程序,实现多次调用。

相关阅读

S71200 PLC与组态王以太网通信步骤(超详细)

说到组态王 如何与我们常用的西门子 S7-1200 PLC 通信 ,这就设计到一个 难题 ,想必大家之前学习通信过组态王与 S7-200SMART PLC 以太网通信,那么 设计到 高端 PLC , 1200PLC 该 如何通信呢...
2024-03-18
S71200 PLC与组态王以太网通信步骤(超详细)

220kV变电站出线间隔原理

220KV变电站出线间隔由隔离开关、断路器、电流互感器、隔离开关,电容式电压互感器组成。 如图所示,首先使一母使用不接地隔离开关GSSB-245,2500A 50KA ;GSSB-AM-245,2500A 50KA 单接地隔离...
2023-03-29
220kV变电站出线间隔原理

选用绝缘导线的要求及导线绝缘层的剥削方法有哪些

  在选用绝缘导线 时,主要考虑导线的安全电流、机械强度和额定电压。    (1)安全电流   导线流过电流时会发热,电流越大,发出热量越多,热量通过绝缘层散发出去,如果散...
2023-06-27
选用绝缘导线的要求及导线绝缘层的剥削方法有哪些

施工现场临时用电如何做?这些强制性标准得知晓

建筑施工现场临时用电工程专用的电源中性点直接接地的220/380V三相四线制低压电力系统,必须符合下列规定: 1采用三级配电系统 2采用TN-S接零保护系统 3采用二级漏电保护系统 临时用...
2023-06-11

电工识图基础以及三相电机电流估算方法

学工控技术,拿10万年薪 马上注册,免费学习 超过100课时视频教程,免费下载海量学习资料 1 、电路图: 电路图是利用各种电气符号、图线来表示电气系统中各种电气设备、装置、元...
2023-06-27

热销商品

聚氨酯垫片聚氨酯板加工PU牛筋垫密封垫优力胶板棒减震缓冲垫开模

聚氨酯垫片、聚氨酯板加工及PU牛筋垫等优力胶制品,以其优异的耐磨性、耐油性、抗冲击性和弹性,广泛应用于机械、汽车、建筑及电子设备等领域。通过精密开模工艺,可定...
¥ 2

自粘背胶橡胶实心圆耐磨圆垫片防滑脚垫减震缓冲垫盲垫密封垫圈

自粘背胶橡胶实心圆耐磨圆垫片是一款多功能工业及家用配件,采用优质橡胶材质制成,具备优异的耐磨、防滑、减震和缓冲性能。其背面自带强力胶层,粘贴牢固,安装便捷,适用...
¥ 0.98

L型扳手 7字型扳手烟斗双头套筒弯头穿孔扳手内外六角板手6-24mm

L型扳手(又称7字型扳手或烟斗扳手)是一种多功能手动工具,广泛应用于机械装配、家具安装及维修作业。其独特的L形设计结合双头套筒结构,一端为内六角,另一端为外六角,可...
¥ 1.6

小巧匠强力园艺修枝剪高效必备剪园林修剪树枝果树花剪刀采果剪子

小巧匠强力园艺修枝剪是高效必备的园艺工具,适用于园林修剪、树枝修剪、果树花剪以及采果。这款剪刀采用优质材料制造,锋利耐用,能够轻松剪断各种枝条和植物,提高工作...
¥ 8.5

国标纯铜芯电缆线16 35 25平方高压接地线软铜线透明电焊机焊把线

国标纯铜芯电缆线163525平方高压接地线软铜线透明电焊机焊把线是一种高品质的电线,主要用于电气设备之间的连接和传输电能。它具有以下特点: 1. 材料优质:采用高纯...
¥ 4.45

网站栏目