You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

441 lines
22 KiB

3 years ago
  1. using Aborlen.Model;
  2. using FrameWork.Log;
  3. using Monitor.FrameWork;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using WorkStationBase;
  10. namespace Aborlen.WorkStation
  11. {
  12. public partial class WorkStation02 : StationBase
  13. {
  14. /// <summary>
  15. /// 允许保存
  16. /// </summary>
  17. /// <param name="stationCode"></param>
  18. /// <param name="value"></param>
  19. /// <param name="triggerTime"></param>
  20. public void AllowReadDate(string stationCode, object value, DateTime triggerTime)
  21. {
  22. try
  23. {
  24. if (Convert.ToByte(value) == 1)
  25. {
  26. //读取质量数据
  27. //判断合格标志 是否存在不合格、
  28. int qualityMark = 1;
  29. string sql = $"update ProductData_Outline set ";
  30. foreach (var qualityTag in QualityOpcTagInfos)
  31. {
  32. sql = sql + $" {qualityTag.ColName}='{ Read(qualityTag.TagId, triggerTime).ToString() }' ,";
  33. if (qualityTag.TagDataType == "byte")
  34. {
  35. if (Read(qualityTag.TagId, triggerTime).ToString() == "2")
  36. {
  37. qualityMark = 2;
  38. }
  39. }
  40. }
  41. sql = sql.Remove(sql.Length - 1, 1);
  42. sql = sql + $",op20_time='{DateTime.Now}' , ProductState='{qualityMark}' where motor_pid='{ProductCode}'";
  43. if (SqlSugarAdo.ExecuteCommand(sql) > 0)
  44. {
  45. }
  46. //显示质量数据
  47. {
  48. #region 拧紧数据发送到前端
  49. var qualities = ProductData_Outline.Query().Where(p => p.motor_pid == ProductCode).First();
  50. qualityDatas = new List<QualityClass>();
  51. /////////////////////////////////////////螺栓1_1///////////////////////////////////////////
  52. QualityClass qualityClass = new QualityClass();
  53. qualityClass.Id = 1;
  54. qualityClass.StationCode = "OP20";
  55. qualityClass.Position = "螺栓1拧紧1";
  56. qualityClass.Item = "扭矩";
  57. qualityClass.Value = qualities.op20_nj11.ToString();
  58. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result11 == 0 ? 0 : qualities.op20_result11);
  59. qualityDatas.Add(qualityClass);
  60. qualityClass = new QualityClass();
  61. qualityClass.Id = 2;
  62. qualityClass.StationCode = "OP20";
  63. qualityClass.Position = "螺栓1拧紧1";
  64. qualityClass.Item = "角度";
  65. qualityClass.Value = qualities.op20_jd11.ToString();
  66. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result11 == 0 ? 0 : qualities.op20_result11);
  67. qualityDatas.Add(qualityClass);
  68. /////////////////////////////////////////螺栓2_1///////////////////////////////////////////
  69. qualityClass = new QualityClass();
  70. qualityClass.Id = 3;
  71. qualityClass.StationCode = "OP20";
  72. qualityClass.Position = "螺栓2拧紧1";
  73. qualityClass.Item = "扭矩";
  74. qualityClass.Value = qualities.op20_nj21.ToString();
  75. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result21 == 0 ? 0 : qualities.op20_result21);
  76. qualityDatas.Add(qualityClass);
  77. qualityClass = new QualityClass();
  78. qualityClass.Id = 4;
  79. qualityClass.StationCode = "OP20";
  80. qualityClass.Position = "螺栓2拧紧1";
  81. qualityClass.Item = "角度";
  82. qualityClass.Value = qualities.op20_jd21.ToString();
  83. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result21 == 0 ? 0 : qualities.op20_result21);
  84. qualityDatas.Add(qualityClass);
  85. /////////////////////////////////////////螺栓3_1//////////////////////////////////////////
  86. qualityClass = new QualityClass();
  87. qualityClass.Id = 5;
  88. qualityClass.StationCode = "OP20";
  89. qualityClass.Position = "螺栓3拧紧1";
  90. qualityClass.Item = "扭矩";
  91. qualityClass.Value = qualities.op20_nj31.ToString();
  92. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result31 == 0 ? 0 : qualities.op20_result31);
  93. qualityDatas.Add(qualityClass);
  94. qualityClass = new QualityClass();
  95. qualityClass.Id = 6;
  96. qualityClass.StationCode = "OP20";
  97. qualityClass.Position = "螺栓3拧紧1";
  98. qualityClass.Item = "角度";
  99. qualityClass.Value = qualities.op20_jd31.ToString();
  100. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result31 == 0 ? 0 : qualities.op20_result31);
  101. qualityDatas.Add(qualityClass);
  102. /////////////////////////////////////////螺栓4_1//////////////////////////////////////////
  103. qualityClass = new QualityClass();
  104. qualityClass.Id = 7;
  105. qualityClass.StationCode = "OP20";
  106. qualityClass.Position = "螺栓4拧紧1";
  107. qualityClass.Item = "扭矩";
  108. qualityClass.Value = qualities.op20_nj41.ToString();
  109. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result41 == 0 ? 0 : qualities.op20_result41);
  110. qualityDatas.Add(qualityClass);
  111. qualityClass = new QualityClass();
  112. qualityClass.Id = 8;
  113. qualityClass.StationCode = "OP20";
  114. qualityClass.Position = "螺栓4拧紧1";
  115. qualityClass.Item = "角度";
  116. qualityClass.Value = qualities.op20_jd41.ToString();
  117. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result41 == 0 ? 0 : qualities.op20_result41);
  118. qualityDatas.Add(qualityClass);
  119. /////////////////////////////////////////螺栓1_2///////////////////////////////////////////
  120. qualityClass = new QualityClass();
  121. qualityClass.Id = 9;
  122. qualityClass.StationCode = "OP20";
  123. qualityClass.Position = "螺栓1拧紧2";
  124. qualityClass.Item = "扭矩";
  125. qualityClass.Value = qualities.op20_nj12.ToString();
  126. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result12 == 0 ? 0 : qualities.op20_result12);
  127. qualityDatas.Add(qualityClass);
  128. qualityClass = new QualityClass();
  129. qualityClass.Id = 10;
  130. qualityClass.StationCode = "OP20";
  131. qualityClass.Position = "螺栓1拧紧2";
  132. qualityClass.Item = "角度";
  133. qualityClass.Value = qualities.op20_jd12.ToString();
  134. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result12 == 0 ? 0 : qualities.op20_result12);
  135. qualityDatas.Add(qualityClass);
  136. /////////////////////////////////////////螺栓2_2///////////////////////////////////////////
  137. qualityClass = new QualityClass();
  138. qualityClass.Id = 11;
  139. qualityClass.StationCode = "OP20";
  140. qualityClass.Position = "螺栓2拧紧2";
  141. qualityClass.Item = "扭矩";
  142. qualityClass.Value = qualities.op20_nj22.ToString();
  143. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result22 == 0 ? 0 : qualities.op20_result22);
  144. qualityDatas.Add(qualityClass);
  145. qualityClass = new QualityClass();
  146. qualityClass.Id = 12;
  147. qualityClass.StationCode = "OP20";
  148. qualityClass.Position = "螺栓2拧紧2";
  149. qualityClass.Item = "角度";
  150. qualityClass.Value = qualities.op20_jd22.ToString();
  151. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result22 == 0 ? 0 : qualities.op20_result22);
  152. qualityDatas.Add(qualityClass);
  153. /////////////////////////////////////////螺栓3_2//////////////////////////////////////////
  154. qualityClass = new QualityClass();
  155. qualityClass.Id = 13;
  156. qualityClass.StationCode = "OP20";
  157. qualityClass.Position = "螺栓3拧紧2";
  158. qualityClass.Item = "扭矩";
  159. qualityClass.Value = qualities.op20_nj32.ToString();
  160. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result32 == 0 ? 0 : qualities.op20_result32);
  161. qualityDatas.Add(qualityClass);
  162. qualityClass = new QualityClass();
  163. qualityClass.Id = 14;
  164. qualityClass.StationCode = "OP20";
  165. qualityClass.Position = "螺栓3拧紧2";
  166. qualityClass.Item = "角度";
  167. qualityClass.Value = qualities.op20_jd32.ToString();
  168. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result32 == 0 ? 0 : qualities.op20_result32);
  169. qualityDatas.Add(qualityClass);
  170. /////////////////////////////////////////螺栓4_2//////////////////////////////////////////
  171. qualityClass = new QualityClass();
  172. qualityClass.Id = 15;
  173. qualityClass.StationCode = "OP20";
  174. qualityClass.Position = "螺栓4拧紧2";
  175. qualityClass.Item = "扭矩";
  176. qualityClass.Value = qualities.op20_nj42.ToString();
  177. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result42 == 0 ? 0 : qualities.op20_result42);
  178. qualityDatas.Add(qualityClass);
  179. qualityClass = new QualityClass();
  180. qualityClass.Id = 16;
  181. qualityClass.StationCode = "OP20";
  182. qualityClass.Position = "螺栓4拧紧2";
  183. qualityClass.Item = "角度";
  184. qualityClass.Value = qualities.op20_jd42.ToString();
  185. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result42 == 0 ? 0 : qualities.op20_result42);
  186. qualityDatas.Add(qualityClass);
  187. /////////////////////////////////////////螺栓1_3///////////////////////////////////////////
  188. qualityClass = new QualityClass();
  189. qualityClass.Id = 17;
  190. qualityClass.StationCode = "OP20";
  191. qualityClass.Position = "螺栓1拧紧3";
  192. qualityClass.Item = "扭矩";
  193. qualityClass.Value = qualities.op20_nj13.ToString();
  194. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result13 == 0 ? 0 : qualities.op20_result13);
  195. qualityDatas.Add(qualityClass);
  196. qualityClass = new QualityClass();
  197. qualityClass.Id = 18;
  198. qualityClass.StationCode = "OP20";
  199. qualityClass.Position = "螺栓1拧紧3";
  200. qualityClass.Item = "角度";
  201. qualityClass.Value = qualities.op20_jd13.ToString();
  202. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result13 == 0 ? 0 : qualities.op20_result13);
  203. qualityDatas.Add(qualityClass);
  204. /////////////////////////////////////////螺栓2_3///////////////////////////////////////////
  205. qualityClass = new QualityClass();
  206. qualityClass.Id = 19;
  207. qualityClass.StationCode = "OP20";
  208. qualityClass.Position = "螺栓2拧紧3";
  209. qualityClass.Item = "扭矩";
  210. qualityClass.Value = qualities.op20_nj23.ToString();
  211. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result23 == 0 ? 0 : qualities.op20_result23);
  212. qualityDatas.Add(qualityClass);
  213. qualityClass = new QualityClass();
  214. qualityClass.Id = 20;
  215. qualityClass.StationCode = "OP20";
  216. qualityClass.Position = "螺栓2拧紧3";
  217. qualityClass.Item = "角度";
  218. qualityClass.Value = qualities.op20_jd23.ToString();
  219. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result23 == 0 ? 0 : qualities.op20_result23);
  220. qualityDatas.Add(qualityClass);
  221. /////////////////////////////////////////螺栓3_3//////////////////////////////////////////
  222. qualityClass = new QualityClass();
  223. qualityClass.Id = 21;
  224. qualityClass.StationCode = "OP20";
  225. qualityClass.Position = "螺栓3拧紧3";
  226. qualityClass.Item = "扭矩";
  227. qualityClass.Value = qualities.op20_nj33.ToString();
  228. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result33 == 0 ? 0 : qualities.op20_result33);
  229. qualityDatas.Add(qualityClass);
  230. qualityClass = new QualityClass();
  231. qualityClass.Id = 22;
  232. qualityClass.StationCode = "OP20";
  233. qualityClass.Position = "螺栓3拧紧3";
  234. qualityClass.Item = "角度";
  235. qualityClass.Value = qualities.op20_jd33.ToString();
  236. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result33 == 0 ? 0 : qualities.op20_result33);
  237. qualityDatas.Add(qualityClass);
  238. /////////////////////////////////////////螺栓4_3//////////////////////////////////////////
  239. qualityClass = new QualityClass();
  240. qualityClass.Id = 23;
  241. qualityClass.StationCode = "OP20";
  242. qualityClass.Position = "螺栓4拧紧3";
  243. qualityClass.Item = "扭矩";
  244. qualityClass.Value = qualities.op20_nj43.ToString();
  245. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result43 == 0 ? 0 : qualities.op20_result43);
  246. qualityDatas.Add(qualityClass);
  247. qualityClass = new QualityClass();
  248. qualityClass.Id = 24;
  249. qualityClass.StationCode = "OP20";
  250. qualityClass.Position = "螺栓4拧紧3";
  251. qualityClass.Item = "角度";
  252. qualityClass.Value = qualities.op20_jd43.ToString();
  253. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result43 == 0 ? 0 : qualities.op20_result43);
  254. qualityDatas.Add(qualityClass);
  255. /////////////////////////////////////////螺栓1_4///////////////////////////////////////////
  256. qualityClass = new QualityClass();
  257. qualityClass.Id = 25;
  258. qualityClass.StationCode = "OP20";
  259. qualityClass.Position = "螺栓1拧紧4";
  260. qualityClass.Item = "扭矩";
  261. qualityClass.Value = qualities.op20_nj14.ToString();
  262. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result14 == 0 ? 0 : qualities.op20_result14);
  263. qualityDatas.Add(qualityClass);
  264. qualityClass = new QualityClass();
  265. qualityClass.Id = 26;
  266. qualityClass.StationCode = "OP20";
  267. qualityClass.Position = "螺栓1拧紧4";
  268. qualityClass.Item = "角度";
  269. qualityClass.Value = qualities.op20_jd14.ToString();
  270. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result14 == 0 ? 0 : qualities.op20_result14);
  271. qualityDatas.Add(qualityClass);
  272. /////////////////////////////////////////螺栓2_4///////////////////////////////////////////
  273. qualityClass = new QualityClass();
  274. qualityClass.Id = 27;
  275. qualityClass.StationCode = "OP20";
  276. qualityClass.Position = "螺栓2拧紧4";
  277. qualityClass.Item = "扭矩";
  278. qualityClass.Value = qualities.op20_nj24.ToString();
  279. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result24 == 0 ? 0 : qualities.op20_result24);
  280. qualityDatas.Add(qualityClass);
  281. qualityClass = new QualityClass();
  282. qualityClass.Id = 28;
  283. qualityClass.StationCode = "OP20";
  284. qualityClass.Position = "螺栓2拧紧4";
  285. qualityClass.Item = "角度";
  286. qualityClass.Value = qualities.op20_jd24.ToString();
  287. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result24 == 0 ? 0 : qualities.op20_result24);
  288. qualityDatas.Add(qualityClass);
  289. /////////////////////////////////////////螺栓3_4//////////////////////////////////////////
  290. qualityClass = new QualityClass();
  291. qualityClass.Id = 29;
  292. qualityClass.StationCode = "OP20";
  293. qualityClass.Position = "螺栓3拧紧4";
  294. qualityClass.Item = "扭矩";
  295. qualityClass.Value = qualities.op20_nj34.ToString();
  296. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result34 == 0 ? 0 : qualities.op20_result34);
  297. qualityDatas.Add(qualityClass);
  298. qualityClass = new QualityClass();
  299. qualityClass.Id = 30;
  300. qualityClass.StationCode = "OP20";
  301. qualityClass.Position = "螺栓3拧紧4";
  302. qualityClass.Item = "角度";
  303. qualityClass.Value = qualities.op20_jd34.ToString();
  304. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result34 == 0 ? 0 : qualities.op20_result34);
  305. qualityDatas.Add(qualityClass);
  306. /////////////////////////////////////////螺栓4_4//////////////////////////////////////////
  307. qualityClass = new QualityClass();
  308. qualityClass.Id = 31;
  309. qualityClass.StationCode = "OP20";
  310. qualityClass.Position = "螺栓4拧紧4";
  311. qualityClass.Item = "扭矩";
  312. qualityClass.Value = qualities.op20_nj44.ToString();
  313. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result44 == 0 ? 0 : qualities.op20_result44);
  314. qualityDatas.Add(qualityClass);
  315. qualityClass = new QualityClass();
  316. qualityClass.Id = 32;
  317. qualityClass.StationCode = "OP20";
  318. qualityClass.Position = "螺栓4拧紧4";
  319. qualityClass.Item = "角度";
  320. qualityClass.Value = qualities.op20_jd44.ToString();
  321. qualityClass.IsOk = Convert.ToInt32(qualities.op20_result44 == 0 ? 0 : qualities.op20_result44);
  322. qualityDatas.Add(qualityClass);
  323. View.Qualities = qualityDatas;
  324. #endregion
  325. SendMsg.SendMsgToStation(StationInfo.StationCode, "Qualities", View.Qualities);
  326. }
  327. //回写保存完成
  328. Write(1120, (byte)1);
  329. }
  330. else
  331. {
  332. //保存完成,复位
  333. Barcodes_Dic.Clear();
  334. ProductCycleTime=ExecDateDiff(ArrivedTime, DateTime.Now);
  335. ArrivedTime = DateTime.Now;
  336. }
  337. }
  338. catch (Exception ex)
  339. {
  340. LogHelper.WriteLog(LogHelper.GetMethodInfo(), ex);
  341. }
  342. }
  343. }
  344. }