1 引言
PROFIBUS是一種國(guó)際化、開(kāi)放式、不依賴于設(shè)備生產(chǎn)商的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)。廣泛適用于制造業(yè)自動(dòng)化、流程工業(yè)自動(dòng)化和樓宇、交通、電力等其他領(lǐng)域自動(dòng)化。PROFIBUS由三個(gè)兼容部分組成,即PROFIBUS-DP(Decentralized Periphery)、PROFIBUS-PA(Process Automation)、PROFIBUS-FMS(Fieldbus Message Specification)。其中PROFIBUS-DP是一種高速低成本用于設(shè)備級(jí)控制系統(tǒng)與分散式I/O通信的一種總線。其傳輸介質(zhì)為雙絞屏蔽線,波特率從9600bps到12Mbps。使用PROFIBUS-DP可取代24VDC或4-20mA信號(hào)傳輸。Modbus目前是工業(yè)領(lǐng)域全球最流行的協(xié)議之一。此協(xié)議支持傳統(tǒng)的帶RS-232、RS-422、RS-485和以太網(wǎng)接口的設(shè)備。許多工業(yè)設(shè)備,包括PLC、DCS、智能儀表等都在使用Modbus協(xié)議作為它們之間的通訊標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。
作者在設(shè)計(jì)某電力自動(dòng)控制系統(tǒng)時(shí),需要將許繼公司生產(chǎn)的繼電保護(hù)裝置的參數(shù)讀取到Siemens公司的S7-400 PLC中,并集成到SCADA(Supervisory Control And Data Acquisition)監(jiān)控系統(tǒng)中,參與實(shí)際的連鎖控制。繼電保護(hù)裝置提供RS-485通訊接口,其通訊協(xié)議為Modbus RTU(Remote Terminal Unit)協(xié)議。為了實(shí)現(xiàn)Modbus RTU協(xié)議到PROFIBUS協(xié)議的轉(zhuǎn)換,本設(shè)計(jì)將西門子PLC S7-400作PROFIBUS主站,利用北京鼎實(shí)公司生產(chǎn)的Profibus-Modbus網(wǎng)橋(以下簡(jiǎn)稱PB-M網(wǎng)橋)和Modbus從站通訊,然后通過(guò)PLC中的工業(yè)以太網(wǎng)模塊、現(xiàn)場(chǎng)總線模塊連接到企業(yè)SCADA系統(tǒng)中,使二者得到完美的結(jié)合。
[align=center]表1 遙信信息點(diǎn)通訊的數(shù)據(jù)
[/align]
2 繼電保護(hù)系統(tǒng)
本電力系統(tǒng)電站裝機(jī)容量為6MW。其主接線為一機(jī)一變兩回線,變壓器為電壓變比10/6.3kV的雙圈變壓器。電站10kV出線兩回至用戶站。
本繼電保護(hù)系統(tǒng)的主要監(jiān)測(cè)對(duì)象包括:一臺(tái)發(fā)電機(jī)組、一臺(tái)主變壓器、兩回10kV出線、400V廠用變;保護(hù)對(duì)象包括電站的發(fā)電機(jī)、變壓器、10kV出線。該繼電保護(hù)系統(tǒng)提供一智能通訊服務(wù)器,其功能是將許繼設(shè)備的通訊規(guī)約轉(zhuǎn)換為MODBUS規(guī)約,預(yù)留RS-485通訊接口與CP340進(jìn)行通訊。通訊的數(shù)據(jù)量包括遙信信息點(diǎn)(功能碼02,起始查詢地址0):YX1~YX36,祥見(jiàn)表1。遙測(cè)信息點(diǎn)(功能碼03,起始查詢地址0)YC1~YC18,祥見(jiàn)表2。
[align=center]表2 遙測(cè)信息點(diǎn)通訊的數(shù)據(jù)
[/align]
3 通訊系統(tǒng)
3.1 通訊系統(tǒng)的構(gòu)成
在本自動(dòng)控制系統(tǒng)中,將西門子S7-400 PLC作PROFIBUS主站,ET 200M和PB-M網(wǎng)橋作PROFIBUS從站。另一方面,在Modbus總線中將PB-M網(wǎng)橋作Modbus主站,繼電保護(hù)裝置和直流屏設(shè)備作為Modbus的從站,雙方以9600bps的通訊速率進(jìn)行通訊。具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示:
[align=center]
圖1 網(wǎng)絡(luò)結(jié)構(gòu)示意圖[/align]
3.2 Modbus通訊協(xié)議簡(jiǎn)介
Modbus目前是工業(yè)領(lǐng)域全球最流行的協(xié)議之一。此協(xié)議支持傳統(tǒng)的帶RS-232、RS-422、RS-485和以太網(wǎng)接口的設(shè)備。當(dāng)在網(wǎng)絡(luò)上通信時(shí),Modbus協(xié)議決定了每個(gè)控制器必須要有它們的設(shè)備地址,能識(shí)別發(fā)來(lái)的消息,決定要產(chǎn)生何種行動(dòng)。如果需要回應(yīng),控制器將生成應(yīng)答并使用Modbus協(xié)議發(fā)送給詢問(wèn)方。
Modbus協(xié)議有ASCII、RTU二種協(xié)議,并沒(méi)有規(guī)定物理層。此協(xié)議定義了控制器能夠認(rèn)識(shí)和使用的消息結(jié)構(gòu),而不管它們是經(jīng)過(guò)何種網(wǎng)絡(luò)進(jìn)行通信的。Modbus的ASCII、RTU協(xié)議規(guī)定了消息、數(shù)據(jù)的結(jié)構(gòu)、命令和應(yīng)答的方式,數(shù)據(jù)通訊采用Maser/Slave方式,Master端發(fā)出數(shù)據(jù)請(qǐng)求消息,Slave端接收到正確消息后就可以發(fā)送數(shù)據(jù)到Master端以響應(yīng)請(qǐng)求;Master端也可以直接發(fā)消息修改Slave端的數(shù)據(jù),實(shí)現(xiàn)雙向讀寫。
(1) Modbus通訊協(xié)議的功能碼
Modbus的Slave端是根據(jù)Master端發(fā)送過(guò)來(lái)的功能碼進(jìn)行相應(yīng)的動(dòng)作的。表3是Modbus RTU協(xié)議常用的功能碼,使用它們即可實(shí)現(xiàn)對(duì)Slave端的數(shù)字量和模擬量進(jìn)行讀寫操作。
[align=center]表3 Modbus RTU協(xié)議常用功能碼
[/align]
(2) Modbus RTU通訊協(xié)議幀結(jié)構(gòu)
表4列出了RTU協(xié)議每個(gè)字節(jié)的位。
Modbus RTU協(xié)議的典型數(shù)據(jù)幀格式見(jiàn)表5。
[align=center]表5 RTU協(xié)議數(shù)據(jù)幀格式
[/align]
表6給出了以RTU方式讀取一個(gè)整數(shù)數(shù)據(jù)的例子:主機(jī)請(qǐng)求。
[align=center]表6 主機(jī)請(qǐng)求示例
[/align]
表7給出了以協(xié)議從機(jī)應(yīng)答讀取整數(shù)數(shù)據(jù)示例。
4 PB-M網(wǎng)橋的配置
PB-M網(wǎng)橋是智能型PROFIBUS到Modbus-232/485的協(xié)議轉(zhuǎn)換總線橋,在接口RAM中建立了PROFIBUS到Modbus的映射數(shù)據(jù)區(qū),由軟件實(shí)現(xiàn)PROFIBUS到Modbus的協(xié)議轉(zhuǎn)換和數(shù)據(jù)交換。凡具有RS-232/485接口的MODBUS協(xié)議設(shè)備都可以利用PB-M網(wǎng)橋與現(xiàn)場(chǎng)總線PROFIBUS互連。一方面,PB-M網(wǎng)橋在與PROFIBUS通訊時(shí)是作為PROFIBUS從站;另一方面,它在與Modbus通訊時(shí),即可以作Modbus主站,也可作Modbus從站。通過(guò)該網(wǎng)橋的集成軟件GSD文件,可以在西門子STEP 7編程軟件中對(duì)該網(wǎng)橋進(jìn)行硬件和軟件配置,完成相應(yīng)的通訊功能。以下是詳細(xì)的硬件和軟件配置方法:
4.1 PB-M網(wǎng)橋的硬件設(shè)計(jì)
PB-M網(wǎng)橋的PROFIBUS從站地址和MODBUS主、從站選擇可以通過(guò)該網(wǎng)橋的硬件撥碼開(kāi)關(guān)來(lái)設(shè)置。其撥碼開(kāi)關(guān)有8位,其最高位是設(shè)置MODBUS主從站的(若該位設(shè)為0,即將其作為MODBUS主站;若該位設(shè)為1,即將其作為MODBUS從站);其它的低7位設(shè)置PROFIBUS從站地址。本設(shè)計(jì)將其作PROFIBUS從站(地址為19,二進(jìn)制:00010011)和MODBUS主站,因此撥碼開(kāi)關(guān)設(shè)置為:00010011。
PB-M網(wǎng)橋自帶PROFIBUS DP接口,可以使用標(biāo)準(zhǔn)的PROFIBUS DP連接頭和標(biāo)準(zhǔn)的PROFIBUS電纜將其連接至PROFIBUS現(xiàn)場(chǎng)總線中。
PB-M網(wǎng)橋還提供RS-232/485接口,其他MODBUS從站可以通過(guò)該接口實(shí)現(xiàn)與PB-M網(wǎng)橋的通訊。須注意的是在RS-485總線終端要加終端電阻,PB-M網(wǎng)橋已內(nèi)置終端電阻,只需用外接短接線將其接入RS-485網(wǎng)絡(luò)即可。圖2是RS-485網(wǎng)絡(luò)連接和終端電阻的連接示意圖:
[align=center]
圖2 RS-485網(wǎng)絡(luò)連接和終端電阻的連接示意圖[/align]
4.2 PB-M網(wǎng)橋的軟件配置
硬件連接配置好后,就可以開(kāi)始配置PB-M網(wǎng)橋的軟件了。其軟件配置包括:設(shè)備參數(shù)配置和MODBUS報(bào)文隊(duì)列配置:
(1) PB-M網(wǎng)橋的設(shè)備參數(shù)配置
在STEP 7的HW Config中,可以通過(guò)安裝PB-M網(wǎng)橋的GSD文件(DS_MMV3.GSD是MODBUS主站的GSD文件;DS_MSV3.GSD是MODBUS從站的GSD文件)把PB-M網(wǎng)橋的配置文件添加到STEP 7的設(shè)備配置庫(kù)中。此后,就可以按圖3的示意方法配置PB-B網(wǎng)橋的硬件了。
[align=center]
圖3 PB-B網(wǎng)橋的配置示意圖[/align]
將PB-M網(wǎng)橋添加到S7的硬件配置系統(tǒng)中后,可以對(duì)其相關(guān)參數(shù)進(jìn)行配置。本設(shè)計(jì)將PB-M網(wǎng)橋作為MODBUS主站,根據(jù)MODBUS從站的要求,主站基本參數(shù)配置如下:
PROFIBUS從站地址=19;
波特率=9600;校驗(yàn)方式:無(wú)校驗(yàn);
數(shù)據(jù)更新模式:在每條MD回答后;
等待回答時(shí)間:50ms。
(2) PB-M網(wǎng)橋的MODBUS報(bào)文隊(duì)列配置
根據(jù)通訊系統(tǒng)的要求,PB-M網(wǎng)橋可以配置不同的報(bào)文隊(duì)列來(lái)完成實(shí)際的通訊要求。PB-M網(wǎng)橋有0?!?9#共20個(gè)槽(邏輯上,非物理設(shè)備);0#、1#槽已占用,剩下18個(gè)槽提供用戶使用。每個(gè)槽可以用來(lái)插入一條MODBUS通信模塊;所以一共可以插入18條MODBUS模塊。PB-M網(wǎng)橋的每一個(gè)MODBUS模塊對(duì)應(yīng)一種功能的MODBUS報(bào)文,可雙擊插入某一槽中。
下面以在2#槽中插入“read 24 bits(0xxxx)”為例說(shuō)明MODBUS模塊是如何完成某種功能的MODBUS報(bào)文的該MODBUS模塊對(duì)應(yīng)MODBUS的01h功能,即:讀取24個(gè)輸出線圈0xxxx狀態(tài)。
第一步: 選中2#槽,然后雙擊“read24 bits(0xxxx)”; 2#槽中插入“24DI read 24 bits(0xxxx) 1…3”;
第二步: 進(jìn)一步設(shè)定MODBUS參數(shù):雙擊2#槽中的“24DI read 24 bits(0xxxx) 1…3”;選擇“Parameter Assignment”,即可設(shè)定“從站地址”和“起始地址”等參數(shù)。
參數(shù)設(shè)定完后,就建立了如圖4所示的MODBUS至PROFIBUS的數(shù)據(jù)映射關(guān)系。
[align=center]
圖4 數(shù)據(jù)映射關(guān)系[/align]
其中,I1..I3是PROFIBUS主站分配給這個(gè)MODBUS模塊的PROFIBUS輸入地址I1~I(xiàn)3,對(duì)應(yīng)本MODBUS報(bào)文讀到的24 bits (0xxxx)。這樣,PLC在進(jìn)行編程時(shí),直接讀取I1~I(xiàn)3即可得到MODBUS 的24個(gè)輸出線圈0xxxx的狀態(tài)。
本PB-M網(wǎng)橋需要完成的通訊數(shù)據(jù)包括:36個(gè)遙信信息點(diǎn)(功能碼02)和18個(gè)遙測(cè)信息點(diǎn)(功能碼03)。根據(jù)此要求,需配置的報(bào)文隊(duì)列如圖5所示(站號(hào)為19、起始地址為0):
[align=center]
圖5 報(bào)文隊(duì)列配置示意圖[/align]
2#槽的報(bào)文隊(duì)列對(duì)應(yīng)的MODBUS命令是:發(fā)功能碼02命令—讀輸入線圈10001~10032的狀態(tài),存入I11~I(xiàn)14;
3#槽的報(bào)文隊(duì)列對(duì)應(yīng)的MODBUS命令是:發(fā)功能碼03命令—讀保持寄存器40001~40018的值,存入I528~I(xiàn)563;
完成以上配置后,PLC就可以和MODBUS從站設(shè)備進(jìn)行通訊了。
5 結(jié)束語(yǔ)
自本通訊系統(tǒng)運(yùn)行以來(lái),PLC與Modbus RTU間的通訊一直正常,從未出現(xiàn)過(guò)任何軟、硬件故障以及其它干擾現(xiàn)象,有效地保證了自動(dòng)控制系統(tǒng)的正常運(yùn)行??梢?jiàn),PLC通過(guò)PB-M網(wǎng)橋與Modbus RTU通訊是一種行之有效的方法。PLC和上位機(jī)WINCC可以讀取儀表中溫度測(cè)量值、設(shè)定值等,同時(shí)可以遠(yuǎn)程設(shè)置繼電保護(hù)裝置和直流屏設(shè)備中的數(shù)據(jù),極大地方便了現(xiàn)場(chǎng)的控制和操作。由此看來(lái),利用PB-M網(wǎng)橋來(lái)解決Siemens PLC與第三方智能控制儀表之間的通訊是一個(gè)值得推廣的方式,在電力自動(dòng)控制系統(tǒng)中,一定會(huì)取得更加成功的應(yīng)用。