恭喜,你发布的帖子
发布于 2021-11-18 11:54:06
19楼
被标准化编程的字眼吸引进来了。标准化很难。一个程序块的输入输出界定清楚都不是那么容易。楼主的子程序中的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的静态区和临时区建立变量不也得手工敲嘛
请填写推广理由:
分享
只看
楼主