李興華 陶明 溫浩然
本文引用格式:李興華,陶明,溫浩然.基于Linux架構(gòu)的中藥飲片霉變檢測(cè)系統(tǒng)[J].自動(dòng)化與信息工程,2023,44(1):46-51.
LI Xinghua, TAO Ming, WEN Haoran. Mildew detection system of Chinese herbal medicine slices based on Linux architecture[J]. Automation & Information Engineering, 2023,44(1):46-51.
摘要:針對(duì)中藥飲片因具有較強(qiáng)的吸濕性且含有霉菌生長(zhǎng)繁殖所需的營(yíng)養(yǎng)物質(zhì),導(dǎo)致在貯存過程中易發(fā)生霉變的問題,設(shè)計(jì)基于Linux架構(gòu)的中藥飲片霉變檢測(cè)系統(tǒng),采用便攜式質(zhì)譜儀對(duì)中藥飲片的揮發(fā)成分進(jìn)行快速檢測(cè)。該系統(tǒng)主要由云端和邊緣端兩部分構(gòu)成,云端用于存儲(chǔ)數(shù)據(jù)和提供服務(wù)中心,邊緣端的各個(gè)終端采集節(jié)點(diǎn)在采集數(shù)據(jù)的同時(shí)將檢測(cè)結(jié)果數(shù)據(jù)定時(shí)上傳至云端;采用分布式部署、前后端分離的開發(fā)模式,前端負(fù)責(zé)交互業(yè)務(wù),后端負(fù)責(zé)數(shù)據(jù)處理。用戶可通過網(wǎng)頁(yè)配置業(yè)務(wù)基礎(chǔ)數(shù)據(jù)和查詢報(bào)表。
關(guān)鍵詞:中藥飲片;霉變檢測(cè);Linux架構(gòu);分布式;邊緣端;云端
中圖分類號(hào):TP311.5??????????文獻(xiàn)標(biāo)志碼:A ?????????文章編號(hào):1674-2605(2023)01-0008-06
DOI:10.3969/j.issn.1674-2605.2023.01.008
Mildew Detection System of Chinese Herbal Medicine Slices ?????????????Based on Linux Architecture
LI Xinghua??TAO Ming ?WEN Haoran
(Institute of Intelligent Manufacturing, Guangdong Academy of Sciences,
Guangdong Key Laboratory of Modern Control Technology, Guangzhou 510070, China)
Abstract:?Aiming at the problem that Chinese herbal medicine slices are prone to mildew during storage due to their strong hygroscopicity and containing nutrients required for mold growth and reproduction, a mildew detection system for Chinese herbal medicine slices based on Linux architecture is designed, and the volatile components of Chinese herbal medicine slices are rapidly detected by portable mass spectrometer. The system is mainly composed of two parts: cloud and edge. The cloud is used to store data and provide service center. Each terminal collection node at the edge will upload the detection result data to the cloud at the same time as collecting data; The development mode of distributed deployment and separation of front and back ends is adopted. The front end is responsible for interactive business and the back end is responsible for data processing. Users can configure basic business data and query reports through the web page.
Keywords:?Chinese herbal medicine slices;?mildew detection; Linux architecture;?distributed;?edge end;?cloud
0 引言
中藥飲片來源廣泛、成分復(fù)雜,若貯存不當(dāng),在多種因素相互作用下會(huì)產(chǎn)生霉變,不僅使其有效成分含量降低、失效,影響治療效果,甚至危害人體健康,還會(huì)增加藥物損耗,造成經(jīng)濟(jì)損失[1]。根據(jù)中藥飲片的固有性質(zhì)、顏色、形態(tài)等特點(diǎn),需定期對(duì)其檢測(cè),以便及時(shí)發(fā)現(xiàn)霉變、走油、蟲蛀等情況[2]。傳統(tǒng)的中
藥飲片檢測(cè)依靠人工抽檢,其及時(shí)性、準(zhǔn)確性、可控性等方面存在較大的局限,且人工檢測(cè)結(jié)果的可追溯性差,后續(xù)無法運(yùn)用分析。
為提高中藥飲片霉變檢測(cè)的準(zhǔn)確率和效率,本文基于物聯(lián)網(wǎng)信息技術(shù),構(gòu)建基于Linux環(huán)境下的云端存儲(chǔ)計(jì)算、邊緣端采集的架構(gòu),設(shè)計(jì)一種中藥飲片霉變檢測(cè)系統(tǒng),實(shí)現(xiàn)檢測(cè)結(jié)果數(shù)據(jù)的采集與分析,為中
藥飲片高質(zhì)量生產(chǎn)提供保障。
1 系統(tǒng)架構(gòu)
考慮到基于Linux架構(gòu)的中藥飲片霉變檢測(cè)系統(tǒng)的可用性、可靠性及擴(kuò)展性,采用分布式部署,結(jié)合云端和邊緣端的方式,其總體框架如圖1所示。
1.1 云端
云端包括數(shù)據(jù)庫(kù)服務(wù)器、后臺(tái)調(diào)度服務(wù)器、服務(wù)中心、應(yīng)用服務(wù)器等4個(gè)模塊,架構(gòu)如圖2所示。
云端部署在私有云環(huán)境,確保存儲(chǔ)的數(shù)據(jù)具有一致性、完整性和安全性。云端存儲(chǔ)終端采集節(jié)點(diǎn)發(fā)送
的檢測(cè)結(jié)果數(shù)據(jù),通過WebApi接口進(jìn)行內(nèi)外部系統(tǒng)調(diào)用,并通過網(wǎng)站供不同的客戶端進(jìn)行相關(guān)業(yè)務(wù)操作。
Linux操作系統(tǒng)相比Windows操作系統(tǒng)更加安全、穩(wěn)定和開源[3]??紤]到基于Linux架構(gòu)的中藥飲片霉變檢測(cè)系統(tǒng)的安全性和分布式特點(diǎn),采用Linux環(huán)境下的CentOS7作為服務(wù)器的操作系統(tǒng)。
數(shù)據(jù)庫(kù)服務(wù)器采用MySQL的主從復(fù)制模式,即主數(shù)據(jù)庫(kù)服務(wù)器出現(xiàn)故障時(shí),切換到從數(shù)據(jù)庫(kù)服務(wù)器繼續(xù)工作,避免數(shù)據(jù)丟失。MySQL Cluster通過自動(dòng)分片支持讀寫擴(kuò)展,利用實(shí)時(shí)備份冗余數(shù)據(jù)實(shí)現(xiàn)可用性較高的方案。通過數(shù)據(jù)庫(kù)實(shí)現(xiàn)Cluster,不但能提高M(jìn)ySQL的安全性,還能減輕數(shù)據(jù)庫(kù)管理員的工作量[4]。
在MySQL數(shù)據(jù)庫(kù)中,可設(shè)計(jì)定義表,如用戶表、質(zhì)譜儀表、倉(cāng)庫(kù)表等;還可設(shè)計(jì)過程表,如檢測(cè)記錄表,結(jié)構(gòu)如表1所示。
后臺(tái)調(diào)度服務(wù)器采用Tdengine時(shí)序數(shù)據(jù)庫(kù)存儲(chǔ)檢測(cè)結(jié)果數(shù)據(jù)。通過Tdengine時(shí)序數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)聚合查詢,可生成不同維度的報(bào)表,供不同客戶端查詢,并在不影響MySQL數(shù)據(jù)庫(kù)寫入操作的前提下,實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀寫分離,提高M(jìn)ySQL數(shù)據(jù)庫(kù)并發(fā),降低磁盤I/O的訪問頻率,使系統(tǒng)高效運(yùn)行。Tdengine數(shù)據(jù)庫(kù)主要?jiǎng)?chuàng)建檢測(cè)結(jié)果數(shù)據(jù)表,此表不存在外鍵字段,保存的檢測(cè)結(jié)果數(shù)據(jù)均已經(jīng)過聚合處理,可快速檢索。
服務(wù)中心是整個(gè)業(yè)務(wù)邏輯的處理中心,主要由接口服務(wù)、公共基礎(chǔ)服務(wù)、后臺(tái)管理頁(yè)面服務(wù)組成。
應(yīng)用服務(wù)器采用Nginx作為Web服務(wù)器。Nginx是一款輕量級(jí)的Web服務(wù)器,在BSD-like協(xié)議下發(fā)行,具有占用內(nèi)存少、并發(fā)能力強(qiáng)等特點(diǎn)。此服務(wù)器可掛載WebApi接口和客戶端訪問的管理頁(yè)面網(wǎng)站。
本系統(tǒng)采用可定制的開源CentOS7 Linux操作系統(tǒng)及開源Nginx服務(wù)器,使其運(yùn)行更加穩(wěn)定、高效,且具有良好的可擴(kuò)展性[5]。
1.2 邊緣端
邊緣端以車載的形式集成了便攜式質(zhì)譜儀、PDA、標(biāo)簽打印機(jī)等終端采集節(jié)點(diǎn)。各終端采集節(jié)點(diǎn)通過無線路由構(gòu)建的內(nèi)部局域網(wǎng)絡(luò),將采集的檢測(cè)結(jié)果數(shù)據(jù)定時(shí)上傳至云端。終端采集節(jié)點(diǎn)可根據(jù)需求擴(kuò)展,且各采集節(jié)點(diǎn)獨(dú)立運(yùn)行,當(dāng)某個(gè)采集節(jié)點(diǎn)出現(xiàn)故障時(shí),不會(huì)影響其他采集節(jié)點(diǎn)的正常運(yùn)行。
因終端采集節(jié)點(diǎn)后續(xù)會(huì)不斷增加,且檢測(cè)結(jié)果數(shù)據(jù)具有時(shí)序性和區(qū)域性,故本系統(tǒng)將數(shù)據(jù)庫(kù)分為關(guān)系型數(shù)據(jù)庫(kù)和時(shí)序型數(shù)據(jù)庫(kù)。其中,關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)檢測(cè)結(jié)果數(shù)據(jù)及業(yè)務(wù)基礎(chǔ)數(shù)據(jù);時(shí)序型數(shù)據(jù)庫(kù)存儲(chǔ)各終端采集節(jié)點(diǎn)不同時(shí)間的檢測(cè)結(jié)果數(shù)據(jù),為客戶端查詢報(bào)表和統(tǒng)計(jì)分析提供數(shù)據(jù)源。
中藥飲片霉變檢測(cè)結(jié)果采集過程如下:
1) 便攜式質(zhì)譜儀通過外置采樣泵吸取空氣樣本,檢測(cè)樣本中的霉化物質(zhì);PDA掃描中藥飲片外箱條碼,獲取該箱中藥飲片的相關(guān)數(shù)據(jù),并通過socket通信發(fā)給便攜式質(zhì)譜儀;便攜式質(zhì)譜儀綁定檢測(cè)結(jié)果與外箱條碼信息,形成檢測(cè)結(jié)果數(shù)據(jù);
2) 便攜式質(zhì)譜儀將檢測(cè)結(jié)果數(shù)據(jù)保存在本地車載服務(wù)器;同時(shí)將此數(shù)據(jù)生成的條碼標(biāo)簽發(fā)送給標(biāo)簽打印機(jī),打印對(duì)應(yīng)的條碼標(biāo)簽;
3) 用戶將條碼標(biāo)簽粘到被檢中藥飲片的外箱。
在便攜式質(zhì)譜儀管理界面可設(shè)置PDA和標(biāo)簽打印機(jī)的IP,將3個(gè)設(shè)備互相聯(lián)通。邊緣端結(jié)構(gòu)如圖3所示。
1.3 客戶端
客戶端通過云端服務(wù)中心獲取各終端采集節(jié)點(diǎn)采集的數(shù)據(jù)??蛻舳瞬僮魅藛T通過Web瀏覽器登錄管理頁(yè)面,進(jìn)行業(yè)務(wù)基礎(chǔ)數(shù)據(jù)配置及報(bào)表分析查詢。
本系統(tǒng)前端采用Vue.js框架技術(shù)開發(fā),可支持不同客戶端使用。Vue.js框架是一種面向前端界面開發(fā)的輕量化框架,設(shè)計(jì)模式遵循自下而上的原則,具有響應(yīng)式編程和組態(tài)化的特點(diǎn)[6]。目前,客戶端以網(wǎng)頁(yè)訪問為主,如需在移動(dòng)端訪問,可通過手機(jī)端登錄管理頁(yè)面訪問。若后續(xù)需要開發(fā)移動(dòng)端的相關(guān)業(yè)務(wù)功能,可用相同的前端技術(shù)實(shí)現(xiàn),具有良好的擴(kuò)展功能。
1.4 技術(shù)棧
本系統(tǒng)采用前后端分離的方式構(gòu)建,由CentOS+ MySQL+Tdengine+go+Nginx+Vue.js技術(shù)搭建而成。前端采用Vue編寫顯示層頁(yè)面,客戶通過操作前端網(wǎng)站,調(diào)用后端服務(wù)接口,返回?cái)?shù)據(jù)在前端頁(yè)面顯示。后端采用go語言實(shí)現(xiàn)相關(guān)業(yè)務(wù)的邏輯模塊。go語言應(yīng)用程序和數(shù)據(jù)庫(kù)的相關(guān)操作通過database/sql包和database/sql/driver共同實(shí)現(xiàn)[7]。其通過go語言分別與業(yè)務(wù)數(shù)據(jù)庫(kù)和時(shí)序數(shù)據(jù)庫(kù)交互處理,并以WebApi的形式提供接口服務(wù),構(gòu)成一個(gè)完整的后端服務(wù)。后端服務(wù)部署在云端的CentOS7操作系統(tǒng)下,掛載在Nginx應(yīng)用服務(wù)器上,接收不同客戶端的服務(wù)請(qǐng)求。
2 系統(tǒng)主要功能
基于Linux架構(gòu)的中藥飲片霉變檢測(cè)系統(tǒng)分為檢測(cè)結(jié)果數(shù)據(jù)采集、工況狀態(tài)檢測(cè)、系統(tǒng)管理3大功能模塊,結(jié)構(gòu)圖如圖4所示。
2.1 檢測(cè)結(jié)果數(shù)據(jù)采集功能模塊
邊緣端的終端采集節(jié)點(diǎn)采集檢測(cè)結(jié)果數(shù)據(jù),車載服務(wù)器定時(shí)推送檢測(cè)結(jié)果數(shù)據(jù)至云端,也可通過手動(dòng)方式在終端車載狀態(tài)頁(yè)面點(diǎn)擊上傳數(shù)據(jù)按鈕進(jìn)行上報(bào),還可查看最近的檢測(cè)結(jié)果數(shù)據(jù)上報(bào)情況。
2.2 工況狀態(tài)檢測(cè)功能模塊
工況狀態(tài)檢測(cè)功能模塊顯示傳感器狀態(tài),使用戶了解其工作狀況,便于設(shè)備的維護(hù)、保養(yǎng)等。在終端車載狀態(tài)界面可查看主要的傳感器狀態(tài),如圖5所示。
2.3 系統(tǒng)管理功能模塊
系統(tǒng)管理功能模塊主要包括報(bào)表查詢、用戶管理和系統(tǒng)設(shè)定等子模塊。
2.3.1 報(bào)表查詢
報(bào)表查詢子模塊可根據(jù)中藥飲片條碼、檢測(cè)日期、中藥飲片的位置、檢測(cè)的班次(甲、乙、丙3班)等信息多維度查詢檢測(cè)結(jié)果,篩選出查詢的數(shù)據(jù)后,可選擇顯示不合格記錄或者所有記錄,并導(dǎo)出查詢結(jié)果。檢測(cè)結(jié)果數(shù)據(jù)查詢界面如圖6所示。
根據(jù)系統(tǒng)提供的報(bào)表類型,可分為專家報(bào)表和用戶報(bào)表。專家報(bào)表可根據(jù)選擇的維度查詢檢測(cè)結(jié)果數(shù)據(jù)的匯總情況,便于分析不同區(qū)域和時(shí)段的中藥飲片霉變情況,進(jìn)而為后續(xù)的中藥飲片存儲(chǔ)有針對(duì)性地制定保護(hù)性措施。用戶報(bào)表用于統(tǒng)計(jì)操作人員在檢測(cè)過程的數(shù)據(jù)情況,作為員工績(jī)效考核依據(jù)。
本系統(tǒng)通過各種統(tǒng)計(jì)分析報(bào)表,從不同維度直觀
展示中藥飲片的霉變狀況,為藥廠發(fā)現(xiàn)問題、科學(xué)決策提供全面、準(zhǔn)確的依據(jù);同時(shí)也為通過大數(shù)據(jù)分析和機(jī)器學(xué)習(xí)等技術(shù)對(duì)中藥飲片霉變情況進(jìn)行預(yù)測(cè)和預(yù)警提供基礎(chǔ)數(shù)據(jù)。
2.3.2 用戶管理
用戶管理子模塊可對(duì)用戶進(jìn)行添加、修改、刪除等操作。根據(jù)用戶權(quán)限設(shè)定不同的操作權(quán)限。用戶管理界面如圖7所示。
2.3.3 系統(tǒng)設(shè)定
系統(tǒng)設(shè)定子模塊主要用于管理檢測(cè)閾值,可對(duì)每一種中藥飲片設(shè)定對(duì)應(yīng)的霉變標(biāo)定物、檢測(cè)合格范圍、檢測(cè)值等級(jí)分類等。該模塊還可供用戶進(jìn)行查詢、新增、修改、下發(fā)等操作。閾值設(shè)定界面如圖8所示。
3 系統(tǒng)應(yīng)用
基于Linux架構(gòu)的中藥飲片霉變檢測(cè)系統(tǒng)已在廣東某藥廠倉(cāng)庫(kù)投入使用。該系統(tǒng)能夠穩(wěn)定地采集各倉(cāng)庫(kù)中藥飲片的霉變檢測(cè)結(jié)果數(shù)據(jù),降低了檢測(cè)成本,減輕了檢測(cè)人員的工作量。
4 結(jié)束語
本文設(shè)計(jì)基于Linux架構(gòu)的中藥飲片霉變檢測(cè)系統(tǒng),實(shí)現(xiàn)了中藥飲片霉變檢測(cè)結(jié)果數(shù)據(jù)的采集及分析。該系統(tǒng)采用分布式部署模式,以邊緣端為節(jié)點(diǎn)、云端為中心的結(jié)構(gòu)設(shè)計(jì)。邊緣端以車載的形式集成各終端采集節(jié)點(diǎn)。經(jīng)過終端采集節(jié)點(diǎn)采集、上報(bào)數(shù)據(jù),運(yùn)用分布式云端服務(wù),形成一個(gè)安全、穩(wěn)定、可快速部署擴(kuò)展的檢測(cè)系統(tǒng),為客戶端提供準(zhǔn)確、快速、全面的分析報(bào)表數(shù)據(jù)。該系統(tǒng)已取得較好的應(yīng)用效果,但還
存在需要改進(jìn)的地方,如在網(wǎng)絡(luò)通信方面可考慮5G方式,提高數(shù)據(jù)的傳輸速度,降低硬件的使用成本。
參考文獻(xiàn)
[1]?零偉德.淺談中藥飲片霉變的原因及對(duì)策[J].中國(guó)民族民間醫(yī)藥,2013,22(9):68.
[2] 邱淑華,王雪蓮,李錚.中藥飲片定期檢查霉變蟲蛀的幾種方法[J].牡丹江醫(yī)學(xué)院學(xué)報(bào),1993(3):247-248.
[3]?陳娟.CentOS7 Linux網(wǎng)絡(luò)管理實(shí)訓(xùn)設(shè)計(jì)[J].電子世界, 2021(21):178-179.
[4]?彭劍,劉艷松,唐聞.MySQL主從服務(wù)器數(shù)據(jù)庫(kù)同步的實(shí)現(xiàn)[J].福建電腦,2020,36(7):118-119.
[5]?蘇翔宇,朱愛群.CentOS7下基于Nginx的反向代理及負(fù)載均衡研究與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2018(10):61-64.
[6] 曠志光,紀(jì)婷婷,吳小麗.基于Vue.js的后臺(tái)單頁(yè)應(yīng)用管理系統(tǒng)的研究與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2017(30):51-55.
[7]?劉艷平.Go語言實(shí)現(xiàn)數(shù)據(jù)庫(kù)驅(qū)動(dòng)的方法[J].計(jì)算機(jī)與現(xiàn)代化, 2018(1):113-115;122.
作者簡(jiǎn)介:
李興華,男,1987年生,本科,助工,主要研究方向:智能制造信息化。E-mail: xh.li@giim.ac.cn
陶明,女,1984年生,本科,高工,主要研究方向:智能制造信息化。E-mail:?m.tao@giim.ac.cn
溫浩然,男,1973年生,本科,高工,主要研究方向:自動(dòng)化控制。E-mail: hr.wen@giim.ac.cn