回复:【不欲勿施】【S7-200 Smart开源标准化编程】之基础----突破子程序的限制,让子程序像FB一样工作

已锁定

不欲勿施

  • 帖子

    841
  • 精华

    17
  • 被关注

    402

论坛等级:奇侠

注册时间:2009-03-27

黄金 黄金 如何晋级?

发布于 2021-11-18 11:54:06

19楼

展开查看
以下是引用winter938在2021-11-18 11:44:53的发言 >18楼

     被标准化编程的字眼吸引进来了。标准化很难。一个程序块的输入输出界定清楚都不是那么容易。楼主的子程序中的temp变量存储的是子程序运行的过程数据,由于这些数据需要保存至少1个以上的扫描周期是需要存储到V,M区中的,楼主因此采用了进入子程序后立即把这些数据由预先指定的V区搬入L区,子程序执行结束再搬回原来的V区的办法,其实这种操作就是子程序IN_OUT类型变量的操作,只不过后者是编程者在接口上给他分配存储区。我经历过的是进入子程序后过程数据先搬入特定的V区再执行子程序,子程序执行结束再搬回原来的V区的办法,因为子程序中L区执行起来速度是低于V区的,而这特定的V区可以用库存储区进行一次分配后就可以重复调用这含V的子程序。

     另外楼主的子程序L800Example第一个网络中VD4000=VD4000+9是不是用早了点,嵌套在里面的定时和计数子程序也会做类似的操作。V区的分配其实还是依赖编程者手工分配,这与FB的背景数据区自动分配不同的。但已经是向模块化编程前进的一大步了为楼主点个赞。

另外楼主的子程序L800Example第一个网络中VD4000=VD4000+9是不是用早了点

答:一点也不早,这里加完增量后,此子程序就可以调用下一级子程序了。如果等到此子程序快运行完了再加增量,那此子程序调用下级子程序时该咋办。


关于手工分配,做好的对象程序只分配一次即可,之后多次调用会自动加就不必考虑了。在FB的静态区和临时区建立变量不也得手工敲嘛

13478405725
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9430条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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