戶(hù)晨飛,萬(wàn)雪芬,2,楊 義,許培培
(1.東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620;2.華北科技學(xué)院 計(jì)算機(jī)學(xué)院,河北 廊坊 065201)
基于C#的實(shí)時(shí)售后服務(wù)跟蹤系統(tǒng)
戶(hù)晨飛1,萬(wàn)雪芬1,2,楊 義1,許培培1
(1.東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620;2.華北科技學(xué)院 計(jì)算機(jī)學(xué)院,河北 廊坊 065201)
針對(duì)注塑機(jī)制造商對(duì)實(shí)時(shí)售后服務(wù)支持的需要,提出了一種基于C#和DTU數(shù)據(jù)傳輸單元、GPS全球定位系統(tǒng)的實(shí)時(shí)售后服務(wù)支持系統(tǒng)。該系統(tǒng)的數(shù)據(jù)傳輸部分由DTU通過(guò)GPRS網(wǎng)絡(luò)來(lái)實(shí)現(xiàn),定位信息由GPS模塊通過(guò)與衛(wèi)星通信來(lái)獲取,整個(gè)軟件系統(tǒng)均采用C#語(yǔ)言在Visual Studio上開(kāi)發(fā)。系統(tǒng)可以對(duì)注塑機(jī)設(shè)備各模塊的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,同時(shí)通過(guò)獲取的位置信息,為購(gòu)買(mǎi)注塑機(jī)的客戶(hù)提供周到高效的售后技術(shù)支持和服務(wù)。該系統(tǒng)具有實(shí)時(shí)性強(qiáng)、精確度高、功能伸縮性好、通用化程度高、配置便捷與使用方便等特點(diǎn),可望為大型設(shè)備制造商的售后部門(mén)提供較為方便高效的工程實(shí)踐支持。
C#;GPS;DTU;GPRS;售后服務(wù)
隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,各個(gè)行業(yè)在信息化方面提出了更高的要求,并借助信息科技使產(chǎn)品更加便捷和人性化;將自己的產(chǎn)品設(shè)備在客戶(hù)工廠運(yùn)行時(shí)的狀態(tài)通過(guò)網(wǎng)絡(luò)發(fā)送至自己的售后服務(wù)中心,不但使自己生產(chǎn)的設(shè)備更加易于監(jiān)管,而且為客戶(hù)提供了更加周到有效的服務(wù)。
數(shù)據(jù)傳輸單元DTU是利用運(yùn)營(yíng)商的GPRS網(wǎng)絡(luò)和互聯(lián)網(wǎng)固定IP進(jìn)行無(wú)線(xiàn)通信傳輸?shù)臄?shù)據(jù)終端[1-2],由于運(yùn)營(yíng)商網(wǎng)絡(luò)已全部覆蓋,這就解決了工廠車(chē)間內(nèi)無(wú)法實(shí)時(shí)連接網(wǎng)絡(luò)的問(wèn)題,同時(shí)DTU設(shè)備支持設(shè)備永久在線(xiàn)以及斷線(xiàn)自動(dòng)重連等功能,這也為無(wú)人車(chē)間的建設(shè)提供了技術(shù)上的幫助。GPS模塊通過(guò)與衛(wèi)星進(jìn)行通信,得到精確位置信息,當(dāng)設(shè)備運(yùn)行出現(xiàn)故障時(shí),距離最近設(shè)備售后服務(wù)中心能夠迅速做出反應(yīng),及時(shí)排除故障,最大程度地降低對(duì)生產(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è)備各個(gè)模塊的傳感器將設(shè)備運(yùn)行時(shí)各模塊運(yùn)行狀態(tài)信息通過(guò)串口傳入工業(yè)平板電腦,工業(yè)平板電腦將傳感器信息數(shù)據(jù)包和GPS位置信息數(shù)據(jù)包通過(guò)DTU模塊經(jīng)過(guò)GPRS網(wǎng)絡(luò)發(fā)送到遠(yuǎn)程數(shù)據(jù)中心的固定IP,遠(yuǎn)程數(shù)據(jù)中心的客戶(hù)端軟件將實(shí)時(shí)數(shù)據(jù)呈現(xiàn)出來(lái),實(shí)時(shí)監(jiān)控設(shè)備運(yùn)行狀態(tài),當(dāng)設(shè)備終端出現(xiàn)任何異常時(shí)可以迅速做出反應(yīng),為客戶(hù)提供高效的售后服務(wù)。
圖4 遠(yuǎn)程數(shù)據(jù)服務(wù)中心流程圖
本系統(tǒng)的硬件框架如圖2所示。由于工業(yè)平板電腦具有堅(jiān)固、防震、防潮、防塵、耐高溫以及多插槽易于擴(kuò)充等眾多優(yōu)點(diǎn),本文選用研祥PPC-1781工業(yè)平板電腦來(lái)作為設(shè)備端的控制核心,通過(guò)工業(yè)平板電腦來(lái)對(duì)設(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#等多種開(kāi)發(fā)環(huán)境;將各個(gè)模塊與工業(yè)平板電腦進(jìn)行連接,設(shè)備各個(gè)模塊上的傳感器和GPS定位模塊將設(shè)備運(yùn)行數(shù)據(jù)和定位信息實(shí)時(shí)的傳送至平板電腦,再通過(guò)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開(kāi)發(fā)平臺(tái),使用C#語(yǔ)言進(jìn)行上位機(jī)軟件開(kāi)發(fā)[5],軟件流程圖如圖3所示。
圖3 上位機(jī)軟件流程圖
主要代碼如下:
ports = SerialPort.GetPortNames();
//檢測(cè)出連接GPS和傳感器的串口
serialPort.PortName = receive_SerialName;
//設(shè)置串口號(hào)
serialPort.BaudRate = 38400;
//設(shè)置波特率
serialPort.DataReceived +=new
//添加事件處理程序
SerialDataReceivedEventHandler(portDataReceived);
將收到的數(shù)據(jù)進(jìn)行處理、換算并封裝成數(shù)據(jù)包,寫(xiě)入DTU,DTU通過(guò)GPRS網(wǎng)絡(luò)傳送至遠(yuǎn)程數(shù)據(jù)服務(wù)中心:
comboBox_dtu.SelectedItem.ToString();
//獲取DTU所在串口的串口號(hào)
serialPort_dtu.PortName = send_SerialName;
//設(shè)置DTU串口號(hào)
serialPort_dtu.Open();
//打開(kāi)串口
......
serialPort_dtu.Write( Data.ToArray(), 0, 20)
//將數(shù)據(jù)包發(fā)送至遠(yuǎn)程數(shù)據(jù)服務(wù)中心固定IP
遠(yuǎn)程數(shù)據(jù)服務(wù)中心主要是用來(lái)對(duì)遠(yuǎn)在工廠里生產(chǎn)運(yùn)行的設(shè)備進(jìn)行監(jiān)測(cè),利用DTU的永久在線(xiàn)以及可以接入互聯(lián)網(wǎng)固定IP的特點(diǎn)[6],可以獲得設(shè)備的實(shí)時(shí)運(yùn)行狀態(tài),當(dāng)設(shè)備某個(gè)模塊出現(xiàn)異常時(shí)可以在短時(shí)間內(nèi)聯(lián)系客戶(hù)給予技術(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對(duì)DTU通過(guò)GPRS網(wǎng)絡(luò)發(fā)送到固定IP的數(shù)據(jù)包進(jìn)行監(jiān)聽(tīng)讀取[7],主要程序代碼如下:
//獲取已連接的TCP Client
public BindingList
//開(kāi)啟監(jiān)聽(tīng)
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, “錯(cuò)誤”, 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, “錯(cuò)誤”, 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 對(duì)收到的傳感器數(shù)據(jù)進(jìn)行處理分析
將提取的傳感器數(shù)據(jù)值與各個(gè)模塊正常運(yùn)行時(shí)所在的數(shù)值區(qū)間進(jìn)行比較,對(duì)運(yùn)行在非標(biāo)準(zhǔn)值區(qū)間的模塊進(jìn)行報(bào)警處理,遠(yuǎn)程數(shù)據(jù)服務(wù)中心工作人員分析報(bào)警原因,根據(jù)GPS位置信息將異常處理任務(wù)交給與之距離最近的售后服務(wù)中心,在不影響客戶(hù)生產(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,每個(gè)字段由逗號(hào)分割:
字段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ù),傳入百度地圖開(kāi)發(fā)平臺(tái),調(diào)用百度地圖的Web服務(wù)API,將經(jīng)緯度換算成更加直觀的地理位置信息。
//創(chuàng)建WebClient客戶(hù)端對(duì)象
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();
最后將得到的地理位置顯示出來(lái)。
4.4 將設(shè)備運(yùn)行信息保存至數(shù)據(jù)庫(kù)
為了給以后的設(shè)備研發(fā)更新提供數(shù)據(jù)分析,制造出更加穩(wěn)定、高效的產(chǎn)品,將傳感器以及GPS定位數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,這里選擇SQL Server數(shù)據(jù)庫(kù),SQL Server是一個(gè)可擴(kuò)展、高性能的真正的客戶(hù)機(jī)體系結(jié)構(gòu)的數(shù)據(jù)庫(kù),比較符合本設(shè)計(jì)的需求。主要語(yǔ)句如下:
"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)在桌面客戶(hù)端軟件呈現(xiàn)出來(lái),正常運(yùn)行狀態(tài)時(shí)顯示綠色標(biāo)志,出現(xiàn)小的參數(shù)偏離時(shí)顯示棕紅色標(biāo)志,出現(xiàn)故障時(shí)會(huì)顯示紅色報(bào)警標(biāo)志;將通過(guò)百度Web API轉(zhuǎn)換后的地理位置信息以文字和靜態(tài)地圖的形式顯示出來(lái),數(shù)據(jù)存儲(chǔ)在后臺(tái)進(jìn)行,存儲(chǔ)到SQL Server數(shù)據(jù)庫(kù)。
針對(duì)工廠車(chē)間大型生產(chǎn)設(shè)備售后服務(wù)滯后問(wèn)題以及大型設(shè)備本身所具有的多模塊、長(zhǎng)生產(chǎn)線(xiàn)等特性,對(duì)其進(jìn)行實(shí)時(shí)售后監(jiān)控,監(jiān)控精確到設(shè)備各個(gè)工作模塊,可以對(duì)故障起到預(yù)防作用,即對(duì)設(shè)備出現(xiàn)的微小異常情況及時(shí)提供技術(shù)支持,幫助客戶(hù)及時(shí)解決問(wèn)題,同時(shí)一旦出現(xiàn)故障問(wèn)題,可以通過(guò)GPS的定位信息,讓就近的售后服務(wù)中心的工作人員根據(jù)故障模塊上門(mén)排查迅速修復(fù)故障,使設(shè)備故障給客戶(hù)工廠的生產(chǎn)帶來(lái)的經(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)測(cè)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制, 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 觀測(cè)數(shù)據(jù)預(yù)處理中的應(yīng)用[J].工程地球物理學(xué)報(bào),2010,7(5):634-638.
[5] 朱英翔,朱福民,劉炎鳴 .C#下串口通信的開(kāi)發(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]. 中國(guó)科技信息,2009(24):99,104.
[7] 岳學(xué)軍,王葉夫,劉永鑫,等. 基于 GPRS 與 ZigBee 的果園環(huán)境監(jiān)測(cè)系統(tǒng)[J]. 華南農(nóng)業(yè)大學(xué)學(xué)報(bào), 2014,35(4):109-113.
[8] 王文山,柳平增,臧官勝,等. 基于物聯(lián)網(wǎng)的果園環(huán)境信息監(jiān)測(cè)系統(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
戶(hù)晨飛,萬(wàn)雪芬,楊義,等. 基于C#的實(shí)時(shí)售后服務(wù)跟蹤系統(tǒng)[J].微型機(jī)與應(yīng)用,2017,36(6):99-102.
2016-10-20)
戶(hù)晨飛(1991-),男,碩士研究生,主要研究方向:物聯(lián)網(wǎng),軟件工程等。
萬(wàn)雪芬(1980-),女,碩士,講師,主要研究方向:物聯(lián)網(wǎng),圖像處理等。
楊義(1978-),男,博士,副教授,碩士生導(dǎo)師,主要研究方向:嵌入式系統(tǒng)及物聯(lián)網(wǎng)、農(nóng)業(yè)智能系統(tǒng)等。