前几天看到 不欲勿施 的帖子,分享关于200Smart实现类似1200、1500的背景数据块,看到后很有触发。虽然不用200很久了,习惯了1200的编程方式再来用200Smart确实有些不太舒服,不过讨论如何实现子程序背景数据块的技术还是很有吸引力的。
我看了分享贴,基本还是实现了所需功能,存在的问题是程序使用了比较懒惰的做法,每扫描一个子程序就自动分配一块V区,当前使用的V区地址也随之移动指向下个可供使用的数据块开始地址,下次是否还是使用同一块V区完全取决于程序扫描的顺序。所以强调需要全扫描,不能有跳过不执行的程序存在。其实说“完全扫描”还是不准确,应该是完全按照第一次执行的顺序来执行子程序,顺序是不能颠倒的。
我觉得很眼熟,似乎在哪里见识过,以前就针对这个问题有过自己的解决方案,只是不是用于子程序背景数据块。
原帖:
http://www.ad.siemens.com.cn/club/bbs/post.aspxa_id=1730780&b_id=64&s_id=0&num=59#anch
【不欲勿施】【S7-200 Smart开源标准化编程】之基础----突破子程序的限制,让子程序像FB一样工作-技术论坛-工业支持中心-西门子中国 (siemens.com.cn)
利用昨天的时间做了个方案,我贴图出来供大家讨论。