基于Profibus-DP的控制系統通信互連
關(guān)鍵詞:plc;profibus-dp
引言
當前在國際上有影響的現場(chǎng)總線(xiàn)標準很多,其中,profibus-dp主要用于中央處理器與分散外圍設備之間的高速數據通信,解決自動(dòng)控制系統(如plc、pc等)通過(guò)高速串行總線(xiàn)與分散的現場(chǎng)設備(i/o、驅動(dòng)器、閥門(mén)等)之間的通信問(wèn)題。本文采用profibus-dp實(shí)現了西門(mén)子公司s7系列的plc系統和和利時(shí)公司的cpu24x和cpu21x系列plc的通訊互連。
圖1 主-從通信系統配置
圖2 在從站模式下cpu和cp數據交換原理示意圖
系統設計
和利時(shí)的cpu24x和cpu21x一般作為主站設備,而西門(mén)子s7-300 plc的cpu 315-2dp、cp342-5等既可做主站也可做從站。當它們做從站時(shí),可設計為被動(dòng)從站或主動(dòng)從站。被動(dòng)從站執行簡(jiǎn)單的dp協(xié)議功能,相當于簡(jiǎn)單從站;主動(dòng)從站在總線(xiàn)中可以取得令牌,然后在確定的時(shí)間窗口中可以與從站通信,它除了支持簡(jiǎn)單的dp協(xié)議功能外,還支持一些其它的服務(wù),如支持fdl服務(wù)、s7、pg等。另外,cp342-5和帶cp5611卡的pc站還可實(shí)現二類(lèi)dp主站、用于編程、診斷等功能。
因和利時(shí)公司的cpu24x和cpu21x的 plc為主站設備,在系統中只能做主站,因此本設計把西門(mén)子的設備s7-300和s7-200 plc作為從站,利用profibus-dp的主-從通信原理實(shí)現他們的通信。系統配置如圖1所示。
在圖1中,和利時(shí) plc使用profibus-dp通信模塊fm208連接到profibus-dp網(wǎng)絡(luò ),fm208通信模塊為dp主站模塊,在dp網(wǎng)絡(luò )中做dp主站。所有的西門(mén)子dp從站設備都可以作為fm208的從站連接到dp網(wǎng)絡(luò )中,并通過(guò)使用dp通信協(xié)議實(shí)現相互間的直接數據通信。在此,西門(mén)子的s7-300、s7-200 plc和變頻器分別通過(guò)profibus-dp通信模塊cp 342-5、em 277和cbp2做為和利時(shí)plc的fm208的從站,并實(shí)現相互通信。
通信編程
用于dp主站的用戶(hù)程序
用于dp主站的用戶(hù)程序都已集成在profibus-dp通信模塊fm208中,用戶(hù)只需完成以下幾個(gè)方面的組態(tài)及設置即可完成主站的用戶(hù)編程。
(1) dp網(wǎng)絡(luò )組態(tài),用winncs軟件完成。
① 啟動(dòng)winncs軟件,網(wǎng)絡(luò )類(lèi)型選取profibus。然后在profibus網(wǎng)絡(luò )中插入主站,系統默認cpu24x為主站,指定其dp主站地址為2,總線(xiàn)網(wǎng)絡(luò )的傳輸速率為1.5mbps。
② 在fm208主站中插入dp從站cp342-5、em277和cbp2,對應的dp網(wǎng)絡(luò )地址為3、4、
5。cp342-5的i/o數據選擇16個(gè)字進(jìn)16個(gè)字出,em277的i/o數據模塊選擇8個(gè)字進(jìn)8個(gè)字出,cbp2的數據類(lèi)型選擇ppo3。各從站的i/o數據在主站fm208中按順序自動(dòng)指定相應的地址。
③ 編譯并保存文件,然后下載到通信處理器fm208中。
(2)fm208配置的從站i/o數據地址在cpu241中的地址分配。
根據用winncs配置的從站數及設定的i/o數據起始地址和長(cháng)度,可以在plc程序的數據塊db1中為其指定數據尋址地址。例如上述從站i/o起始地址都是從0開(kāi)始,數據總長(cháng)度各為28個(gè)字,在db1中加入地址配置指令:
kc=uat: 0 28 0 28 ;end
在plc用戶(hù)程序中,直接根據上述設定的地址就可尋址從站的過(guò)程數據,不需要額外的通信編程。
用于dp從站s7-300的用戶(hù)程序
s7-300 plc通過(guò)cp342-5作為主站和利時(shí)plc的從站,為確保數據通信的實(shí)現,需完成以下工作。
① 組態(tài)cp342-5做從站。
② 編寫(xiě)從站用戶(hù)程序,并下載到s7 plc。
③ 啟動(dòng)和調試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)的參數,包括過(guò)程輸出數據和傳遞到cpu的數據。
② 從cpu的dp數據域接收輸入數據,為dp主站準備數據。
③ 給dp主站準備拾取和評估的診斷數據。
④ 給2類(lèi)主站準備讀取的i/o數據。
(2)數據交換原理
dp主站與dp從站的數據交換采用輪循方式,使用dp數據域中的接收緩沖區與發(fā)送緩沖區來(lái)完成。dp主站啟動(dòng)數據交換,將數據輸出到輸出緩沖區,并從輸入緩沖區將數據取回,其原理如圖2所示。
cpu和cp間的數據交換是通過(guò)在cpu循環(huán)中調用s7的dp_rece和dp_send功能來(lái)實(shí)現的。其中,dp_rece功能是接收由dp主站發(fā)送到從站cp的接收緩沖區的數據,然后把數據輸出至cpu指定的dp數據域。而dp_send則是把cpu中指定的dp數據域中需傳輸的數據傳送至cp的發(fā)送緩沖區,然后傳輸到dp主站。
(3)用戶(hù)程序
在s7 plc中,cpu中的用戶(hù)數據域可以為過(guò)程映像、位寄存器以及數據塊,在本用戶(hù)程序中使用了數據塊。在s7用戶(hù)程序的blocks目錄下,定義兩個(gè)數據塊db1和db2,分別用于存放接收和發(fā)送的數據,然后在循環(huán)執行的組織塊ob1中調用dp_rece和dp_send功能。
當dp主站改變運行模式或崩潰時(shí),操作系統通過(guò)調用從站上的某個(gè)ob作出反應。如果從站上的這些ob丟失,則cpu會(huì )立即自動(dòng)地切換到stop。因此為了防止這種情況,需在從站建立相關(guān)的ob。
當主站的cpu從run轉換到stop時(shí),在從站的組織塊ob82(診斷中斷)將被調用。為防止cpu由于不存在ob82而停止,需在s7-300站的blocks文件夾中插入組織塊ob82。
同理,當dp主站崩潰時(shí),在從站上將調用組織塊ob86(機架故障)。為了防止s7-300從站的cpu在這樣的情況下進(jìn)入stop,需在s7-300站的blocks文件夾中插入組織塊ob86。
用于dp從站s7-200的用戶(hù)程序
主站和利時(shí)plc和從站s7-200 cpu226之間的profibus-dp通信是通過(guò)使用fm208模塊將s7-200 cpu226作為dp從站連入網(wǎng)絡(luò )的。fm208為模塊化的dp從站,i/o數據最大為32字。fm208通過(guò)串行總線(xiàn)和s7-200 cpu226連接,通過(guò)dp通信端口連接到profibus上。其主要功能為:可運行在9.6kbps-12mbps之間的任何速率;接收從主站來(lái)的i/o配置和參數信息;向主站發(fā)送和接收不同數量的數據;傳送i/o數據,以及支持變量塊的傳送等。
對主站的組態(tài)包括從站地址,從站的變量存儲區(v存儲區)偏置以及選取i/o模塊。
運行時(shí),dp主站首先建立網(wǎng)絡(luò ),然后初始化啟動(dòng)dp從站,并且主站將參數賦值信息和i/o配置寫(xiě)入到從站。然后主站從從站獲取診斷信息,在確認從站已接收到信息后,主站就擁有了此從站的指揮權。此時(shí)網(wǎng)絡(luò )上的其它主站可以讀取該從站的數據但是不能向該從站寫(xiě)入數據。整個(gè)主站的組態(tài)是通過(guò)設備數據庫(gsd)文件siem089d.gsd來(lái)完成的。
從站地址通過(guò)fm208模塊上的硬件開(kāi)關(guān)設定,此開(kāi)關(guān)必須與主站軟件設定的地址一致。從站i/o緩沖區駐留在s7-200的v存儲區,因此要求參數賦值中必須包含v存儲區的緩沖區的起始位置及i/o的數據量,以確定緩沖區的大小。fm208提供字節、字、緩沖區三種類(lèi)型的數據交換。
s7-200 cpu226 plc的通信用戶(hù)程序如下:
network 1
//計算輸出數據指針到v寄存器
ldb= smb224,2
movd &vb0,vd1000
itd smw226,ac0
+d ac0,vd1000
network 2
// 計算輸入數據指針到v寄存器
ldb =smb224,2
movd vd1000,vd1004
bti smb228,ac0
itd ac0,aco
+d ac0, vd1004
network 3
//設置傳輸的數據量
ldb =smb224,2
movb smb228,vb1008
movb smb229,vb1009
network 4 //傳輸數據
ldb =smb224,2
bmb *vd1000,qb0,vb1008
bmb ib0,*vd1004,vb1009
結語(yǔ)
采用profibus現場(chǎng)總線(xiàn),不需做復雜的通信編程,就能方便地實(shí)現不同廠(chǎng)商的現場(chǎng)總線(xiàn)設備在一個(gè)系統中的集成,而且數據傳輸可靠、組態(tài)靈活、可以真正的實(shí)現即插即用功能。而且集成方法簡(jiǎn)單,通信可靠、快速,很適合實(shí)時(shí)系統控制的要求。在目前廠(chǎng)家為其提供的通信產(chǎn)品和通信服務(wù)功能由于不夠豐富而存在的一些通信問(wèn)題,通過(guò)靈活配置完全可以解決?!?/P>
評論