rpt.ashx 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <%@ WebHandler Language="C#" Class="rpt" %>
  2. using System;
  3. using System.Web;
  4. using Curtain.Net.Sockets.PLC;
  5. using Curtain.Net.Sockets.PLC.Model.Siemens;
  6. using DK.XuWei.WebMes;
  7. using Newtonsoft.Json.Linq;
  8. public class rpt : IHttpHandler
  9. {
  10. public void ProcessRequest(HttpContext context)
  11. {
  12. context.Response.ContentType = "text/plain";
  13. if (context.Request["m"].ToString() == "grouting")
  14. {
  15. try
  16. {
  17. //成型数据
  18. JArray dataArray = new JArray();
  19. dataArray.Add(new JObject(new JProperty("data", 1)));
  20. dataArray.Add(new JObject(new JProperty("data", 1)));
  21. dataArray.Add(new JObject(new JProperty("data", 1)));
  22. dataArray.Add(new JObject(new JProperty("data", 1)));
  23. dataArray.Add(new JObject(new JProperty("data", 1)));
  24. dataArray.Add(new JObject(new JProperty("data", 1)));
  25. //输出数据
  26. context.Response.Write(dataArray.ToString());
  27. }
  28. catch(Exception ex) {
  29. context.Response.Write("[]");
  30. Curtain.Log.Logger.Error(ex);
  31. }
  32. }
  33. if (context.Request["m"].ToString() == "dry")
  34. {
  35. try
  36. {
  37. //烘干数据
  38. JArray dataArray = new JArray();
  39. //dataArray.Add(new JObject(new JProperty("data", 3)));
  40. //dataArray.Add(new JObject(new JProperty("data", 3)));
  41. dataArray.Add(new JObject(new JObject(new JProperty("data", plcDataDry("172.18.40.51").d.ToString()))));
  42. dataArray.Add(new JObject(new JObject(new JProperty("data", plcDataDry("172.18.40.52").d.ToString()))));
  43. dataArray.Add(new JObject(new JObject(new JProperty("data", plcDataDry("172.18.40.53").d.ToString()))));
  44. dataArray.Add(new JObject(new JObject(new JProperty("data", plcDataDry("172.18.40.54").d.ToString()))));
  45. //输出数据
  46. context.Response.Write(dataArray.ToString());
  47. }
  48. catch(Exception ex) {
  49. context.Response.Write("[]");
  50. Curtain.Log.Logger.Error(ex);
  51. }
  52. }
  53. if (context.Request["m"].ToString() == "glaze")
  54. {
  55. try
  56. {
  57. //施釉数据
  58. JArray dataArray = new JArray();
  59. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.37.64", "480.0").ToString())));
  60. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.37.64", "480.2").ToString())));
  61. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.37.64", "480.4").ToString())));
  62. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.37.64", "480.6").ToString())));
  63. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.37.64", "480.8").ToString())));
  64. //输出数据
  65. context.Response.Write(dataArray.ToString());
  66. }
  67. catch(Exception ex) {
  68. context.Response.Write("[]");
  69. Curtain.Log.Logger.Error(ex);
  70. }
  71. }
  72. if (context.Request["m"].ToString() == "kiln")
  73. {
  74. try
  75. {
  76. //登卸窑机器人
  77. JArray dataArray = new JArray();
  78. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.104", "360.0").ToString())));
  79. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.104", "360.4").ToString())));
  80. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.112", "360.0").ToString())));
  81. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.112", "360.2").ToString())));
  82. //输出数据
  83. context.Response.Write(dataArray.ToString());
  84. }
  85. catch(Exception ex) {
  86. context.Response.Write("[]");
  87. Curtain.Log.Logger.Error(ex);
  88. }
  89. }
  90. if (context.Request["m"].ToString() == "lake")
  91. {
  92. try
  93. {
  94. //功能检测
  95. JArray dataArray = new JArray();
  96. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.160", "360.0").ToString())));
  97. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.164", "360.0").ToString())));
  98. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.168", "360.0").ToString())));
  99. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.172", "360.0").ToString())));
  100. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.176", "360.0").ToString())));
  101. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.180", "360.0").ToString())));
  102. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.184", "360.0").ToString())));
  103. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.166", "360.0").ToString())));
  104. //输出数据
  105. context.Response.Write(dataArray.ToString());
  106. }
  107. catch(Exception ex) {
  108. context.Response.Write("[]");
  109. Curtain.Log.Logger.Error(ex);
  110. }
  111. }
  112. if (context.Request["m"].ToString() == "pack")
  113. {
  114. try
  115. {
  116. //包装机器人
  117. JArray dataArray = new JArray();
  118. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.37", "240.0").ToString())));
  119. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.35", "240.0").ToString())));
  120. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.15", "240.0").ToString())));
  121. dataArray.Add(new JObject(new JProperty("data", plcData("172.18.36.95", "240.0").ToString())));
  122. //输出数据
  123. context.Response.Write(dataArray.ToString());
  124. }
  125. catch(Exception ex) {
  126. context.Response.Write("[]");
  127. Curtain.Log.Logger.Error(ex);
  128. }
  129. }
  130. //读取PLC地址数据
  131. //1、设备运行状态(int)【1:设备运行中,2:设备就绪,3:设备故障,0:设备无动作】
  132. //context.Response.Write(plcData("172.18.36.160", "360.0").ToString());
  133. }
  134. public string plcData(string ip,string db)
  135. {
  136. PLCResult<Int16> result = SiemensS7.PlcRead<Int16>(ip, db);
  137. return result.Data.ToString();
  138. }
  139. //只用于烘干房 M0.0=1 运行 M0.4=1 就绪 M0.1=1 停止 Q1.0=1 故障
  140. public dryData plcDataDry(string ip)
  141. {
  142. SocketClient<SiemensS7_200SmartModel> plc = null;
  143. plc = new SocketClient<SiemensS7_200SmartModel>();
  144. plc.Connect(ip, 102);
  145. dryData data = new dryData();
  146. //读取运行码
  147. PLCResult<Int16> resultRead1 = plc.Read<Int16>("M", "0.0");
  148. data.d1 = resultRead1.Data.ToString();
  149. if (data.d1 != "0") data.d = "1";
  150. //读取就绪码
  151. PLCResult<Int16> resultRead2 = plc.Read<Int16>("M", "0.4");
  152. data.d2 = resultRead2.Data.ToString();
  153. if (data.d2 != "0") data.d = "1";
  154. //读取待机码
  155. PLCResult<Int16> resultRead3 = plc.Read<Int16>("M", "0.1");
  156. data.d3 = resultRead3.Data.ToString();
  157. if (data.d3 != "0") data.d = "1";
  158. //读取故障码
  159. PLCResult<Int16> resultRead0 = plc.Read<Int16>("Q", "1.0");
  160. data.d0 = resultRead0.Data.ToString();
  161. if (data.d0 != "0") data.d = "1";
  162. plc.Close();
  163. plc.Dispose();
  164. return data;
  165. }
  166. public class dryData
  167. {
  168. public string d = "0";
  169. public string d1 = "0";
  170. public string d2 = "0";
  171. public string d3 = "0";
  172. public string d0 = "0";
  173. }
  174. public bool IsReusable
  175. {
  176. get
  177. {
  178. return false;
  179. }
  180. }
  181. }