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