《电子技术应用》

基于C#的实时售后服务跟踪系统

2017年微型机与应用第6期 作者:户晨飞1,万雪芬1,2,杨义1,许培培1
2017/4/10 21:34:00

  户晨飞1,万雪芬1,2,杨义1,许培培1

  (1.东华大学 信息科学与技术学院,上海 201620;2.华北科技学院 计算机学院,河北 廊坊 065201)

       摘要:针对注塑机制造商对实时售后服务支持的需要,提出了一种基于C#DTU数据传输单元、GPS全球定位系统的实时售后服务支持系统。该系统的数据传输部分由DTU通过GPRS网络来实现,定位信息由GPS模块通过与卫星通信来获取,整个软件系统均采用C#语言在Visual Studio上开发。系统可以对注塑机设备各模块的运行状态进行实时监控,同时通过获取的位置信息,为购买注塑机的客户提供周到高效的售后技术支持和服务。该系统具有实时性强、精确度高、功能伸缩性好、通用化程度高、配置便捷与使用方便等特点,可望为大型设备制造商的售后部门提供较为方便高效的工程实践支持。

  关键词:C#;GPS;DTU;GPRS;售后服务

  中图分类号:TP319文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.06.030

  引用格式:户晨飞,万雪芬,杨义,等. 基于C#的实时售后服务跟踪系统[J].微型机与应用,2017,36(6):99-102.

0引言

  随着物联网技术的迅速发展,各个行业在信息化方面提出了更高的要求,并借助信息科技使产品更加便捷和人性化;将自己的产品设备在客户工厂运行时的状态通过网络发送至自己的售后服务中心,不但使自己生产的设备更加易于监管,而且为客户提供了更加周到有效的服务。

  数据传输单元DTU是利用运营商的GPRS网络和互联网固定IP进行无线通信传输的数据终端[12],由于运营商网络已全部覆盖,这就解决了工厂车间内无法实时连接网络的问题,同时DTU设备支持设备永久在线以及断线自动重连等功能,这也为无人车间的建设提供了技术上的帮助。GPS模块通过与卫星进行通信,得到精确位置信息,当设备运行出现故障时,距离最近设备售后服务中心能够迅速做出反应,及时排除故障,最大程度地降低对生产的影响。

1系统总体结构

005.jpg

  系统的总体结构如图1所示,主要由设备终端、DTU(Data Transfer Unit)模块以及远程数据中心组成,GPS(Global Positioning System)模块从卫星获取位置信息[3],传入工业平板电脑,设备各个模块的传感器将设备运行时各模块运行状态信息通过串口传入工业平板电脑,工业平板电脑将传感器信息数据包和GPS位置信息数据包通过DTU模块经过GPRS网络发送到远程数据中心的固定IP,远程数据中心的客户端软件将实时数据呈现出来,实时监控设备运行状态,当设备终端出现任何异常时可以迅速做出反应,为客户提供高效的售后服务。

006.jpg

  2节点硬件设计

  本系统的硬件框架如图2所示。由于工业平板电脑具有坚固、防震、防潮、防尘、耐高温以及多插槽易于扩充等众多优点,本文选用研祥PPC1781工业平板电脑来作为设备端的控制核心,通过工业平板电脑来对设备的运行进行控制;GPS模块选择采用UBlox 第8代72通道GPS芯片的UB353,它具有定位精确、迅速并且防水、防震等突出优点;DTU设备选用的是广东致远电子的ZWD系列,具有稳定抗干扰能力强等特点,可以进行双向高速传输,并且支持VC、C#等多种开发环境;将各个模块与工业平板电脑进行连接,设备各个模块上的传感器和GPS定位模块将设备运行数据和定位信息实时的传送至平板电脑,再通过DTU将设备运行数据传送至远程控制中心。

3上位机软件设计

  设备端工业平板电脑需要将GPS模块和设备上的传感器数据收集并发送至远程数据服务中心[4],选择Visual Studio开发平台,使用C#语言进行上位机软件开发[5],软件流程图如图3所示。

  

007.jpg

  主要代码如下:

  ports = SerialPort.GetPortNames();//检测出连接GPS和传感器的串口

  serialPort.PortName = receive_SerialName;//设置串口号

  serialPort.BaudRate = 38400;//设置波特率

  serialPort.DataReceived +=new//添加事件处理程序

  SerialDataReceivedEventHandler(portDataReceived);

  将收到的数据进行处理、换算并封装成数据包,写入DTU,DTU通过GPRS网络传送至远程数据服务中心:

  comboBox_dtu.SelectedItem.ToString();

  //获取DTU所在串口的串口号

  serialPort_dtu.PortName = send_SerialName;

  //设置DTU串口号

  serialPort_dtu.Open();

  //打开串口

  ......

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

  //将数据包发送至远程数据服务中心固定IP

