梅光晴, 蔣 偉, 徐保國
(江南大學物聯網工程學院,江蘇無錫214122)
液態發酵的溫度、溶氧量以及pH等是清酒發酵過程中至關重要的參數,對清酒的品質起到決定性作用。目前國內清酒的產量有限,而且多以手工操作為主,其生產規模過小、批次穩定性差等問題較為嚴重。為攻克這一難題,實現清酒的自動化生產勢在必行。結合清酒生產的工藝特點,該系統有機地將LabVIEW、PLC、工業PC機、相關傳感器和智能儀表等融合在一起,通過控制開耙的頻率與時間控制溶氧量、冷凝閥的開度大小控制發酵溫度等,實現了清酒發酵生產過程的實時監測與自動控制。
根據清酒發酵生產的工藝特點,該發酵控制系統模型可分為兩層:現場自動化控制層和車間監控層。有26個發酵罐及3個酒母罐,一共29個發酵罐。Profibus是一種國際化、開放式、不依賴于設備生產商的現場總線標準,并且是一種用于工廠自動化車間級監控和現場設備層數據通信與控制的現場總線技術[1]。該控制系統通過 Profibus、RS-485 等總線技術將工業PC機、PLC、智能儀表以及各種傳感器等進行組態,從而構成一個現場網絡,上位機接受各個傳感器采集到的數據,并結合發酵的工藝要求,判斷各個執行器,如開耙閥、冷凝閥等需要執行的動作,以此來實現對清酒發酵過程的有效監控。
系統主體結構如圖1所示。該監控系統采用工業PC機作為服務器,并采用LabVIEW2012作為前臺開發軟件,界面友好美觀。以Simatic S7-300 PLC和人工智能儀表作為下位機,采集溫度、溶氧、pH等模擬量,通過RS-485總線技術送往上位機處理。

圖1 清酒發酵監控系統結構Fig.1 System structure of sake fermentation
發酵車間控制室設有工業PC機1臺,并帶有顯示器顯示參數運行狀況;控制柜內設PLC 1臺,工業PC機與S7-300 PLC之間的通信則借助于Simatic CP5612通信卡,通過Profibus-DP現場總線技術實現連接;人工智能儀表實時顯示型號為WZP-230的鉑電阻采集的溫度值,通過RS-485總線傳輸給上位機;pH傳感器、溶氧變送器將測量結果轉換為4~20 mA的標準電流信號傳輸到PLC對應的模擬量模塊。PLC將根據上位機對各個數據分析的結果并結合采集的信號發送指令,如定時啟動開耙閥門以保持液態發酵中的溶氧量;當溫度高于設定溫度時打開冷凝閥門,讓冷水進入罐壁的夾套以降低罐內發酵的溫度等。
該系統軟件主要包括LabVIEW2012,Microsoft SQL 2008,Simatic NET PC Software V6.5,Step 7 V5.4。其中 LabVIEW2012用于編寫人機操作界面;Microsoft SQL 2008作為數據庫用于存儲、備份采集到的數據;Simatic Net和Step 7分別用來在工業PC機上通過Profibus-DP總線建立OPC服務器和組態配置S7-300 PLC以連接搭建好的OPC Server[2-3]。發酵系統部分發酵罐效果如圖2所示。

圖2 控制系統單罐效果Fig.2 Design sketch of a single fermenter
2.2.1 上位機與PLC通信的實現 LabVIEW 是虛擬儀器(Virtual Instrument,VI)領域最具代表性的圖形化編程軟件,廣泛應用于測試、過程處理和控制領域[4]。該系統采用DataSocket技術通過訪問OPC Server實現工業PC機和PLC之間的通信。DataSocket技術基于TCP/IP協議并對其進行高度封裝,能在測試測量過程中實現服務器與多用戶的實時數據交換與共享[5]。而OPC作為一種工業標準,由微軟與各國知名自動化產品生產商共同研發,形成了一個自動化軟件面向對象開發的統一標準,西門子也提供了對該協議的支持。
正確使用URL(Uniform Resource Location,統一資源定位符)和數據類型是應用DataSocket進行程序設計的前提。URL的格式由協議(或稱服務方式)、存有該資源的主機IP地址(有時包括端口號)和主機資源的具體地址3部分組成,協議與IP之間用“://”號隔開,IP與具體地址之間用“/”號隔開[6]。所以,訪問OPC的基本URL結構為:OPC://主機名稱 //OPC服務器名稱 /數據地址。該系統采用LabVIEW寫入PLC中存儲區的數據的程序框圖如圖3所示。其中Q表示要寫入的寄存器類型,即輸出印象寄存器;B表示字節,數字0表示字節起始地址,數字3表示寫入的字節數;S7 connection_1是組態現場總線時默認的連接名。

