跟我一起玩200 smart PLC 关于指针及循环指令的应用续3

已锁定

WWCWWC

西门子1847工业学习平台

  • 帖子

    8068
  • 精华

    145
  • 被关注

    1342

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

跟我一起玩200 smart PLC 关于指针及循环指令的应用续3

1899

19

2017-05-13 08:08:36

跟我一起玩200 smart PLC

关于指针及循环指令的应用续3

   昨天下午,看到“找答案”版区有一个网友提问,说200smart的指针如何使用问题,问题链接:http://www.ad.siemens.com.cn/service/answer/solution.aspx?Q_ID=160093&cid=1029

并帖出一程序,问题描述非常详细,给回答省却许多不必要的误解。我看了一下,感觉没有太大的程序错误语法,仅仅只是指定指针地址偏移处出现了地址区的错误,就回了一个贴,居然还被认可了。仔细想了想感觉不妥,似乎在那里出了一点状况(大汗淋漓)。在回帖时写了一句需要验证,又特将此程序剪切下来,回到家里仔细看起来问题还真不少。

网友的原程序: 经过提示,网友已经意识到错误的出处。

LD     Clock_1s
EU                                       //上升沿
LBL    1                                 //标记
MOVD   &VB200, VD100
MOVW   *VD100, VW300
+D     +2, VD200                     //寻址加2
+I     +1, VW400                     //循环+1次

AW>   VW400, 10                    //大于等于10次
=      M0.0
LDN    M0.0                                                     //LD   M0.0
JMP    1                                 //标记                              //当循环10次上 调至标记1处,

                                                        重新进行循环,显然无法清除循环次数。

                                                               

MOVW   +0, VW400                   //重置循环计数器
MOVD   +0, VD100                  //改此处??        //重置寻址起始位置 //                

网友提问的本意应该是想通过指针的地址偏移,将地址自VW200开始的10个数据利用SM0.1标志位的上升沿、指针偏移方式依次写入到数据存储地址VW300中。

 

上述程序的错误:

首先,取初始指针地址不能每一个秒脉冲都取一次。可以调用SM0.1取一次初始指针地址或者每10个循环到达后再调用(这个方法我经常用的)。

其次,LDN M0.0,根据网友意图是当经过10秒后,清除循环次数及指针返回。但是,如果在此处使用LDN,则意义刚好相反,变为没有到达10始终清零。

再次,调用跳转指令JMP,显然有驳于原编程思路,当循环计数10到达后,调用JMP上跳至标记“1”处,反而无法将循环次数与指针返回。索性删除这个跳转,因为没有必要,原因是循环10次到达后,可以通过双整数指令的减法将指针返回了初始指针地址。

另外,我在初次回复中也强调过关于循环次数比较指令的应用。如果是采用AW>10时,指针返回需要上移22个字;如果是采用AW = 10时,指针返回上移20个字的地址,实际上仅仅是循环10次与11次的区别,如果采用的是AW = 10,最后应该数据VW218只能显示一个扫描周期时间。反之,如果采用的是AW > 10,则有1秒的时间显示,这个可以根据实际需要选择。

于是,修改了一下网友的程序,将程序下载到cpu验证,图示:

修改后的程序如下所示:



启用“状态图表”监控程序运行情况:



   看似一个简单的指针调用,实际上里面的内涵还是蛮深奥的,曾经有一位资深大侠的那一句话,我一直记在心里“书读的越多,才知道这个书会变的越厚”。希望那位网友能够看到此贴后改正程序的不合理处,特将此贴通过整理发上来,让大家来看看,加深对西门子200(200smart)指针应用的理解。


跟我一起玩200 smart PLC 关于指针及循环指令的应用续3 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有7612条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。