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

   更新日期:2017-03-25     来源:建材之家    作者:水电之家    浏览:60    评论:0    
核心提示:在一些C语言资料上看到,“冒泡法”排序一般是从最后一个数据开始,向地址小的方向相邻两个数据比较,并按照从小到大或者从大到小排序的一种算法。在数据比较、移动的过程中,数据的运动,看起来好像水中的气泡向上运动。故而称之为“冒泡法”排序。 “冒泡法”排序,在知道数据的起始地址、数据个数、数据类型后,需要算出最后一个数据的地址,并从最后的一个地址开始运算排序。我在想,为什么不能从数据的起始地址开始排序呢,

合格PE管材应达到的要求

推荐简介:(1)使用寿命:在特定的环境温度、压力的情况下(由施工标准觉定),PE管材可以具有产品标准的使用寿命(一般为50年)。(2)耐腐性能:厂家生产的PE管材能够耐大多数化学物品(酸碱盐)以及承受PH值范围在1-14的高浓度酸和碱的腐蚀的腐蚀,可以在浓度小于80%的浓盐酸中应用,在浓度小于75%的硫酸、浓度小于20%的硝酸中性能相当稳定。(3)抗磨性能:PE管材应具有一定的耐磨要求,即抗滑动摩擦能力......
水电之家讯:在一些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外循环,如果外循环执行结束,程序往下执行

上面代码基本采用临时变量作运算的,其实还可以将其封装成一个子程序,实现多次调用。水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
小程序码
 
打赏
 
更多>文章标签:管材
更多>同类水电电工资讯
0相关评论

推荐图文更多...
点击排行更多...
最新视频更多...
推荐产品更多...
老姚之家 | 全景头条 | 照明之家 | 防水之家 | 防盗之家 | 区快洞察 | 潜江建材 | 仙桃建材 | 恩施建材 | 随州建材 | 咸宁建材 | 黄冈建材 | 荆州建材 | 孝感建材 | 荆门建材 | 鄂州建材 | 襄樊建材 | 宜昌建材 | 十堰建材 | 黄石建材 | 长沙建材 | 湘西建材 | 娄底建材 | 怀化建材 | 永州建材 | 郴州建材 |
建材 | 720全景 | 企业之家 | 移动社区 | 关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图 | 排名推广 | 广告服务 | 积分换礼 | RSS订阅 | sitemap | 粤ICP备14017808号-1
(c)2015-2017 BYBC.CN SYSTEM All Rights Reserved
Powered by 电工之家