梅光晴, 蔣 偉, 徐保國
(江南大學物聯(lián)網(wǎng)工程學院,江蘇無錫214122)
液態(tài)發(fā)酵的溫度、溶氧量以及pH等是清酒發(fā)酵過程中至關(guān)重要的參數(shù),對清酒的品質(zhì)起到?jīng)Q定性作用。目前國內(nèi)清酒的產(chǎn)量有限,而且多以手工操作為主,其生產(chǎn)規(guī)模過小、批次穩(wěn)定性差等問題較為嚴重。為攻克這一難題,實現(xiàn)清酒的自動化生產(chǎn)勢在必行。結(jié)合清酒生產(chǎn)的工藝特點,該系統(tǒng)有機地將LabVIEW、PLC、工業(yè)PC機、相關(guān)傳感器和智能儀表等融合在一起,通過控制開耙的頻率與時間控制溶氧量、冷凝閥的開度大小控制發(fā)酵溫度等,實現(xiàn)了清酒發(fā)酵生產(chǎn)過程的實時監(jiān)測與自動控制。
根據(jù)清酒發(fā)酵生產(chǎn)的工藝特點,該發(fā)酵控制系統(tǒng)模型可分為兩層:現(xiàn)場自動化控制層和車間監(jiān)控層。有26個發(fā)酵罐及3個酒母罐,一共29個發(fā)酵罐。Profibus是一種國際化、開放式、不依賴于設備生產(chǎn)商的現(xiàn)場總線標準,并且是一種用于工廠自動化車間級監(jiān)控和現(xiàn)場設備層數(shù)據(jù)通信與控制的現(xiàn)場總線技術(shù)[1]。該控制系統(tǒng)通過 Profibus、RS-485 等總線技術(shù)將工業(yè)PC機、PLC、智能儀表以及各種傳感器等進行組態(tài),從而構(gòu)成一個現(xiàn)場網(wǎng)絡,上位機接受各個傳感器采集到的數(shù)據(jù),并結(jié)合發(fā)酵的工藝要求,判斷各個執(zhí)行器,如開耙閥、冷凝閥等需要執(zhí)行的動作,以此來實現(xiàn)對清酒發(fā)酵過程的有效監(jiān)控。
系統(tǒng)主體結(jié)構(gòu)如圖1所示。該監(jiān)控系統(tǒng)采用工業(yè)PC機作為服務器,并采用LabVIEW2012作為前臺開發(fā)軟件,界面友好美觀。以Simatic S7-300 PLC和人工智能儀表作為下位機,采集溫度、溶氧、pH等模擬量,通過RS-485總線技術(shù)送往上位機處理。
圖1 清酒發(fā)酵監(jiān)控系統(tǒng)結(jié)構(gòu)Fig.1 System structure of sake fermentation
發(fā)酵車間控制室設有工業(yè)PC機1臺,并帶有顯示器顯示參數(shù)運行狀況;控制柜內(nèi)設PLC 1臺,工業(yè)PC機與S7-300 PLC之間的通信則借助于Simatic CP5612通信卡,通過Profibus-DP現(xiàn)場總線技術(shù)實現(xiàn)連接;人工智能儀表實時顯示型號為WZP-230的鉑電阻采集的溫度值,通過RS-485總線傳輸給上位機;pH傳感器、溶氧變送器將測量結(jié)果轉(zhuǎn)換為4~20 mA的標準電流信號傳輸?shù)絇LC對應的模擬量模塊。PLC將根據(jù)上位機對各個數(shù)據(jù)分析的結(jié)果并結(jié)合采集的信號發(fā)送指令,如定時啟動開耙閥門以保持液態(tài)發(fā)酵中的溶氧量;當溫度高于設定溫度時打開冷凝閥門,讓冷水進入罐壁的夾套以降低罐內(nèi)發(fā)酵的溫度等。
該系統(tǒng)軟件主要包括LabVIEW2012,Microsoft SQL 2008,Simatic NET PC Software V6.5,Step 7 V5.4。其中 LabVIEW2012用于編寫人機操作界面;Microsoft SQL 2008作為數(shù)據(jù)庫用于存儲、備份采集到的數(shù)據(jù);Simatic Net和Step 7分別用來在工業(yè)PC機上通過Profibus-DP總線建立OPC服務器和組態(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 上位機與PLC通信的實現(xiàn) LabVIEW 是虛擬儀器(Virtual Instrument,VI)領域最具代表性的圖形化編程軟件,廣泛應用于測試、過程處理和控制領域[4]。該系統(tǒng)采用DataSocket技術(shù)通過訪問OPC Server實現(xiàn)工業(yè)PC機和PLC之間的通信。DataSocket技術(shù)基于TCP/IP協(xié)議并對其進行高度封裝,能在測試測量過程中實現(xiàn)服務器與多用戶的實時數(shù)據(jù)交換與共享[5]。而OPC作為一種工業(yè)標準,由微軟與各國知名自動化產(chǎn)品生產(chǎn)商共同研發(fā),形成了一個自動化軟件面向?qū)ο箝_發(fā)的統(tǒng)一標準,西門子也提供了對該協(xié)議的支持。
正確使用URL(Uniform Resource Location,統(tǒng)一資源定位符)和數(shù)據(jù)類型是應用DataSocket進行程序設計的前提。URL的格式由協(xié)議(或稱服務方式)、存有該資源的主機IP地址(有時包括端口號)和主機資源的具體地址3部分組成,協(xié)議與IP之間用“://”號隔開,IP與具體地址之間用“/”號隔開[6]。所以,訪問OPC的基本URL結(jié)構(gòu)為:OPC://主機名稱 //OPC服務器名稱 /數(shù)據(jù)地址。該系統(tǒng)采用LabVIEW寫入PLC中存儲區(qū)的數(shù)據(jù)的程序框圖如圖3所示。其中Q表示要寫入的寄存器類型,即輸出印象寄存器;B表示字節(jié),數(shù)字0表示字節(jié)起始地址,數(shù)字3表示寫入的字節(jié)數(shù);S7 connection_1是組態(tài)現(xiàn)場總線時默認的連接名。
圖3 LabVIEW與PLC通信程序框圖Fig.3 Block diagram of communication between LabVIEW and PLC
2.2.2 上位機與智能儀表通信的實現(xiàn) LabVIEW自身的VISA驅(qū)動程序可以實現(xiàn)串口通信,但考慮到VISA驅(qū)動程序購買的費用以及盡可能節(jié)省內(nèi)存,該系統(tǒng)通過LabVIEW中的CLFN(Call Library Function Node)節(jié)點調(diào)用動態(tài)鏈接庫(DLL)來實現(xiàn)。動態(tài)鏈接庫函數(shù)(DLL)是利用標準串口通信函數(shù)在VC++中開發(fā)而來,串口通信函數(shù)庫中負責對串口進行初始化和讀寫任務的函數(shù)包括comInit,comRead,comWrite 3個函數(shù)。
在使用串口進行讀寫操作時,首先需要對串行端口進行一些初始化配置。在成功打開串口后,應用程序可以先調(diào)用GetCommState函數(shù)獲取串行口的當前配置信息,再根據(jù)自身需要修改串口配置信息。這是通過修改DCB結(jié)構(gòu)中部分數(shù)據(jù)成員的值,再調(diào)用SetCommState函數(shù)設置串口配置信息實現(xiàn)的[7]。應用程序主要通過ReadFile函數(shù)和WriteFile函數(shù)對串口進行讀寫操作,如圖4所示為從配置串口到儀表讀取參數(shù)值的流程圖。
圖4 串口初始化并讀取AI智能儀表流程Fig.4 Flow diagram of preparing serial port and reading instruments
該系統(tǒng)采用的智能儀表統(tǒng)一采用RS-485通信協(xié)議,每個儀表對應唯一地址,每次上位機向?qū)悄軆x表發(fā)送指令,對應的智能儀表會根據(jù)收到的指令返回對應的指令代碼。發(fā)送和接受的指令代碼都是根據(jù)RS-485協(xié)議編寫,包含地址、數(shù)值、數(shù)據(jù)類型等信息。
配置CLFN(Call Library Function Node)節(jié)點時需要注意,在配置窗體中函數(shù)部分時需要將線程設置為在任意線程中運行,避免該程序在讀寫串口時獨占線程而導致其他程序線程無法運行。配置好的CLFN節(jié)點如圖5所示。DLL中已經(jīng)定義的導出函數(shù)和輸入輸出的數(shù)據(jù)類型要一致。
值得注意的是,圖5中讀取的智能儀表數(shù)是36個。按RS-485接口的規(guī)定,RS-485通信接口可在一條通信線路上連接最多32臺儀表或計算機。而此時需要聯(lián)接的儀表數(shù)大于32。對于該問題本系統(tǒng)則選擇采用Max487芯片的通信接口,此接口最多可連接100臺AI儀表在一條通信線路上。
2.2.3 LabVIEW與數(shù)據(jù)庫通信的實現(xiàn) LabVIEW與數(shù)據(jù)庫的通信方式更為多樣。如利用NI公司開發(fā)的LabVIEW SQL Toolkit工具包,在LabVIEW中調(diào)用由C++等語言編寫的動態(tài)鏈接庫(DLL),利用LabVIEW的ActiveX功能,調(diào)用Microsoft ADO控件,通過SQL語言實現(xiàn)數(shù)據(jù)庫訪問等方法。
圖5 LabVIEW與智能儀表通信程序Fig.5 Block diagram of communication between LabVIEW and instrument
該系統(tǒng)采用的是目前使用比較廣泛的、由第3方開發(fā)的免費工具包LabSQL來實現(xiàn)LabVIEW與數(shù)據(jù)庫的通信。LabSQL是一個免費的、源代碼開放的、多數(shù)據(jù)庫、跨平臺的LabVIEW數(shù)據(jù)庫訪問工具包[8]。LabSQL工具包簡單易用,一般步驟為:首先通過 ADO Connection Create.vi函數(shù)創(chuàng)建一個Connection對象,接著用ADO Connection Open.vi函數(shù)建立LabVIEW與數(shù)據(jù)庫的連接,然后就可使用ADO SQL Execute.vi函數(shù)對數(shù)據(jù)庫進行寫入、查詢、刪除等操作,最后通過ADO Connection Close.vi和ADO Connection Destroy.vi函數(shù)關(guān)閉數(shù)據(jù)庫連接。提取數(shù)據(jù)庫表‘保存設置品名’中溫度、溶氧相關(guān)數(shù)據(jù),程序框圖如圖6所示。
圖6 LabVIEW訪問數(shù)據(jù)庫程序Fig.6 Block diagram of communication between LabVIEW and database
介紹了一種利用LabVIEW軟件平臺構(gòu)建清酒發(fā)酵監(jiān)控系統(tǒng),該系統(tǒng)已經(jīng)在實際生產(chǎn)過程中體現(xiàn)出明顯優(yōu)勢:
1)系統(tǒng)穩(wěn)定性較好,能高效地完成清酒發(fā)酵過程的在線監(jiān)控,參數(shù)調(diào)整較為靈活。
2)系統(tǒng)實現(xiàn)了生產(chǎn)過程較高程度的自動化,節(jié)省了大量勞動力。
3)該系統(tǒng)不僅提高了清酒的產(chǎn)量、質(zhì)量,而且對于推廣清酒發(fā)酵自動化有著深遠意義。
[1]阮焱林,鄭秋玲,張云.PROFIBUS現(xiàn)場總線技術(shù)綜述[J].可編程控制器與工廠自動化,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的遠程數(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實時通信的LabVIEW實現(xiàn)[J].計算機應用研究,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 通信實現(xiàn)[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 遠程測控[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)設計[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)建及其應用[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高級程序設計[M].北京:清華大學出版社,2003.