《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 業(yè)界動(dòng)態(tài) > 基于C#的實(shí)時(shí)售后服務(wù)跟蹤系統(tǒng)

基于C#的實(shí)時(shí)售后服務(wù)跟蹤系統(tǒng)

2017-04-10
作者:戶晨飛1,萬雪芬1,2,楊義1,許培培1
來源:2017年微型機(jī)與應(yīng)用第6期
關(guān)鍵詞: C# GPS DTU GPRS

  戶晨飛1,萬雪芬1,2,楊義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通過GPRS網(wǎng)絡(luò)來實(shí)現(xiàn),定位信息由GPS模塊通過與衛(wèi)星通信來獲取,整個(gè)軟件系統(tǒng)均采用C#語言在Visual Studio上開發(fā)。系統(tǒng)可以對(duì)注塑機(jī)設(shè)備各模塊的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)控,同時(shí)通過獲取的位置信息,為購買注塑機(jī)的客戶提供周到高效的售后技術(shù)支持和服務(wù)。該系統(tǒng)具有實(shí)時(shí)性強(qiáng)、精確度高、功能伸縮性好、通用化程度高、配置便捷與使用方便等特點(diǎn),可望為大型設(shè)備制造商的售后部門提供較為方便高效的工程實(shí)踐支持。

  關(guān)鍵詞:C#;GPS;DTU;GPRS;售后服務(wù)

  中圖分類號(hào):TP319文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.06.030

  引用格式:戶晨飛,萬雪芬,楊義,等. 基于C#的實(shí)時(shí)售后服務(wù)跟蹤系統(tǒng)[J].微型機(jī)與應(yīng)用,2017,36(6):99-102.

0引言

  隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,各個(gè)行業(yè)在信息化方面提出了更高的要求,并借助信息科技使產(chǎn)品更加便捷和人性化;將自己的產(chǎn)品設(shè)備在客戶工廠運(yùn)行時(shí)的狀態(tài)通過網(wǎng)絡(luò)發(fā)送至自己的售后服務(wù)中心,不但使自己生產(chǎn)的設(shè)備更加易于監(jiān)管,而且為客戶提供了更加周到有效的服務(wù)。

  數(shù)據(jù)傳輸單元DTU是利用運(yùn)營(yíng)商的GPRS網(wǎng)絡(luò)和互聯(lián)網(wǎng)固定IP進(jìn)行無線通信傳輸?shù)臄?shù)據(jù)終端[12],由于運(yùn)營(yíng)商網(wǎng)絡(luò)已全部覆蓋,這就解決了工廠車間內(nèi)無法實(shí)時(shí)連接網(wǎng)絡(luò)的問題,同時(shí)DTU設(shè)備支持設(shè)備永久在線以及斷線自動(dòng)重連等功能,這也為無人車間的建設(shè)提供了技術(shù)上的幫助。GPS模塊通過與衛(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)

005.jpg

  系統(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)信息通過串口傳入工業(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í)數(shù)據(jù)呈現(xiàn)出來,實(shí)時(shí)監(jiān)控設(shè)備運(yùn)行狀態(tài),當(dāng)設(shè)備終端出現(xiàn)任何異常時(shí)可以迅速做出反應(yīng),為客戶提供高效的售后服務(wù)。

006.jpg

  2節(jié)點(diǎn)硬件設(shè)計(jì)

  本系統(tǒng)的硬件框架如圖2所示。由于工業(yè)平板電腦具有堅(jiān)固、防震、防潮、防塵、耐高溫以及多插槽易于擴(kuò)充等眾多優(yōu)點(diǎn),本文選用研祥PPC1781工業(yè)平板電腦來作為設(shè)備端的控制核心,通過工業(yè)平板電腦來對(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#等多種開發(fā)環(huán)境;將各個(gè)模塊與工業(yè)平板電腦進(jìn)行連接,設(shè)備各個(gè)模塊上的傳感器和GPS定位模塊將設(shè)備運(yùn)行數(shù)據(jù)和定位信息實(shí)時(shí)的傳送至平板電腦,再通過DTU將設(shè)備運(yùn)行數(shù)據(jù)傳送至遠(yuǎn)程控制中心。

3上位機(jī)軟件設(shè)計(jì)

  設(shè)備端工業(yè)平板電腦需要將GPS模塊和設(shè)備上的傳感器數(shù)據(jù)收集并發(fā)送至遠(yuǎn)程數(shù)據(jù)服務(wù)中心[4],選擇Visual Studio開發(fā)平臺(tái),使用C#語言進(jìn)行上位機(jī)軟件開發(fā)[5],軟件流程圖如圖3所示。

  

007.jpg

  主要代碼如下:

  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ù)包,寫入DTU,DTU通過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();

  //打開串口

  ......

  serialPort_dtu.Write( Data.ToArray(), 0, 20)

  //將數(shù)據(jù)包發(fā)送至遠(yuǎn)程數(shù)據(jù)服務(wù)中心固定IP

4遠(yuǎn)程數(shù)據(jù)服務(wù)中心軟件設(shè)計(jì)

  遠(yuǎn)程數(shù)據(jù)服務(wù)中心主要是用來對(duì)遠(yuǎn)在工廠里生產(chǎn)運(yùn)行的設(shè)備進(jìn)行監(jiān)測(cè),利用DTU的永久在線以及可以接入互聯(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)系客戶給予技術(shù)支持,幫助排除設(shè)備故障,確保生產(chǎn)的正常進(jìn)行。

