0601 【萬泉河】優(yōu)雅的80臺MODBUS通訊的變頻器例子
為什么是80?80是我做的一系列PLC編程的例子,前面做過80個雙聯(lián)開關(guān),80個模擬量的處理?,F(xiàn)在把這個80系列繼續(xù)做下去,準(zhǔn)備控制80臺MODBUS通訊的變頻器。
有人會罵:胡鬧!MODBUS通訊怎么可能帶那么多站點!
沒錯,一條RS485總線肯定帶不了這么多。所以我們打算使用MODBUS TCP轉(zhuǎn)MODBUS RTU的網(wǎng)關(guān)來實現(xiàn)。一個網(wǎng)關(guān)轉(zhuǎn)換出來一條485總線,可以帶10臺RTU(大約),那么8個網(wǎng)關(guān)就可以帶80臺了。當(dāng)然也可以直接買那種一臺網(wǎng)關(guān)帶8路485輸出的網(wǎng)關(guān)。
總之,就不在PLC上擴展RS485口了,反正數(shù)量也不夠,價格也沒有優(yōu)勢。所以,對PLC來說,做的只是MODBUS TCP通訊,當(dāng)然原理和RTU是完全相同的。
都需要輪詢。即, 每條總線上根據(jù)其掛載的RTU的數(shù)量以及需要的讀寫數(shù)據(jù)區(qū)進(jìn)行循環(huán)讀取,而各條總線之間互相不干擾,各自循環(huán)。
很多品牌的變頻器原生支持MODBUS RTU通訊接口,所以這種通訊方案成本造價比較低廉,在工程項目中應(yīng)用比較廣泛。
我們這里控制的是ABB ACS系列的變頻器。演示了針對ABB變頻器所制作的專用的FB模塊。然而后續(xù)也會有插曲,比如實際施工時,因為供應(yīng)商原因或者采購周期原因, 其中的個別幾臺ABB變頻器被替代成了DANFOSS變頻器,然而我們?nèi)绾尾皇芨蓴_,如何通過模塊化的手段,適應(yīng)了這種現(xiàn)場的變更,而沒有被折騰到崩潰。相信有一定工程經(jīng)驗的同行都或多或少會有過這樣的經(jīng)歷。
實現(xiàn)的過程
按照我在宇宙觀的文章里的觀點, 在運行邏輯固定的情況下,一個控制對象完全可以實現(xiàn)模塊化封裝。那么要控制一臺ABB變頻器,我們需要送給它的參數(shù)只有2個:子網(wǎng)號和MODBUS站地址。
然后它就該能夠自動完成數(shù)據(jù)的輪詢讀寫。而至于它的數(shù)據(jù)區(qū)的地址,需要的數(shù)據(jù)的數(shù)量,都在這個塊里面了。只需要根據(jù)產(chǎn)品說明書的通訊部分,查閱后設(shè)計好這個FB塊即可。 外圍原本也不需要知道。
而至于485總線的通訊參數(shù)以及網(wǎng)關(guān)的IP地址等,都是在網(wǎng)關(guān)的相關(guān)參數(shù)部分實現(xiàn),具體的設(shè)備對象是不需要每個都錄入的。
在完成通訊功能的基礎(chǔ)上, 控制的其他內(nèi)容, 按照行業(yè)特點和需求,比如有的行業(yè)習(xí)慣于用通訊只讀取狀態(tài)和電流頻率等數(shù)值,而對變頻器啟??刂迫匀恍枰ㄟ^端子實現(xiàn), 那么上述封裝還可以增加IO管腳,這里不再演示。
我這里講到的當(dāng)然不是暢想,而是已經(jīng)完成的歷史。
程序的具體調(diào)用情況:
程序中有屏蔽的部分,代表實際應(yīng)用中,如果有設(shè)備減少, 也只需要屏蔽相應(yīng)的調(diào)用,不再需要修改邏輯,數(shù)據(jù)區(qū)的排列,循環(huán)次數(shù)等等。全都不需要。需要的只是將調(diào)用這一行屏蔽。
而在聲明區(qū)
看到第5臺設(shè)備竟然詭異地變成了DANFOSS, 原因也是現(xiàn)場臨時改動了變頻器的型號,那么我們也只需要簡單修改調(diào)用的FB的數(shù)據(jù)類型。其他的都不需要再動了。
當(dāng)然,為DANFOSS又設(shè)計了專用的FB塊。因為它的控制字,狀態(tài)字地址與ABB都不同,所以當(dāng)然需要專門再定制。
我曾經(jīng)寫過文章計劃將所完成的這套GML MODBUS庫的方法推廣到西門子之外的其它品牌的PLC。然而響應(yīng)者寥寥??上攵疫€是走的太超前了,同行們還都停留在原有的每個項目都去做程序做輪詢,通過讀取數(shù)據(jù)到一個大的數(shù)據(jù)塊,然后控制邏輯中使用的模式。也是我自己曾經(jīng)所采取的方式。
現(xiàn)在計劃逐步放開分享這部分的程序源代碼。包括所有品牌型號的標(biāo)準(zhǔn)化的學(xué)員,以及用量大于等于3臺的WANQ的用戶都可以免費得到。看到文章后可以私下向我索要。各位得到后在此基礎(chǔ)上再發(fā)展研發(fā)的其它產(chǎn)品的模塊,請務(wù)必再回饋我一份。完整的內(nèi)容應(yīng)當(dāng)是一個FB以及這個通訊單元的應(yīng)用說明書。
程序是V17下做的。原本是庫函數(shù)在更低的環(huán)境下做的,調(diào)試也完全沒有問題。只不過我現(xiàn)在電腦上只有V17,所以就用V17演示了。你如果要在低版本下實現(xiàn),需要逐個塊的內(nèi)容逐個復(fù)制遷移到低版本中。大部分程序塊是用SCL寫的, 應(yīng)該還算方便。
西門子之外的其它品牌的標(biāo)準(zhǔn)化的學(xué)員,你也只能得到V17的這個程序版本參考后可以在其它品牌中實現(xiàn)。那些品牌的MODBUS通訊我都沒做過,所以我自己做不了。這些方面的拓展,有勞各位了。SMART 200的GML庫函數(shù)我做過了,但控制對象不是變頻器,這部分的學(xué)員可以私信我獲取,但你需要做個ABB或者其它品牌的變頻器的應(yīng)用回饋我。
除此之外,如果有人要移植到其他品牌中,做的過程中可以咨詢我,我可以給予一些幫助。
而對于用戶之外的更多的同行,如果對這個框架結(jié)構(gòu)感興趣,可以分享一個刪減版,我會把MODBUS 通訊部分的功能塊刪除后再打包后分享。獲取方式我會分享到80系列的QQ群文件中,2個群都已經(jīng)滿員,然而游客也可以直接下載群文件,所以不會再擴展新群。群號到歷史文章中得到?;蛘呶⑿潘叫盼耀@取。
雖然這個分享是有刪減的, 但仍然是有價值的,刪除的只是MODBUS通訊部分的6個功能塊而已。而其他的模塊化的封裝,包括ABB變頻器, DANFOSS變頻器的控制塊,以及我以前提到過的中央報警指示燈HA2的塊,想了想也都保留在里面了,有愛好學(xué)習(xí)的可以參考。
咱們行業(yè)的習(xí)慣,大家還是更習(xí)慣自己的功能塊自己用,用著放心。所以大家可以在參考我提出的思想的基礎(chǔ)上自己補齊并調(diào)試實現(xiàn)。
RS485網(wǎng)絡(luò)中不同子網(wǎng)的MODBUS站號是可以有重復(fù)的,當(dāng)然也可以不重復(fù)。 這些都是隨現(xiàn)場調(diào)試人員而定,只需要對應(yīng)正確就可以。
另外,同一個子網(wǎng)上,也有可能不僅僅掛變頻器,還會掛其他的儀表等設(shè)備,只需要在一個子網(wǎng)內(nèi)不與現(xiàn)有設(shè)備的MODBUS站號沖突即可。但在程序的編寫方面,則是在另外的環(huán)節(jié),比如我有可能再寫一個80臺電能表的例子。然而與變頻器毫無關(guān)系。即便同處一個485網(wǎng)絡(luò),也不需要再去協(xié)調(diào)輪詢周期。
即, 那些把循環(huán)指令當(dāng)核心算法的同行們可以知道了,循環(huán)只是在通訊邏輯內(nèi)部實現(xiàn)的,不需要時刻掛在腦門上。
審核編輯:湯梓紅
-
plc
+關(guān)注
關(guān)注
5006文章
13107瀏覽量
461462 -
變頻器
+關(guān)注
關(guān)注
251文章
6466瀏覽量
143971 -
MODBUS
+關(guān)注
關(guān)注
28文章
1757瀏覽量
76760 -
通訊
+關(guān)注
關(guān)注
9文章
890瀏覽量
34810 -
編程
+關(guān)注
關(guān)注
88文章
3565瀏覽量
93536
原文標(biāo)題:0601 【萬泉河】優(yōu)雅的80個MODBUS通訊的變頻器例子
文章出處:【微信號:PLC標(biāo)準(zhǔn)化編程,微信公眾號:PLC標(biāo)準(zhǔn)化編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論