基于Profibus-DP的控制系統(tǒng)通信互連
關(guān)鍵詞:plc;profibus-dp
引言
當(dāng)前在國(guó)際上有影響的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn)很多,其中,profibus-dp主要用于中央處理器與分散外圍設(shè)備之間的高速數(shù)據(jù)通信,解決自動(dòng)控制系統(tǒng)(如plc、pc等)通過(guò)高速串行總線與分散的現(xiàn)場(chǎng)設(shè)備(i/o、驅(qū)動(dòng)器、閥門(mén)等)之間的通信問(wèn)題。本文采用profibus-dp實(shí)現(xiàn)了西門(mé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è)備,而西門(mén)子s7-300 plc的cpu 315-2dp、cp342-5等既可做主站也可做從站。當(dāng)它們做從站時(shí),可設(shè)計(jì)為被動(dòng)從站或主動(dòng)從站。被動(dòng)從站執(zhí)行簡(jiǎn)單的dp協(xié)議功能,相當(dāng)于簡(jiǎn)單從站;主動(dòng)從站在總線中可以取得令牌,然后在確定的時(shí)間窗口中可以與從站通信,它除了支持簡(jiǎn)單的dp協(xié)議功能外,還支持一些其它的服務(wù),如支持fdl服務(wù)、s7、pg等。另外,cp342-5和帶cp5611卡的pc站還可實(shí)現(xiàn)二類dp主站、用于編程、診斷等功能。
因和利時(shí)公司的cpu24x和cpu21x的 plc為主站設(shè)備,在系統(tǒng)中只能做主站,因此本設(shè)計(jì)把西門(mén)子的設(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ò),fm208通信模塊為dp主站模塊,在dp網(wǎng)絡(luò)中做dp主站。所有的西門(mén)子dp從站設(shè)備都可以作為fm208的從站連接到dp網(wǎng)絡(luò)中,并通過(guò)使用dp通信協(xié)議實(shí)現(xiàn)相互間的直接數(shù)據(jù)通信。在此,西門(mén)子的s7-300、s7-200 plc和變頻器分別通過(guò)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,對(duì)應(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ù)起始地址和長(zhǎng)度,可以在plc程序的數(shù)據(jù)塊db1中為其指定數(shù)據(jù)尋址地址。例如上述從站i/o起始地址都是從0開(kāi)始,數(shù)據(jù)總長(zhǎng)度各為28個(gè)字,在db1中加入地址配置指令:
kc=uat: 0 28 0 28 ;end
在plc用戶程序中,直接根據(jù)上述設(shè)定的地址就可尋址從站的過(guò)程數(shù)據(jù),不需要額外的通信編程。
用于dp從站s7-300的用戶程序
s7-300 plc通過(guò)cp342-5作為主站和利時(shí)plc的從站,為確保數(shù)據(jù)通信的實(shí)現(xiàn),需完成以下工作。
① 組態(tài)cp342-5做從站。
② 編寫(xiě)從站用戶程序,并下載到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ù),包括過(guò)程輸出數(shù)據(jù)和傳遞到cpu的數(shù)據(jù)。
② 從cpu的dp數(shù)據(jù)域接收輸入數(shù)據(jù),為dp主站準(zhǔn)備數(shù)據(jù)。
③ 給dp主站準(zhǔn)備拾取和評(píng)估的診斷數(shù)據(jù)。
④ 給2類主站準(zhǔn)備讀取的i/o數(shù)據(jù)。
(2)數(shù)據(jù)交換原理
dp主站與dp從站的數(shù)據(jù)交換采用輪循方式,使用dp數(shù)據(jù)域中的接收緩沖區(qū)與發(fā)送緩沖區(qū)來(lái)完成。dp主站啟動(dòng)數(shù)據(jù)交換,將數(shù)據(jù)輸出到輸出緩沖區(qū),并從輸入緩沖區(qū)將數(shù)據(jù)取回,其原理如圖2所示。
cpu和cp間的數(shù)據(jù)交換是通過(guò)在cpu循環(huán)中調(diào)用s7的dp_rece和dp_send功能來(lái)實(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ù)域可以為過(guò)程映像、位寄存器以及數(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)通過(guò)調(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通信是通過(guò)使用fm208模塊將s7-200 cpu226作為dp從站連入網(wǎng)絡(luò)的。fm208為模塊化的dp從站,i/o數(shù)據(jù)最大為32字。fm208通過(guò)串行總線和s7-200 cpu226連接,通過(guò)dp通信端口連接到profibus上。其主要功能為:可運(yùn)行在9.6kbps-12mbps之間的任何速率;接收從主站來(lái)的i/o配置和參數(shù)信息;向主站發(fā)送和接收不同數(shù)量的數(shù)據(jù);傳送i/o數(shù)據(jù),以及支持變量塊的傳送等。
對(duì)主站的組態(tài)包括從站地址,從站的變量存儲(chǔ)區(qū)(v存儲(chǔ)區(qū))偏置以及選取i/o模塊。
運(yùn)行時(shí),dp主站首先建立網(wǎng)絡(luò),然后初始化啟動(dòng)dp從站,并且主站將參數(shù)賦值信息和i/o配置寫(xiě)入到從站。然后主站從從站獲取診斷信息,在確認(rèn)從站已接收到信息后,主站就擁有了此從站的指揮權(quán)。此時(shí)網(wǎng)絡(luò)上的其它主站可以讀取該從站的數(shù)據(jù)但是不能向該從站寫(xiě)入數(shù)據(jù)。整個(gè)主站的組態(tài)是通過(guò)設(shè)備數(shù)據(jù)庫(kù)(gsd)文件siem089d.gsd來(lái)完成的。
從站地址通過(guò)fm208模塊上的硬件開(kāi)關(guān)設(shè)定,此開(kāi)關(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é)語(yǔ)
采用profibus現(xiàn)場(chǎng)總線,不需做復(fù)雜的通信編程,就能方便地實(shí)現(xiàn)不同廠商的現(xiàn)場(chǎng)總線設(shè)備在一個(gè)系統(tǒng)中的集成,而且數(shù)據(jù)傳輸可靠、組態(tài)靈活、可以真正的實(shí)現(xiàn)即插即用功能。而且集成方法簡(jiǎn)單,通信可靠、快速,很適合實(shí)時(shí)系統(tǒng)控制的要求。在目前廠家為其提供的通信產(chǎn)品和通信服務(wù)功能由于不夠豐富而存在的一些通信問(wèn)題,通過(guò)靈活配置完全可以解決?!?/P>
評(píng)論