您现在的位置是:首页 > PLC技术 > PLC技术
S7 300/400循环指令
来源:艾特贸易2017-06-05
简介如果需要重复执行若干次同样的任务,可以使用循环指令。循环指令 LOOPjump label 用累加器的低字作循环计数器,每次执行 LOOP 指令时累加器低字的值减 1 ,若减 1 后累加器的低字非 0
如果需要重复执行若干次同样的任务,可以使用循环指令。循环指令LOOP<jump label>用累加器的低字作循环计数器,每次执行LOOP指令时累加器低字的值减1,若减1后累加器的低字非0,将跳转到< jumplabel>指定的标号处,在跳步目标处又恢复线性程序扫描。跳步目标号应是唯一的,跳步只能在同一个逻辑块内进行。
【例子】在I0.0的上升沿,用循环指令和间接寻址求从MW10开始存放的5个字的累加和,累加的结果用MD20保存。
A I 0.0
FP M 0.0
JNB m001 //不是I0.0的上升沿则跳转
L L#0 //32位整数0装入累加器1
T MD 20 //累加和清零
L P#10.0
T MD 2 //起始地址送地址指针
L 5 //循环次数装入累加器1的低字
BACK: T MW 0 //暂存循环计数值
L MW [MD 2] //取数据
ITD //转换为双整数
L MD 20 //取累加值
+D //累加
T MD 20 //保存累加值
L MD 2 //取地址指针值
L L#16
+D //地址值增加两个字节,指针指到下一个字
T MD 2 //保存地址指针值
L MW 0 //循环计数器值装累加器
LOOP BACK //若循环计数器值的内容减1后非0,跳转到标号BACK
m001. NOP 0
本例使用存储器间接寻址,地址指针的低3位用来表示字节中的位地址,因此地址指针实际上是以位为单位的整数。每次累加完成后,为了使地址指针指向下一个字,地址指针的值应加16(1个字由16位组成)。如果是对字节进行操作,每次循环地址指针应加8。如果是对双字进行操作,每次循环地址指针应加32。
上面程序中的指令“L L#16”可改为“L P#2.0”,表示地址指针将增加两个字节。
点击排行
