test.ashx 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <%@ WebHandler Language="C#" Class="test" %>
  2. using System;
  3. using System.Web;
  4. using Curtain.Net.Sockets.PLC;
  5. using DK.XuWei.WebMes;
  6. using Curtain.Net.Sockets.PLC.Model.Siemens;
  7. using Newtonsoft.Json.Linq;
  8. public class test : IHttpHandler
  9. {
  10. public void ProcessRequest(HttpContext context)
  11. {
  12. context.Response.ContentType = "text/plain";
  13. //context.Response.Write(plcData(context.Request["ip"].ToString(), context.Request["db"].ToString()));
  14. dryData data = new dryData();
  15. data = plcDataDry("172.18.40.54");
  16. context.Response.Write("运行:" + data.d1 + " 就绪:" + data.d2 + " 待机:" + data.d3 + " 故障:" + data.d0);
  17. }
  18. public string plcData(string ip,string db)
  19. {
  20. PLCResult<Int16> result = SiemensS7.PlcRead<Int16>(ip, db);
  21. return result.Data.ToString();
  22. }
  23. //只用于烘干房 M0.0=1 运行 M0.4=1 就绪 M0.1=1 停止 Q1.0=1 故障
  24. public dryData plcDataDry(string ip)
  25. {
  26. SocketClient<SiemensS7_200SmartModel> plc = null;
  27. plc = new SocketClient<SiemensS7_200SmartModel>();
  28. plc.Connect(ip, 102);
  29. dryData data = new dryData();
  30. //读取运行码
  31. PLCResult<Int16> resultRead1 = plc.Read<Int16>("M", "0.0");
  32. data.d1 = resultRead1.Data.ToString();
  33. if (data.d1 != "0") data.d = data.d1;
  34. //读取就绪码
  35. PLCResult<Int16> resultRead2 = plc.Read<Int16>("M", "0.4");
  36. data.d2 = resultRead2.Data.ToString();
  37. if (data.d2 != "0") data.d = data.d2;
  38. //读取待机码
  39. PLCResult<Int16> resultRead3 = plc.Read<Int16>("M", "0.1");
  40. data.d3 = resultRead3.Data.ToString();
  41. if (data.d3 != "0") data.d = data.d3;
  42. //读取故障码
  43. PLCResult<Int16> resultRead0 = plc.Read<Int16>("Q", "1.0");
  44. data.d0 = resultRead0.Data.ToString();
  45. if (data.d0 != "0") data.d = data.d0;
  46. plc.Close();
  47. plc.Dispose();
  48. return data;
  49. }
  50. public class dryData
  51. {
  52. public string d = "0";
  53. public string d1 = "0";
  54. public string d2 = "0";
  55. public string d3 = "0";
  56. public string d0 = "0";
  57. }
  58. public bool IsReusable
  59. {
  60. get
  61. {
  62. return false;
  63. }
  64. }
  65. }