回复:欢迎拍砖。再论沿指令,实例还原真相

看雪001

  • 帖子

    2497
  • 精华

    88
  • 被关注

    236

论坛等级:至圣

注册时间:2012-04-25

钻石 钻石 如何晋级?

发布于 2018-01-31 09:58:56

42楼

展开查看
以下是引用yanxiao在2018-01-29 08:47:54的发言 >7楼

二、第2个实例:沿指令在多次调用的子程序里


多次调用会对边沿重复取吗?不会。


LAD程序:

主程序部分:



子程序部分:



STL程序:

主程序部分:




子程序部分:



在线监视VD0、VD4的变化,有没有同步?


程序刚开始时如果你有机会看到VD0比VD4多1个计数,这个机率不到0.1%。因为主程序上的 P(EU) 比子程序中的 P(EU) 早工作一点点时间。


程序持续运行,子程序内的 P 不会漏1个计数或多1个计数。32位长整数可以计100年的。


附上源程序:

实例2:沿指令在多次调用子程序_参数传入.rar


1,对于可重用的子程序(或者函数),其变量应该是“形参”,而不应该是“实参”。

2,“在S5-PLC系统内,没有沿判断指令,所以通常会用类似以下的方法来判断上升沿、下降沿。

A M0.0      //脉冲信号
AN M0.1
= M0.2      //上升沿
A M0.0
= M0.1
----------------------------------------
AN M1.0   //脉冲信号
A M1.1
= M1.2      //下降沿
A M1.0
= M1.1

沿指令本质上就是如上所述的逻辑,它是必须额外分配一个地址用以存储状态的!

300的编程软件需要手工分配地址,且没有限制沿的个数;而200smart是编程软件“自动”为其分配地址,且限制个数为1024个,比200的256个多了一些资源。正是由于分配存储地址的工作由系统自动地、默认地完成了,编程者就会误认为沿指令不需要存储地址吗?

3,也正是因为200的编程软件“自动”地分配了沿指令的存储地址,沿指令的地址就没法设置成“形参”,在可重用的子程序(或函数)中,没法使用沿指令。——这是200的原罪,你没法为它做无罪辩护!


大道至简,知易行难
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9422条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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