楊少華
(云南昆船設(shè)計(jì)研究院,云南 昆明 650236)
RS485與PROFINET跨網(wǎng)通訊的實(shí)現(xiàn)
楊少華
(云南昆船設(shè)計(jì)研究院,云南 昆明 650236)
以基于RS485網(wǎng)絡(luò)的Danfoss MCD3000軟啟動(dòng)器為例,結(jié)合Anybus網(wǎng)關(guān)的特點(diǎn),闡述了在RS485網(wǎng)絡(luò)和PROFINET之間通訊的方法和要點(diǎn),詳細(xì)說(shuō)明了關(guān)鍵設(shè)置步驟,并給出了Step7的通訊程序,為一網(wǎng)到底模式下跨網(wǎng)通訊提供了一種方式。經(jīng)應(yīng)用證明,在對(duì)實(shí)時(shí)性要求不是很高的情況下,這是一種經(jīng)濟(jì)可靠的通訊方式。
RS485;PROFINET;跨網(wǎng)通訊
隨著自動(dòng)化網(wǎng)絡(luò)技術(shù)的發(fā)展,基于TCP/IP協(xié)議的現(xiàn)場(chǎng)總線(xiàn)如PROFINET,EthernetIP等逐漸得到推廣和應(yīng)用。
然而,由于底層儀表或基礎(chǔ)驅(qū)動(dòng)裝置較多受成本等因素的影響,依然保留著RS232,RS485等串行通訊接口,這為“一網(wǎng)到底”的實(shí)施和推廣帶來(lái)了一定的障礙。因此,尋找一種接入方式,使之既能保證底層傳統(tǒng)網(wǎng)絡(luò)的正常運(yùn)行,又不影響先進(jìn)高效的工業(yè)以太網(wǎng)總線(xiàn)的應(yīng)用是一個(gè)值得研究的課題。本文以RS485接口的Danfoss MCD3000軟啟動(dòng)器為例,分析基于RS485網(wǎng)絡(luò)的電氣設(shè)備與PROFINET的聯(lián)接技術(shù),并給出了設(shè)計(jì)方案。
典型的RS485多機(jī)通信的數(shù)據(jù)傳輸方式有半雙工、全雙工兩種方式,通訊形式有同步和異步兩種通信方式。本方案考慮到從機(jī)的數(shù)據(jù)量不大,系統(tǒng)對(duì)數(shù)據(jù)的實(shí)時(shí)性要求不高,以及工程實(shí)施的簡(jiǎn)便性等因素,采用半雙工模式,其結(jié)構(gòu)如圖1所示。在這種模式下,數(shù)據(jù)可實(shí)現(xiàn)雙向傳送,但不能同時(shí)進(jìn)行。在本方案中,由于軟啟動(dòng)器有自己的時(shí)鐘,因此通訊形式須采用異步通信方式,即:每一幀以一個(gè)起始位開(kāi)始,緊接著若干個(gè)數(shù)據(jù)位,以一個(gè)停止位結(jié)束。
圖1 RS485半雙工通訊Fig.1 The half-duplex communication of RS485
一般情況下,RS485可以通過(guò)西門(mén)子的CP440模塊接入S7-400系統(tǒng),但是考慮到成本和通用性,本方案采用了HMS公司的AnyBus Profinet AB7013網(wǎng)關(guān)作為主機(jī),實(shí)現(xiàn)基于RS485通訊的各軟啟動(dòng)器對(duì)PROFINET的接入,網(wǎng)絡(luò)結(jié)構(gòu)見(jiàn)圖2。
圖2 RS485通過(guò)AB7013接入PROFINETFig.2 RS485connect to PROFINET via AB7013
具體接線(xiàn)時(shí),軟啟動(dòng)器的68(+)、69(-)端子分別對(duì)應(yīng)地接AB7013的DB9F上的8號(hào)(RS485+)和9號(hào)(RS485-)針腳,雙方的接地線(xiàn)對(duì)接。如果通訊距離較長(zhǎng)的話(huà),尚需接1個(gè)120Ω的終端電阻和2個(gè)470Ω的終端電阻。
運(yùn)行AB7013的配置工具ABC Config Tool,進(jìn)入?yún)?shù)配置界面,選中左邊“現(xiàn)場(chǎng)總線(xiàn)”欄,在對(duì)應(yīng)的“Fieldbus Type”下拉框中選“Profinet IO”,同時(shí)設(shè)置網(wǎng)關(guān)的IP地址、網(wǎng)關(guān)和子網(wǎng)掩碼;在“ABC”欄對(duì)應(yīng)的“Protocol Mode”下拉框中選“Master Mode”;在“子網(wǎng)”欄對(duì)應(yīng)的 “Physical standard”下拉框中選“RS485”;波特率、數(shù)據(jù)位數(shù)、奇偶校驗(yàn)、停止位等的設(shè)置與RS485各子站的設(shè)置需一致(MCD3000的Par.22和Par.23號(hào)參數(shù));分配各RS485從站地址:假設(shè)從站地址為3,則在“子網(wǎng)”下“添加節(jié)點(diǎn)”,并設(shè)置其“Slave address”為3。其他設(shè)置均選擇默認(rèn)值,參見(jiàn)圖3。
圖3 AB7013的設(shè)定Fig.3 The setting of AB7013
以“添加交換”的方式在新添加的節(jié)點(diǎn)下生成各數(shù)據(jù)包,每個(gè)數(shù)據(jù)包下有Query和Response兩條指令幀,通常以“添加字節(jié),常量”或“添加字,常量”的方式在這兩條指令幀下生成輸入輸出命令數(shù)據(jù)序列,各命令數(shù)據(jù)的內(nèi)容為MCD3000的ASCII指令對(duì)應(yīng)的16進(jìn)制數(shù),以0x開(kāi)頭填寫(xiě)在對(duì)應(yīng)的Value欄內(nèi)。每發(fā)一條指令前均需先發(fā)送“分配地址指令”方可生效;由PLC傳遞過(guò)來(lái)的定長(zhǎng)數(shù)據(jù)需以“添加數(shù)據(jù)變量”的方式接收。
MCD3000的ASCII指令類(lèi)型有12種,如分配地址的 ASCII指令為:EOT[nn][LRC]ENQ,發(fā)送命令的 ASCII指令為:STX[ccc][LRC]ETX,其中nn為2個(gè)字節(jié)ASCII碼從站地址,ccc為3個(gè)字節(jié)的ASCII碼命令數(shù),LRC為2個(gè)字節(jié)的十進(jìn)制縱向冗余校。MCD3000的LRC遵從Modbus協(xié)議下ASCII的LRC,可直接在ABC Config Tool中選取Checksum“添加校驗(yàn)”為“LRC”,亦可通過(guò)將其前面的本幀所有ASCII碼對(duì)應(yīng)的二進(jìn)制碼相加,得到的和進(jìn)行Mod256運(yùn)算取余(即按位取反碼加1),得到的16進(jìn)制數(shù)再轉(zhuǎn)化成2個(gè)字節(jié)的ASCII碼的方式獲得。最后,將上述各指令用16進(jìn)制數(shù)表達(dá)出來(lái)后按順序以0x開(kāi)頭填寫(xiě)在對(duì)應(yīng)的Value欄內(nèi)。如需要3號(hào)子站啟動(dòng),則依次傳送分配地址的幀數(shù)據(jù)(04 30 33 39 39 05)和啟動(dòng)指令幀數(shù)據(jù)(02 42 31 30 35 42 03)。至此ABC Config Tool的設(shè)置完成。
為了得到AnyBus各節(jié)點(diǎn)輸入輸出映像區(qū)的地址并驗(yàn)證各地址是否有沖突,打開(kāi)ABC Config Tool的“子網(wǎng)監(jiān)視器”,檢查地址沖突,并點(diǎn)擊相關(guān)復(fù)選框核實(shí)相關(guān)指令所在映像區(qū)的地址,圖4中“區(qū)域”部分的示意圖中,每一個(gè)方格表示一個(gè)字節(jié)的長(zhǎng)度。
圖4 AB7013各子節(jié)點(diǎn)緩沖區(qū)Fig.4 The buffer for sub-nodes of AB7013
在Step7中,打開(kāi)硬件配置,導(dǎo)入AB7013的GSD文件,將其GSD圖標(biāo)從硬件區(qū)拖至配置區(qū)的PROFINET-IO-System軌線(xiàn)上;雙擊在配置區(qū)新產(chǎn)生的AnyBus圖標(biāo),修改IP地址,再為其添加輸入輸出模塊,修改輸入輸出地址,從而完成所有組態(tài)操作,見(jiàn)圖5。
圖5 組態(tài)后的輸入輸出映像區(qū)地址Fig.5 The I/O images of PLC after configurations
編程時(shí),需要明晰PLC的輸入輸出映像區(qū)與AnyBus緩沖區(qū)的對(duì)應(yīng)關(guān)系。如果使用AnyBus網(wǎng)關(guān)默認(rèn)的寄存器,那么AnyBus輸入輸出映像區(qū)第1個(gè)數(shù)據(jù)的位置就是:輸入為0x002,輸出為0x202。因此對(duì)PLC的輸入映像區(qū)624的操作就是對(duì)AnyBus輸出緩沖區(qū)0x202的讀操作,對(duì)PLC的輸出映像區(qū)624的操作就是對(duì)AnyBus輸入緩沖區(qū)0x002的寫(xiě)操作。
編制FC如下:
在調(diào)用此FC塊賦值時(shí),對(duì)局部變量“OUT_addr”賦予PLC輸出映像區(qū)的實(shí)際地址值,如624;對(duì)“start”賦予啟動(dòng)的開(kāi)關(guān)量信號(hào);程序中16進(jìn)制的42,31,30即為 MCD3000的啟動(dòng)指令,其LRC已直接在ABC Config Tool中直接選取,因此不再單獨(dú)發(fā)送。
聯(lián)機(jī)調(diào)試時(shí),可以打開(kāi)ABC Config Tool的3#node“節(jié)點(diǎn)監(jiān)視器”,觀(guān)察數(shù)據(jù)交換是否正確。圖6為3#站的數(shù)據(jù)通訊情況,可以看到16進(jìn)制的42,31,30已經(jīng)在“輸出區(qū)域”出現(xiàn)。
圖6 AB7013聯(lián)機(jī)數(shù)據(jù)Fig.6 The communicating data of AB7013
本文為RS485接入PROFINET提供了一種方式,該方式可以進(jìn)一步推廣到能以RS485連接的其他電控設(shè)備,如SEW的變頻一體電機(jī)、施耐德的Microdrive V變頻器等。本方案在某公司煙葉生產(chǎn)線(xiàn)得到實(shí)際應(yīng)用,效果良好。事實(shí)證明,在對(duì)實(shí)時(shí)性要求不是很高的情況下,這是一種經(jīng)濟(jì)可靠的聯(lián)接方式。
[1] SIEMENS.Profinet IO Communication[Z].2006.
[2] HMS.Anybus Communicator for PROFINET User Manual[Z].2009.
[3] Danfoss.MCD3000Softstarter Operating Instructions[Z].2003.
修改稿日期:2010-11-25
Cross-network Communication Between RS485and PROFINET
YANG Shao-hua
(YunnanKunmingShipbuildingDesign&ResearchInstitute,Kunming650236,Yunnan,China)
By taking Danfoss MCD3000soft starter based on RS485as an example,and combining characteristics of Anybus gateway,the key points and methods of communication between RS485and PROFINET were introduced,detailed the key setup steps,gave communication program based Siemens Step7,and advanced a cross-network communication way in a total network.The application shows that is an economical and reliable means not special real-time requirements.
RS485;PROFINET;cross-network communication
TP274
A
楊少華(1973- ),男,碩士,高級(jí)工程師,Email:ksecyangshaohua@139.com
2010-08-30