S7-1200的循环程序  

[ 2016/9/9 13:09:22 | Author: 廖老师 ]

循环程序的关键是间接寻址,S7-1200的间接寻址离不开数组。可用FieldRead与FieldWrite指令实现对数组元素的间接寻址,也可以用变量做数组元素的下标,实现间接寻址。

S7-1200没有像S7-300的LOOP那样的循环程序专用的指令,可以模仿LOOP指令的功能来编写循环程序。下图的程序段1、2是名为“间接索引”的FC,程序段1清累加结果,设置数组下标的初始值。

程序段2用MOVE指令读取可变下标的数组元素值,用ADD指令累加。然后将下标加1,累加个数减1后如果大于0则返回标号Back处,反之结束循环。

图的下面是OB1中调用FC的程序。

回复:S7-1200的循环程序

[ 2016/9/12 15:59:36 | Author: (匿名游客) ]

按上图的程序运行会出现循环超时错误。

我加多一个“累计数”的IN,“累加个数”改为temp,在第一行加多一句 “累计数”  move  “累加个数”才没超时

 

中华工控网 | 联系我们 | 工控论坛首页 | 工控博客首页 | 博客注册 | 博客登陆

工控博客管理联系邮箱:工控博客服务邮箱

中华工控网 © Copyright 2013. All rights reserved.