圖3 LabVIEW與PLC通信程序框圖Fig.3 Block diagram of communication between LabVIEW and PLC
2.2.2 上位機與智能儀表通信的實現 LabVIEW自身的VISA驅動程序可以實現串口通信,但考慮到VISA驅動程序購買的費用以及盡可能節省內存,該系統通過LabVIEW中的CLFN(Call Library Function Node)節點調用動態鏈接庫(DLL)來實現。動態鏈接庫函數(DLL)是利用標準串口通信函數在VC++中開發而來,串口通信函數庫中負責對串口進行初始化和讀寫任務的函數包括comInit,comRead,comWrite 3個函數。
在使用串口進行讀寫操作時,首先需要對串行端口進行一些初始化配置。在成功打開串口后,應用程序可以先調用GetCommState函數獲取串行口的當前配置信息,再根據自身需要修改串口配置信息。這是通過修改DCB結構中部分數據成員的值,再調用SetCommState函數設置串口配置信息實現的[7]。應用程序主要通過ReadFile函數和WriteFile函數對串口進行讀寫操作,如圖4所示為從配置串口到儀表讀取參數值的流程圖。

圖4 串口初始化并讀取AI智能儀表流程Fig.4 Flow diagram of preparing serial port and reading instruments
該系統采用的智能儀表統一采用RS-485通信協議,每個儀表對應唯一地址,每次上位機向對應智能儀表發送指令,對應的智能儀表會根據收到的指令返回對應的指令代碼。發送和接受的指令代碼都是根據RS-485協議編寫,包含地址、數值、數據類型等信息。
配置CLFN(Call Library Function Node)節點時需要注意,在配置窗體中函數部分時需要將線程設置為在任意線程中運行,避免該程序在讀寫串口時獨占線程而導致其他程序線程無法運行。配置好的CLFN節點如圖5所示。DLL中已經定義的導出函數和輸入輸出的數據類型要一致。
值得注意的是,圖5中讀取的智能儀表數是36個。按RS-485接口的規定,RS-485通信接口可在一條通信線路上連接最多32臺儀表或計算機。而此時需要聯接的儀表數大于32。對于該問題本系統則選擇采用Max487芯片的通信接口,此接口最多可連接100臺AI儀表在一條通信線路上。
2.2.3 LabVIEW與數據庫通信的實現 LabVIEW與數據庫的通信方式更為多樣。如利用NI公司開發的LabVIEW SQL Toolkit工具包,在LabVIEW中調用由C++等語言編寫的動態鏈接庫(DLL),利用LabVIEW的ActiveX功能,調用Microsoft ADO控件,通過SQL語言實現數據庫訪問等方法。

圖5 LabVIEW與智能儀表通信程序Fig.5 Block diagram of communication between LabVIEW and instrument
該系統采用的是目前使用比較廣泛的、由第3方開發的免費工具包LabSQL來實現LabVIEW與數據庫的通信。LabSQL是一個免費的、源代碼開放的、多數據庫、跨平臺的LabVIEW數據庫訪問工具包[8]。LabSQL工具包簡單易用,一般步驟為:首先通過 ADO Connection Create.vi函數創建一個Connection對象,接著用ADO Connection Open.vi函數建立LabVIEW與數據庫的連接,然后就可使用ADO SQL Execute.vi函數對數據庫進行寫入、查詢、刪除等操作,最后通過ADO Connection Close.vi和ADO Connection Destroy.vi函數關閉數據庫連接。提取數據庫表‘保存設置品名’中溫度、溶氧相關數據,程序框圖如圖6所示。

圖6 LabVIEW訪問數據庫程序Fig.6 Block diagram of communication between LabVIEW and database
介紹了一種利用LabVIEW軟件平臺構建清酒發酵監控系統,該系統已經在實際生產過程中體現出明顯優勢:
1)系統穩定性較好,能高效地完成清酒發酵過程的在線監控,參數調整較為靈活。
2)系統實現了生產過程較高程度的自動化,節省了大量勞動力。
3)該系統不僅提高了清酒的產量、質量,而且對于推廣清酒發酵自動化有著深遠意義。
[1]阮焱林,鄭秋玲,張云.PROFIBUS現場總線技術綜述[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的遠程數據采集系統開發[J].儀表技術與傳感器,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實現[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技術的PLC與LabVIEW 通信實現[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技術的LabVIEW 遠程測控[J].現在儀器,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]許林烽,倪天權.基于LabVIEW與DataSocket的測試系統設計[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文件的創建及其應用[J].現代電子技術,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.