万泉河
WX:ZHO6371995,欢迎+
级别: 略有小成
精华主题: 0
发帖数量: 129 个
工控威望: 245 点
下载积分: 829 分
在线时间: 11(小时)
注册时间: 2021-06-11
最后登录: 2024-09-08
查看万泉河的 主题 / 回贴
楼主  发表于: 86天前
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上已有盗版,购买前请咨询清楚。

附件: 0626【万泉河】SMART 200 PLC子程序SBR管脚数量迷案.pdf (443 K) 下载次数:49
网站提示: 请不要用迅雷下载附件,容易出错
zhaoaron
zhaoaron
级别: 工控侠客
精华主题: 0
发帖数量: 1231 个
工控威望: 2823 点
下载积分: 18431 分
在线时间: 649(小时)
注册时间: 2021-09-25
最后登录: 2024-09-19
查看zhaoaron的 主题 / 回贴
1楼  发表于: 85天前
牛逼。。。。。。