感谢您一直以来对浔之漫智控技术的支持与厚爱。我们荣幸地推出了一款全新的西门子模块产品:6ES7513-1AM03-0AB0,这是我们精心挑选并与西门子合作研发的Zui新一代智能控制模块。
作为shijielingxian的自动化技术公司,西门子一直致力于为客户提供Zui可靠、高效的工业自动化解决方案。这款6ES7513-1AM03-0AB0模块,不仅具备西门子一贯的出色品质,更采用了Zui先进的技术和创新设计,为您提供卓越的工业控制体验。在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:通过指针间接寻址找一组数据的Zui值(大和小)和平均值。主程序
子程序
程序的监控图就不贴出来了,其实重点就在子程序的第二段,每循环一次,就做一次比较,如果比较条件满足,就将大值和小值暂存到LD10和LD14中,直到循环到Zui后一次,此时Zui大值和Zui小值已经找出来了,平均值就是将每循环一次的值进行累加,再除以数据个数,这里我就不展开仔细的分析了,可以参考一下Zui后一个案例,冒泡排序执行原理。
实例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<365.0,位置不变)
第二次内循环
20.0;7.0;365.0;7.0;210.5;7.6;15.6;22.8;(7.0<365.0,位置改变)
第三次内循环
20.0;7.0;7.0;365.0;210.5;7.6;15.6;22.8;(7.0<365.0,位置改变)
第四次内循环
20.0;7.0;7.0;210.5;365.0;7.6;15.6;22.8;(210.5<365.0,位置改变)
第五次内循环
20.0;7.0;7.0;210.5;7.6;365.0;15.6;22.8;(7.6<365.0,位置改变)
第六次内循环
20.0;7.0;7.0;210.5;7.6;15.6;365.0;22.8;(15.6<365.0位置改变)
第七次内循环
20.0;7.0;7.0;210.5;7.6;15.6;22.8;365.0;(22.8<365.0位置改变,找到Zui大值),即Zui大值365.0。
第二次外循环(执行6次内循环)
第一次内循环
7.0;20.0;7.0;210.5;7.6;15.6;22.8;365.0;(7.0<20.0,位置改变)
第二次内循环
7.0;7.0;20.0;210.5;7.6;15.6;22.8;365.0;(7.0<20.0,位置改变)
第三次内循环
7.0;7.0;20.0;210.5;7.6;15.6;22.8;365.0;(20.0<210.5,位置不变,就是210.5跟后面的数进行比较)
第四次内循环
7.0;7.0;20.0;7.6;210.5;15.6;22.8;365.0;(7.6<210.5,位置改变)
第五次内循环
7.0;7.0;20.0;7.6;15.6;210.5;22.8;365.0;(15.6<210.5,位置改变)
第六次内循环
7.0;7.0;20.0;7.6;15.6;22.8;210.5;365.0;(22.8<210.5,位置改变,找到第二个值),即第二大值210.5。
第三次外循环(执行5次内循环)
第一次内循环
7.0;7.0;20.0;7.6;15.6;22.8;210.5;365.0;(7.0=7.0,这里的排序就不变,假设第一个值为8.0,8.0>7.0,则位置改变)
第二次内循环
7.0;7.0;20.0;7.6;15.6;22.8;210.5;365.0;(7.0<20.0,位置改变)
第三次内循环
7.0;7.0;7.6;20.0;15.6;22.8;210.5;365.0;(7.6<20.0,位置改变)
第四次内循环
7.0;7.0;7.6;15.6;20.0;22.8;210.5;365.0;(15.6<20.0,位置改变)
第五次内循环
7.0;7.0;7.6;15.6;20.0;22.8;210.5;365.0;(20.0<22.8,位置不变,找出第三个值),即第三大值22.8。
第四次外循环(执行4次内循环)
第一次内循环
7.0;7.0;7.6;15.6;20.0;22.8;210.5;365.0;(7.0=7.0,位置不变)
第二次内循环
7.0;7.0;7.6;15.6;20.0;22.8;210.5;365.0;(7.0<7.6,位置不变)
第三次内循环
7.0;7.0;7.6;15.6;20.0;22.8;210.5;365.0;(7.6<15.6,位置不变)
第四次内循环
7.0;7.0;7.6;15.6;20.0;22.8;210.5;365.0;(15.6<20.0,位置不变,找出第四个值),即Zui第四大值20.0。
第五次外循环(执行3次内循环)
第一次内循环
第二次内循环
第三次内循环
7.0;7.0;7.6;15.6;20.0;22.8;210.5;365.0;(7.6<15.6,位置不变,此时找出第五个值),即第五大值15.6。
第六次外循环(执行2次内循环)
第一次内循环
第二次内循环
7.0;7.0;7.6;15.6;20.0;22.8;210.5;365.0;(7.0<7.6,位置不变,此时找出第六个值),即第六大值7.6。
第七次外循环(执行1次内循环)
第一次内循环
7.0;7.0;7.6;15.6;20.0;22.8;210.5;365.0;(7.0=7.0,位置不变,此时找出第七个值),即第七大值7.0。
那么Zui后的那个数显然就是Zui小值了。
Zui后由小到大依次排列出来的结果(7.0;7.0;7.6;15.6;20.0;22.8;210.5;365.0)。
其实这是一种冒泡排序法,熟悉计算机语言的小伙伴就应该比较了解这种算法,至于冒泡算法的具体原理和说明,请各位小伙伴自行百度一下,这里就不再赘述了。
程序执行原理:
第一次外循环
第一次内循环
LW8=0,AC1=0*4,AC2=0+4,AC0=0,AC2=4;LD0偏移0和4,即VD1000和VD1004做比较(>),由于VD1000=20.0不大于VD1004=365.0;则程序6不执行,排序不改变(即20.0;365.0;7.0;7.0;210.5;7.6;15.6;22.8;)。
第二次内循环
LW8=1,AC1=1*4,AC2=4+4,AC0=4,AC2=8;LD0偏移4和8,即VD1004和VD1008做比较(>),由于VD1004=365.0>VD1008=7.0;
则程序6执行,*AC1(VD1004=365.0)的值存放到TEMP里(TEMP=365.0),*AC2(VD1008=7.0)把值传给*AC1(VD1004=7.0),Zui后将TEMP的值传给*AC2(VD1008),此时VD1004=7.0,VD1008=365.0,排序发生变化(即20.0;7.0;365.0;7.0;210.5;7.6;15.6;22.8;)。
第三次内循环
LW8=2,AC1=2*4,AC2=8+4,AC0=8,AC2=12;LD0偏移8和12,即VD1008和VD1012做比较(>),由于VD1008=365.0>VD1012=7.0,则程序6执行,*AC1(VD1008=365.0)的值存放到TEMP里(TEMP=365.0),*AC2(VD1012=7.0)把值传给*AC1(VD1008=7.0),Zui后将TEMP的值传给*AC2(VD1012),此时VD1008=7.0,VD1012=365.0,排序发生变化(即20.0;7.0;7.0;365.0;210.5;7.6;15.6;22.8;)。
第四次内循环
LW8=3,AC1=3*4,AC2=12+4,AC0=12,AC2=16;LD0偏移12和16,即VD1012和VD1016做比较(>),由于VD1012=365.0>VD1016=210.5,
则程序6执行,*AC1(VD1012=365.0)的值存放到TEMP里(TEMP=365.0),*AC2(VD1016=210.5)把值传给*AC1(VD1012=210.5),Zui后将TEMP的值传给*AC2(VD1016),此时VD1012=210.5,VD1016=365.0,排序发生变化(即20.0;7.0;7.0;210.5;365.0;7.6;15.6;22.8;)。
第五次内循环
LW8=4,AC1=4*4,AC2=16+4,AC0=16,AC2=20;LD0偏移16和20,即VD1016和VD1020做比较(>),由于VD1016=365.0>VD1020=7.6,
则程序6执行,*AC1(VD1016=365.0)的值存放到TEMP里(TEMP=365.0),*AC2(VD1020=7.6)把值传给*AC1(VD1016=7.6),Zui后将TEMP的值传给*AC2(VD1020),此时VD1016=7.6,VD1020=365.0,排序发生变化(即20.0;7.0;7.0;210.5;7.6;365.0;15.6;22.8;)。
第六次内循环
LW8=5,AC1=5*4,AC2=20+4,AC0=20,AC2=24;LD0偏移20和24,即VD1020和VD1024做比较(>),由于VD1020=365.0>VD1024=15.6,
则程序6执行,*AC1(VD1020=365.0)的值存放到TEMP里(TEMP=365.0),*AC2(VD1024=15.6)把值传给*AC1(VD1020=15.6),Zui后将TEMP的值传给*AC2(VD1024),此时VD1020=15.6,VD1024=365.0,排序发生变化(即20.0;7.0;7.0;210.5;7.6;15.6;365.0;22.8;)。
第七次内循环
LW8=6,AC1=6*4,AC2=24+4,AC0=24,AC2=28;LD0偏移24和28,即VD1024和VD1028做比较(>),由于VD1024=365.0>VD1028=22.8,
则程序6执行,*AC1(VD1024=365.0)的值存放到TEMP里(TEMP=365.0),*AC2(VD1028=22.8)把值传给*AC1(VD1024=22.8),Zui后将TEMP的值传给*AC2(VD1028),此时VD1024=22.8,VD1028=365.0,排序发生变化(即20.0;7.0;7.0;210.5;7.6;15.6;22.8;365.0;)。Zui后找到了Zui大值,此时VD1028=365.0。
下面的循环就不在赘述,原理同上。
以下是6ES7513-1AM03-0AB0模块的几大特点:
品牌: 西门子
型号: 模块
产地: 德国
这款模块采用了先进的晶片技术,经过jingque计算和优化设计,具备高度可靠性和稳定性。自动化控制系统需要承受各种极端工作环境的考验,但6ES7513-1AM03-0AB0模块的卓越表现将确保您的生产过程始终处于高效运行状态。
6ES7513-1AM03-0AB0模块还具备以下优势:
模块化设计,易于安装和维护
多种输入输出接口,满足各种应用需求
高度可扩展性,支持系统的快速升级和扩容
智能诊断和报警功能,实时监测设备状态
我们清楚地意识到,在工业自动化领域,每一秒钟的停机都可能导致巨大的损失。我们致力于为您提供Zui可靠的产品和全方位的技术支持。无论您面临何种挑战,浔之漫智控技术将与您紧密合作,确保您的生产线始终顺利运行。
真诚地邀请您了解更多关于6ES7513-1AM03-0AB0模块的信息。如需更多详细介绍或咨询,敬请联系我们的销售团队。我们期待与您合作,共同创造更美好的未来!
浔之漫智控技术(上海)有限公司
地址:上海市XX区XX路XX号
官网:www.xunzhiman.com