西门子200SMART之简接寻址学习,指针与间接寻址,冒泡排序

您所在的位置:网站首页 plc间接寻址与指针的关系 西门子200SMART之简接寻址学习,指针与间接寻址,冒泡排序

西门子200SMART之简接寻址学习,指针与间接寻址,冒泡排序

2024-07-16 23:41| 来源: 网络整理| 查看: 265

在PLC里面有两种寻址方式,一种是直接寻址,另一种是间接寻址。间接寻址是指用指针来访问存储区的数据。指针以双字的形式存储其它存储区的地址,只能将V存储单元、L存储单元或累加寄存器(AC1、AC2、AC3)用作指针。

创建指针时,必须使用“移动双字”指令,将间接寻址的存储单元地址移至指针位置。;用“&”符号加上要访问的存储区地址可建立一个指针,当指令中的操作数是指针时,应该在操作数前加上“*”号。

1.建立指针

 

建立指针记得加“&”;将VB100的地址存放到VD1000内。

2.指针偏移

 

按字节寻址,就+1;

按字寻址,就+2;

按双字或浮点数寻址,就+4;

3.取指针

 

4.程序监控

 

1)按下M0.0,执行字节偏移,此时在VB101输入“10”,VB3000的数据即为“10”,然后复位M0.0。2)按下M0.1,执行字偏移,此时在VW102输入“50”,VW4000的数据即为“50”,然后复位M0.1。3)按下M0.2,执行双字偏移,此时在VD104输入“80”,VD5000的数据即为“80”,然后复位M0.2。

程序实例(干货)

实例1:通过指针间接寻址改变定时器的3种不同定时时间。

 

 

 

实例2:通过指针间接寻址找一组数据的最值(大和小)和平均值。主程序

 

子程序

 

程序的监控图就不贴出来了,其实重点就在子程序的第二段,每循环一次,就做一次比较,如果比较条件满足,就将大值和小值暂存到LD10和LD14中,直到循环到最后一次,此时最大值和最小值已经找出来了,平均值就是将每循环一次的值进行累加,然后再除以数据个数,这里我就不展开仔细的分析了,可以参考一下最后一个案例,冒泡排序执行原理。

实例3:通过指针间接寻址改变5个计数器的计数值。

 

 

 

案例4,冒泡排序,从小排到大。

主程序,排8组数据。

 

 

子程序

 

冒泡排序算法解析:

八组数据:分别是20.0;365.0;7.0;7.0;210.5;7.6;15.6;22.8。

1.首先将要排列的数据个数-2(8-2),然后存放到LW10中;再将这个值附给外循环的FINAL。

2.第一个外循环的执行的次数即为0~6(7次)。

3.INDX:假定 INIT 值为 0,FINAL 值为 6,则 FOR 指令和 NEXT 指令之间的指令将执行 7 次,INDX 值递增:0,1, 2, 3, 4.5.6。

第一次外循环(执行7次内循环)

第一次内循环

20.0;365.0;7.0;7.0;210.5;7.6;15.6;22.8;(20.0



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3