去年一個(gè)偶然的機(jī)會(huì), 發(fā)現(xiàn)了一款國(guó)產(chǎn)的PLC編程平臺(tái),ANYCONTROL, 我們約等于可以認(rèn)為它是一款國(guó)產(chǎn)的CODESYS。比較新穎,據(jù)說(shuō)已經(jīng)成功于不少國(guó)產(chǎn)PLC和驅(qū)動(dòng)器平臺(tái)。
這個(gè)軟件平臺(tái)的特點(diǎn)是比較小。最新得到的版本才80M,然而我測(cè)試下來(lái),功能相當(dāng)完備,一點(diǎn)都不比完整的CODSYS軟件差。非常驚訝他是如何做到的。
軟件平臺(tái)天生支持各種主流通訊總線協(xié)議, PROFINET, ETHERCAT, ETHERNET/IP , MODBUS TCP, MODBUS RTU等。
我們可以用電腦模擬PLC控制器來(lái)做通訊實(shí)驗(yàn),系統(tǒng)給了一定的試用時(shí)間授權(quán),對(duì)于實(shí)現(xiàn)功能測(cè)試,足夠了。
上來(lái)測(cè)試,我沒(méi)有使用PN, EIP等的硬件設(shè)備,一則硬件需要成本,二則硬件需要接線,也比較麻煩。所以我選擇最入門的MODBUS TCP來(lái)做測(cè)試。因?yàn)樗某杀咀畹?。我們甚至可以?臺(tái)電腦內(nèi)通過(guò)運(yùn)行模擬軟件,就可以實(shí)現(xiàn)。
當(dāng)然,通訊成功后如果還想繼續(xù)拓展,也可以用一臺(tái)S7-1200來(lái)做PN從站,EIP從站以及MODBUS TCP服務(wù)端來(lái)實(shí)現(xiàn)硬件實(shí)驗(yàn)。我本來(lái)是有S7-1214的,所以本來(lái)想對(duì)為什么用軟件模擬的理由解釋是沒(méi)有硬件,后來(lái)發(fā)現(xiàn)不對(duì),我主要還是懶得折騰了。對(duì)面的從站那些功能的實(shí)現(xiàn)都是基本功能, 對(duì)我來(lái)說(shuō)沒(méi)什么懸念的,所以就沒(méi)什么必要。
但讀者們?nèi)绻寄苓€不夠熟練,也正在想盡各種途徑找一些折騰的方案以鍛煉自己, 那么搞一臺(tái)S7-1200甚至SMART 200,再配合本題,就可以做很多事情,積累很多經(jīng)驗(yàn)。尤其,西門子官方有出了PORTAL環(huán)境下的EIP通訊庫(kù),可以借機(jī)會(huì)了解一下。
上面是對(duì)讀者的建議,而我本文的主題只做MODBUS TCP的通訊實(shí)驗(yàn)。
ANYCONTROL中建立X64的標(biāo)準(zhǔn)項(xiàng)目,增加ETHETNET網(wǎng)口,再在其中添加MODBUS TCP SERVER, 并在SERVER之下增加若干個(gè)從站,我這里是7個(gè)。
我在去年一開(kāi)始第一次摸這個(gè)軟件的時(shí)候,沒(méi)有找到MODBUS TCP,以為其沒(méi)有,就覺(jué)得很奇怪。后來(lái)發(fā)現(xiàn)在ETHERNET的類里。我是想當(dāng)然的把ETHERNET當(dāng)成了AB公司推行的ETHERNET/IP了。然而認(rèn)知不一樣,軟件里是把EIP和MODBUS都作為了ETHERNET的一個(gè)子類。
為每一個(gè)從站設(shè)定網(wǎng)絡(luò)參數(shù),其中IP指向本地電腦網(wǎng)卡的IP,當(dāng)然也可以127.0.0.1的。而ID各不同,相當(dāng)有一個(gè)MODBUS TCP網(wǎng)關(guān)下的多個(gè)RTU從站。
也給每個(gè)從站設(shè)置分配了所要通訊讀寫的數(shù)值,這里分別是讀寫40001開(kāi)始的10個(gè)字
在IO映射配置中就自動(dòng)得到了輸入輸出地址。
比如2#站,讀取40001數(shù)據(jù)的地址在IW60,而要寫入數(shù)據(jù)到40001,則是QW60。
多個(gè)從站所分配得到的地址,分別為IW/QW 50,60,70,80,90,100,110。
PLC_PRG任務(wù)中,簡(jiǎn)單編寫一些程序:
即完成了各站點(diǎn)數(shù)據(jù)的通訊編程工作。
電腦中打開(kāi)MODSIM32軟件,建立多個(gè)數(shù)據(jù)模擬窗口,分別設(shè)置不同的ID,對(duì)應(yīng)PLC中所定義的各個(gè)從站。
然后PLC和MODSIM32分別開(kāi)啟模擬運(yùn)行,通訊實(shí)驗(yàn)就成功了!
對(duì)。就是這么簡(jiǎn)單。
即便是MODBUS通訊這樣在我們用習(xí)慣了SIEMENS PLC, 通常認(rèn)為比較麻煩, 需要在PLC中編制復(fù)雜策略的輪詢程序來(lái)實(shí)現(xiàn),在這里都異常簡(jiǎn)單,就是簡(jiǎn)單地以模塊化的組態(tài)的方式拖拖拽拽,填填參數(shù),就完成了。尤其是,即便實(shí)際項(xiàng)目中,需要增加或者刪除一個(gè)站點(diǎn),也只是增加或者減少這個(gè)站點(diǎn)本身,而不需要對(duì)其他原本存在的站點(diǎn)進(jìn)行任何變動(dòng)。這樣的模塊化才是真正的模塊化。
而在SIEMENS應(yīng)用圈里,要實(shí)現(xiàn)MODBUS和MODBUS TCP通訊,可是一件了不得的大事。所有在工程項(xiàng)目中有成功應(yīng)用的工程師,都值得拿出來(lái)總結(jié)一下大書(shū)特書(shū)。歷屆的西門子專家會(huì)議論文中,這方面的話題總是不斷。而網(wǎng)上相關(guān)這方面的文章更是多如牛毛。
我自己,寫過(guò)的關(guān)于MODBUS通訊的文章就不下20篇。因?yàn)槲抑鸩讲粌H僅實(shí)現(xiàn)了輪詢,還做了封裝和模塊化,并做成了標(biāo)準(zhǔn)的庫(kù)函數(shù)GML,做到了如本文ANYCONTROL組態(tài)一樣簡(jiǎn)單設(shè)置參數(shù)就可以實(shí)現(xiàn)通訊任務(wù)。當(dāng)然,我們的組態(tài)是在程序里,通過(guò)模塊的參數(shù)設(shè)置實(shí)現(xiàn)。
也曾經(jīng)想征集有理想有需求的同行, 將這個(gè)模式拓展到三菱,歐姆龍等同樣配置需求的PLC系統(tǒng)中。然而得到響應(yīng)并不積極。
現(xiàn)在則發(fā)現(xiàn),就像汽車有傳統(tǒng)車廠和新的造車新勢(shì)力一樣, PLC行業(yè)也有傳統(tǒng)勢(shì)力和新勢(shì)力之分。對(duì)于PLC新勢(shì)力,不管是ANYCONTROL , CODESYS,以及我沒(méi)摸過(guò)的其它平臺(tái),至少在MODBUS通訊方面已經(jīng)系統(tǒng)內(nèi)置了輪詢功能,應(yīng)用工程師在使用時(shí),只需要簡(jiǎn)單模塊化使用, 當(dāng)然,對(duì)施耐德來(lái)說(shuō),MODBUS本來(lái)就是其自家協(xié)議,當(dāng)然也早就內(nèi)置的,根本不需要專門做邏輯程序?qū)崿F(xiàn)。
近些年, PLC新勢(shì)力蓬勃發(fā)展,這種細(xì)節(jié)方面的簡(jiǎn)單易用一定在其中起到了重要的作用。也不可避免地導(dǎo)致了那些舊勢(shì)力的被日漸冷落。而即便如西門子這樣的行業(yè)龍頭,也必然不可避免會(huì)受到?jīng)_擊。
那么對(duì)于我們這些多年使用西門子,偏愛(ài)西門子,甚至曾經(jīng)入職西門子為其工作,將其視為自己家人般的工程師來(lái)說(shuō), 指出來(lái)事實(shí)真相當(dāng)然不能算作是背叛,而我們能做的則是對(duì)發(fā)現(xiàn)的其中的短板幫忙加以補(bǔ)足,也算是彌補(bǔ)這一缺陷方面做出些自己的貢獻(xiàn)。
所以,我打算將我前面開(kāi)發(fā)的S7-1200/1500和SMART 200的MODBUS 封裝庫(kù)GML以極低的價(jià)格出售。3年前都是價(jià)格1000的。但現(xiàn)在需要的工程師以幾十元價(jià)格就可以得到,就可以以后在項(xiàng)目中重復(fù)永久使用了。
因?yàn)樵?a href="http://ttokpm.com/tags/ti/" target="_blank">TIA PORTAL中的庫(kù)函數(shù)在軟件升級(jí)后加密塊無(wú)法編譯,所以會(huì)針對(duì)V16-V19的每個(gè)版本單獨(dú)做成加密庫(kù),TCP和RTU分開(kāi),S7-1200和S7-1500因?yàn)榇a參數(shù)不同也分開(kāi)的,另外SMART 200只做了RTU版本, 對(duì)于TCP因?yàn)橐恢睕](méi)有需求,所以暫時(shí)沒(méi)做,以后估計(jì)不大會(huì)有這方面的需求。
審核編輯:劉清
-
RTU
+關(guān)注
關(guān)注
0文章
403瀏覽量
28596 -
GML
+關(guān)注
關(guān)注
0文章
4瀏覽量
8234 -
modbus通訊
+關(guān)注
關(guān)注
0文章
13瀏覽量
1694
原文標(biāo)題:1231 【萬(wàn)泉河】體驗(yàn)?zāi)K化的MODBUS通訊以及GML開(kāi)放計(jì)劃
文章出處:【微信號(hào):PLC標(biāo)準(zhǔn)化編程,微信公眾號(hào):PLC標(biāo)準(zhǔn)化編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論