发布于 2015-02-13 23:09:39
24楼
这样的帖子竟然封了”精“,只能表示”呵呵“了。
200编程软件的帮助文件中对”局部变量“有以下描述:
1、局部变量可用作传递至子程序并可用于增加子程序的移动性或重新使用子程序的参数。
程序中的每个POU都有自己的局部变量表,配备64个字节的L内存。
2、** 每个子程序调用的输入/输出参数的最大限制是16,如果您尝试下载的程序超过此一限制,会返回一则错误信息。
为什么会出现”子程序“这个东西?
个人认为其最大的优点是可以“多次使用”,也就是经典但不过时的“复用”;
同样还有以简御繁的“一次修改”;
为什么会出现L内存?它的出现也是为了“复用”,“指针”也是为了“复用”,当然还有其它。在很多行业软件中,“复用”思维的运用相当广泛,举个常见的例子,电气绘图软件中也常见的“模块”/“模型”,一次创造/制造,多次使用,甚至还出现了“电气子回路”的概念;当然在PLC编程中也一样,最初的PLC的编程直接就是“面条式”的,到后来划分成“模块”“子程序”“宏”等。
楼主这种突破“极限”/“限制”的想象力是好的,没有“异想”不会有“天开”,但是想象力有时是需要约束的。
软件帮助中说有16个IN/OUT参数个数的限制,我想软件的设计者对我们这些软件编程的使用者已经是相当“仁慈”和“大方”的了,竟然让我们可以使用数量可以达到“16”个之多的参数!
如果说所说设计的子程序的IN/OUT参数再多的话,那我只能说,子程序设计的不合格,里面牵涉了太多的数据,包含了太多的内容,完全可以把子程序“重构”,拆解,“分治”,减少不必要的东西,让子程序只做一件事!
设计要像搭“积木”一样,“要配置,而不是集成!”
再说在子程序中,使用全局变量的问题,网络曾经流行一句话,叫做”不作不死!“,感觉这种做法正适合用这个断语。在子程序中使用全局变量,无形中降低了程序的”安全系数",同时增加了全局数据发生变化的“故障可能性“。
孔子有一句话,”从心所欲而不逾矩“,感觉就说得相当到位。
少即是多