using EZSockets; using RequestServer.HttpServer; 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; namespace HttpServer.mitsubishi { class MitsubishiServer { private static string ON_LINE_STATE = "在线"; public static Dictionary deviceList { get; set; } = new Dictionary(); public static ResponseBody requestHttpServer(RequestBody requestBody) { string ip = requestBody.serverUrl; string port = requestBody.port; string fun = requestBody.type; ResponseBody responseBody = new ResponseBody(); //先ping Ping pingSender = new Ping(); PingReply reply = pingSender.Send(requestBody.serverUrl); if (reply.Status != IPStatus.Success) { //responseBody.result = true; responseBody.msg = "调用失败"; } else { try { MitCom mitCom = new MitCom(requestBody.serverUrl); mitCom.GetSimConnect("M700M", "1", "10", ip); 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);//主轴转速 // mitCom.GetSpindleInfo(3, 1, out pdata, out loadstr);//主轴负载 //mitCom.GetSpindleInfo(4, 1, out pdata, out loadstr);//转速 if(pdata != 0) { responseBody.actSpindle = (pdata + 300).ToString(); responseBody.spindleMagnification = ((pdata+300) * 100 / 2000).ToString(); } else { responseBody.actSpindle = "0"; responseBody.spindleMagnification = "0"; } 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.feedRateOvr= ((Convert.ToInt32(pdspeedFE) / pdspeed ) * 100).ToString(); string programNumber; mitCom.GetProgramNumber(out programNumber); responseBody.mainProg = programNumber; // int pvValue; // mitCom.GetParaValue(30, 8002, 1, 1, out pvValue); //mitCom.GetPLCPar(210, out pvValue); int runTime; mitCom.GetRunTime(out runTime); mitCom.SimClose(); responseBody.powerOnTime = (runTime/60).ToString(); } } catch (Exception e) { responseBody.msg = "调用失败"; YG.Log.Instance.WriteLogAdd($"三菱连接结果-ex-->> " + e.Message); //deviceList.Remove(requestBody.serverUrl); } } return responseBody; } } }