lxb 8 月之前
父节点
当前提交
87f634b2ce

+ 7 - 1
deviceHttpServer/Form1.cs

@@ -132,7 +132,7 @@ namespace HttpServer
                         //YG.Log.Instance.WriteLogAdd(">>>===收到POST数据 : >>>>===" + body);
                         ResponseBody responseBody = new ResponseBody();
 
-                        RequestBody reqBody = JsonConvert.DeserializeObject<RequestBody>(body);
+                        RequestBody<ToolData> reqBody = JsonConvert.DeserializeObject<RequestBody<ToolData>>(body);
                         if (reqBody.deviceType == DeviceTypeEnum.Fanuc.ToString())
                         {
                             responseBody = FanucServer.requestHttpServer(reqBody);
@@ -182,6 +182,9 @@ namespace HttpServer
                     {
                         YG.Log.Instance.WriteLogAdd($"响应异常--->>" + opcex.Message);
                         AddList(DateTime.Now.ToString(), "POST", request.Url.ToString(), opcex.Message);
+                        ResponseBody responseBody = new ResponseBody();
+                        responseBody.result = false;
+                        response.Close();
                     }
                 }
 
@@ -189,6 +192,9 @@ namespace HttpServer
             catch (Exception ex)
             {
                 YG.Log.Instance.WriteLogAdd(">>>===服务异常 : >>>>===" + ex.Message);
+                ResponseBody responseBody = new ResponseBody();
+                responseBody.result = false;
+                response.Close();
             }
         }
 

+ 97 - 2
deviceHttpServer/body/RequestBody.cs

@@ -2,7 +2,7 @@
 
 namespace RequestServer.HttpServer
 {
-    public class RequestBody
+    public class RequestBody<T>
     {
         public string deviceType
         { get; set; }
@@ -40,7 +40,99 @@ namespace RequestServer.HttpServer
 
         public ushort toolNo
         { get; set; }
+
+        public T data { get; set; }
+    }
+
+    public class ToolData
+    {
+        /// <summary>
+        /// 刀位号
+        /// </summary>
+        public ushort pkno { get; set; }
+
+        /// <summary>
+        /// 刀具长度
+        /// </summary>
+        public int lengthA { get; set; }
+
+        /// <summary>
+        /// 刀具名称
+        /// </summary>
+        public byte name { get; set; }
+
+        /// <summary>
+        /// 公称径
+        /// </summary>
+        public int int0 { get; set; }
+
+        /// <summary>
+        /// 刀具径刀尖角
+        /// </summary>
+        public int diameter { get; set; }
+
+        /// <summary>
+        /// 材料
+        /// </summary>
+        public string string0 { get; set; }
+
+        /// <summary>
+        /// 刀具寿命
+        /// </summary>
+        public int lifetime { get; set; }
+
+        /// <summary>
+        /// 刀具次数
+        /// </summary>
+        public ushort lifenumber { get; set; }
+
+        /// <summary>
+        /// 刀具使用时间
+        /// </summary>
+        public int usetime { get; set; }
+
+        /// <summary>
+        /// 刀具使用次数
+        /// </summary>
+        public ushort usenumber { get; set; }
+
+        /// <summary>
+        /// 组号
+        /// </summary>
+        public int int1 { get; set; }
+
+        /// <summary>
+        /// 磨损补偿
+        /// </summary>
+        public int wearcompZ { get; set; }
+
+        /// <summary>
+        /// 磨损极限
+        /// </summary>
+        public int maxwearZ { get; set; }
+
+        /// <summary>
+        /// 刀尖补偿
+        /// </summary>
+        public short angle { get; set; }
+
+        /// <summary>
+        /// 最高转速
+        /// </summary>
+        public int easycompX { get; set; }
+
+        /// <summary>
+        /// 径补偿量
+        /// </summary>
+        public int easycompY { get; set; }
+
+        /// <summary>
+        /// 长度补偿
+        /// </summary>
+        public int conscompZ { get; set; }
     }
+
+
     /// <summary>
     /// 设备名称
     /// </summary>
@@ -71,6 +163,9 @@ namespace RequestServer.HttpServer
         DeleteNc,
         AlmInfo, 
         Write,
-        Read 
+        Read,
+        UploadNoSet,
+        SetMainProgram,
+        DeleteOrSetTool
     }
  }

