原来一段三菱的程序,现在PLC换成了西门子s71500,其中有一段关于循环的指令,就是当点击触屏上的一个按钮时将一连串的寄存器的当前设定值加上一个常数(有连续的挨着的,如 D0 D1 D2,也有不连续的单有一定间隔的如D0,D9 D18,)这段程序自己试着用LOOP指令做了一下但效果不理想,主要是在LOOP指令前必须先把所有的寄存器先赋值,如果不赋值的话LOOP指令不能正常工作,但如果先赋值的话就太麻烦了,寄存器原来的值也都不一样,哪位大师看看三菱这段程序在S71500里怎么能实现
图片说明:
最佳答案
用LOOP指令,实现你要的功能,首先要知道,这样的参数有几个,存放的位置等,可以给一个相关的例子,先看看,能不能用。比如:MW150开始的10字 里存放的参数都自加2
A M 142.0 //启动按钮,
FP M 142.1
JCN _009 //这个跳转要做,否则会一直循环自加
LAR1 P#M 150.0 //取存放位置的地址
L 10 //循环十次
_008: T MW 140
L MW [AR1,P#0.0]
L 2
+I
T MW [AR1,P#0.0] //自加程序
+AR1 P#2.0 //地址寄存器1自加一个字的宽度
L MW 140
LOOP _008
_009: NOP 0
试试看,能不能根据实际情况的要求进行修改
提问者对于答案的评价:
非常感谢,顺便再问一下,如果把“+AR1 P#2.0”中的“2.0"换成变量应该怎么写?这个变量什么格式?请回答一下,谢谢!
最佳答案作者回复:
+AR1 P#2.0这个段指令的意思就是地址的自加,这样的话,在循环的过程中,地址才会根据程序的要求有变动,就是每次地址移动两个字节;有关这些部分,可以看看PLC的寻址部分。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc169313.html