戶晨飛,萬雪芬,2,楊 義,許培培
(1.東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620;2.華北科技學(xué)院 計(jì)算機(jī)學(xué)院,河北 廊坊 065201)
基于C#的實(shí)時售后服務(wù)跟蹤系統(tǒng)
戶晨飛1,萬雪芬1,2,楊 義1,許培培1
(1.東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620;2.華北科技學(xué)院 計(jì)算機(jī)學(xué)院,河北 廊坊 065201)
針對注塑機(jī)制造商對實(shí)時售后服務(wù)支持的需要,提出了一種基于C#和DTU數(shù)據(jù)傳輸單元、GPS全球定位系統(tǒng)的實(shí)時售后服務(wù)支持系統(tǒng)。該系統(tǒng)的數(shù)據(jù)傳輸部分由DTU通過GPRS網(wǎng)絡(luò)來實(shí)現(xiàn),定位信息由GPS模塊通過與衛(wèi)星通信來獲取,整個軟件系統(tǒng)均采用C#語言在Visual Studio上開發(fā)。系統(tǒng)可以對注塑機(jī)設(shè)備各模塊的運(yùn)行狀態(tài)進(jìn)行實(shí)時監(jiān)控,同時通過獲取的位置信息,為購買注塑機(jī)的客戶提供周到高效的售后技術(shù)支持和服務(wù)。該系統(tǒng)具有實(shí)時性強(qiáng)、精確度高、功能伸縮性好、通用化程度高、配置便捷與使用方便等特點(diǎn),可望為大型設(shè)備制造商的售后部門提供較為方便高效的工程實(shí)踐支持。
C#;GPS;DTU;GPRS;售后服務(wù)
隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,各個行業(yè)在信息化方面提出了更高的要求,并借助信息科技使產(chǎn)品更加便捷和人性化;將自己的產(chǎn)品設(shè)備在客戶工廠運(yùn)行時的狀態(tài)通過網(wǎng)絡(luò)發(fā)送至自己的售后服務(wù)中心,不但使自己生產(chǎn)的設(shè)備更加易于監(jiān)管,而且為客戶提供了更加周到有效的服務(wù)。
數(shù)據(jù)傳輸單元DTU是利用運(yùn)營商的GPRS網(wǎng)絡(luò)和互聯(lián)網(wǎng)固定IP進(jìn)行無線通信傳輸?shù)臄?shù)據(jù)終端[1-2],由于運(yùn)營商網(wǎng)絡(luò)已全部覆蓋,這就解決了工廠車間內(nèi)無法實(shí)時連接網(wǎng)絡(luò)的問題,同時DTU設(shè)備支持設(shè)備永久在線以及斷線自動重連等功能,這也為無人車間的建設(shè)提供了技術(shù)上的幫助。GPS模塊通過與衛(wèi)星進(jìn)行通信,得到精確位置信息,當(dāng)設(shè)備運(yùn)行出現(xiàn)故障時,距離最近設(shè)備售后服務(wù)中心能夠迅速做出反應(yīng),及時排除故障,最大程度地降低對生產(chǎn)的影響。
圖1 系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)的總體結(jié)構(gòu)如圖1所示,主要由設(shè)備終端、DTU(Data Transfer Unit)模塊以及遠(yuǎn)程數(shù)據(jù)中心組成,GPS(Global Positioning System)模塊從衛(wèi)星獲取位置信息[3],傳入工業(yè)平板電腦,設(shè)備各個模塊的傳感器將設(shè)備運(yùn)行時各模塊運(yùn)行狀態(tài)信息通過串口傳入工業(yè)平板電腦,工業(yè)平板電腦將傳感器信息數(shù)據(jù)包和GPS位置信息數(shù)據(jù)包通過DTU模塊經(jīng)過GPRS網(wǎng)絡(luò)發(fā)送到遠(yuǎn)程數(shù)據(jù)中心的固定IP,遠(yuǎn)程數(shù)據(jù)中心的客戶端軟件將實(shí)時數(shù)據(jù)呈現(xiàn)出來,實(shí)時監(jiān)控設(shè)備運(yùn)行狀態(tài),當(dāng)設(shè)備終端出現(xiàn)任何異常時可以迅速做出反應(yīng),為客戶提供高效的售后服務(wù)。
圖4 遠(yuǎn)程數(shù)據(jù)服務(wù)中心流程圖
本系統(tǒng)的硬件框架如圖2所示。由于工業(yè)平板電腦具有堅(jiān)固、防震、防潮、防塵、耐高溫以及多插槽易于擴(kuò)充等眾多優(yōu)點(diǎn),本文選用研祥PPC-1781工業(yè)平板電腦來作為設(shè)備端的控制核心,通過工業(yè)平板電腦來對設(shè)備的運(yùn)行進(jìn)行控制;GPS模塊選擇采用U-Blox 第8代72通道GPS芯片的UB-353,它具有定位精確、迅速并且防水、防震等突出優(yōu)點(diǎn);DTU設(shè)備選用的是廣東致遠(yuǎn)電子的ZWD系列,具有穩(wěn)定抗干擾能力強(qiáng)等特點(diǎn),可以進(jìn)行雙向高速傳輸,并且支持VC、C#等多種開發(fā)環(huán)境;將各個模塊與工業(yè)平板電腦進(jìn)行連接,設(shè)備各個模塊上的傳感器和GPS定位模塊將設(shè)備運(yùn)行數(shù)據(jù)和定位信息實(shí)時的傳送至平板電腦,再通過DTU將設(shè)備運(yùn)行數(shù)據(jù)傳送至遠(yuǎn)程控制中心。
圖2 硬件連接結(jié)構(gòu)圖
設(shè)備端工業(yè)平板電腦需要將GPS模塊和設(shè)備上的傳感器數(shù)據(jù)收集并發(fā)送至遠(yuǎn)程數(shù)據(jù)服務(wù)中心[4],選擇Visual Studio開發(fā)平臺,使用C#語言進(jìn)行上位機(jī)軟件開發(fā)[5],軟件流程圖如圖3所示。
圖3 上位機(jī)軟件流程圖
主要代碼如下:
ports = SerialPort.GetPortNames();
//檢測出連接GPS和傳感器的串口
serialPort.PortName = receive_SerialName;
//設(shè)置串口號
serialPort.BaudRate = 38400;
//設(shè)置波特率
serialPort.DataReceived +=new
//添加事件處理程序
SerialDataReceivedEventHandler(portDataReceived);
將收到的數(shù)據(jù)進(jìn)行處理、換算并封裝成數(shù)據(jù)包,寫入DTU,DTU通過GPRS網(wǎng)絡(luò)傳送至遠(yuǎn)程數(shù)據(jù)服務(wù)中心:
comboBox_dtu.SelectedItem.ToString();
//獲取DTU所在串口的串口號
serialPort_dtu.PortName = send_SerialName;
//設(shè)置DTU串口號
serialPort_dtu.Open();
//打開串口
......
serialPort_dtu.Write( Data.ToArray(), 0, 20)
//將數(shù)據(jù)包發(fā)送至遠(yuǎn)程數(shù)據(jù)服務(wù)中心固定IP
遠(yuǎn)程數(shù)據(jù)服務(wù)中心主要是用來對遠(yuǎn)在工廠里生產(chǎn)運(yùn)行的設(shè)備進(jìn)行監(jiān)測,利用DTU的永久在線以及可以接入互聯(lián)網(wǎng)固定IP的特點(diǎn)[6],可以獲得設(shè)備的實(shí)時運(yùn)行狀態(tài),當(dāng)設(shè)備某個模塊出現(xiàn)異常時可以在短時間內(nèi)聯(lián)系客戶給予技術(shù)支持,幫助排除設(shè)備故障,確保生產(chǎn)的正常進(jìn)行。
遠(yuǎn)程數(shù)據(jù)服務(wù)中心軟件流程圖如圖4所示。
4.1 獲取DTU發(fā)送至固定IP的數(shù)據(jù)
遠(yuǎn)程數(shù)據(jù)服務(wù)中心建立TCP Server對DTU通過GPRS網(wǎng)絡(luò)發(fā)送到固定IP的數(shù)據(jù)包進(jìn)行監(jiān)聽讀取[7],主要程序代碼如下:
//獲取已連接的TCP Client
public BindingList
//開啟監(jiān)聽
private void StartTCPServer()
{
try
{
if (cbxServerIP.SelectedIndex == 0)
{
tcpsever = new TcpListener(IPAddress.Any, (int)nmServerPort.Value);
}
else
{
tcpsever = new TcpListener(IPAddress.Parse(cbxServerIP.SelectedItem.ToString()), (int)nmServerPort.Value);
}
tcpsever.Start();
tcpsever.BeginAcceptTcpClient(new AsyncCallback(Acceptor), tcpsever);
isListen = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, “錯誤”, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
//TCP Client連接初始化
private void Acceptor(IAsyncResult o)
{
TcpListener server = o.AsyncState as TcpListener;
try
{
TCPClient newClient = new LeafTCPClient();
newClient.NetWork = server.EndAcceptTcpClient(o);
lstClient.Add(newClient);
BindLstClient();
newClient.NetWork.GetStream().BeginRead(newClient.buffer, 0, newClient.buffer.Length, new AsyncCallback(TCPCallBack), newClient);
server.BeginAcceptTcpClient(new AsyncCallback(Acceptor), server);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, “錯誤”, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
//讀取數(shù)據(jù)包
public void showdata(byte[] data)
{
if (this.InvokeRequired)
{
SetLabelDelegate d = new SetLabelDelegate(showdata);
this.Invoke(d, new object[] { data });
}
else
{
for (int i = 0; i < data.Length; ++i)
readedDataBuffer.Add(data[i]);
if (readedDataBuffer.Count >= 20)
{
......
}
}
}
4.2 對收到的傳感器數(shù)據(jù)進(jìn)行處理分析
將提取的傳感器數(shù)據(jù)值與各個模塊正常運(yùn)行時所在的數(shù)值區(qū)間進(jìn)行比較,對運(yùn)行在非標(biāo)準(zhǔn)值區(qū)間的模塊進(jìn)行報(bào)警處理,遠(yuǎn)程數(shù)據(jù)服務(wù)中心工作人員分析報(bào)警原因,根據(jù)GPS位置信息將異常處理任務(wù)交給與之距離最近的售后服務(wù)中心,在不影響客戶生產(chǎn)工作的情況下提前將可能發(fā)生的故障進(jìn)行清除,或者當(dāng)發(fā)生故障以后迅速修復(fù)。
4.3 由收到的GPS定位信息獲取地理位置
首先從收到的GPS模塊信息中提取經(jīng)緯度信息,收到的定位信息格式如下:$GNRMC,094552.00, A, 3103.54148, N, 12112.41619, E, 0.044, , 270916, , , A*6D,每個字段由逗號分割:
字段2:狀態(tài),A=定位,V=未定位
字段3:緯度ddmm.mmmm,度分格式
字段4:緯度N(北緯)或S(南緯)
字段5:經(jīng)度dddmm.mmmm,度分格式
字段6:經(jīng)度E(東經(jīng))或W(西經(jīng))
......
將提取到的經(jīng)緯度數(shù)據(jù),傳入百度地圖開發(fā)平臺,調(diào)用百度地圖的Web服務(wù)API,將經(jīng)緯度換算成更加直觀的地理位置信息。
//創(chuàng)建WebClient客戶端對象
WebClient client = new WebClient();
//創(chuàng)建包含經(jīng)緯度信息的URL
http://api.map.baidu.com/geocoder/v2/?ak=Qz2FTrZEivtL8Ln11LHe2qP5gLZfppWP&callback=renderReverse&location=" + weidu_baidumap + "," + jingdu_baidumap + "&output=xml&pois=1";
//下載提交URL以后Web API的響應(yīng)XML數(shù)據(jù)
responseTest = client.DownloadString(url);
//提取XML中的地理位置信息
X_status=@"GeocoderSearchResponse/status";
X_node = doc.SelectSingleNode(X_status);
......
@"GeocoderSearchResponse/result/formatted_address";
node = doc.SelectSingleNode(xpath);
address = node.InnerText.ToString();
最后將得到的地理位置顯示出來。
4.4 將設(shè)備運(yùn)行信息保存至數(shù)據(jù)庫
為了給以后的設(shè)備研發(fā)更新提供數(shù)據(jù)分析,制造出更加穩(wěn)定、高效的產(chǎn)品,將傳感器以及GPS定位數(shù)據(jù)存儲在數(shù)據(jù)庫中,這里選擇SQL Server數(shù)據(jù)庫,SQL Server是一個可擴(kuò)展、高性能的真正的客戶機(jī)體系結(jié)構(gòu)的數(shù)據(jù)庫,比較符合本設(shè)計(jì)的需求。主要語句如下:
"Server=.;Database=name;Trusted_Connection=SSPI";
mycon = new SqlConnection(con);
......
SqlDataAdapter myda = new SqlDataAdapter(sql, con)
將收到的數(shù)據(jù)包轉(zhuǎn)換處理以后,與正常運(yùn)行的標(biāo)準(zhǔn)值區(qū)間進(jìn)行比較判斷,將設(shè)備運(yùn)行狀態(tài)在桌面客戶端軟件呈現(xiàn)出來,正常運(yùn)行狀態(tài)時顯示綠色標(biāo)志,出現(xiàn)小的參數(shù)偏離時顯示棕紅色標(biāo)志,出現(xiàn)故障時會顯示紅色報(bào)警標(biāo)志;將通過百度Web API轉(zhuǎn)換后的地理位置信息以文字和靜態(tài)地圖的形式顯示出來,數(shù)據(jù)存儲在后臺進(jìn)行,存儲到SQL Server數(shù)據(jù)庫。
針對工廠車間大型生產(chǎn)設(shè)備售后服務(wù)滯后問題以及大型設(shè)備本身所具有的多模塊、長生產(chǎn)線等特性,對其進(jìn)行實(shí)時售后監(jiān)控,監(jiān)控精確到設(shè)備各個工作模塊,可以對故障起到預(yù)防作用,即對設(shè)備出現(xiàn)的微小異常情況及時提供技術(shù)支持,幫助客戶及時解決問題,同時一旦出現(xiàn)故障問題,可以通過GPS的定位信息,讓就近的售后服務(wù)中心的工作人員根據(jù)故障模塊上門排查迅速修復(fù)故障,使設(shè)備故障給客戶工廠的生產(chǎn)帶來的經(jīng)濟(jì)影響最小化[8]。本套系統(tǒng)具有功能伸縮性好、通用化程度高、配置便捷與使用方便等特點(diǎn),可望為大型設(shè)備生產(chǎn)企業(yè)的售后服務(wù)提供較為方便的工程實(shí)踐支持。
[1] Gu Zongran, Meng Lifan, Yang Yanjun. The system of wireless data transmission based on GPRS[J]. Electrical Measurement & Instrumentation, 2010, 47(Z2): 46-48.
[2] 陳東升. 基于GPRS的下水道氣體遠(yuǎn)程監(jiān)測系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測量與控制, 2014, 22(12): 3922-3934.
[3] JWO D J, CHUNG F C. Fuzzy adaptive unscented Kalman filter for ultra-tight GPS/INS integration[C]. International Symposium on Computational Intelligence and Design, Taiwan, 2010:229-235.
[4] 王建軍,吳北平,馮健.TEQC 和 QCVIEW32 在 GPS 觀測數(shù)據(jù)預(yù)處理中的應(yīng)用[J].工程地球物理學(xué)報(bào),2010,7(5):634-638.
[5] 朱英翔,朱福民,劉炎鳴 .C#下串口通信的開發(fā)擴(kuò)展 [J]. 微型機(jī)與應(yīng)用,2014 ,33(6) :89-91.
[6] 王璽聯(lián).“ 花生殼”與端口映射在GPRS流量監(jiān)控系統(tǒng)中的應(yīng)用實(shí)現(xiàn)[J]. 中國科技信息,2009(24):99,104.
[7] 岳學(xué)軍,王葉夫,劉永鑫,等. 基于 GPRS 與 ZigBee 的果園環(huán)境監(jiān)測系統(tǒng)[J]. 華南農(nóng)業(yè)大學(xué)學(xué)報(bào), 2014,35(4):109-113.
[8] 王文山,柳平增,臧官勝,等. 基于物聯(lián)網(wǎng)的果園環(huán)境信息監(jiān)測系統(tǒng)的設(shè)計(jì)[J]. 山東農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版), 2012, 43(2):239-243.
Real-time after-sale service tracking system based on C#
Hu Chenfei1,Wan Xuefen1,2, Yang Yi1,Xu Peipei1
(1.College of Information Science & Technology, Donghua University, Shanghai 201620, China;2. College of Computer, North China Institute of Science and Technology, Langfang 065201, China)
For the injection molding machine manufacturer to support the real-time after-sale service, we propose a real-time after-sale service support system based on C # and DTU data transmission unit and GPS global positioning system. The data transmission part of the system is realized by the DTU through the GPRS network. The location information is obtained by the GPS module through the satellite communication. The whole software system is developed in Visual Studio using C # language. The system can real-timely monitor the status of each module of injection molding machine equipment, at the same time through the acquisition of location information, provide customers with thoughtful and efficient after-sales technical support and services. The system has the characteristics of strong real time, high precision, good function and flexibility, high generalization, convenient configuration and convenient usage, and is expected to provide more convenient after-sales department of efficient engineering practice support to large equipment manufacturers.
C#;GPS;DTU;GPRS;after-sales service
TP319
A
10.19358/j.issn.1674- 7720.2017.06.030
戶晨飛,萬雪芬,楊義,等. 基于C#的實(shí)時售后服務(wù)跟蹤系統(tǒng)[J].微型機(jī)與應(yīng)用,2017,36(6):99-102.
2016-10-20)
戶晨飛(1991-),男,碩士研究生,主要研究方向:物聯(lián)網(wǎng),軟件工程等。
萬雪芬(1980-),女,碩士,講師,主要研究方向:物聯(lián)網(wǎng),圖像處理等。
楊義(1978-),男,博士,副教授,碩士生導(dǎo)師,主要研究方向:嵌入式系統(tǒng)及物聯(lián)網(wǎng)、農(nóng)業(yè)智能系統(tǒng)等。