+ 69 - 15
deviceHttpServer/body/ResponseBody.cs

@@ -28,22 +28,76 @@ namespace ResponseServer.HttpServer
 
     public class ToolsInfo
     {
-        public string position { get; set; }
-        public string number { get; set; }
-
+        /// <summary>
+        /// 刀号
+        /// </summary>
+        public string tno { get; set; }
+
+        /// <summary>
+        /// 刀位号
+        /// </summary>
+        public string pkno { get; set; }
+
+        /// <summary>
+        /// 刀具长度
+        /// </summary>
+        public string length { get; set; }
+        /// <summary>
+        /// 刀具名称
+        /// </summary>
         public string name { get; set; }
-
-        public string targetLife { get; set; }
-
-        //额定寿命
-        public string rateLife { get; set; }
-
-        public string useLife { get; set; }
-
-        public string curTime { get; set; }
-        //0:时间 1:次数
-        public int lifeType { get; set; } = 0;
-
+        /// <summary>
+        /// 公称径
+        /// </summary>
+        public string int0 { get; set; }
+        /// <summary>
+        /// 刀具径刀尖角
+        /// </summary>
+        public string diameter { get; set; }
+        /// <summary>
+        /// 刀具额定使用寿命
+        /// </summary>
+        public string lifetime { get; set; }
+        /// <summary>
+        /// 刀具额定使用次数
+        /// </summary>
+        public string lifenumber { get; set; }
+        /// <summary>
+        /// 刀具已使用寿命
+        /// </summary>
+        public string usetime { get; set; }
+        /// <summary>
+        /// 刀具已使用次数
+        /// </summary>
+        public string usenumber { get; set; }
+        /// <summary>
+        /// 组号
+        /// </summary>
+        public string int1 { get; set; }
+        /// <summary>
+        /// 磨损补偿
+        /// </summary>
+        public string wearcompZ { get; set; }
+        /// <summary>
+        /// 磨损极限
+        /// </summary>
+        public string maxwearZ { get; set; }
+        /// <summary>
+        /// 刀具补偿
+        /// </summary>
+        public string angle { get; set; }
+        /// <summary>
+        /// 最高转速
+        /// </summary>
+        public string easycompX { get; set; }
+        /// <summary>
+        /// 径量补偿
+        /// </summary>
+        public string easycompY { get; set; }
+        /// <summary>
+        /// 长度补偿
+        /// </summary>
+        public string conscompZ { get; set; }
 
     }
 

+ 1 - 1
deviceHttpServer/fanuc/FanucServer.cs

