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