0626【万泉河】SMART 200 PLC子程序SBR管脚数量迷案
在我已出版的新书《西门子S7-200 SMART PLC 编程技巧精粹》的第二章中,带领读者们探寻了SMART的子程序SBR的管脚上限。 书的第一章是介绍了其他人所著的《从入门到精通》之类入门书的章节,并要求读者提前掌握。 所以我的第二章其实是正式内容的第一章 。
在探寻过程中,得出的答案是,SBR的引脚数量上限为16个。 这也可以在系统帮助中得到印证。
不管是V2.7, 还是V2.8,都明确说明了限制是16个。
所以, 我在V2.7软件上测试,曾经22个也可以正常编译,但下载到PLC时会报错。我在书中给的解释是, 软件不可信,还是建议要尽早拿到硬件CPU验证,以防掉坑。
但其实,我内心里是存有嘀咕的。不太相信西门子会如此不严谨。如果管脚限制确实为16个,那么在编译时直接判断一下,超出了就报错,甚至不允许调用。那很容易,也很严谨。
所以,我就怀疑研发部门有可能在计划提升系统性能,有可能会增加SBR管脚的容量。毕竟,16的数字太尴尬了。 比如我在做标准化架构中经常需要用到字拆位的功能,把一个WORD拆为16个BOOL, 加起来就已经是17个管脚了,超标了。 导致我后面章节演示中还不得不拆2次,每次只得到8个BOOL。
昨天,在读者群中有读者提起书中这部分内容,并讨论探讨时,我就把这方面的猜测讲了一下。怀疑如果新软件和新固件,就会数量不一样。然后有读者正好手里有比较新的CPU ,就用新的软件2.8值了一下, 证实19个管脚也好用!程序不报错。
而今天, 我通过WANQ远程连到他的CPU,我也操练了一遍,发现,是IN管脚的上限19个,而总管脚确实是22个。即可以有几个INOUT和OUT。而至于如果减少IN的数量,多出来的数量能否分配到OUT,就不得知了。
对方的CPU的固件版本:
而我写书的时候做演示例子所用的CPU的型号:
我的固件的版本2.03, 也确实太古老了一点。
原来这才是根本原因。
甚至,我也试了使用V2.7软件打开朋友做的SMART程序, 除了开始时有个版本不同的提醒,我将其另存以后也完全可以正常下载调试。 管脚数量多于16,也并未报故障。
这就是西门子会在软件中容许更多管脚的原因所在。
如果我是在做项目, 新版本的硬件可以让我们编程更从容更自由。比如可以直接WORD拆位到16BIT。而我现在是在写书,传授给读者的是发现上限并利用其限制值的方法,所以这个知识现在才发现对我来说也不算多晚。 不仅仅我自己用旧版本的硬件,读者和用户总要有人用。我如果没发现,而一步到位给推荐了17个管脚的子程序做法,读者后来照着用,却不能成功,反而才是更大的麻烦。
当然, 这还不包括未来。 我的书交稿的时间是2023年6月,到现在一年了,交稿后西门子出的软件版本V2.8,未来或许会出新版本的V2.9, V3.0, 以及更多新版本的硬件固件, 那些里面会有什么新性能,我无法提前时空穿越,则肯定无法提前预知。
但传授给读者的发现系统性能,充分利用好已有资源的技巧,是不变的。
新书在各大网上书店都已有卖。请自行搜索购买。 同时提醒, PDD上已有盗版,购买前请咨询清楚。