梅光晴, 蔣 偉, 徐保國
(江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院,江蘇無錫214122)
液態(tài)發(fā)酵的溫度、溶氧量以及pH等是清酒發(fā)酵過程中至關(guān)重要的參數(shù),對(duì)清酒的品質(zhì)起到?jīng)Q定性作用。目前國內(nèi)清酒的產(chǎn)量有限,而且多以手工操作為主,其生產(chǎn)規(guī)模過小、批次穩(wěn)定性差等問題較為嚴(yán)重。為攻克這一難題,實(shí)現(xiàn)清酒的自動(dòng)化生產(chǎn)勢(shì)在必行。結(jié)合清酒生產(chǎn)的工藝特點(diǎn),該系統(tǒng)有機(jī)地將LabVIEW、PLC、工業(yè)PC機(jī)、相關(guān)傳感器和智能儀表等融合在一起,通過控制開耙的頻率與時(shí)間控制溶氧量、冷凝閥的開度大小控制發(fā)酵溫度等,實(shí)現(xiàn)了清酒發(fā)酵生產(chǎn)過程的實(shí)時(shí)監(jiān)測與自動(dòng)控制。
根據(jù)清酒發(fā)酵生產(chǎn)的工藝特點(diǎn),該發(fā)酵控制系統(tǒng)模型可分為兩層:現(xiàn)場自動(dòng)化控制層和車間監(jiān)控層。有26個(gè)發(fā)酵罐及3個(gè)酒母罐,一共29個(gè)發(fā)酵罐。Profibus是一種國際化、開放式、不依賴于設(shè)備生產(chǎn)商的現(xiàn)場總線標(biāo)準(zhǔn),并且是一種用于工廠自動(dòng)化車間級(jí)監(jiān)控和現(xiàn)場設(shè)備層數(shù)據(jù)通信與控制的現(xiàn)場總線技術(shù)[1]。該控制系統(tǒng)通過 Profibus、RS-485 等總線技術(shù)將工業(yè)PC機(jī)、PLC、智能儀表以及各種傳感器等進(jìn)行組態(tài),從而構(gòu)成一個(gè)現(xiàn)場網(wǎng)絡(luò),上位機(jī)接受各個(gè)傳感器采集到的數(shù)據(jù),并結(jié)合發(fā)酵的工藝要求,判斷各個(gè)執(zhí)行器,如開耙閥、冷凝閥等需要執(zhí)行的動(dòng)作,以此來實(shí)現(xiàn)對(duì)清酒發(fā)酵過程的有效監(jiān)控。
系統(tǒng)主體結(jié)構(gòu)如圖1所示。該監(jiān)控系統(tǒng)采用工業(yè)PC機(jī)作為服務(wù)器,并采用LabVIEW2012作為前臺(tái)開發(fā)軟件,界面友好美觀。以Simatic S7-300 PLC和人工智能儀表作為下位機(jī),采集溫度、溶氧、pH等模擬量,通過RS-485總線技術(shù)送往上位機(jī)處理。
圖1 清酒發(fā)酵監(jiān)控系統(tǒng)結(jié)構(gòu)Fig.1 System structure of sake fermentation
發(fā)酵車間控制室設(shè)有工業(yè)PC機(jī)1臺(tái),并帶有顯示器顯示參數(shù)運(yùn)行狀況;控制柜內(nèi)設(shè)PLC 1臺(tái),工業(yè)PC機(jī)與S7-300 PLC之間的通信則借助于Simatic CP5612通信卡,通過Profibus-DP現(xiàn)場總線技術(shù)實(shí)現(xiàn)連接;人工智能儀表實(shí)時(shí)顯示型號(hào)為WZP-230的鉑電阻采集的溫度值,通過RS-485總線傳輸給上位機(jī);pH傳感器、溶氧變送器將測量結(jié)果轉(zhuǎn)換為4~20 mA的標(biāo)準(zhǔn)電流信號(hào)傳輸?shù)絇LC對(duì)應(yīng)的模擬量模塊。PLC將根據(jù)上位機(jī)對(duì)各個(gè)數(shù)據(jù)分析的結(jié)果并結(jié)合采集的信號(hào)發(fā)送指令,如定時(shí)啟動(dòng)開耙閥門以保持液態(tài)發(fā)酵中的溶氧量;當(dāng)溫度高于設(shè)定溫度時(shí)打開冷凝閥門,讓冷水進(jìn)入罐壁的夾套以降低罐內(nèi)發(fā)酵的溫度等。
該系統(tǒng)軟件主要包括LabVIEW2012,Microsoft SQL 2008,Simatic NET PC Software V6.5,Step 7 V5.4。其中 LabVIEW2012用于編寫人機(jī)操作界面;Microsoft SQL 2008作為數(shù)據(jù)庫用于存儲(chǔ)、備份采集到的數(shù)據(jù);Simatic Net和Step 7分別用來在工業(yè)PC機(jī)上通過Profibus-DP總線建立OPC服務(wù)器和組態(tài)配置S7-300 PLC以連接搭建好的OPC Server[2-3]。發(fā)酵系統(tǒng)部分發(fā)酵罐效果如圖2所示。
圖2 控制系統(tǒng)單罐效果Fig.2 Design sketch of a single fermenter
2.2.1 上位機(jī)與PLC通信的實(shí)現(xiàn) LabVIEW 是虛擬儀器(Virtual Instrument,VI)領(lǐng)域最具代表性的圖形化編程軟件,廣泛應(yīng)用于測試、過程處理和控制領(lǐng)域[4]。該系統(tǒng)采用DataSocket技術(shù)通過訪問OPC Server實(shí)現(xiàn)工業(yè)PC機(jī)和PLC之間的通信。DataSocket技術(shù)基于TCP/IP協(xié)議并對(duì)其進(jìn)行高度封裝,能在測試測量過程中實(shí)現(xiàn)服務(wù)器與多用戶的實(shí)時(shí)數(shù)據(jù)交換與共享[5]。而OPC作為一種工業(yè)標(biāo)準(zhǔn),由微軟與各國知名自動(dòng)化產(chǎn)品生產(chǎn)商共同研發(fā),形成了一個(gè)自動(dòng)化軟件面向?qū)ο箝_發(fā)的統(tǒng)一標(biāo)準(zhǔn),西門子也提供了對(duì)該協(xié)議的支持。
正確使用URL(Uniform Resource Location,統(tǒng)一資源定位符)和數(shù)據(jù)類型是應(yīng)用DataSocket進(jìn)行程序設(shè)計(jì)的前提。URL的格式由協(xié)議(或稱服務(wù)方式)、存有該資源的主機(jī)IP地址(有時(shí)包括端口號(hào))和主機(jī)資源的具體地址3部分組成,協(xié)議與IP之間用“://”號(hào)隔開,IP與具體地址之間用“/”號(hào)隔開[6]。所以,訪問OPC的基本URL結(jié)構(gòu)為:OPC://主機(jī)名稱 //OPC服務(wù)器名稱 /數(shù)據(jù)地址。該系統(tǒng)采用LabVIEW寫入PLC中存儲(chǔ)區(qū)的數(shù)據(jù)的程序框圖如圖3所示。其中Q表示要寫入的寄存器類型,即輸出印象寄存器;B表示字節(jié),數(shù)字0表示字節(jié)起始地址,數(shù)字3表示寫入的字節(jié)數(shù);S7 connection_1是組態(tài)現(xiàn)場總線時(shí)默認(rèn)的連接名。
圖3 LabVIEW與PLC通信程序框圖Fig.3 Block diagram of communication between LabVIEW and PLC
2.2.2 上位機(jī)與智能儀表通信的實(shí)現(xiàn) LabVIEW自身的VISA驅(qū)動(dòng)程序可以實(shí)現(xiàn)串口通信,但考慮到VISA驅(qū)動(dòng)程序購買的費(fèi)用以及盡可能節(jié)省內(nèi)存,該系統(tǒng)通過LabVIEW中的CLFN(Call Library Function Node)節(jié)點(diǎn)調(diào)用動(dòng)態(tài)鏈接庫(DLL)來實(shí)現(xiàn)。動(dòng)態(tài)鏈接庫函數(shù)(DLL)是利用標(biāo)準(zhǔn)串口通信函數(shù)在VC++中開發(fā)而來,串口通信函數(shù)庫中負(fù)責(zé)對(duì)串口進(jìn)行初始化和讀寫任務(wù)的函數(shù)包括comInit,comRead,comWrite 3個(gè)函數(shù)。
在使用串口進(jìn)行讀寫操作時(shí),首先需要對(duì)串行端口進(jìn)行一些初始化配置。在成功打開串口后,應(yīng)用程序可以先調(diào)用GetCommState函數(shù)獲取串行口的當(dāng)前配置信息,再根據(jù)自身需要修改串口配置信息。這是通過修改DCB結(jié)構(gòu)中部分?jǐn)?shù)據(jù)成員的值,再調(diào)用SetCommState函數(shù)設(shè)置串口配置信息實(shí)現(xiàn)的[7]。應(yīng)用程序主要通過ReadFile函數(shù)和WriteFile函數(shù)對(duì)串口進(jìn)行讀寫操作,如圖4所示為從配置串口到儀表讀取參數(shù)值的流程圖。
圖4 串口初始化并讀取AI智能儀表流程Fig.4 Flow diagram of preparing serial port and reading instruments
該系統(tǒng)采用的智能儀表統(tǒng)一采用RS-485通信協(xié)議,每個(gè)儀表對(duì)應(yīng)唯一地址,每次上位機(jī)向?qū)?yīng)智能儀表發(fā)送指令,對(duì)應(yīng)的智能儀表會(huì)根據(jù)收到的指令返回對(duì)應(yīng)的指令代碼。發(fā)送和接受的指令代碼都是根據(jù)RS-485協(xié)議編寫,包含地址、數(shù)值、數(shù)據(jù)類型等信息。
配置CLFN(Call Library Function Node)節(jié)點(diǎn)時(shí)需要注意,在配置窗體中函數(shù)部分時(shí)需要將線程設(shè)置為在任意線程中運(yùn)行,避免該程序在讀寫串口時(shí)獨(dú)占線程而導(dǎo)致其他程序線程無法運(yùn)行。配置好的CLFN節(jié)點(diǎn)如圖5所示。DLL中已經(jīng)定義的導(dǎo)出函數(shù)和輸入輸出的數(shù)據(jù)類型要一致。
值得注意的是,圖5中讀取的智能儀表數(shù)是36個(gè)。按RS-485接口的規(guī)定,RS-485通信接口可在一條通信線路上連接最多32臺(tái)儀表或計(jì)算機(jī)。而此時(shí)需要聯(lián)接的儀表數(shù)大于32。對(duì)于該問題本系統(tǒng)則選擇采用Max487芯片的通信接口,此接口最多可連接100臺(tái)AI儀表在一條通信線路上。
2.2.3 LabVIEW與數(shù)據(jù)庫通信的實(shí)現(xiàn) LabVIEW與數(shù)據(jù)庫的通信方式更為多樣。如利用NI公司開發(fā)的LabVIEW SQL Toolkit工具包,在LabVIEW中調(diào)用由C++等語言編寫的動(dòng)態(tài)鏈接庫(DLL),利用LabVIEW的ActiveX功能,調(diào)用Microsoft ADO控件,通過SQL語言實(shí)現(xiàn)數(shù)據(jù)庫訪問等方法。
圖5 LabVIEW與智能儀表通信程序Fig.5 Block diagram of communication between LabVIEW and instrument
該系統(tǒng)采用的是目前使用比較廣泛的、由第3方開發(fā)的免費(fèi)工具包LabSQL來實(shí)現(xiàn)LabVIEW與數(shù)據(jù)庫的通信。LabSQL是一個(gè)免費(fèi)的、源代碼開放的、多數(shù)據(jù)庫、跨平臺(tái)的LabVIEW數(shù)據(jù)庫訪問工具包[8]。LabSQL工具包簡單易用,一般步驟為:首先通過 ADO Connection Create.vi函數(shù)創(chuàng)建一個(gè)Connection對(duì)象,接著用ADO Connection Open.vi函數(shù)建立LabVIEW與數(shù)據(jù)庫的連接,然后就可使用ADO SQL Execute.vi函數(shù)對(duì)數(shù)據(jù)庫進(jìn)行寫入、查詢、刪除等操作,最后通過ADO Connection Close.vi和ADO Connection Destroy.vi函數(shù)關(guān)閉數(shù)據(jù)庫連接。提取數(shù)據(jù)庫表‘保存設(shè)置品名’中溫度、溶氧相關(guān)數(shù)據(jù),程序框圖如圖6所示。
圖6 LabVIEW訪問數(shù)據(jù)庫程序Fig.6 Block diagram of communication between LabVIEW and database
介紹了一種利用LabVIEW軟件平臺(tái)構(gòu)建清酒發(fā)酵監(jiān)控系統(tǒng),該系統(tǒng)已經(jīng)在實(shí)際生產(chǎn)過程中體現(xiàn)出明顯優(yōu)勢(shì):
1)系統(tǒng)穩(wěn)定性較好,能高效地完成清酒發(fā)酵過程的在線監(jiān)控,參數(shù)調(diào)整較為靈活。
2)系統(tǒng)實(shí)現(xiàn)了生產(chǎn)過程較高程度的自動(dòng)化,節(jié)省了大量勞動(dòng)力。
3)該系統(tǒng)不僅提高了清酒的產(chǎn)量、質(zhì)量,而且對(duì)于推廣清酒發(fā)酵自動(dòng)化有著深遠(yuǎn)意義。
[1]阮焱林,鄭秋玲,張?jiān)?PROFIBUS現(xiàn)場總線技術(shù)綜述[J].可編程控制器與工廠自動(dòng)化,2011(8):39-41.RUAN Yan-lin,ZHENG Qiu-ling,ZHANG Yun.Summary of profibus field bus technology[J].Programmable Controller and Factory Automation,2011(8):39-41.(in Chinese)
[2]陳真,王延江,王釗.基于LabVIEW的遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)開發(fā)[J].儀表技術(shù)與傳感器,2006(6):26-29.CHEN Zhen,WANG Yan-jiang,WANG Zhao.Design of the remote data acquisition system based on DAQ[J].Instrument Technique and Sensor,2006(6):26-29.(in Chinese)
[3]李紅粱.基于OPC的PC與PLC實(shí)時(shí)通信的LabVIEW實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2003,20(12):115-118.LI Hong-liang.Implementation of OPC-based communication between PC and PLC on LabVIEW platform[J].Application Research of Computers,2003,20(12):115-118.(in Chinese)
[4]曾珞亞.基于OPC技術(shù)的PLC與LabVIEW 通信實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009,25(6-1):52-53.ZENG Luo-ya.Realization of data communication based on OPC technology between PLC and LabVIEW[J].Microcomputer Information,2009,25(6-1):52-53.(in Chinese)
[5]馬海瑞,周愛軍.基于DataSocket技術(shù)的LabVIEW 遠(yuǎn)程測控[J].現(xiàn)在儀器,2005(4):20-22.MA Hai-rui,ZHOU Ai-jun.DataSocket based remote measurement and control in LabVIEW[J].Modern Instruments,2005(4):20-22.(in Chinese)
[6]許林烽,倪天權(quán).基于LabVIEW與DataSocket的測試系統(tǒng)設(shè)計(jì)[J].微計(jì)算機(jī)信息,2006,22(12-1):166-168.XU Lin-feng,NI Tian-quan.Design and application of the test system based on LabVIEW and DataSocket[J].Microcomputer Information,2006,22(12-1):166-168.(in Chinese)
[7]李高升,周東明,何建國,等.LabVIEW中DLL文件的創(chuàng)建及其應(yīng)用[J].現(xiàn)代電子技術(shù),2004,11(10):24-26.LI Dong-sheng,ZHOU Dong-ming,HE Jian-guo,et al.Building and application of DLL files in LabVIEW[J].Measurement and Control Technology,2004,11(10):24-26.(in Chinese)
[8]楊樂,李海濤,趙勇,等.LabVIEW高級(jí)程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2003.