MitsubishiServer.cs 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using EZSockets;
  2. using RequestServer.HttpServer;
  3. using ResponseServer.HttpServer;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Net.NetworkInformation;
  8. using System.Text;
  9. using System.Threading;
  10. using System.Threading.Tasks;
  11. namespace HttpServer.mitsubishi
  12. {
  13. class MitsubishiServer
  14. {
  15. private static string ON_LINE_STATE = "在线";
  16. public static Dictionary<string, MitCom> deviceList { get; set; } = new Dictionary<string, MitCom>();
  17. public static ResponseBody requestHttpServer(RequestBody requestBody)
  18. {
  19. string ip = requestBody.serverUrl;
  20. string port = requestBody.port;
  21. string fun = requestBody.type;
  22. ResponseBody responseBody = new ResponseBody();
  23. //先ping
  24. Ping pingSender = new Ping();
  25. PingReply reply = pingSender.Send(requestBody.serverUrl);
  26. if (reply.Status != IPStatus.Success)
  27. {
  28. //responseBody.result = true;
  29. responseBody.msg = "调用失败";
  30. }
  31. else
  32. {
  33. try
  34. {
  35. MitCom mitCom = new MitCom(requestBody.serverUrl);
  36. mitCom.GetSimConnect("M700M", "1", "10", ip);
  37. responseBody.deviceState = ON_LINE_STATE;
  38. if (fun == ActionTypeEnum.Collect.ToString())
  39. {
  40. int pdata;
  41. string loadstr;
  42. double pdspeed, pdspeedFM, pdspeedFS, pdspeedFE, pdspeedFE1;
  43. mitCom.GetSpindleInfo(2, 1, out pdata, out loadstr);//主轴转速
  44. // mitCom.GetSpindleInfo(3, 1, out pdata, out loadstr);//主轴负载
  45. //mitCom.GetSpindleInfo(4, 1, out pdata, out loadstr);//转速
  46. if(pdata != 0)
  47. {
  48. responseBody.actSpindle = (pdata + 300).ToString();
  49. responseBody.spindleMagnification = ((pdata+300) * 100 / 2000).ToString();
  50. }
  51. else
  52. {
  53. responseBody.actSpindle = "0";
  54. responseBody.spindleMagnification = "0";
  55. }
  56. mitCom.GetFeedSpeed(0, out pdspeed, "GetFeedSpeedFA"); //获取指令进给速度
  57. mitCom.GetFeedSpeed(3, out pdspeedFE, "GetFeedSpeedFE");//攻丝(FE);
  58. mitCom.GetFeedSpeed(4, out pdspeedFE1, "GetFeedSpeedFE1");//攻丝(FE);
  59. responseBody.actFeed = pdspeedFE.ToString();
  60. responseBody.feedRateOvr= ((Convert.ToInt32(pdspeedFE) / pdspeed ) * 100).ToString();
  61. string programNumber;
  62. mitCom.GetProgramNumber(out programNumber);
  63. responseBody.mainProg = programNumber;
  64. // int pvValue;
  65. // mitCom.GetParaValue(30, 8002, 1, 1, out pvValue);
  66. //mitCom.GetPLCPar(210, out pvValue);
  67. int runTime;
  68. mitCom.GetRunTime(out runTime);
  69. mitCom.SimClose();
  70. responseBody.powerOnTime = (runTime/60).ToString();
  71. }
  72. }
  73. catch (Exception e)
  74. {
  75. responseBody.msg = "调用失败";
  76. YG.Log.Instance.WriteLogAdd($"三菱连接结果-ex-->> " + e.Message);
  77. //deviceList.Remove(requestBody.serverUrl);
  78. }
  79. }
  80. return responseBody;
  81. }
  82. }
  83. }