倪福生,余方超,楊 斌
(河海大學(xué)教育部疏浚工程中心,江蘇常州,213022)
水力輸送是疏浚技術(shù)中的一項(xiàng)關(guān)鍵技術(shù),河海大學(xué)率先在國內(nèi)建成了315kW 泥砂輸送實(shí)驗(yàn)臺(tái)。實(shí)驗(yàn)臺(tái)原數(shù)據(jù)采集系統(tǒng)采用美國NI 公司的PCI-6025E 多功能數(shù)據(jù)采集卡進(jìn)行數(shù)據(jù)采集,安裝在上位PC 機(jī)的PCI 插槽中。原系統(tǒng)的傳感器輸出信號中有7 路4-20mA 的電流模擬量信號,而原有數(shù)據(jù)采集卡接口要求為電壓信號,為了將電流信號送入計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理,需要設(shè)計(jì)專門的電流信號轉(zhuǎn)換盒濾波電路,增加了系統(tǒng)的復(fù)雜性。同時(shí),采集卡的采集通道固定,擴(kuò)展性差,無法滿足實(shí)驗(yàn)臺(tái)傳感器擴(kuò)充的要求??删幊坛绦蚩刂破?Programmable Logic Controller),以穩(wěn)定、可靠、擴(kuò)展性強(qiáng)等特點(diǎn)廣泛應(yīng)用于工業(yè)控制系統(tǒng)中,已經(jīng)成為當(dāng)代工業(yè)自動(dòng)化的主要支柱之一。本文提出了一種基于S7-300 PLC 的數(shù)據(jù)采集系統(tǒng),上位機(jī)監(jiān)控軟件采用VC++ 編制,該系統(tǒng)的數(shù)據(jù)采集方法簡單、采集周期短,達(dá)到了100ms,系統(tǒng)的靈活性、穩(wěn)定性好。
泥砂輸送實(shí)驗(yàn)臺(tái)需要進(jìn)行大流量和快速變化流量的實(shí)驗(yàn),要求數(shù)據(jù)采集周期達(dá)到100ms,才能實(shí)時(shí)反映出數(shù)據(jù)的變化規(guī)律。一般來說,數(shù)據(jù)采集周期會(huì)受到三個(gè)因素的影響:一是數(shù)據(jù)采集模塊的采樣速度;二是通信網(wǎng)絡(luò)對數(shù)據(jù)的傳輸速度;三是監(jiān)控計(jì)算機(jī)中的監(jiān)控軟件對數(shù)據(jù)的存儲(chǔ)速度。
針對以上三個(gè)因素,本系統(tǒng)以西門子S7-300 系列PLC 構(gòu)建了數(shù)據(jù)采集系統(tǒng);使用PROFIBUS-DP 總線和工業(yè)以太網(wǎng)作為通信網(wǎng)絡(luò);使用VC++ 編寫的監(jiān)控程序用以處理和存儲(chǔ)數(shù)據(jù)。
本系統(tǒng)的CPU 選用西門子公司的CPU315-2DP 模塊。該模塊具有128kB 工作內(nèi)存,程序掃描速度高達(dá)0.1ms/1000 條指令,可以與其他模塊進(jìn)行DP 通信,也可以通過以太網(wǎng)模塊與計(jì)算機(jī)進(jìn)行以太網(wǎng)通信,具有故障自診斷能力,能夠在線診斷硬件故障。
本系統(tǒng)選用西門子公司的CP343-1 以太網(wǎng)模塊。該模塊支持TCP/IP、SNMP、UDP 通信協(xié)議,通信速度高達(dá)10/100Mbps。
本系統(tǒng)選用西門子公司SM331 模塊作為模擬量采集模塊,該模塊內(nèi)部采用光電耦合器,能夠有效防止強(qiáng)電干擾。SM331 模塊的基本轉(zhuǎn)換時(shí)間(包括積分時(shí)間)為17ms。
所選的PLC 模塊均能滿足100ms 采集周期的要求。
本系統(tǒng)涉及到14 組模擬量的采集,每100ms 采集1 次,共約28個(gè)字節(jié),即224bit,每秒采集10 次,此外,還有部分信號不需要高速采集,每秒采集2 次,同時(shí)通信網(wǎng)絡(luò)還需要承擔(dān)監(jiān)控計(jì)算對PLC 控制指令的傳輸,所以選取的網(wǎng)絡(luò)的通信速率應(yīng)大于5kbit/s。
PROFIBUS-DP 現(xiàn)場總線采用RS485 通信協(xié)議,傳輸速率9.6Kbit/s~12Mbit/s,同時(shí)傳輸速率取決于電纜長度,表1為傳輸速率與線纜長度的關(guān)系:
在本系統(tǒng)中通信距離小于200m,選取了1.5Mbit/s 的傳輸速率,能夠滿足子站I/O 模塊和主站CPU 之間對數(shù)據(jù)傳輸速率的要求。
西門子的工業(yè)以太網(wǎng)的傳輸速率為10Mbit/s~100 Mbit/s(可自適應(yīng)),最多1024個(gè)網(wǎng)絡(luò)節(jié)點(diǎn),最大網(wǎng)絡(luò)范圍為150km,完全能夠滿足上位機(jī)和主站CPU 模塊之間數(shù)據(jù)傳輸速率的要求。
由于OPC 服務(wù)器與監(jiān)控計(jì)算機(jī)的通信周期為500ms,所以為了滿足100ms 的數(shù)據(jù)采集周期,需要在一個(gè)通信周期內(nèi)采集5 組數(shù)據(jù)緩存在PLC 內(nèi),每次當(dāng)OPC 服務(wù)器與監(jiān)控計(jì)算機(jī)通信時(shí),將這5 組數(shù)據(jù)傳輸給監(jiān)控計(jì)算機(jī)。這一功能可以通過調(diào)用循環(huán)中斷的方式來實(shí)現(xiàn),每100ms 調(diào)用一次循環(huán)中斷程序,采集各個(gè)傳感器的數(shù)據(jù),并將采集到的數(shù)據(jù)保存在緩存數(shù)據(jù)塊內(nèi)。
在項(xiàng)目中配置300 站并雙擊300CPU 打開Properties窗口,選擇Cycle interrupts,將OB35 對應(yīng)的時(shí)間修改為100ms。如圖1 所示:
設(shè)計(jì)PLC 數(shù)據(jù)緩存程序,在項(xiàng)目中插入OB35 和OB35 的背景數(shù)據(jù)塊DB2,在OB35 中編寫數(shù)據(jù)采集子程序完成傳感器數(shù)據(jù)的采集,并將500ms 內(nèi)采集到的5個(gè)數(shù)據(jù)循環(huán)存入DB2中連續(xù)的5個(gè)地址中,PLC 數(shù)據(jù)緩存程序流程圖如圖2 所示:
由于VC++ 編寫的監(jiān)控程序無法直接讀取/ 寫入PLC 數(shù)據(jù),故使用OPC 接口技術(shù)實(shí)現(xiàn)VC++ 與PLC 之間的數(shù)據(jù)讀取/寫入。本系統(tǒng)中以Simatic.NET 軟件提供的OPC.SimaticNET作為OPC 服務(wù)器,其實(shí)現(xiàn)步驟如下:
第一步,配置PC 站點(diǎn),在監(jiān)控計(jì)算機(jī)站點(diǎn)中添加OPC 服務(wù)器和IE General。
第二步,配置OPC.Simatic NET。運(yùn)行SIMATIC NET,添加OPC.Server 和IE 通用。
第三步,建立工業(yè)以太網(wǎng)通信,本系統(tǒng)中監(jiān)控計(jì)算機(jī)站點(diǎn)IP地址:192.168.0.2,SIMATIC300站點(diǎn)IP地址:192.168.0.1。
四步,通過OPC.Server 建立計(jì)算機(jī)與CPU315-2DP的S7連接,右擊PC站點(diǎn)/OPC服務(wù)器,插入新連接S7connection_1,選擇S7連接。設(shè)置S7連接屬性和本地PC站點(diǎn)/OPC服務(wù)器屬性:接口為IE General,地址為192.168.0.2;伙伴CPU315-2DP 屬性:接口為CP343-1,地址為192.168.0.1 。設(shè)置完成后,進(jìn)行編譯并保存,就可以建立起“OPC+工業(yè)以太網(wǎng)”的網(wǎng)絡(luò)結(jié)構(gòu)。
第五步,檢測OPC 連接狀態(tài)。將工程項(xiàng)目下載至硬件,運(yùn)行SIMATIC NET 自帶的OPC 客戶端軟件OPC Scout,在OPC Scout 中添加PLC 中的數(shù)據(jù)地址。
傳統(tǒng)的組態(tài)軟件如WinCC、InTouch 等其數(shù)據(jù)讀寫采集刷新周期多在250ms 以上,故本系統(tǒng)采用VC++編制監(jiān)控程序。由于Excel 操作簡單、數(shù)據(jù)處理能力強(qiáng),非常適合科學(xué)實(shí)驗(yàn)的數(shù)據(jù)處理,因此,本系統(tǒng)的數(shù)據(jù)存儲(chǔ)采用Excle 作為數(shù)據(jù)庫,將PLC 緩存的數(shù)據(jù)發(fā)送到Excle 里,其編程方式簡要介紹如下:
1)在VC++工程里添加文件“excel9.h”和“excel9.cpp”。添加文件后在工程中會(huì)增加如下類:_Workbook 類、_Worksheet 類、Range 類、Workbooks 類、Worksheets 類。
2)創(chuàng)建Excel 2000 服務(wù)器,建立Excel 文件。
3)每500ms 監(jiān)控程序讀取OPC 服務(wù)器內(nèi)部數(shù)據(jù),并存入Excel 文件里。
監(jiān)控軟件采集和保存的Excel 數(shù)據(jù)文件如圖3 所示:
本文對PLC 的數(shù)據(jù)高速采集進(jìn)行了分析研究,給出了OPC技術(shù)和數(shù)據(jù)緩存技術(shù)相結(jié)合的PLC 數(shù)據(jù)高速采集方案,實(shí)現(xiàn)了對多個(gè)傳感器信號10 次/ 秒的數(shù)據(jù)高速采集。本系統(tǒng)已經(jīng)被應(yīng)用于河海大學(xué)泥砂輸送實(shí)驗(yàn)臺(tái)的監(jiān)控系統(tǒng),在系統(tǒng)的數(shù)據(jù)報(bào)表中可以看到每1 秒都有10個(gè)數(shù)據(jù)被存儲(chǔ)到了Excel文件里,說明所有按照設(shè)計(jì)精度記錄的數(shù)據(jù),全都沒有丟失地被記錄下來了。同時(shí)本系統(tǒng)的穩(wěn)定性、擴(kuò)展性好,能夠滿足實(shí)驗(yàn)臺(tái)對數(shù)據(jù)采集系統(tǒng)性能的要求。
[1]劉鍇,周海.深入淺出西門子S7 300 PLC[M].北京:北京航空航天大學(xué)出版社,2010:16-170.
[2]廖常初.西門子工業(yè)通訊網(wǎng)絡(luò)組態(tài)編程與故障診斷[M].北京:機(jī)械工業(yè)出版社,2009:12-289.
[3]李繼容,鮑芳等.以太網(wǎng)在工業(yè)自動(dòng)化領(lǐng)域的應(yīng)用及研究[J].計(jì)算機(jī)應(yīng)用研究,2002,9:126-128.
[4]姜麗波,張根寶.WinCC 高速數(shù)據(jù)采集應(yīng)用[J].電氣傳動(dòng)自動(dòng)化,2006,28(2):41-43.