0626【萬泉河】SMART 200 PLC子程序SBR管腳數量迷案
在我已出版的新書《西門子S7-200 SMART PLC 編程技巧精粹》的第二章中,帶領讀者們探尋了SMART的子程序SBR的管腳上限。 書的第一章是介紹了其他人所著的《從入門到精通》之類入門書的章節(jié),并要求讀者提前掌握。 所以我的第二章其實是正式內容的第一章 。
在探尋過程中,得出的答案是,SBR的引腳數量上限為16個。 這也可以在系統(tǒng)幫助中得到印證。
不管是V2.7, 還是V2.8,都明確說明了限制是16個。
所以, 我在V2.7軟件上測試,曾經22個也可以正常編譯,但下載到PLC時會報錯。我在書中給的解釋是, 軟件不可信,還是建議要盡早拿到硬件CPU驗證,以防掉坑。
但其實,我內心里是存有嘀咕的。不太相信西門子會如此不嚴謹。如果管腳限制確實為16個,那么在編譯時直接判斷一下,超出了就報錯,甚至不允許調用。那很容易,也很嚴謹。
所以,我就懷疑研發(fā)部門有可能在計劃提升系統(tǒng)性能,有可能會增加SBR管腳的容量。畢竟,16的數字太尷尬了。 比如我在做標準化架構中經常需要用到字拆位的功能,把一個WORD拆為16個BOOL, 加起來就已經是17個管腳了,超標了。 導致我后面章節(jié)演示中還不得不拆2次,每次只得到8個BOOL。
昨天,在讀者群中有讀者提起書中這部分內容,并討論探討時,我就把這方面的猜測講了一下。懷疑如果新軟件和新固件,就會數量不一樣。然后有讀者正好手里有比較新的CPU ,就用新的軟件2.8值了一下, 證實19個管腳也好用!程序不報錯。
而今天, 我通過WANQ遠程連到他的CPU,我也操練了一遍,發(fā)現,是IN管腳的上限19個,而總管腳確實是22個。即可以有幾個INOUT和OUT。而至于如果減少IN的數量,多出來的數量能否分配到OUT,就不得知了。
對方的CPU的固件版本:
而我寫書的時候做演示例子所用的CPU的型號:
我的固件的版本2.03, 也確實太古老了一點。
原來這才是根本原因。
甚至,我也試了使用V2.7軟件打開朋友做的SMART程序, 除了開始時有個版本不同的提醒,我將其另存以后也完全可以正常下載調試。 管腳數量多于16,也并未報故障。
這就是西門子會在軟件中容許更多管腳的原因所在。
如果我是在做項目, 新版本的硬件可以讓我們編程更從容更自由。比如可以直接WORD拆位到16BIT。而我現在是在寫書,傳授給讀者的是發(fā)現上限并利用其限制值的方法,所以這個知識現在才發(fā)現對我來說也不算多晚。 不僅僅我自己用舊版本的硬件,讀者和用戶總要有人用。我如果沒發(fā)現,而一步到位給推薦了17個管腳的子程序做法,讀者后來照著用,卻不能成功,反而才是更大的麻煩。
當然, 這還不包括未來。 我的書交稿的時間是2023年6月,到現在一年了,交稿后西門子出的軟件版本V2.8,未來或許會出新版本的V2.9, V3.0, 以及更多新版本的硬件固件, 那些里面會有什么新性能,我無法提前時空穿越,則肯定無法提前預知。
但傳授給讀者的發(fā)現系統(tǒng)性能,充分利用好已有資源的技巧,是不變的。
新書在各大網上書店都已有賣。請自行搜索購買。 同時提醒, PDD上已有盜版,購買前請咨詢清楚。