西门子关于循环loop的手册就是错的,不信就测试 点击:1450 | 回复:3



macboysx

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 14回
  • 年度积分:0
  • 历史总积分:116
  • 注册:2010年7月11日
发表于:2010-07-28 00:07:00
楼主
西门子关于循环loop的手册就是错的STL 注解
L l#1 //将整型常数(32位)装载到ACCU 1中。
T MD20 //将ACCU1的内容传送给MD20 (初始化)。
L 5 //将循环周期的数目装载到ACCU 1-L中。
NEXT: T MW10 //跳转标签 = 循环开始/将ACCU 1-L传送给循环计数器。
L MD20
* D //MD20的当前内容乘以MB10的当前内容。
T MD20 //将相乘结果传送给MD20。
L MW10 //将循环计数器的内容装载到ACCU 1中。
LOOP NEXT //对ACCU 1的内容进行减1操作,当ACCU 1-L > 0时,跳转到NEXT跳转标签。
L MW24 //完成循环后,在此继续执行程序扫描。
L 200
>I



macboysx

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 14回
  • 年度积分:0
  • 历史总积分:116
  • 注册:2010年7月11日
发表于:2010-07-28 00:08:02
1楼
s7-300系列的cpu

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2010-07-28 08:51:55
2楼
不清楚您指的错误是指什么?
手动计算:循环变量MW10中起始为5,MD20中为1
第一次循环 MW10=5 MD20=1 计算后,MD20=5
第二次循环 MW10=4 MD20=5 计算后,MD20=20
第三次循环 MW10=3 MD20=20 计算后,MD20=60
第四次循环 MW10=2 MD20=60 计算后,MD20=120
第五次循环 MW10=1 MD20=120 计算后,MD20=120
第六次循环因为ACCU1=MW10-1为零,因此不循环,退出。
此时,ACCU1中存放的是零,而ACCU2中的值为最后一次MD20的值。由于未循环,因此MW10保持最后一次计算值为1.

PLCSIM的结果也证实了上述的结果,不清楚楼主所指的错误在什么地方?
Step7 V5.4 sP3+PLCISM V5.4 Sp3
Good Luck

PLC....

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 550回
  • 年度积分:0
  • 历史总积分:822
  • 注册:2004年8月31日
发表于:2010-07-28 12:52:38
3楼

楼上正解                                                 


热门招聘
相关主题

官方公众号

智造工程师