009.jpg

  遠(yuǎn)程數(shù)據(jù)服務(wù)中心軟件流程圖如圖4所示。

  4.1獲取DTU發(fā)送至固定IP的數(shù)據(jù)

  遠(yuǎn)程數(shù)據(jù)服務(wù)中心建立TCP Server對(duì)DTU通過GPRS網(wǎng)絡(luò)發(fā)送到固定IP的數(shù)據(jù)包進(jìn)行監(jiān)聽讀?。?],主要程序代碼如下:

  //獲取已連接的TCP Client

  public BindingList<LeafTCPClient> lstClient = new BindingList<LeafTCPClient>();

  //開啟監(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, “錯(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ù)中心,在不影響客戶生產(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ù),傳入百度地圖開發(fā)平臺(tái),調(diào)用百度地圖的Web服務(wù)API,將經(jīng)緯度換算成更加直觀的地理位置信息。

  //創(chuàng)建WebClient客戶端對(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();

  最后將得到的地理位置顯示出來。

  4.4將設(shè)備運(yùn)行信息保存至數(shù)據(jù)庫

  為了給以后的設(shè)備研發(fā)更新提供數(shù)據(jù)分析,制造出更加穩(wěn)定、高效的產(chǎn)品,將傳感器以及GPS定位數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,這里選擇SQL Server數(shù)據(jù)庫,SQL Server是一個(gè)可擴(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)

5遠(yuǎn)程數(shù)據(jù)服務(wù)中心軟件演示

  將收到的數(shù)據(jù)包轉(zhuǎn)換處理以后,與正常運(yùn)行的標(biāo)準(zhǔn)值區(qū)間進(jìn)行比較判斷,將設(shè)備運(yùn)行狀態(tài)在桌面客戶端軟件呈現(xiàn)出來,正常運(yùn)行狀態(tài)時(shí)顯示綠色標(biāo)志,出現(xiàn)小的參數(shù)偏離時(shí)顯示棕紅色標(biāo)志,出現(xiàn)故障時(shí)會(huì)顯示紅色報(bào)警標(biāo)志;將通過百度Web API轉(zhuǎn)換后的地理位置信息以文字和靜態(tài)地圖的形式顯示出來,數(shù)據(jù)存儲(chǔ)在后臺(tái)進(jìn)行,存儲(chǔ)到SQL Server數(shù)據(jù)庫。

6結(jié)論

  針對(duì)工廠車間大型生產(chǎn)設(shè)備售后服務(wù)滯后問題以及大型設(shè)備本身所具有的多模塊、長(zhǎng)生產(chǎn)線等特性,對(duì)其進(jìn)行實(shí)時(shí)售后監(jiān)控,監(jiān)控精確到設(shè)備各個(gè)工作模塊,可以對(duì)故障起到預(yù)防作用,即對(duì)設(shè)備出現(xiàn)的微小異常情況及時(shí)提供技術(shù)支持,幫助客戶及時(shí)解決問題,同時(shí)一旦出現(xiàn)故障問題,可以通過GPS的定位信息,讓就近的售后服務(wù)中心的工作人員根據(jù)故障模塊上門排查迅速修復(fù)故障,使設(shè)備故障給客戶工廠的生產(chǎn)帶來的經(jīng)濟(jì)影響最小化[8]。本套系統(tǒng)具有功能伸縮性好、通用化程度高、配置便捷與使用方便等特點(diǎn),可望為大型設(shè)備生產(chǎn)企業(yè)的售后服務(wù)提供較為方便的工程實(shí)踐支持。

參考文獻(xiàn)

 ?。?] Gu Zongran, Meng Lifan, Yang Yanjun. The system of wireless data transmission based on GPRS[J]. Electrical Measurement & Instrumentation, 2010, 47(Z2): 46-48.

 ?。?] 陳東升. 基于GPRS的下水道氣體遠(yuǎn)程監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制, 2014, 22(12): 3922-3934.

 ?。?] 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.

 ?。?] 王建軍,吳北平,馮健.TEQC 和 QCVIEW32 在 GPS 觀測(cè)數(shù)據(jù)預(yù)處理中的應(yīng)用[J].工程地球物理學(xué)報(bào),2010,7(5):634-638.

 ?。?] 朱英翔,朱福民,劉炎鳴 .C#下串口通信的開發(fā)擴(kuò)展 [J]. 微型機(jī)與應(yīng)用,2014 ,33(6) :89-91.

 ?。?] 王璽聯(lián).“ 花生殼”與端口映射在GPRS流量監(jiān)控系統(tǒng)中的應(yīng)用實(shí)現(xiàn)[J]. 中國(guó)科技信息,2009(24):99,104.

 ?。?] 岳學(xué)軍,王葉夫,劉永鑫,等. 基于 GPRS 與 ZigBee 的果園環(huán)境監(jiān)測(cè)系統(tǒng)[J]. 華南農(nóng)業(yè)大學(xué)學(xué)報(bào), 2014,35(4):109-113.

 ?。?] 王文山,柳平增,臧官勝,等. 基于物聯(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.


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。