@@ -16,7 +16,7 @@ namespace Fanuc_HttpServer.fanuc
     class FanucServer
     {
         private static string ON_LINE_STATE = "在线";
-        public static ResponseBody requestHttpServer(RequestBody requestBody)
+        public static ResponseBody requestHttpServer(RequestBody<ToolData> requestBody)
         {
             string ip = requestBody.serverUrl;
             string port = requestBody.port;

+ 1 - 1
deviceHttpServer/hedidenain/HeidenhainServer.cs

@@ -36,7 +36,7 @@ namespace Fanuc_HttpServer.hedidenain
             ip2.Add("\\PLC\\memory\\D\\5048"); 
             jcIpDict.Add("192.168.10.101", ip2);
         }
-        public ResponseBody requestHttpServer(RequestBody requestBody)
+        public ResponseBody requestHttpServer(RequestBody<ToolData> requestBody)
         {
             string ip = requestBody.serverUrl;
             string port = requestBody.port;

+ 267 - 38
deviceHttpServer/mazak/MazakServer.cs

@@ -7,6 +7,7 @@ using System.IO;
 using System.Linq;
 using System.Net.NetworkInformation;
 using System.Text;
+using System.Threading;
 using System.Threading.Tasks;
 using static MaCls;
 
@@ -28,7 +29,7 @@ namespace HttpServer.mazak
         }
        
         static ushort h;
-        public ResponseBody requestHttpServer(RequestBody requestBody)
+        public ResponseBody requestHttpServer(RequestBody<ToolData> requestBody)
         {
             string ip = requestBody.serverUrl;
             string port = requestBody.port;
@@ -44,12 +45,19 @@ namespace HttpServer.mazak
             {
                 responseBody.deviceState = "离线";
                 responseBody.msg = "网络不通";
+                responseBody.result = false;
             }
             else
             {
                 // port = 50100;
                 int ret = MaCls.MazConnect(out h, ip, 50100, 10);
                 YG.Log.Instance.WriteLogAdd($"mazak-连接结果-->> " + ret);
+                if(ret != 0)
+                {
+                    responseBody.msg = "机床" + ip + "连接失败";
+                    responseBody.result = false;
+                    return responseBody;
+                }
                 RunDatasInfo runDataInfo = new RunDatasInfo();
                 if (fun == ActionTypeEnum.Collect.ToString())
                 {
@@ -91,7 +99,7 @@ namespace HttpServer.mazak
                         }
                         //机械位置
                         MAZ_NCPOS machineNcPos = default(MAZ_NCPOS);
-                        ret = MaCls.MazGetCurrentPos(h, ref machineNcPos);
+                        ret = MaCls.MazGetMachinePos(h, ref machineNcPos);
                         if (ret == 0)
                         {
                             runDataInfo.machineCoordinate = string.Join(",", machineNcPos.data);
@@ -174,6 +182,7 @@ namespace HttpServer.mazak
                     {
                         runDataInfo.runMode = runModeDict[modeNum];
                     }
+                    
                     //运行时间
                     MAZ_NCTIME nc_time = default(MAZ_NCTIME);
                     ret = MaCls.MazGetRunningTime(h, 0, ref nc_time);
@@ -195,6 +204,7 @@ namespace HttpServer.mazak
                     {
                         runDataInfo.currentToolNo = currentToolInfo.ushort_0.ToString();
                     }
+
                     //报警
                     MAZ_ALARMALL maz_ALARMALL = default(MAZ_ALARMALL);
                     ret = MaCls.MazGetAlarm(h, ref maz_ALARMALL);
@@ -231,10 +241,23 @@ namespace HttpServer.mazak
                             foreach (MAZ_TD mazTd in array)
                             {
                                 ToolsInfo addToolInfo = new ToolsInfo();
-                                addToolInfo.number = mazTd.td_common.byte_0.ToString();
-                                addToolInfo.position = mazTd.td_common.pkno.ToString();
-                                addToolInfo.rateLife = mazTd.td_common.lifetime.ToString();
-                                addToolInfo.useLife = mazTd.td_common.usetime.ToString();
+                                addToolInfo.tno = mazTd.td_common.ushort_0.ToString(); //刀号
+                                addToolInfo.pkno = mazTd.td_common.pkno.ToString(); //刀位编号
+                                addToolInfo.length = mazTd.td_common.lengthA.ToString(); //刀具长度
+                                addToolInfo.name = mazTd.td_common.name.ToString(); //刀具名称
+                                addToolInfo.int0 = mazTd.td_common.int_0.ToString(); //公称径
+                                addToolInfo.diameter = mazTd.td_common.diameter.ToString(); //刀具径刀尖角
+                                addToolInfo.lifetime = mazTd.td_common.lifetime.ToString(); //刀具额定使用寿命
+                                addToolInfo.lifenumber = mazTd.td_common.lifenumber.ToString(); //刀具额定使用次数
+                                addToolInfo.usetime = mazTd.td_common.usetime.ToString(); //刀具已使用寿命
+                                addToolInfo.usenumber = mazTd.td_common.usenumber.ToString(); //刀具已使用次数
+                                addToolInfo.int1 = mazTd.td_common.int_1.ToString(); //组号
+                                addToolInfo.wearcompZ = mazTd.td_common.wearcompZ.ToString(); //磨损补偿
+                                addToolInfo.maxwearZ = mazTd.td_common.maxwearZ.ToString(); //磨损极限
+                                addToolInfo.angle = mazTd.td_various.td_general.td_general.angle.ToString(); //刀具补偿
+                                addToolInfo.easycompX = mazTd.td_various.td_general.td_general.easycompX.ToString(); //最高转速
+                                addToolInfo.easycompY = mazTd.td_various.td_general.td_general.easycompY.ToString(); //径量补偿
+                                addToolInfo.conscompZ = mazTd.td_various.td_general.td_general.conscompZ.ToString(); //长度补偿
                                 tools.Add(addToolInfo);
                             }
                             responseBody.toolsData = JsonConvert.SerializeObject(tools);
@@ -259,8 +282,33 @@ namespace HttpServer.mazak
                     ret = MaCls.MazGetToolData(h, 0, requestBody.toolNo, ref toollist);
                     if (ret == 0)
                     {
-                        responseBody.toolsData = JsonConvert.SerializeObject(toollist);
-                        YG.Log.Instance.WriteLogAdd($"mazak-获取刀具-->> 成功" + JsonConvert.SerializeObject(toollist));
+                        ToolData tool = new ToolData();
+                        foreach (MAZ_TD aZ_TDALL in toollist.tool)
+                        {
+                            MAZ_TD td11 = new MAZ_TD();
+                            td11 = aZ_TDALL;
+
+                            if (aZ_TDALL.td_common.ushort_0 == requestBody.toolNo)
+                            {
+                                tool.pkno = td11.td_common.pkno;
+                                tool.lengthA = td11.td_common.lengthA; //刀具长度 / 10000
+                                tool.name = td11.td_common.name; //刀具名称对应key  (15 立铣,16 特殊 )默认
+                                tool.int0 = td11.td_common.int_0; //公称径 / 10
+                                tool.diameter = td11.td_common.diameter; // 刀具径刀尖角 / 10000
+                                tool.lifetime = td11.td_common.lifetime; //刀具寿命 /60
+                                tool.lifenumber = td11.td_common.lifenumber; //刀具次数
+                                tool.usetime = td11.td_common.usetime; //刀具使用时间 /60
+                                tool.usenumber = td11.td_common.usenumber; //刀具使用次数
+                                tool.int1 = td11.td_common.int_1; // 组号
+                                tool.wearcompZ = td11.td_common.wearcompZ; //磨损补偿 / 10000
+                                tool.maxwearZ = td11.td_common.maxwearZ; //磨损极限 /10000
+                                tool.angle = td11.td_various.td_general.td_general.angle; //刀尖补偿 / 10000 最大值 32767
+                                tool.easycompX = td11.td_various.td_general.td_general.easycompX; //最高转速 / 1000
+                                tool.easycompY = td11.td_various.td_general.td_general.easycompY; //径补偿量 / 10000
+                                tool.conscompZ = td11.td_various.td_general.td_general.conscompZ; //长度补偿 / 10000
+                            }
+                        }
+                        responseBody.toolsData = JsonConvert.SerializeObject(tool);
                     }
                     else
                     {
@@ -309,36 +357,41 @@ namespace HttpServer.mazak
                     {
                         MAZ_TD td11 = new MAZ_TD();
                         td11 = aZ_TDALL;
+                        
                         if (aZ_TDALL.td_common.ushort_0 == requestBody.toolNo)
                         {
+                            // td11.uint_0 = uint.Parse(requestBody.value);
+                            ToolData toolDataParam = requestBody.data;
+                            //td11.td_common.pkno = toolDataParam.pkno; //刀位号--不更改刀位
+                            //td11.td_common.byte_1 = 1; //刀具ID编号对应key
+                            td11.td_common.lengthA = toolDataParam.lengthA; //刀具长度 / 10000
+                            td11.td_common.name = toolDataParam.name; //刀具名称对应key  (15 立铣,16 特殊 )
+                            td11.td_common.int_0 = toolDataParam.int0; //公称径 / 10
 
-                            td11.td_common.pkno = 0; //刀位号
-                            td11.td_common.byte_1 = 1; //刀具ID编号对应key
-                            td11.td_common.lengthA = 2950000; //刀具长度
-                            td11.td_common.name = 15; //刀具名称对应key
-                            td11.td_common.int_0 = 20; //公称径
-                            td11.td_common.diameter = 12300; // 刀具径刀尖角
-                            td11.td_common.string_0 = "高速钢"; //材料,机床里要有
-                            td11.td_common.lifetime = 600; //刀具寿命
-                            td11.td_common.lifenumber = 7; //刀具次数
-                            td11.td_common.usetime = 480; //刀具使用时间
-                            td11.td_common.usenumber = 6; //刀具使用次数
-                            td11.td_common.int_1 = 2; // 组号
-                            td11.td_common.compno = 1; //补偿编号
-                            td11.td_common.wearcompX = 1000;
-                            td11.td_common.wearcompY = -1000;
-                            td11.td_common.wearcompZ = 2000;
-                            td11.td_common.maxwearX = 10000;
-                            td11.td_common.maxwearY = 20000;
-                            td11.td_common.maxwearZ = 30000;
-                            td11.td_various.td_general.td_general.angle = 1600;
-                            td11.td_various.td_general.td_general.easycompX = 6541000;
-                            td11.td_various.td_general.td_general.easycompY = 2310;
-                            td11.td_various.td_general.td_general.easycompZ = 2320;
-                            td11.td_various.td_general.td_general.conscompX = 2330;
-                            td11.td_various.td_general.td_general.conscompY = 2340;
-                            td11.td_various.td_general.td_general.conscompZ = -3120;
-                            // td11.td_common.lengthB = 2;
+                            td11.td_common.diameter = toolDataParam.diameter; // 刀具径刀尖角 / 10000
+                            td11.td_common.string_0 = toolDataParam.string0; //材料,机床里要有(高速钢 硬质合金  金属陶瓷)
+                            td11.td_common.lifetime = toolDataParam.lifetime; //刀具寿命 /60
+                            td11.td_common.lifenumber = toolDataParam.lifenumber; //刀具次数
+                            td11.td_common.usetime = toolDataParam.usetime; //刀具使用时间 /60
+                            td11.td_common.usenumber = toolDataParam.usenumber; //刀具使用次数
+                            td11.td_common.int_1 = toolDataParam.int1; // 组号
+
+                            //td11.td_various.td_general.td_general.conscompZ = -3120;
+                            // td11.td_common.compno = 1; //补偿编号
+                            //td11.td_common.wearcompX = 1000;
+                            //td11.td_common.wearcompY = -1000;
+                            td11.td_common.wearcompZ = toolDataParam.wearcompZ; //磨损补偿 / 10000
+                            //td11.td_common.maxwearX = 10000;
+                            // td11.td_common.maxwearY = 22000;
+                            td11.td_common.maxwearZ = toolDataParam.maxwearZ; //磨损极限 /10000
+                            td11.td_various.td_general.td_general.angle = toolDataParam.angle; //刀尖补偿 / 10000 最大值 32767
+                            td11.td_various.td_general.td_general.easycompX = toolDataParam.easycompX; //最高转速 / 1000
+                            td11.td_various.td_general.td_general.easycompY = toolDataParam.easycompY; //径补偿量 / 10000
+                            //td11.td_various.td_general.td_general.easycompZ = 2320;
+                            //td11.td_various.td_general.td_general.conscompX = 2330;
+                            //td11.td_various.td_general.td_general.conscompY = 2340;
+                            td11.td_various.td_general.td_general.conscompZ = toolDataParam.conscompZ; //长度补偿 / 10000
+                            //td11.td_common.lengthB = 1950000;//不用
 
                             //td11.td_common.dummy5 = "1";
                             //td11.td_common.compno = 2;
@@ -369,10 +422,13 @@ namespace HttpServer.mazak
                     if (ret == 0)
                     {
                         YG.Log.Instance.WriteLogAdd($"mazak-删除刀具-->> 成功");
+                        responseBody.result = true;
                     }
                     else
                     {
                         YG.Log.Instance.WriteLogAdd($"mazak-删除刀具-->> 失败");
+                        responseBody.result = false;
+                        responseBody.msg = "mazak-删除刀具-->> 失败";
                     }
                 }
                 else if (!string.IsNullOrEmpty(requestBody.path))
@@ -387,11 +443,29 @@ namespace HttpServer.mazak
                             ret = MaCls.MazSendProgram(h, fileName, filepath, 1);
                             YG.Log.Instance.WriteLogAdd($"mazak-上传响应结果-->> " + ret);
                             if (ret == 0)
-                            {
+                            {   
                                 YG.Log.Instance.WriteLogAdd($"mazak-上传-->> " + requestBody.path + "成功");
+                                Thread.Sleep(2000);
+                                string mainPro = fileName.Split('.')[0];
+                                ret = MaCls.MazSetMainPro(h, 0, mainPro);
+                                if (ret == 0)
+                                {
+                                    YG.Log.Instance.WriteLogAdd($"mazak-选择-->> " + mainPro + "成功");
+                                    responseBody.result = true;
+                                    responseBody.msg = "上传成功,设置主程序成功";
+                                }
+                                else
+                                {
+                                    responseBody.result = false;
+                                    responseBody.msg = "上传成功,设置主程序失败";
+                                    YG.Log.Instance.WriteLogAdd($"mazak-选择-->> " + mainPro + "失败");
+                                }
+
                             }
                             else
                             {
+                                responseBody.result = false;
+                                responseBody.msg = "上传失败";
                                 YG.Log.Instance.WriteLogAdd($"mazak-上传-->> " + requestBody.path + "失败");
                             }
                         }
@@ -431,17 +505,172 @@ namespace HttpServer.mazak
                                 YG.Log.Instance.WriteLogAdd($"mazak-选择-->> " + requestBody.path + "失败");
                             }
                         }
+                        else if (fun == ActionTypeEnum.UploadNoSet.ToString())
+                        {
+                            ret = MaCls.MazSendProgram(h, fileName, filepath, 1);
+                            YG.Log.Instance.WriteLogAdd($"mazak-上传响应结果-->> " + ret);
+                            if (ret == 0)
+                            {
+                                YG.Log.Instance.WriteLogAdd($"mazak-上传-->> " + requestBody.path + "成功");
+                            }
+                            else
+                            {
+                                responseBody.result = false;
+                                responseBody.msg = "上传失败";
+                                YG.Log.Instance.WriteLogAdd($"mazak-上传-->> " + requestBody.path + "失败");
+                            }
+                        }
 
                     }
                     catch (Exception e)
                     {
                         YG.Log.Instance.WriteLogAdd($"mazak-异常-->> " + e.Message);
+                    }
+                }
+                else if(fun == ActionTypeEnum.SetMainProgram.ToString())
+                {
+                    ret = MaCls.MazSetMainPro(h, 0, requestBody.prgName);
+                    if (ret == 0)
+                    {
+                        YG.Log.Instance.WriteLogAdd($"mazak-选择主程序-->> " + requestBody.prgName + "成功");
+                        responseBody.result = true;
+                        responseBody.msg = "设置主程序成功";
+                    }
+                    else
+                    {
+                        YG.Log.Instance.WriteLogAdd($"mazak-选择主程序-->> " + requestBody.prgName + "失败");
+                        responseBody.result = false;
+                        responseBody.msg = "设置主程序失败";
+                    }
+                }
+                else if(fun == ActionTypeEnum.DeleteOrSetTool.ToString())
+                {
+                    if (true)
+                    {
+                        //初始化刀具数据
+                        MAZ_TDALL toollist = default(MAZ_TDALL);
+                        ret = MaCls.MazGetToolData(h, 0, requestBody.toolNo, ref toollist);
+
+                        MAZ_TDALL toolData = new MAZ_TDALL();
+                        MAZ_TD[] tool1 = new MAZ_TD[22];
+                        int count = 0;
+                        foreach (MAZ_TD aZ_TDALL in toollist.tool)
+                        {
+                            MAZ_TD td11 = new MAZ_TD();
+                            td11 = aZ_TDALL;
+
+                            if (aZ_TDALL.td_common.ushort_0 == requestBody.toolNo)
+                            {
+                                td11.td_common.lengthA = 0; //刀具长度 / 10000
+                                td11.td_common.name = 15; //刀具名称对应key  (15 立铣,16 特殊 )默认
+                                td11.td_common.int_0 = 0; //公称径 / 10
+                                td11.td_common.diameter = 0; // 刀具径刀尖角 / 10000
+                                td11.td_common.lifetime = 0; //刀具寿命 /60
+                                td11.td_common.lifenumber = 0; //刀具次数
+                                td11.td_common.usetime = 0; //刀具使用时间 /60
+                                td11.td_common.usenumber = 0; //刀具使用次数
+                                td11.td_common.int_1 = 0; // 组号
+                                td11.td_common.wearcompZ = 0; //磨损补偿 / 10000
+                                td11.td_common.maxwearZ = 0; //磨损极限 /10000
+                                td11.td_various.td_general.td_general.angle = 0; //刀尖补偿 / 10000 最大值 32767
+                                td11.td_various.td_general.td_general.easycompX = 0; //最高转速 / 1000
+                                td11.td_various.td_general.td_general.easycompY = 0; //径补偿量 / 10000
+                                td11.td_various.td_general.td_general.conscompZ = 0; //长度补偿 / 10000
+                            }
+                            tool1[count] = td11;
+                            count++;
+                        }
+                        toollist.tool = tool1;
+
+                        MAZ_TD_ERRORALL errorData = default(MAZ_TD_ERRORALL);
+                        ret = MaCls.MazSetToolData(h, 0, requestBody.toolNo, ref toollist, ref errorData);
+                        if (ret == 0)
+                        {
+                            YG.Log.Instance.WriteLogAdd($"mazak-初始化刀具信息-->> 成功");
+                            responseBody.result = true;
+                            responseBody.toolsData = JsonConvert.SerializeObject(requestBody.data);
+                        }
+                        else
+                        {
+                            YG.Log.Instance.WriteLogAdd($"mazak-初始化刀具信息-->> 失败");
+                            responseBody.result = false;
+                            responseBody.msg = "mazak-初始化刀具信息-->> 失败";
+                            return responseBody;
+                        }
+                    }
+                    
+
+                    if(requestBody.value == "set")
+                    {
+                        //设置刀具数据
+                        MAZ_TDALL toollist = default(MAZ_TDALL);
+                        ret = MaCls.MazGetToolData(h, 0, requestBody.toolNo, ref toollist);
 
-                        ret = MaCls.MazDisconnect(h);
+                        MAZ_TDALL toolData = new MAZ_TDALL();
+                        MAZ_TD[] tool1 = new MAZ_TD[22];
+                        int count = 0;
+                        foreach (MAZ_TD aZ_TDALL in toollist.tool)
+                        {
+                            MAZ_TD td11 = new MAZ_TD();
+                            td11 = aZ_TDALL;
+
+                            if (aZ_TDALL.td_common.ushort_0 == requestBody.toolNo)
+                            {
+                                ToolData toolDataParam = requestBody.data;
+                                td11.td_common.lengthA = toolDataParam.lengthA; //刀具长度 / 10000
+                                td11.td_common.name = toolDataParam.name; //刀具名称对应key  (15 立铣,16 特殊 )
+                                td11.td_common.int_0 = toolDataParam.int0; //公称径 / 10
+                                td11.td_common.diameter = toolDataParam.diameter; // 刀具径刀尖角 / 10000
+                                td11.td_common.lifetime = toolDataParam.lifetime; //刀具寿命 /60
+                                td11.td_common.lifenumber = toolDataParam.lifenumber; //刀具次数
+                                td11.td_common.usetime = toolDataParam.usetime; //刀具使用时间 /60
+                                td11.td_common.usenumber = toolDataParam.usenumber; //刀具使用次数
+                                td11.td_common.int_1 = toolDataParam.int1; // 组号
+                                td11.td_common.wearcompZ = toolDataParam.wearcompZ; //磨损补偿 / 10000
+                                td11.td_common.maxwearZ = toolDataParam.maxwearZ; //磨损极限 /10000
+                                td11.td_various.td_general.td_general.angle = toolDataParam.angle; //刀尖补偿 / 10000 最大值 32767
+                                td11.td_various.td_general.td_general.easycompX = toolDataParam.easycompX; //最高转速 / 1000
+                                td11.td_various.td_general.td_general.easycompY = toolDataParam.easycompY; //径补偿量 / 10000
+                                td11.td_various.td_general.td_general.conscompZ = toolDataParam.conscompZ; //长度补偿 / 10000
+
+                                requestBody.data.pkno = td11.td_common.pkno;
+                            }
+                            tool1[count] = td11;
+                            count++;
+                        }
+                        toollist.tool = tool1;
+
+                        MAZ_TD_ERRORALL errorData = default(MAZ_TD_ERRORALL);
+                        ret = MaCls.MazSetToolData(h, 0, requestBody.toolNo, ref toollist, ref errorData);
+                        if (ret == 0)
+                        {
+                            YG.Log.Instance.WriteLogAdd($"mazak-设置刀具信息-->> 成功");
+                            responseBody.result = true;
+                            responseBody.toolsData = JsonConvert.SerializeObject(requestBody.data);
+                        }
+                        else
+                        {
+                            YG.Log.Instance.WriteLogAdd($"mazak-设置刀具信息-->> 失败");
+                            responseBody.result = false;
+                            responseBody.msg = "mazak-设置刀具信息-->> 失败";
+                            return responseBody;
+                        }
                     }
-                    ret = MaCls.MazDisconnect(h);
 
                 }
+
+                ret = MaCls.MazDisconnect(h);
+                if (ret == 0)
+                {
+                    YG.Log.Instance.WriteLogAdd($"mazak-断开连接-->> 成功");
+                    responseBody.result = true;
+                }
+                else
+                {
+                    YG.Log.Instance.WriteLogAdd($"mazak-断开连接-->> 失败");
+                    responseBody.result = false;
+                    responseBody.msg = "mazak-断开连接-->> 失败";
+                }
             }
             return responseBody;
         }

+ 1 - 1
deviceHttpServer/mitsubishi/MitsubishiServer.cs

@@ -16,7 +16,7 @@ namespace HttpServer.mitsubishi
         private static string ON_LINE_STATE = "在线";
         public static Dictionary<string, MitCom> deviceList { get; set; } = new Dictionary<string, MitCom>();
        
-        public ResponseBody requestHttpServer(RequestBody requestBody)
+        public ResponseBody requestHttpServer(RequestBody<ToolData> requestBody)
         {
             string ip = requestBody.serverUrl;
             string port = requestBody.port;

+ 1 - 1
deviceHttpServer/opcua/OpcUaServer.cs

@@ -23,7 +23,7 @@ namespace Fanuc_HttpServer.opcuaserver
         private static string ON_LINE_STATE = "在线";
         Server opcServer = null;
         public static Dictionary<string, Server> deviceList { get; set; } = new Dictionary<string, Server>();
-        public ResponseBody requestHttpServer(RequestBody requestBody)
+        public ResponseBody requestHttpServer(RequestBody<ToolData> requestBody)
         {
             string ip = requestBody.serverUrl;
             string port = requestBody.port;