戶晨飛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進行無線通信傳輸的數據終端[12],由于運營商網絡已全部覆蓋,這就解決了工廠車間內無法實時連接網絡的問題,同時DTU設備支持設備永久在線以及斷線自動重連等功能,這也為無人車間的建設提供了技術上的幫助。GPS模塊通過與衛星進行通信,得到精確位置信息,當設備運行出現故障時,距離最近設備售后服務中心能夠迅速做出反應,及時排除故障,最大程度地降低對生產的影響。
1系統總體結構
系統的總體結構如圖1所示,主要由設備終端、DTU(Data Transfer Unit)模塊以及遠程數據中心組成,GPS(Global Positioning System)模塊從衛星獲取位置信息[3],傳入工業平板電腦,設備各個模塊的傳感器將設備運行時各模塊運行狀態信息通過串口傳入工業平板電腦,工業平板電腦將傳感器信息數據包和GPS位置信息數據包通過DTU模塊經過GPRS網絡發送到遠程數據中心的固定IP,遠程數據中心的客戶端軟件將實時數據呈現出來,實時監控設備運行狀態,當設備終端出現任何異常時可以迅速做出反應,為客戶提供高效的售后服務。
2節點硬件設計
本系統的硬件框架如圖2所示。由于工業平板電腦具有堅固、防震、防潮、防塵、耐高溫以及多插槽易于擴充等眾多優點,本文選用研祥PPC1781工業平板電腦來作為設備端的控制核心,通過工業平板電腦來對設備的運行進行控制;GPS模塊選擇采用UBlox 第8代72通道GPS芯片的UB353,它具有定位精確、迅速并且防水、防震等突出優點;DTU設備選用的是廣東致遠電子的ZWD系列,具有穩定抗干擾能力強等特點,可以進行雙向高速傳輸,并且支持VC、C#等多種開發環境;將各個模塊與工業平板電腦進行連接,設備各個模塊上的傳感器和GPS定位模塊將設備運行數據和定位信息實時的傳送至平板電腦,再通過DTU將設備運行數據傳送至遠程控制中心。
3上位機軟件設計
設備端工業平板電腦需要將GPS模塊和設備上的傳感器數據收集并發送至遠程數據服務中心[4],選擇Visual Studio開發平臺,使用C#語言進行上位機軟件開發[5],軟件流程圖如圖3所示。
主要代碼如下:
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],可以獲得設備的實時運行狀態,當設備某個模塊出現異常時可以在短時間內聯系客戶給予技術支持,幫助排除設備故障,確保生產的正常進行。
遠程數據服務中心軟件流程圖如圖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 ultratight 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.