李興華 陶明 溫浩然



本文引用格式:李興華,陶明,溫浩然.基于Linux架構的中藥飲片霉變檢測系統[J].自動化與信息工程,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.
摘要:針對中藥飲片因具有較強的吸濕性且含有霉菌生長繁殖所需的營養物質,導致在貯存過程中易發生霉變的問題,設計基于Linux架構的中藥飲片霉變檢測系統,采用便攜式質譜儀對中藥飲片的揮發成分進行快速檢測。該系統主要由云端和邊緣端兩部分構成,云端用于存儲數據和提供服務中心,邊緣端的各個終端采集節點在采集數據的同時將檢測結果數據定時上傳至云端;采用分布式部署、前后端分離的開發模式,前端負責交互業務,后端負責數據處理。用戶可通過網頁配置業務基礎數據和查詢報表。
關鍵詞:中藥飲片;霉變檢測;Linux架構;分布式;邊緣端;云端
中圖分類號:TP311.5??????????文獻標志碼:A ?????????文章編號: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 引言
中藥飲片來源廣泛、成分復雜,若貯存不當,在多種因素相互作用下會產生霉變,不僅使其有效成分含量降低、失效,影響治療效果,甚至危害人體健康,還會增加藥物損耗,造成經濟損失[1]。根據中藥飲片的固有性質、顏色、形態等特點,需定期對其檢測,以便及時發現霉變、走油、蟲蛀等情況[2]。傳統的中
藥飲片檢測依靠人工抽檢,其及時性、準確性、可控性等方面存在較大的局限,且人工檢測結果的可追溯性差,后續無法運用分析。
為提高中藥飲片霉變檢測的準確率和效率,本文基于物聯網信息技術,構建基于Linux環境下的云端存儲計算、邊緣端采集的架構,設計一種中藥飲片霉變檢測系統,實現檢測結果數據的采集與分析,為中
藥飲片高質量生產提供保障。
1 系統架構
考慮到基于Linux架構的中藥飲片霉變檢測系統的可用性、可靠性及擴展性,采用分布式部署,結合云端和邊緣端的方式,其總體框架如圖1所示。
1.1 云端
云端包括數據庫服務器、后臺調度服務器、服務中心、應用服務器等4個模塊,架構如圖2所示。
云端部署在私有云環境,確保存儲的數據具有一致性、完整性和安全性。云端存儲終端采集節點發送
的檢測結果數據,通過WebApi接口進行內外部系統調用,并通過網站供不同的客戶端進行相關業務操作。
Linux操作系統相比Windows操作系統更加安全、穩定和開源[3]。考慮到基于Linux架構的中藥飲片霉變檢測系統的安全性和分布式特點,采用Linux環境下的CentOS7作為服務器的操作系統。
數據庫服務器采用MySQL的主從復制模式,即主數據庫服務器出現故障時,切換到從數據庫服務器繼續工作,避免數據丟失。MySQL Cluster通過自動分片支持讀寫擴展,利用實時備份冗余數據實現可用性較高的方案。通過數據庫實現Cluster,不但能提高MySQL的安全性,還能減輕數據庫管理員的工作量[4]。
在MySQL數據庫中,可設計定義表,如用戶表、質譜儀表、倉庫表等;還可設計過程表,如檢測記錄表,結構如表1所示。
后臺調度服務器采用Tdengine時序數據庫存儲檢測結果數據。通過Tdengine時序數據庫進行數據聚合查詢,可生成不同維度的報表,供不同客戶端查詢,并在不影響MySQL數據庫寫入操作的前提下,實現數據庫讀寫分離,提高MySQL數據庫并發,降低磁盤I/O的訪問頻率,使系統高效運行。Tdengine數據庫主要創建檢測結果數據表,此表不存在外鍵字段,保存的檢測結果數據均已經過聚合處理,可快速檢索。
服務中心是整個業務邏輯的處理中心,主要由接口服務、公共基礎服務、后臺管理頁面服務組成。
應用服務器采用Nginx作為Web服務器。Nginx是一款輕量級的Web服務器,在BSD-like協議下發行,具有占用內存少、并發能力強等特點。此服務器可掛載WebApi接口和客戶端訪問的管理頁面網站。
本系統采用可定制的開源CentOS7 Linux操作系統及開源Nginx服務器,使其運行更加穩定、高效,且具有良好的可擴展性[5]。
1.2 邊緣端
邊緣端以車載的形式集成了便攜式質譜儀、PDA、標簽打印機等終端采集節點。各終端采集節點通過無線路由構建的內部局域網絡,將采集的檢測結果數據定時上傳至云端。終端采集節點可根據需求擴展,且各采集節點獨立運行,當某個采集節點出現故障時,不會影響其他采集節點的正常運行。
因終端采集節點后續會不斷增加,且檢測結果數據具有時序性和區域性,故本系統將數據庫分為關系型數據庫和時序型數據庫。其中,關系型數據庫存儲檢測結果數據及業務基礎數據;時序型數據庫存儲各終端采集節點不同時間的檢測結果數據,為客戶端查詢報表和統計分析提供數據源。
中藥飲片霉變檢測結果采集過程如下:
1) 便攜式質譜儀通過外置采樣泵吸取空氣樣本,檢測樣本中的霉化物質;PDA掃描中藥飲片外箱條碼,獲取該箱中藥飲片的相關數據,并通過socket通信發給便攜式質譜儀;便攜式質譜儀綁定檢測結果與外箱條碼信息,形成檢測結果數據;
2) 便攜式質譜儀將檢測結果數據保存在本地車載服務器;同時將此數據生成的條碼標簽發送給標簽打印機,打印對應的條碼標簽;
3) 用戶將條碼標簽粘到被檢中藥飲片的外箱。
在便攜式質譜儀管理界面可設置PDA和標簽打印機的IP,將3個設備互相聯通。邊緣端結構如圖3所示。
1.3 客戶端
客戶端通過云端服務中心獲取各終端采集節點采集的數據。客戶端操作人員通過Web瀏覽器登錄管理頁面,進行業務基礎數據配置及報表分析查詢。
本系統前端采用Vue.js框架技術開發,可支持不同客戶端使用。Vue.js框架是一種面向前端界面開發的輕量化框架,設計模式遵循自下而上的原則,具有響應式編程和組態化的特點[6]。目前,客戶端以網頁訪問為主,如需在移動端訪問,可通過手機端登錄管理頁面訪問。若后續需要開發移動端的相關業務功能,可用相同的前端技術實現,具有良好的擴展功能。
1.4 技術棧
本系統采用前后端分離的方式構建,由CentOS+ MySQL+Tdengine+go+Nginx+Vue.js技術搭建而成。前端采用Vue編寫顯示層頁面,客戶通過操作前端網站,調用后端服務接口,返回數據在前端頁面顯示。后端采用go語言實現相關業務的邏輯模塊。go語言應用程序和數據庫的相關操作通過database/sql包和database/sql/driver共同實現[7]。其通過go語言分別與業務數據庫和時序數據庫交互處理,并以WebApi的形式提供接口服務,構成一個完整的后端服務。后端服務部署在云端的CentOS7操作系統下,掛載在Nginx應用服務器上,接收不同客戶端的服務請求。
2 系統主要功能
基于Linux架構的中藥飲片霉變檢測系統分為檢測結果數據采集、工況狀態檢測、系統管理3大功能模塊,結構圖如圖4所示。
2.1 檢測結果數據采集功能模塊
邊緣端的終端采集節點采集檢測結果數據,車載服務器定時推送檢測結果數據至云端,也可通過手動方式在終端車載狀態頁面點擊上傳數據按鈕進行上報,還可查看最近的檢測結果數據上報情況。
2.2 工況狀態檢測功能模塊
工況狀態檢測功能模塊顯示傳感器狀態,使用戶了解其工作狀況,便于設備的維護、保養等。在終端車載狀態界面可查看主要的傳感器狀態,如圖5所示。
2.3 系統管理功能模塊
系統管理功能模塊主要包括報表查詢、用戶管理和系統設定等子模塊。
2.3.1 報表查詢
報表查詢子模塊可根據中藥飲片條碼、檢測日期、中藥飲片的位置、檢測的班次(甲、乙、丙3班)等信息多維度查詢檢測結果,篩選出查詢的數據后,可選擇顯示不合格記錄或者所有記錄,并導出查詢結果。檢測結果數據查詢界面如圖6所示。
根據系統提供的報表類型,可分為專家報表和用戶報表。專家報表可根據選擇的維度查詢檢測結果數據的匯總情況,便于分析不同區域和時段的中藥飲片霉變情況,進而為后續的中藥飲片存儲有針對性地制定保護性措施。用戶報表用于統計操作人員在檢測過程的數據情況,作為員工績效考核依據。
本系統通過各種統計分析報表,從不同維度直觀
展示中藥飲片的霉變狀況,為藥廠發現問題、科學決策提供全面、準確的依據;同時也為通過大數據分析和機器學習等技術對中藥飲片霉變情況進行預測和預警提供基礎數據。
2.3.2 用戶管理
用戶管理子模塊可對用戶進行添加、修改、刪除等操作。根據用戶權限設定不同的操作權限。用戶管理界面如圖7所示。
2.3.3 系統設定
系統設定子模塊主要用于管理檢測閾值,可對每一種中藥飲片設定對應的霉變標定物、檢測合格范圍、檢測值等級分類等。該模塊還可供用戶進行查詢、新增、修改、下發等操作。閾值設定界面如圖8所示。
3 系統應用
基于Linux架構的中藥飲片霉變檢測系統已在廣東某藥廠倉庫投入使用。該系統能夠穩定地采集各倉庫中藥飲片的霉變檢測結果數據,降低了檢測成本,減輕了檢測人員的工作量。
4 結束語
本文設計基于Linux架構的中藥飲片霉變檢測系統,實現了中藥飲片霉變檢測結果數據的采集及分析。該系統采用分布式部署模式,以邊緣端為節點、云端為中心的結構設計。邊緣端以車載的形式集成各終端采集節點。經過終端采集節點采集、上報數據,運用分布式云端服務,形成一個安全、穩定、可快速部署擴展的檢測系統,為客戶端提供準確、快速、全面的分析報表數據。該系統已取得較好的應用效果,但還
存在需要改進的地方,如在網絡通信方面可考慮5G方式,提高數據的傳輸速度,降低硬件的使用成本。
參考文獻
[1]?零偉德.淺談中藥飲片霉變的原因及對策[J].中國民族民間醫藥,2013,22(9):68.
[2] 邱淑華,王雪蓮,李錚.中藥飲片定期檢查霉變蟲蛀的幾種方法[J].牡丹江醫學院學報,1993(3):247-248.
[3]?陳娟.CentOS7 Linux網絡管理實訓設計[J].電子世界, 2021(21):178-179.
[4]?彭劍,劉艷松,唐聞.MySQL主從服務器數據庫同步的實現[J].福建電腦,2020,36(7):118-119.
[5]?蘇翔宇,朱愛群.CentOS7下基于Nginx的反向代理及負載均衡研究與實現[J].現代計算機(專業版),2018(10):61-64.
[6] 曠志光,紀婷婷,吳小麗.基于Vue.js的后臺單頁應用管理系統的研究與實現[J].現代計算機(專業版),2017(30):51-55.
[7]?劉艷平.Go語言實現數據庫驅動的方法[J].計算機與現代化, 2018(1):113-115;122.
作者簡介:
李興華,男,1987年生,本科,助工,主要研究方向:智能制造信息化。E-mail: xh.li@giim.ac.cn
陶明,女,1984年生,本科,高工,主要研究方向:智能制造信息化。E-mail:?m.tao@giim.ac.cn
溫浩然,男,1973年生,本科,高工,主要研究方向:自動化控制。E-mail: hr.wen@giim.ac.cn