采用Profibus-DP實(shí)現(xiàn)控制系統(tǒng)通信的方法
引言
當(dāng)前在國際上有影響的現(xiàn)場總線標(biāo)準(zhǔn)很多,其中,Profibus-DP主要用于中央處理器與分散外圍設(shè)備之間的高速數(shù)據(jù)通信,解決自動(dòng)控制系統(tǒng)(如PLC、PC等)通過高速串行總線與分散的現(xiàn)場設(shè)備(I/O、驅(qū)動(dòng)器、閥門等)之間的通信問題。本文采用Profibus-DP實(shí)現(xiàn)了西門子公司S7系列的PLC系統(tǒng)和和利時(shí)公司的CPU24x和CPU21x系列PLC的通訊互連。
圖1 主-從通信系統(tǒng)配置
圖2 在從站模式下CPU和CP數(shù)據(jù)交換原理示意圖
系統(tǒng)設(shè)計(jì)
和利時(shí)的CPU24x和CPU21x一般作為主站設(shè)備,而西門子S7-300 PLC的CPU 315-2DP、CP342-5等既可做主站也可做從站。當(dāng)它們做從站時(shí),可設(shè)計(jì)為被動(dòng)從站或主動(dòng)從站。被動(dòng)從站執(zhí)行簡單的DP協(xié)議功能,相當(dāng)于簡單從站;主動(dòng)從站在總線中可以取得令牌,然后在確定的時(shí)間窗口中可以與從站通信,它除了支持簡單的DP協(xié)議功能外,還支持一些其它的服務(wù),如支持FDL服務(wù)、S7、PG等。另外,CP342-5和帶CP5611卡的PC站還可實(shí)現(xiàn)二類DP主站、用于編程、診斷等功能。
因和利時(shí)公司的CPU24x和CPU21x的 PLC為主站設(shè)備,在系統(tǒng)中只能做主站,因此本設(shè)計(jì)把西門子的設(shè)備S7-300和S7-200 PLC作為從站,利用Profibus-DP的主-從通信原理實(shí)現(xiàn)他們的通信。系統(tǒng)配置如圖1所示。
在圖1中,和利時(shí) PLC使用Profibus-DP通信模塊FM208連接到Profibus-DP網(wǎng)絡(luò),F(xiàn)M208通信模塊為DP主站模塊,在DP網(wǎng)絡(luò)中做DP主站。所有的西門子DP從站設(shè)備都可以作為FM208的從站連接到DP網(wǎng)絡(luò)中,并通過使用DP通信協(xié)議實(shí)現(xiàn)相互間的直接數(shù)據(jù)通信。在此,西門子的S7-300、S7-200 PLC和變頻器分別通過Profibus-DP通信模塊CP 342-5、EM 277和CBP2做為和利時(shí)PLC的FM208的從站,并實(shí)現(xiàn)相互通信。
通信編程
用于DP主站的用戶程序
用于DP主站的用戶程序都已集成在Profibus-DP通信模塊FM208中,用戶只需完成以下幾個(gè)方面的組態(tài)及設(shè)置即可完成主站的用戶編程。
(1) DP網(wǎng)絡(luò)組態(tài),用WinNCS軟件完成。
① 啟動(dòng)WinNCS軟件,網(wǎng)絡(luò)類型選取Profibus。然后在Profibus網(wǎng)絡(luò)中插入主站,系統(tǒng)默認(rèn)CPU24x為主站,指定其DP主站地址為2,總線網(wǎng)絡(luò)的傳輸速率為1.5Mbps。
② 在FM208主站中插入DP從站CP342-5、EM277和CBP2,對應(yīng)的DP網(wǎng)絡(luò)地址為3、4、5。CP342-5的I/O數(shù)據(jù)選擇16個(gè)字進(jìn)16個(gè)字出,EM277的I/O數(shù)據(jù)模塊選擇8個(gè)字進(jìn)8個(gè)字出,CBP2的數(shù)據(jù)類型選擇PPO3。各從站的I/O數(shù)據(jù)在主站FM208中按順序自動(dòng)指定相應(yīng)的地址。
?、?編譯并保存文件,然后下載到通信處理器FM208中。
(2)FM208配置的從站I/O數(shù)據(jù)地址在CPU241中的地址分配。
根據(jù)用WinNCS配置的從站數(shù)及設(shè)定的I/O數(shù)據(jù)起始地址和長度,可以在PLC程序的數(shù)據(jù)塊DB1中為其指定數(shù)據(jù)尋址地址。例如上述從站I/O起始地址都是從0開始,數(shù)據(jù)總長度各為28個(gè)字,在DB1中加入地址配置指令:
KC='UAT: 0 28 0 28 ;END'
在PLC用戶程序中,直接根據(jù)上述設(shè)定的地址就可尋址從站的過程數(shù)據(jù),不需要額外的通信編程。
用于DP從站S7-300的用戶程序
S7-300 PLC通過CP342-5作為主站和利時(shí)PLC的從站,為確保數(shù)據(jù)通信的實(shí)現(xiàn),需完成以下工作。
?、?組態(tài)CP342-5做從站。
?、?編寫從站用戶程序,并下載到S7 PLC。
?、?啟動(dòng)和調(diào)試DP從站和DP主站。
④ 通信異常診斷。
(1)CP功能
CP342-5用作DP從站可以被DP主站組態(tài)為智能從站或模塊化主站,做從站時(shí)可以組態(tài)為被動(dòng)從站或主動(dòng)從站,但不允許在組態(tài)為從站的同時(shí)組態(tài)為主站。用作主動(dòng)從站時(shí)除了提供從站服務(wù)功能外,還可以提供如FDL連接服務(wù)等其它的通信服務(wù)。CP342-5的主要功能有:
?、?從主站接收用于配置和組態(tài)的參數(shù),包括過程輸出數(shù)據(jù)和傳遞到CPU的數(shù)據(jù)。
?、?從CPU的DP數(shù)據(jù)域接收輸入數(shù)據(jù),為DP主站準(zhǔn)備數(shù)據(jù)。
?、?給DP主站準(zhǔn)備拾取和*估的診斷數(shù)據(jù)。
?、?給2類主站準(zhǔn)備讀取的I/O數(shù)據(jù)。
(2)數(shù)據(jù)交換原理
DP主站與DP從站的數(shù)據(jù)交換采用輪循方式,使用DP數(shù)據(jù)域中的接收緩沖區(qū)與發(fā)送緩沖區(qū)來完成。DP主站啟動(dòng)數(shù)據(jù)交換,將數(shù)據(jù)輸出到輸出緩沖區(qū),并從輸入緩沖區(qū)將數(shù)據(jù)取回,其原理如圖2所示。
CPU和CP間的數(shù)據(jù)交換是通過在CPU循環(huán)中調(diào)用S7的DP_RECE和DP_SEND功能來實(shí)現(xiàn)的。其中,DP_RECE功能是接收由DP主站發(fā)送到從站CP的接收緩沖區(qū)的數(shù)據(jù),然后把數(shù)據(jù)輸出至CPU指定的DP數(shù)據(jù)域。而DP_SEND則是把CPU中指定的DP數(shù)據(jù)域中需傳輸?shù)臄?shù)據(jù)傳送至CP的發(fā)送緩沖區(qū),然后傳輸?shù)紻P主站。
(3)用戶程序
在S7 PLC中,CPU中的用戶數(shù)據(jù)域可以為過程映像、位寄存器以及數(shù)據(jù)塊,在本用戶程序中使用了數(shù)據(jù)塊。在S7用戶程序的Blocks目錄下,定義兩個(gè)數(shù)據(jù)塊DB1和DB2,分別用于存放接收和發(fā)送的數(shù)據(jù),然后在循環(huán)執(zhí)行的組織塊OB1中調(diào)用DP_RECE和DP_SEND功能。
當(dāng)DP主站改變運(yùn)行模式或崩潰時(shí),操作系統(tǒng)通過調(diào)用從站上的某個(gè)OB作出反應(yīng)。如果從站上的這些OB丟失,則CPU會(huì)立即自動(dòng)地切換到STOP。因此為了防止這種情況,需在從站建立相關(guān)的OB。
當(dāng)主站的CPU從RUN轉(zhuǎn)換到STOP時(shí),在從站的組織塊OB82(診斷中斷)將被調(diào)用。為防止CPU由于不存在OB82而停止,需在S7-300站的Blocks文件夾中插入組織塊OB82。
同理,當(dāng)DP主站崩潰時(shí),在從站上將調(diào)用組織塊OB86(機(jī)架故障)。為了防止S7-300從站的CPU在這樣的情況下進(jìn)入STOP,需在S7-300站的Blocks文件夾中插入組織塊OB86。
用于DP從站S7-200的用戶程序
主站和利時(shí)PLC和從站S7-200 CPU226之間的Profibus-DP通信是通過使用FM208模塊將S7-200 CPU226作為DP從站連入網(wǎng)絡(luò)的。FM208為模塊化的DP從站,I/O數(shù)據(jù)最大為32字。FM208通過串行總線和S7-200 CPU226連接,通過DP通信端口連接到Profibus上。其主要功能為:可運(yùn)行在9.6kbps-12Mbps之間的任何速率;接收從主站來的I/O配置和參數(shù)信息;向主站發(fā)送和接收不同數(shù)量的數(shù)據(jù);傳送I/O數(shù)據(jù),以及支持變量塊的傳送等。
對主站的組態(tài)包括從站地址,從站的變量存儲(chǔ)區(qū)(V存儲(chǔ)區(qū))偏置以及選取I/O模塊。
運(yùn)行時(shí),DP主站首先建立網(wǎng)絡(luò),然后初始化啟動(dòng)DP從站,并且主站將參數(shù)賦值信息和I/O配置寫入到從站。然后主站從從站獲取診斷信息,在確認(rèn)從站已接收到信息后,主站就擁有了此從站的指揮權(quán)。此時(shí)網(wǎng)絡(luò)上的其它主站可以讀取該從站的數(shù)據(jù)但是不能向該從站寫入數(shù)據(jù)。整個(gè)主站的組態(tài)是通過設(shè)備數(shù)據(jù)庫(GSD)文件siem089d.gsd來完成的。
從站地址通過FM208模塊上的硬件開關(guān)設(shè)定,此開關(guān)必須與主站軟件設(shè)定的地址一致。從站I/O緩沖區(qū)駐留在S7-200的V存儲(chǔ)區(qū),因此要求參數(shù)賦值中必須包含V存儲(chǔ)區(qū)的緩沖區(qū)的起始位置及I/O的數(shù)據(jù)量,以確定緩沖區(qū)的大小。FM208提供字節(jié)、字、緩沖區(qū)三種類型的數(shù)據(jù)交換。
S7-200 CPU226 PLC的通信用戶程序如下:
NETWORK 1
//計(jì)算輸出數(shù)據(jù)指針到V寄存器
LDB= SMB224,2
MOVD VB0,VD1000
ITD SMW226,AC0
+D AC0,VD1000
NETWORK 2
// 計(jì)算輸入數(shù)據(jù)指針到V寄存器
LDB =SMB224,2
MOVD VD1000,VD1004
BTI SMB228,AC0
ITD AC0,ACO
+D AC0, VD1004
NETWORK 3
//設(shè)置傳輸?shù)臄?shù)據(jù)量
LDB =SMB224,2
MOVB SMB228,VB1008
MOVB SMB229,VB1009
NETWORK 4 //傳輸數(shù)據(jù)
LDB =SMB224,2
BMB *VD1000,QB0,VB1008
BMB IB0,*VD1004,VB1009
結(jié)語
采用Profibus現(xiàn)場總線,不需做復(fù)雜的通信編程,就能方便地實(shí)現(xiàn)不同廠商的現(xiàn)場總線設(shè)備在一個(gè)系統(tǒng)中的集成,而且數(shù)據(jù)傳輸可靠、組態(tài)靈活、可以真正的實(shí)現(xiàn)即插即用功能。而且集成方法簡單,通信可靠、快速,很適合實(shí)時(shí)系統(tǒng)控制的要求。在目前廠家為其提供的通信產(chǎn)品和通信服務(wù)功能由于不夠豐富而存在的一些通信問題,通過靈活配置完全可以解決。
評論