zhuhao 1 year ago
parent
commit
fe04b32509
1 changed files with 73 additions and 62 deletions
  1. 73 62
      deviceHttpServer/mitsubishi/MitsubishiServer.cs

+ 73 - 62
deviceHttpServer/mitsubishi/MitsubishiServer.cs

@@ -4,6 +4,7 @@ using ResponseServer.HttpServer;
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Net.NetworkInformation;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
@@ -21,68 +22,78 @@ namespace HttpServer.mitsubishi
             string fun = requestBody.type; 
             
             ResponseBody responseBody = new ResponseBody();
-            MitCom mitCom = null;
-            if (deviceList == null || (deviceList.Where(m => m.Key == requestBody.serverUrl).Count() == 0))
-            {
-                try
-                {
-                    mitCom = new MitCom();
-                    mitCom.GetSimConnect("M700M","1", "10", requestBody.serverUrl);
-                    deviceList.Add(requestBody.serverUrl, mitCom);
-                    responseBody.deviceState = ON_LINE_STATE;
-                }
-                catch(Exception e)
-                {
-                    YG.Log.Instance.WriteLogAdd($"三菱连接结果-ex-->> " + e.Message);
-                }
-
-                Thread.Sleep(100);
-            }
-            else
-            {
-                mitCom = deviceList.Where(m => m.Key == requestBody.serverUrl).FirstOrDefault().Value;
-            }
-            if(mitCom != null)
-            {
-                try
-                {
-                    responseBody.deviceState = ON_LINE_STATE;
-                    if (fun == ActionTypeEnum.Collect.ToString())
-                    {
-                        int pdata;
-                        string loadstr;
-                        double pdspeed, pdspeedFM, pdspeedFS, pdspeedFE, pdspeedFE1;
-
-                        mitCom.GetSpindleInfo(2, 1, out pdata, out loadstr);//转速 
-                        responseBody.actSpindle = pdata.ToString();
-                        mitCom.GetSpindleInfo(3, 1, out pdata, out loadstr);//负载
-                        responseBody.actFeed = pdata.ToString();
-
-                        mitCom.GetFeedSpeed(0, out pdspeed, "GetFeedSpeedFA"); //获取指令进给速度 
-                        mitCom.GetFeedSpeed(3, out pdspeedFE, "GetFeedSpeedFE");//攻丝(FE);
-                        mitCom.GetFeedSpeed(4, out pdspeedFE1, "GetFeedSpeedFE1");//攻丝(FE);
-                        responseBody.actFeed = pdspeedFE.ToString();
-                        
-                        responseBody.spindleMagnification = (Convert.ToInt32(pdspeedFE) / pdspeed).ToString();
-                        string programNumber;
-                        mitCom.GetProgramNumber(out programNumber);
-                        responseBody.mainProg = programNumber;
-
-                        //string pvValue;
-                        //mitCom.GetParaValue(30, 8002, 1, 1, out pvValue);
-                        int runTime;
-                        mitCom.GetRunTime(out runTime);
-                        responseBody.powerOnTime = runTime.ToString();
-                    }
-                }
-                catch(Exception e)
-                {
-                    YG.Log.Instance.WriteLogAdd($"三菱连接结果-ex-->> " + e.Message);
-                    deviceList.Remove(requestBody.serverUrl);
-                }
-               
-            }
-            
+            MitCom mitCom = null;
+            //先ping
+            Ping pingSender = new Ping();
+            PingReply reply = pingSender.Send(requestBody.serverUrl);
+            if (reply.Status != IPStatus.Success)
+            {
+                responseBody.result = false;
+                responseBody.msg = "调用失败";
+            }
+            else
+            {
+                if (deviceList == null || (deviceList.Where(m => m.Key == requestBody.serverUrl).Count() == 0))
+                {
+                    try
+                    {
+                        mitCom = new MitCom();
+                        mitCom.GetSimConnect("M700M", "1", "10", requestBody.serverUrl);
+                        deviceList.Add(requestBody.serverUrl, mitCom);
+                        responseBody.deviceState = ON_LINE_STATE;
+                    }
+                    catch (Exception e)
+                    {
+                        YG.Log.Instance.WriteLogAdd($"三菱连接结果-ex-->> " + e.Message);
+                    }
+
+                    Thread.Sleep(100);
+                }
+                else
+                {
+                    mitCom = deviceList.Where(m => m.Key == requestBody.serverUrl).FirstOrDefault().Value;
+                }
+                if (mitCom != null)
+                {
+                    try
+                    {
+                        responseBody.deviceState = ON_LINE_STATE;
+                        if (fun == ActionTypeEnum.Collect.ToString())
+                        {
+                            int pdata;
+                            string loadstr;
+                            double pdspeed, pdspeedFM, pdspeedFS, pdspeedFE, pdspeedFE1;
+
+                            mitCom.GetSpindleInfo(2, 1, out pdata, out loadstr);//转速 
+                            responseBody.actSpindle = pdata.ToString();
+                            mitCom.GetSpindleInfo(3, 1, out pdata, out loadstr);//负载
+                            responseBody.actFeed = pdata.ToString();
+
+                            mitCom.GetFeedSpeed(0, out pdspeed, "GetFeedSpeedFA"); //获取指令进给速度 
+                            mitCom.GetFeedSpeed(3, out pdspeedFE, "GetFeedSpeedFE");//攻丝(FE);
+                            mitCom.GetFeedSpeed(4, out pdspeedFE1, "GetFeedSpeedFE1");//攻丝(FE);
+                            responseBody.actFeed = pdspeedFE.ToString();
+
+                            responseBody.spindleMagnification = (Convert.ToInt32(pdspeedFE) / pdspeed).ToString();
+                            string programNumber;
+                            mitCom.GetProgramNumber(out programNumber);
+                            responseBody.mainProg = programNumber;
+
+                            //string pvValue;
+                            //mitCom.GetParaValue(30, 8002, 1, 1, out pvValue);
+                            int runTime;
+                            mitCom.GetRunTime(out runTime);
+                            responseBody.powerOnTime = runTime.ToString();
+                        }
+                    }
+                    catch (Exception e)
+                    {
+                        YG.Log.Instance.WriteLogAdd($"三菱连接结果-ex-->> " + e.Message);
+                        deviceList.Remove(requestBody.serverUrl);
+                    }
+
+                }
+            } 
             
             return responseBody;
         }