殷 民,馮江濤,王相輝,賈新春,童記軍,張?jiān)魄?/p>
(1.山西大學(xué)自動(dòng)化與軟件學(xué)院,山西 太原 030013;2.尚風(fēng)科技股份有限公司,山西 太原 030006)
基于數(shù)字化大背景,線下實(shí)體商業(yè)的數(shù)字化業(yè)務(wù)需求不斷增加,而疫情更是加速了實(shí)體商業(yè)線下+線上融合的全渠道業(yè)務(wù)模式演進(jìn)[1]。隨著測(cè)量技術(shù)與儀器、自動(dòng)控制技術(shù)和物聯(lián)網(wǎng)技術(shù)的發(fā)展與應(yīng)用,生產(chǎn)經(jīng)營(yíng)的成本大大降低,人力資源成本不斷提高?!靶铝闶邸崩顺毕拢屡d技術(shù)支持下的各類售賣機(jī)應(yīng)運(yùn)而生。文國(guó)軍等人對(duì)零售系統(tǒng)中數(shù)據(jù)庫及手機(jī)二維碼移動(dòng)支付方案進(jìn)行了設(shè)計(jì),指出二維碼技術(shù)和移動(dòng)支付在零售行業(yè)中的可行性和市場(chǎng)優(yōu)勢(shì)[2]。文獻(xiàn)[3]和文獻(xiàn)[4]指出云平臺(tái)技術(shù)在數(shù)據(jù)管控和節(jié)省成本方面所具備的獨(dú)特優(yōu)勢(shì),并就云平臺(tái)技術(shù)和其子零售運(yùn)營(yíng)系統(tǒng)的實(shí)現(xiàn)作了技術(shù)介紹??弟娭赋瞿壳笆袌?chǎng)上火爆的射頻識(shí)別(radio frenquency indentification,RFID)技術(shù)具有成本高、速度慢、部署環(huán)境要求苛刻等缺點(diǎn),并提出一款基于稱重原理的單片機(jī)數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)基于重力感應(yīng)技術(shù),通過重量變化對(duì)物品信息進(jìn)行判斷和甄別,實(shí)現(xiàn)對(duì)零售柜中的標(biāo)準(zhǔn)和非標(biāo)商品的識(shí)別[5]。
高等院校的零售市場(chǎng)巨大,周邊文創(chuàng)產(chǎn)品種類豐富、大小不一、價(jià)格各異。市場(chǎng)上常見的彈簧柜和格子柜售貨系統(tǒng)無法適用于高等院校文創(chuàng)商品的售賣。因此,本文以高等院校文創(chuàng)產(chǎn)品售賣為目的,結(jié)合平行梁稱重傳感器的高精度性、云平臺(tái)管理移動(dòng)支付的便捷性以及可編程邏輯控制器(programable logic controller,PLC)的強(qiáng)抗干擾性等優(yōu)點(diǎn),搭建了云平臺(tái)下基于重量檢測(cè)的售賣系統(tǒng)。
云平臺(tái)下基于重量檢測(cè)的售賣系統(tǒng)框架如圖1所示。
圖1 云平臺(tái)下基于重量檢測(cè)的售賣系統(tǒng)框架Fig.1 Framework of the vending system based on weight detection on the cloud platform
云平臺(tái)下基于重量檢測(cè)的售賣系統(tǒng)由售貨柜、4G網(wǎng)絡(luò)、云服務(wù)器和客戶/管理員端4部分組成。售貨柜為5層2列的布局結(jié)構(gòu),內(nèi)置售貨柜控制系統(tǒng),實(shí)現(xiàn)對(duì)柜內(nèi)商品種類數(shù)量的檢測(cè)和開關(guān)門的控制。4G網(wǎng)絡(luò)實(shí)現(xiàn)售貨柜系統(tǒng)和云服務(wù)器之間的數(shù)據(jù)交互。云服務(wù)器是客戶/管理員和售貨柜之間的數(shù)據(jù)交互和存儲(chǔ)的平臺(tái)??蛻?管理員使用手機(jī)訪問云平臺(tái),最終實(shí)現(xiàn)與售貨柜的數(shù)據(jù)交互。
售貨柜控制系統(tǒng)包括數(shù)據(jù)傳輸單元(data transfer unit,DTU)、PLC、商品檢測(cè)計(jì)量模塊、門鎖控制模塊和語音播報(bào)模塊。售貨柜控制系統(tǒng)結(jié)構(gòu)如圖2所示。
圖2 售貨柜控制系統(tǒng)結(jié)構(gòu)Fig.2 Vending container control system structure
DTU采用工業(yè)級(jí)設(shè)計(jì)標(biāo)準(zhǔn)的USR-G771型號(hào)模塊,可實(shí)現(xiàn)串口與網(wǎng)絡(luò)數(shù)據(jù)的快速雙向透?jìng)?。PLC選用西門子S7-200系列CPU224 XP模塊。該模塊具有良好的抗外界干擾能力,自帶14路數(shù)字量輸入和10路數(shù)字量輸出、2路模擬量輸入、1路模擬量輸出,以及2路RS-485通信/編程口。PLC作為主站,通過RS-485通信口Port0與商品檢測(cè)計(jì)量模塊通信,以采集稱重?cái)?shù)據(jù);通過數(shù)字量I/O端口與門鎖控制模塊連接,實(shí)現(xiàn)對(duì)柜門的檢測(cè)和控制;通過數(shù)字量控制端口實(shí)現(xiàn)對(duì)語音播報(bào)模塊的控制;PLC作為從站,通過RS-485通信口Port1與DTU通信,實(shí)現(xiàn)本地?cái)?shù)據(jù)到云服務(wù)器的上傳。
2.1.1 檢測(cè)計(jì)量方案
檢測(cè)計(jì)量方案采用稱重傳感器和模數(shù)轉(zhuǎn)換(analog to digital,A/D)模塊結(jié)合的方法,將多路稱重傳感器輸出的模擬量信號(hào)經(jīng)A/D模塊轉(zhuǎn)換成數(shù)字量信號(hào),通過RS-485總線傳輸給PLC[6-7]。
2.1.2 檢測(cè)計(jì)量模塊選型
稱重傳感器采用HYPX-017型號(hào)雙孔懸臂平行梁稱重傳感器,具備精度高、易加工、抗偏載能力強(qiáng)、固有頻率高等特點(diǎn)。根據(jù)商品的重量范圍進(jìn)行考慮,系統(tǒng)選用0~5 kg和0~20 kg這2種量程的稱重傳感器。稱重傳感器原理[8]如圖3所示。由圖3可知,平行梁受到商品重力F作用產(chǎn)生彈性變形,粘貼在其表面的電阻應(yīng)變片(R1~R4)的阻值變化,經(jīng)橋式測(cè)量電路轉(zhuǎn)換為差分電壓,輸入到A/D模塊,從而完成了將商品重量變換為數(shù)字電信號(hào)的過程。
圖3 稱重傳感器原理圖Fig.3 Principle of weighing sensor
稱重傳感器采用5 V直流供電,輸出差分電壓范圍為0~10 mV。與之配合的A/D模塊選用HY-485稱重采集卡,實(shí)現(xiàn)從模擬量到數(shù)字量的轉(zhuǎn)換。模塊采樣頻率設(shè)定為15 Hz。有效差分輸入電壓在±12 mV以內(nèi),絕對(duì)精度可達(dá)0.03%。
門鎖控制模塊和語音播報(bào)模塊如圖4所示。
圖4 門鎖控制模塊和語音播報(bào)模塊接線圖Fig.4 Wiring diagram of door lock control unit and voice broadcast unit
圖4中:KA1為控制柜門電磁鎖的繼電器;KA2為控制語音播報(bào)的繼電器;SF1為電磁鎖自帶的信號(hào)偵測(cè)反饋信號(hào)。
Q0.0輸出1時(shí),繼電器線圈KA1得電,動(dòng)合觸點(diǎn)KA1閉合,電磁鎖磁鐵帶電,鎖舌收回,柜門打開。當(dāng)柜門閉合時(shí),門上的磁鐵片使得電磁鎖內(nèi)部的線路斷開,鎖舌彈出,柜門上鎖,I0.0狀態(tài)為1,PLC檢測(cè)到柜門關(guān)閉。
語音播報(bào)模塊采用YX60多路觸發(fā)語音播報(bào)器,內(nèi)置單片機(jī)系統(tǒng)與圖4中KA2繼電器相連接。當(dāng)Q0.1輸出為1時(shí),繼電器線圈KA2得電吸合,動(dòng)合觸點(diǎn)KA2閉合,語音播報(bào)模塊接通電源,對(duì)應(yīng)蜂鳴器完成語音輸出。
售賣系統(tǒng)的軟件設(shè)計(jì)包括售貨柜系統(tǒng)設(shè)計(jì)、微信小程序開發(fā)和云平臺(tái)設(shè)計(jì)。
售貨柜系統(tǒng)包括售貨和補(bǔ)/換貨這2個(gè)功能。售貨流程如圖5所示。
圖5 售貨流程圖Fig.5 Schematic diagram of sales process
圖5所示的流程中,初始化主要用于確認(rèn)商品的初始重量,并在接收到開門指令時(shí)將柜內(nèi)各稱重托盤回傳的重量數(shù)據(jù)存放到PLC內(nèi)部存儲(chǔ)器的V區(qū)中。
Modbus Master通信[9]用于實(shí)現(xiàn)PLC與云平臺(tái)的數(shù)據(jù)交互,包括售貨過程中柜門控制的指令傳輸、檢測(cè)信號(hào)的云上傳。由云端根據(jù)商品數(shù)量的變化信息計(jì)算商品價(jià)格,在檢測(cè)到關(guān)門信號(hào)時(shí)生成客戶訂單,激活前端微信小程序執(zhí)行扣款操作。
商品種類和重量的檢測(cè)采取狀態(tài)輪詢的方式。每次掃描時(shí),調(diào)用MBUS_CTRL_P1指令將PLC初始化為Modbus主站,并多次調(diào)用MBUS_MSG_P1指令將各A/D模塊初始化為從站。各從站對(duì)應(yīng)的MBUS_MSG_P1指令的Slave和DataPtr參數(shù)位配置不同,依據(jù)MBUS_MSG_P1指令執(zhí)行的完成狀態(tài)位的變化依次觸發(fā)各A/D模塊對(duì)應(yīng)梯形圖程序中的MBUS_MSG_P1指令,從而完成各傳感器數(shù)據(jù)的采集。
PLC實(shí)時(shí)計(jì)算當(dāng)前重量數(shù)據(jù)與初始化時(shí)存入V區(qū)的重量數(shù)據(jù)之差,將差值除以物品單重,即可得到商品數(shù)量的變化情況。
補(bǔ)/換貨流程的PLC編程沿用購物流程的思想,不同的是取消了扣款操作并增加了利用微信小程序設(shè)置變量(如設(shè)置托盤皮重、物品單重和物品數(shù)量等)的功能。
借助微信開發(fā)者工具,遵循微信開放文檔規(guī)范,使用JavaScript語言完成微信小程序的開發(fā)。微信小程序前端界面開發(fā)結(jié)構(gòu)如圖6所示。
圖6 微信小程序前端界面開發(fā)結(jié)構(gòu)圖Fig.6 Structure diagram of the front-end interface development of WeChat mini program
本系統(tǒng)設(shè)計(jì)選用新浪平臺(tái)(Sina APP engine,SAE)作為部署代碼和數(shù)據(jù)庫的服務(wù)器。選擇PHP作為開發(fā)語言,基于PHP5的Symfony網(wǎng)站框架進(jìn)行后臺(tái)功能的搭建[10]。
數(shù)據(jù)庫采用SAE云平臺(tái)提供的MySQL數(shù)據(jù)庫服務(wù)。后臺(tái)功能服務(wù)軟件是基于PHP語言創(chuàng)建的動(dòng)態(tài)頁面,同樣部署在SAE云平臺(tái)中,具有獨(dú)立域名。PHP頁面可以根據(jù)訪問時(shí)傳遞的參數(shù),完成對(duì)數(shù)據(jù)庫的讀寫操作,并返回相應(yīng)的數(shù)據(jù)。
服務(wù)器端服務(wù)架構(gòu)如圖7所示。
圖7 服務(wù)器端服務(wù)架構(gòu)圖Fig.7 Server-side service architecture diagram
售貨柜中的下位機(jī)PLC通過DTU 4G模塊連接到網(wǎng)絡(luò)。DTU模塊內(nèi)部集成了TCP協(xié)議棧,和TCP連接以后,通過TCP上層的HTTP協(xié)議完成與云端服務(wù)器的PHP頁面的信息交互。作為從站,PLC只能接收指令,不能主動(dòng)發(fā)送請(qǐng)求。因此,服務(wù)器PHP頁面周期性地向PLC發(fā)起訪問請(qǐng)求,以及時(shí)獲取下位機(jī)動(dòng)態(tài)。
取市場(chǎng)上常見的文創(chuàng)商品(鑰匙扣、水晶掛件、紀(jì)念幣和徽章)各10個(gè)作為待測(cè)試的物品。待測(cè)商品重量范圍如表1所示。
表1 待測(cè)試商品的重量范圍Tab.1 Product weight range to be tested /g
將上述商品按單位數(shù)量遞增的方式分別放置到量程為0~5 kg的稱重傳感器上,對(duì)重量變化數(shù)據(jù)和重量誤差數(shù)據(jù)進(jìn)行記錄。0~5 kg傳感器測(cè)試結(jié)果如圖8所示。
圖8 0~5 kg傳感器測(cè)試結(jié)果Fig.8 Sensor testing results at 0~5 kg
分析圖8數(shù)據(jù)可知,0~5 kg傳感器對(duì)同種商品的測(cè)量精度最高可達(dá)0.001 8%,平均誤差≤0.300 4 g;對(duì)不同種類且重量差別小(1 g≤ε≤5 g)的商品能夠很好地進(jìn)行區(qū)分。同理,取重量較大的文創(chuàng)商品(硯臺(tái)、陶瓷杯等)在0~20 kg傳感器上進(jìn)行測(cè)試,其測(cè)量精度最高可達(dá)0.007 5%,平均誤差≤3.490 5 g,滿足對(duì)文創(chuàng)商品的種類和數(shù)量檢測(cè)的精度要求。
本文設(shè)計(jì)并實(shí)現(xiàn)介紹了一種云平臺(tái)下基于重量檢測(cè)的售賣系統(tǒng)。該系統(tǒng)融合云平臺(tái)服務(wù)、移動(dòng)支付、重量檢測(cè)和遠(yuǎn)程通信等技術(shù)優(yōu)勢(shì),綜合考慮零售系統(tǒng)的功能需求,解決了高等院校文創(chuàng)商品種類多、體積和價(jià)格差別大所導(dǎo)致的自動(dòng)售賣難題。經(jīng)投產(chǎn)使用,本系統(tǒng)表現(xiàn)出良好的運(yùn)行效果,根據(jù)市場(chǎng)問卷調(diào)查統(tǒng)計(jì)顯示,客戶滿意度達(dá)到87.9%。系統(tǒng)的實(shí)現(xiàn)對(duì)新零售行業(yè)的建設(shè)與發(fā)展具有一定的參考價(jià)值。