MXComponent_HCQ_XZ.cs 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Threading;
  5. using System.Threading.Tasks;
  6. using ProjectBase.Data.BaseDAL;
  7. using ProjectBase.Data.Logs;
  8. using SIMDP.BLL;
  9. using SIMDP.Device;
  10. using SIMDP.Model;
  11. using SIMDP.Util;
  12. using ACTMULTILib;
  13. namespace SIMDP.Project
  14. {
  15. class MXComponent_HCQ_XZ : MXComponent_HCQ
  16. {
  17. #region 重写父类函数
  18. public override void actionOpen()
  19. { }
  20. public override void actionStart()
  21. { }
  22. public override void actionStop()
  23. { }
  24. bool pcHeartBeat = false;
  25. public override void actionTimer()
  26. {
  27. try
  28. {
  29. // 心跳信号
  30. pcHeartBeat = !pcHeartBeat;
  31. bool res1 = Write("PC心跳信号", pcHeartBeat);
  32. // 轮询监控节点
  33. foreach (var p in monitorPoints)
  34. {
  35. short value;
  36. if (!Read(p, out value)) continue;
  37. if (value != Convert.ToInt16(p.value))
  38. {
  39. p.value = value;
  40. if (p.proc != null)
  41. p.proc.Invoke(this, new object[] { value });
  42. }
  43. }
  44. redis.Publish<string>(SysEnvironment.OpcDataChannel, "");
  45. }
  46. catch (Exception ex)
  47. {
  48. LogHelper.log.Error("读取PLC信号发生异常:" + ex.Message);
  49. actEasyIF.Close();
  50. SetRedisPlcDisConnect();
  51. }
  52. }
  53. #endregion
  54. #region 生产过程_缓冲器2
  55. public void 缓冲器2芯子压机压装完成(object value)
  56. {
  57. bool signal = Convert.ToBoolean(value);
  58. LogHelper.log.Debug("缓冲器2芯子压机压装完成: signal = " + signal.ToString());
  59. if (!signal)
  60. {
  61. Write("芯子读取完成", false);
  62. 芯子压机结果 = false;
  63. 芯子压机关联流水号 = 0;
  64. 芯子压机加工步骤号 = 0;
  65. return;
  66. }
  67. if (signal)
  68. {
  69. Read("芯子压机结果", out 芯子压机结果);//true
  70. Read("芯子压机关联流水号", out 芯子压机关联流水号);//工件流水号
  71. Read("芯子压机加工步骤号", out 芯子压机加工步骤号);//2
  72. }
  73. if (process_HCQ2[缓冲器2工序.芯子压机].Count == 0)
  74. {
  75. Tool.LogAndNotice("生产过程报警", 3, "缓冲器2工序.芯子压机: 生产序列无数据");
  76. Write("芯子读取完成", true);
  77. return;
  78. }
  79. ProductionData_HCQ2 data = process_HCQ2[缓冲器2工序.芯子压机][0];
  80. data.dict["芯子压机结果"] = 芯子压机结果 ? "OK" : "NG";
  81. LogHelper.log.Debug("更新芯子压机结果: " + 芯子压机结果.ToString());
  82. BLLFactory<BlProductData>.Instance.Update(data.toModel(), data.model.DataId);
  83. process_HCQ2[缓冲器2工序.芯子压机].RemoveAt(0);
  84. process_HCQ2[缓冲器2工序.壳体压机].Add(data);
  85. Write("芯子读取完成", true);
  86. }
  87. #endregion
  88. }
  89. }