劉文波,王孟效,王 鋒
(1.陜西科技大學(xué) 電氣與信息工程學(xué)院,西安 710021;2.浙江力諾流體控制科技股份有限公司,瑞安 325200)
上位機(jī)與S7-200 PLC之間的數(shù)據(jù)交換方法
劉文波1,王孟效1,王 鋒2
(1.陜西科技大學(xué) 電氣與信息工程學(xué)院,西安 710021;2.浙江力諾流體控制科技股份有限公司,瑞安 325200)
在工業(yè)控制領(lǐng)域,PLC得到廣泛應(yīng)用[1]。隨著控制系統(tǒng)的網(wǎng)絡(luò)化,PLC除了實(shí)現(xiàn)對現(xiàn)場信號的采集及現(xiàn)場設(shè)備的控制功能之外,還需要能與上位控制計算機(jī)之間實(shí)現(xiàn)數(shù)據(jù)交換,從而通過上位機(jī)實(shí)施監(jiān)控。根據(jù)所選則的PLC及上位機(jī)的不同,它們之間的數(shù)據(jù)交換方法也不盡相同。本文針對西門子公司的S7-200系列PLC,研究其與上位機(jī)之間的數(shù)據(jù)交換,并給出其實(shí)現(xiàn)方法。
在實(shí)際應(yīng)用中,以PLC為控制器的控制系統(tǒng)結(jié)構(gòu)可由圖1表示。其中上位機(jī)用于實(shí)現(xiàn)現(xiàn)場設(shè)備運(yùn)行狀況監(jiān)控、數(shù)據(jù)處理、數(shù)據(jù)存儲等功能。系統(tǒng)中可使用單臺或多臺PLC,它們與現(xiàn)場設(shè)備之間通過輸入輸出通道進(jìn)行連接,用于實(shí)現(xiàn)現(xiàn)場設(shè)備信號采集及控制功能。
圖1 PLC控制系統(tǒng)結(jié)構(gòu)
S7-200 是西門子公司推出的一種小型可編程序控制器,相對于S7-300及S7-400系列,S7-200系列PLC與上位機(jī)間的數(shù)據(jù)交換較為復(fù)雜,上位機(jī)使用不同組態(tài)軟件時,數(shù)據(jù)交換方法也不盡相同。實(shí)際應(yīng)用中上位機(jī)組態(tài)軟件主要有兩類實(shí)現(xiàn)方式,其一是采用WinCC等專用組態(tài)軟件,另一種是根據(jù)具體應(yīng)用系統(tǒng)采用VC++、VB等編程軟件開發(fā)。根據(jù)所使用的組態(tài)軟件不同,主要有如下數(shù)據(jù)交換方法。
當(dāng)上位機(jī)采用WinCC組態(tài)軟件時,可以通過OPC[2](OLE for Process Control,過程控制的對象連接和嵌入)、Prof i bus-DP以及自由口通訊等方式實(shí)現(xiàn)數(shù)據(jù)交換。
2.1.1 OPC方式
OPC當(dāng)前已成為工業(yè)控制和自動化領(lǐng)域中的接口標(biāo)準(zhǔn),其將設(shè)備制造商與軟件制造商之間的關(guān)系確定為OPC服務(wù)器與應(yīng)用程序之間的關(guān)系,任何帶OPC接口的應(yīng)用程序都以與一個或多個設(shè)備制造商的OPC服務(wù)器進(jìn)行連接,目前主流設(shè)備制造商都支持OPC協(xié)議通訊。
利用OPC進(jìn)行數(shù)據(jù)交換,實(shí)質(zhì)上是OPC客戶端與服務(wù)端之間進(jìn)行連接并實(shí)現(xiàn)數(shù)據(jù)交換。為與S7-200進(jìn)行數(shù)據(jù)交換,可將WinCC作為OPC客戶端,并利用西門子公司針對S7-200的OPC軟件PC Access作為服務(wù)端,在兩者間建立連接,從而實(shí)現(xiàn)數(shù)據(jù)交換。此過程中主要軟、硬件分別有上位機(jī)、S7-200 PLC、PPI電纜、WinCC、PC Access,實(shí)現(xiàn)方法如下:
1)軟件安裝及硬件連接
上位機(jī)中安裝WinCC、PC Access,并利用PPI電纜連接上位機(jī)與S7-200 PLC。此方式下,上位機(jī)與S7-200 PLC間的連接如圖2所示。
圖2 WinCC與S7-200的OPC方式連接
2)配置PC Access軟件
在PC Access軟件中配置與S7-200 PLC之間的接口,選擇接口為PC/PPI cable(PPI)。
3)配置WinCC軟件
運(yùn)行WinCC,添加OPC驅(qū)動,利用其作為OPC客戶端,連接由PC Access所建立的OPC服務(wù)器,如圖3所示。
通過以上步驟,即可利用OPC方式實(shí)現(xiàn)上位機(jī)與S7-200 PLC之間的數(shù)據(jù)交換。
圖3 連接OPC服務(wù)器
2.1.2 Profibus-DP總線方式
S7-200自身不帶Profibus-DP接口,需利用擴(kuò)展模塊EM277將其接入到Profibus-DP網(wǎng)絡(luò)中。將上位機(jī)作為DP主站,S7-200通過擴(kuò)展EM277作為DP從站。此過程中主要軟、硬件分別有上位機(jī)、S7-200 PLC、CP5611卡、EM277模塊、Prof i bus-DP電纜、WinCC,實(shí)現(xiàn)方法如下:
1)軟件安裝及硬件連接
上位機(jī)中安裝WINCC、CP5611卡,在S7-200 PLC上擴(kuò)展EM277模塊,并利用電纜連接上位機(jī)與EM277。此方式下,上位機(jī)與S7-200 PLC間的連接如圖4所示。
圖4 WINCC與S7-200的Profibus-DP方式連接
2)組態(tài)DP網(wǎng)絡(luò)
組態(tài)DP網(wǎng)絡(luò),CP5611卡配置為主站模式,EM277配置為從站模式,如圖5所示。
圖5 DP網(wǎng)絡(luò)組態(tài)
3)配置WinCC軟件
運(yùn)行WinCC,添加Prof i bus-DP驅(qū)動。
通過以上步驟,即可利用Prof i bus-DP方式實(shí)現(xiàn)上位機(jī)與S7-200 PLC間的數(shù)據(jù)交換。
2.1.3 自由口方式
由于S7-200的RS485接口支持自由口模式,利用該模式,S7-200可使用自定義的通信協(xié)議與多種智能設(shè)備連接[3]。因而可考慮在WinCC中利用腳本語言通過自由口方式實(shí)現(xiàn)與S7-200的數(shù)據(jù)交換,上位機(jī)作為主機(jī)發(fā)起通信,S7-200作為從機(jī)響應(yīng)主機(jī)命令。此過程中主要軟、硬件分別有上位機(jī)、RS485接口模塊、S7-200 PLC、通信電纜、WinCC,實(shí)現(xiàn)方法如下:
1)軟件安裝及硬件連接
在上位機(jī)中安裝WinCC、RS485接口模塊,利用通信電纜連接上位機(jī)與S7-200。此方式下,上位機(jī)與S7-200 PLC間的連接如圖6所示。
圖6 監(jiān)控軟件與S7-200的自由口方式連接
2)自定義通信協(xié)議
參照OSI七層模型,利用物理層、數(shù)據(jù)鏈路層及應(yīng)用層自定義通信協(xié)議。
(1)物理層
采用RS485接口標(biāo)準(zhǔn),波特率為9600bps,無校驗(yàn),1位停止位。
(2)數(shù)據(jù)鏈路層
采用主從方式,通信由主機(jī)發(fā)起,從機(jī)等待主機(jī)請求,然后響應(yīng)。上位機(jī)作為主機(jī),S7-200 PLC作為從機(jī)。
主從機(jī)之間數(shù)據(jù)幀的傳輸采用RTU模式,每幀6字節(jié),幀格式如表1所示。每個從機(jī)地址唯一,范圍從1~255,地址0為廣播地址,校驗(yàn)采用16位CRC,低字節(jié)在前,高字節(jié)在后。
表1 數(shù)據(jù)幀格式
數(shù)據(jù)幀包括請求幀、響應(yīng)幀及錯誤幀。其中請求幀由主機(jī)發(fā)往從機(jī),響應(yīng)幀和錯誤幀由從機(jī)發(fā)往主機(jī)。主機(jī)發(fā)送請求幀后,需等待從機(jī)響應(yīng)才能發(fā)送下一請求幀,若等待超時,也可發(fā)送下一請求幀;若從機(jī)出現(xiàn)狀態(tài)錯誤,則響應(yīng)錯誤幀。
(3)應(yīng)用層
數(shù)據(jù)幀中,地址字段是從機(jī)的唯一標(biāo)識。當(dāng)主機(jī)需與從機(jī)交換數(shù)據(jù)時,在此字段填入地址;命令字段表示主機(jī)命令,范圍從1~255;數(shù)據(jù)字段為兩字節(jié),根據(jù)不同數(shù)據(jù)幀而有不同內(nèi)容;校驗(yàn)字段包含對地址、命令、數(shù)據(jù)字段的CRC校驗(yàn)信息,用于檢驗(yàn)數(shù)據(jù)傳輸是否出錯。
3)編寫腳本
在WinCC軟件中調(diào)用Mscomm控件,并編寫腳本語言實(shí)現(xiàn)與S7-200之間的通信。
上位機(jī)除采用專用組態(tài)軟件外,也可采用編程軟件開發(fā)監(jiān)控軟件。此時可以通過OPC、PPI及自由口通訊等方式實(shí)現(xiàn)數(shù)據(jù)交換。
2.2.1 OPC方式
編寫OPC客戶端程序,并利用PC Access作為OPC服務(wù)端。此過程中主要軟、硬件分別有上位機(jī)、S7-200 PLC、PPI電纜、PC Access,實(shí)現(xiàn)方法如下:
1)軟件安裝及硬件連接
在上位機(jī)中安裝PC Access軟件,并利用PPI電纜連接上位機(jī)與S7-200 PLC。此方式下,上位機(jī)與S7-200 PLC之間的連接如圖7所示。
圖7 監(jiān)控軟件與S7-200的OPC方式連接
2)配置PC Access軟件
在PC Access軟件中配置與S7-200 PLC之間的接口,并建立OPC服務(wù)器。
3)編寫OPC客戶端
編寫OPC客戶端,連接建立的OPC服務(wù)器,從而實(shí)現(xiàn)數(shù)據(jù)交換。
2.2.2 自由口方式
在使用自由口方式時,上位機(jī)作為主機(jī)發(fā)起通信,S7-200作為從機(jī)響應(yīng)主機(jī)命令。此過程中,主要硬件及軟件分別有上位機(jī)、RS485接口模塊、S7-200 PLC、通信電纜,實(shí)現(xiàn)方法如下:
1)硬件連接
在上位機(jī)中安裝RS485接口模塊,并利用通信電纜連接上位機(jī)與S7-200 PLC。此方式下,上位機(jī)與S7-200 PLC之間的連接如圖8所示。
圖8 監(jiān)控軟件與S7-200的自定義協(xié)議方式連接
2)自定義通信協(xié)議
可采用與使用專用組態(tài)軟件進(jìn)行數(shù)據(jù)交換時類似的自定義通信協(xié)議。
3)利用Mscomm控件編程實(shí)現(xiàn)串口通信
在上位機(jī)監(jiān)控軟件中調(diào)用Mscomm控件,并根據(jù)實(shí)際需求編程實(shí)現(xiàn)數(shù)據(jù)發(fā)送及接收。
2.2.3 PPI(Point to Point,點(diǎn)到點(diǎn))方式
PPI協(xié)議是西門子S7-200系列PLC提供的一種點(diǎn)對點(diǎn)通信方式[4]。其采用主從方式通訊,一次讀寫操作步驟包括:首先上位機(jī)發(fā)出讀寫命令,然后PLC響應(yīng),上位機(jī)接收響應(yīng)后發(fā)出確認(rèn)申請命令,PLC完成讀寫響應(yīng)并向上位機(jī)回送數(shù)據(jù)。在使用PPI方式交換數(shù)據(jù)時,上位機(jī)作為主機(jī),S7-200 PLC作為從機(jī)。此過程中主要軟、硬件分別有上位機(jī)、RS485接口模塊、S7-200 PLC,實(shí)現(xiàn)方法如下:
1)硬件連接
上位機(jī)中安裝RS485接口模塊,利用通信電纜連接上位機(jī)與S7-200 PLC。此方式下,上位機(jī)與S7-200 PLC之間的連接與自由口方式下類似。
2)利用VB編程模擬實(shí)現(xiàn)PPI協(xié)議
利用VB編寫上位機(jī)監(jiān)控軟件,調(diào)用Mscomm控件,通過編程模擬實(shí)現(xiàn)PPI協(xié)議,而在S7-200 PLC端則無需編寫通訊程序及制定自定義通訊協(xié)議,大大簡化系統(tǒng)的開發(fā)過程。此過程中主要數(shù)據(jù)報文如下:
表2 數(shù)據(jù)報文格式
其中SD為開始定界符(68H),LE為發(fā)送的數(shù)據(jù)長度,DA為目標(biāo)地址,SA為源地址,F(xiàn)C為功能碼(讀操作為6CH,寫操作為7CH),DU為數(shù)據(jù), FCS為校驗(yàn)碼(和校驗(yàn)), ED為結(jié)束字符(16H)。
以上6種方法都可在上位機(jī)與S7-200 PLC之間實(shí)現(xiàn)數(shù)據(jù)交換,適用于不同的控制場合,各有優(yōu)缺點(diǎn)。
當(dāng)上位機(jī)采用WINCC組態(tài)軟件時,采用OPC方式優(yōu)點(diǎn)在于成本較低,只需較少的硬件,連接簡單,且可以讀寫S7-200 PLC中的所有存儲區(qū)域,缺點(diǎn)在于通信速度較慢,適用于低速、對實(shí)時性要求不高、投入資金有限的場合;采用Prof i bus-DP方式優(yōu)點(diǎn)在通信速度快,最高可達(dá)12Mbps、實(shí)時性好,缺點(diǎn)在于需要較高的硬件成本投入,連接上較為復(fù)雜,適用于對通信速率及實(shí)時性要求較高的場合;采用自由口方式優(yōu)點(diǎn)在于成本較低,硬件連接簡單,可實(shí)現(xiàn)對數(shù)據(jù)交換的完全控制,缺點(diǎn)在于通信速度較慢,且需要在上位機(jī)及PLC端編寫通信程序,實(shí)現(xiàn)較為復(fù)雜,適用于對通信速率及實(shí)時性要求不高、投入資金有限的場合。
當(dāng)上位機(jī)采用編程軟件開發(fā)監(jiān)控軟件時,采用OPC方式優(yōu)點(diǎn)在于成本較低,連接調(diào)試簡單,缺點(diǎn)在于通信速度較慢;采用自由口通訊方式優(yōu)點(diǎn)在于編程靈活,對數(shù)據(jù)交換可實(shí)現(xiàn)完全控制,缺點(diǎn)在于通信速度較慢,且需要分別在上位機(jī)及PLC端編寫通信程序,實(shí)現(xiàn)較為復(fù)雜;采用PPI方式優(yōu)點(diǎn)在于連接簡單,硬件成本較低,缺點(diǎn)在于需對PPI協(xié)議有較為深入的了解,編程較復(fù)雜。
以上給出了上位機(jī)與S7-200 PLC之間的6種數(shù)據(jù)交換方法,這些方法對于不同要求的系統(tǒng)能較好實(shí)現(xiàn)數(shù)據(jù)交換??傮w說來,當(dāng)上位機(jī)采用WinCC組態(tài)軟件實(shí)現(xiàn)監(jiān)控時,功能強(qiáng)大,可靠性高,但軟硬件成本較高,且需要解決WinCC與S7-200 PLC之間的通信問題,適用于較為復(fù)雜的控制系統(tǒng);而當(dāng)上位機(jī)采用編程軟件開發(fā)監(jiān)控軟件時,靈活性好,軟硬件成本較低,但系統(tǒng)開發(fā)工作量較大,難以保證可靠性,對開發(fā)人員技術(shù)水平要求較高,適用于軟硬件投資有限,希望實(shí)現(xiàn)靈活控制功能的系統(tǒng)。在工程實(shí)踐中可根據(jù)具體需求選擇不同的方法。
[1]孟強(qiáng),梅大成,秦勃,葉強(qiáng).以單片機(jī)作為S7-200PLC從站的PPI協(xié)議的設(shè)計[J].微型機(jī)與應(yīng)用,2012,31(17):57-59,62.
[2]王杰,高昆侖,王萬召.基于OPC通信技術(shù)的火電廠DCS后臺控制[J].電力自動化設(shè)備,2013,33(4):142-147.
[3]謝明磊.PLC自由口通信在特殊量監(jiān)測中的應(yīng)用[J].儀表技術(shù)與傳感器,2010,(10),69-71.
[4]龍慧.基于S7-200 PLC的自動化生產(chǎn)線多站PPI通信實(shí)現(xiàn)[J].電氣傳動,2012,42(9):77-80.
Data exchange methods for host computer and S7-200 PLC
LIU Wen-bo1, WANG Meng-xiao1, WANG Feng2
在控制系統(tǒng)中為了實(shí)現(xiàn)對現(xiàn)場設(shè)備的監(jiān)控,上位機(jī)需要與下位PLC之間實(shí)時進(jìn)行數(shù)據(jù)交換,針對此問題,研究并總結(jié)了在上位機(jī)采用專用組態(tài)軟件及自編監(jiān)控軟件,并以S7-200 PLC作為下位機(jī)的情況下,上位機(jī)與下位機(jī)之間的多種數(shù)據(jù)交換方法,并分別給出了它們的具體實(shí)現(xiàn)方式,通過數(shù)據(jù)交換,能有效實(shí)施對現(xiàn)場數(shù)據(jù)的實(shí)時監(jiān)控和集中管理。
上位機(jī);S7-200;數(shù)據(jù)交換
劉文波(1981 -),男,湖北天門人,講師,博士,研究方向?yàn)榭刂评碚撆c控制工程。
TP273+.5
A
1009-0134(2015)07(下)-0028-04
10.3969/j.issn.1009-0134.2015.07(下).08
2015-03-18
陜西省科技計劃經(jīng)費(fèi)資助項(xiàng)目(2014K05-03);陜西科技大學(xué)科研啟動基金項(xiàng)目(BJ11-07)