Led.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using DK.XuWei.WebMes;
  6. using Curtain.DataAccess;
  7. using Curtain.Log;
  8. using System.Data;
  9. /// <summary>
  10. /// 发送LED看板数据到PLC xuwei add 2023-05-12
  11. /// </summary>
  12. public static class Led
  13. {
  14. public static void SendData()
  15. {
  16. //一线产量明细
  17. DataTable oneDt = new DataTable();
  18. //二线产量明细
  19. DataTable twoDt = new DataTable();
  20. //总计产量
  21. DataTable infoDt = new DataTable();
  22. //读取看板数据
  23. using (IDataAccess conn = DataAccess.Create())
  24. {
  25. //一线明细
  26. oneDt = conn.ExecuteDatatable(@"
  27. SELECT
  28. '07-09' AS sj,
  29. SUM( ct )
  30. FROM
  31. (
  32. SELECT
  33. TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
  34. COUNT( pd.BARCODE ) ct
  35. FROM
  36. TP_PM_PRODUCTIONDATA pd
  37. WHERE
  38. pd.USERCODE = 'Z26'
  39. AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
  40. AND pd.VALUEFLAG = 1
  41. AND pd.PROCEDUREID = 2
  42. GROUP BY
  43. TO_CHAR( pd.CREATETIME, 'hh24' )
  44. ORDER BY
  45. TO_CHAR( pd.CREATETIME, 'hh24' )
  46. )
  47. WHERE
  48. sj IN ( '07', '08' ) UNION ALL
  49. SELECT
  50. sj,
  51. ct
  52. FROM
  53. (
  54. SELECT
  55. TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
  56. COUNT( pd.BARCODE ) ct
  57. FROM
  58. TP_PM_PRODUCTIONDATA pd
  59. WHERE
  60. pd.USERCODE = 'Z26'
  61. AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
  62. AND pd.VALUEFLAG = 1
  63. AND pd.PROCEDUREID = 2
  64. GROUP BY
  65. TO_CHAR( pd.CREATETIME, 'hh24' )
  66. ORDER BY
  67. TO_CHAR( pd.CREATETIME, 'hh24' )
  68. )
  69. WHERE
  70. sj NOT IN ( '07', '08', '12', '13' ) UNION ALL
  71. SELECT
  72. '12-14' AS sj,
  73. SUM( ct )
  74. FROM
  75. (
  76. SELECT
  77. TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
  78. COUNT( pd.BARCODE ) ct
  79. FROM
  80. TP_PM_PRODUCTIONDATA pd
  81. WHERE
  82. pd.USERCODE = 'Z26'
  83. AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
  84. AND pd.VALUEFLAG = 1
  85. AND pd.PROCEDUREID = 2
  86. GROUP BY
  87. TO_CHAR( pd.CREATETIME, 'hh24' )
  88. ORDER BY
  89. TO_CHAR( pd.CREATETIME, 'hh24' )
  90. )
  91. WHERE
  92. sj IN ( '12', '13' )
  93. ",
  94. new CDAParameter("USERID", "")
  95. );
  96. //二线明细
  97. twoDt = conn.ExecuteDatatable(@"
  98. SELECT
  99. '07-09' AS sj,
  100. SUM( ct )
  101. FROM
  102. (
  103. SELECT
  104. TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
  105. COUNT( pd.BARCODE ) ct
  106. FROM
  107. TP_PM_PRODUCTIONDATA pd
  108. WHERE
  109. pd.USERCODE = 'Z26'
  110. AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
  111. AND pd.VALUEFLAG = 1
  112. AND pd.PROCEDUREID = 2
  113. GROUP BY
  114. TO_CHAR( pd.CREATETIME, 'hh24' )
  115. ORDER BY
  116. TO_CHAR( pd.CREATETIME, 'hh24' )
  117. )
  118. WHERE
  119. sj IN ( '07', '08' ) UNION ALL
  120. SELECT
  121. sj,
  122. ct
  123. FROM
  124. (
  125. SELECT
  126. TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
  127. COUNT( pd.BARCODE ) ct
  128. FROM
  129. TP_PM_PRODUCTIONDATA pd
  130. WHERE
  131. pd.USERCODE = 'Z26'
  132. AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
  133. AND pd.VALUEFLAG = 1
  134. AND pd.PROCEDUREID = 2
  135. GROUP BY
  136. TO_CHAR( pd.CREATETIME, 'hh24' )
  137. ORDER BY
  138. TO_CHAR( pd.CREATETIME, 'hh24' )
  139. )
  140. WHERE
  141. sj NOT IN ( '07', '08', '12', '13' ) UNION ALL
  142. SELECT
  143. '12-14' AS sj,
  144. SUM( ct )
  145. FROM
  146. (
  147. SELECT
  148. TO_CHAR( pd.CREATETIME, 'hh24' ) sj,
  149. COUNT( pd.BARCODE ) ct
  150. FROM
  151. TP_PM_PRODUCTIONDATA pd
  152. WHERE
  153. pd.USERCODE = 'Z26'
  154. AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
  155. AND pd.VALUEFLAG = 1
  156. AND pd.PROCEDUREID = 2
  157. GROUP BY
  158. TO_CHAR( pd.CREATETIME, 'hh24' )
  159. ORDER BY
  160. TO_CHAR( pd.CREATETIME, 'hh24' )
  161. )
  162. WHERE
  163. sj IN ( '12', '13' )
  164. ",
  165. new CDAParameter("USERID", "")
  166. );
  167. //总计
  168. infoDt = conn.ExecuteDatatable(@"
  169. WITH 一线 AS (
  170. SELECT
  171. COUNT( DISTINCT pd.BARCODE ) 一线产量
  172. FROM
  173. TP_PM_PRODUCTIONDATA pd
  174. WHERE
  175. pd.VALUEFLAG = 1
  176. AND pd.PROCEDUREID = 2
  177. AND pd.USERCODE = 'Z26'
  178. AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
  179. ),
  180. 二线 AS (
  181. SELECT
  182. COUNT( DISTINCT pd.BARCODE ) 二线产量
  183. FROM
  184. TP_PM_PRODUCTIONDATA pd
  185. WHERE
  186. pd.VALUEFLAG = 1
  187. AND pd.PROCEDUREID = 2
  188. AND pd.USERCODE = 'Z28'
  189. AND TRUNC( pd.CREATETIME ) = trunc( SYSDATE )
  190. ) SELECT
  191. 一线.一线产量,
  192. 二线.二线产量,
  193. ( 一线.一线产量 +二线.二线产量 ) 总计
  194. FROM
  195. 一线
  196. LEFT JOIN 二线 ON 1 =1
  197. ",
  198. new CDAParameter("USERID", "")
  199. );
  200. }
  201. Logger.Debug("读取看板数据完成!");
  202. //发送数据到LED
  203. //SiemensS7.Open("172.19.2.71", 102);
  204. SiemensS7.Open("172.19.26.82", 102);
  205. SiemensS7.Write<short>("5.0", (Int16)infoDt.Rows[0]["总计"]);//包装总量
  206. SiemensS7.Write<short>("5.2", (Int16)infoDt.Rows[0]["一线产量"]);//一线包装产量
  207. SiemensS7.Write<short>("5.4", (Int16)infoDt.Rows[0]["二线产量"]);//二线包装产量
  208. SiemensS7.Write<short>("5.6", (Int16)oneDt.Rows[0]["SUM( ct )"]);//一线7:00-9:00产量
  209. SiemensS7.Write<short>("5.8", (Int16)oneDt.Rows[1]["SUM( ct )"]);//一线9:00-10:00产量
  210. SiemensS7.Write<short>("5.10", (Int16)oneDt.Rows[2]["SUM( ct )"]);//一线10:00-11:00产量
  211. SiemensS7.Write<short>("5.12", (Int16)oneDt.Rows[3]["SUM( ct )"]);//一线12:00-14:00产量
  212. SiemensS7.Write<short>("5.14", (Int16)oneDt.Rows[4]["SUM( ct )"]);//一线14:00-15:00产量
  213. SiemensS7.Write<short>("5.16", (Int16)oneDt.Rows[5]["SUM( ct )"]);//一线15:00-16:00产量
  214. SiemensS7.Write<short>("5.18", (Int16)oneDt.Rows[6]["SUM( ct )"]);//一线16:00-17:00产量
  215. SiemensS7.Write<short>("5.20", (Int16)oneDt.Rows[7]["SUM( ct )"]);//一线17:00-18:00产量
  216. SiemensS7.Write<short>("5.22", (Int16)twoDt.Rows[0]["SUM( ct )"]);//二线7:00-9:00产量
  217. SiemensS7.Write<short>("5.24", (Int16)twoDt.Rows[1]["SUM( ct )"]);//二线9:00-10:00产量
  218. SiemensS7.Write<short>("5.26", (Int16)twoDt.Rows[2]["SUM( ct )"]);//二线10:00-11:00产量
  219. SiemensS7.Write<short>("5.28", (Int16)twoDt.Rows[3]["SUM( ct )"]);//二线12:00-14:00产量
  220. SiemensS7.Write<short>("5.30", (Int16)twoDt.Rows[4]["SUM( ct )"]);//二线14:00-15:00产量
  221. SiemensS7.Write<short>("5.32", (Int16)twoDt.Rows[5]["SUM( ct )"]);//二线15:00-16:00产量
  222. SiemensS7.Write<short>("5.34", (Int16)twoDt.Rows[6]["SUM( ct )"]);//二线16:00-17:00产量
  223. SiemensS7.Write<short>("5.36", (Int16)twoDt.Rows[7]["SUM( ct )"]);//二线17:00-18:00产量
  224. SiemensS7.Close();
  225. Logger.Debug("发送LED数据完成!");
  226. }
  227. }