4远程数据服务中心软件设计

  远程数据服务中心主要是用来对远在工厂里生产运行的设备进行监测,利用DTU的永久在线以及可以接入互联网固定IP的特点[6],可以获得设备的实时运行状态,当设备某个模块出现异常时可以在短时间内联系客户给予技术支持,帮助排除设备故障,确保生产的正常进行。

009.jpg

  远程数据服务中心软件流程图如图4所示。

  4.1获取DTU发送至固定IP的数据

  远程数据服务中心建立TCP Server对DTU通过GPRS网络发送到固定IP的数据包进行监听读取[7],主要程序代码如下:

  //获取已连接的TCP Client

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

  //开启监听

  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);

  }

  }

  //读取数据包

  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对收到的传感器数据进行处理分析

  将提取的传感器数据值与各个模块正常运行时所在的数值区间进行比较,对运行在非标准值区间的模块进行报警处理,远程数据服务中心工作人员分析报警原因,根据GPS位置信息将异常处理任务交给与之距离最近的售后服务中心,在不影响客户生产工作的情况下提前将可能发生的故障进行清除,或者当发生故障以后迅速修复。

  4.3由收到的GPS定位信息获取地理位置

  首先从收到的GPS模块信息中提取经纬度信息,收到的定位信息格式如下:$GNRMC,094552.00, A, 3103.54148, N, 12112.41619, E, 0.044, , 270916, , , A*6D,每个字段由逗号分割:

  字段2:状态,A=定位,V=未定位

  字段3:纬度ddmm.mmmm,度分格式

  字段4:纬度N(北纬)或S(南纬)

  字段5:经度dddmm.mmmm,度分格式

  字段6:经度E(东经)或W(西经)

  ......

  将提取到的经纬度数据,传入百度地图开发平台,调用百度地图的Web服务API,将经纬度换算成更加直观的地理位置信息。

  //创建WebClient客户端对象

  WebClient client = new WebClient();

  //创建包含经纬度信息的URL

  http://api.map.baidu.com/geocoder/v2/?ak=Qz2FTrZEivtL8Ln11LHe2qP5gLZfppWP&callback=renderReverse&location=" + weidu_baidumap + "," + jingdu_baidumap + "&output=xml&pois=1";

  //下载提交URL以后Web API的响应XML数据

  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将设备运行信息保存至数据库

  为了给以后的设备研发更新提供数据分析,制造出更加稳定、高效的产品,将传感器以及GPS定位数据存储在数据库中,这里选择SQL Server数据库,SQL Server是一个可扩展、高性能的真正的客户机体系结构的数据库,比较符合本设计的需求。主要语句如下:

  "Server=.;Database=name;Trusted_Connection=SSPI";

  mycon = new SqlConnection(con);

  ......

  SqlDataAdapter myda = new SqlDataAdapter(sql, con)

5远程数据服务中心软件演示

  将收到的数据包转换处理以后,与正常运行的标准值区间进行比较判断,将设备运行状态在桌面客户端软件呈现出来,正常运行状态时显示绿色标志,出现小的参数偏离时显示棕红色标志,出现故障时会显示红色报警标志;将通过百度Web API转换后的地理位置信息以文字和静态地图的形式显示出来,数据存储在后台进行,存储到SQL Server数据库。

6结论

  针对工厂车间大型生产设备售后服务滞后问题以及大型设备本身所具有的多模块、长生产线等特性,对其进行实时售后监控,监控精确到设备各个工作模块,可以对故障起到预防作用,即对设备出现的微小异常情况及时提供技术支持,帮助客户及时解决问题,同时一旦出现故障问题,可以通过GPS的定位信息,让就近的售后服务中心的工作人员根据故障模块上门排查迅速修复故障,使设备故障给客户工厂的生产带来的经济影响最小化[8]。本套系统具有功能伸缩性好、通用化程度高、配置便捷与使用方便等特点,可望为大型设备生产企业的售后服务提供较为方便的工程实践支持。

参考文献

  [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的下水道气体远程监测系统设计[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 观测数据预处理中的应用[J].工程地球物理学报,2010,7(5):634-638.

  [5] 朱英翔,朱福民,刘炎鸣 .C#下串口通信的开发扩展 [J]. 微型机与应用,2014 ,33(6) :89-91.

  [6] 王玺联.“ 花生壳”与端口映射在GPRS流量监控系统中的应用实现[J]. 中国科技信息,2009(24):99,104.

  [7] 岳学军,王叶夫,刘永鑫,等. 基于 GPRS 与 ZigBee 的果园环境监测系统[J]. 华南农业大学学报, 2014,35(4):109-113.

  [8] 王文山,柳平增,臧官胜,等. 基于物联网的果园环境信息监测系统的设计[J]. 山东农业大学学报(自然科学版), 2012, 43(2):239-243.


继续阅读>>