using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Threading.Tasks; using ProjectBase.Data.BaseDAL; using ProjectBase.Data.Logs; using SIMDP.BLL; using SIMDP.Device; using SIMDP.Model; using SIMDP.Util; using ACTMULTILib; namespace SIMDP.Project { class MXComponent_HCQ_XZ : MXComponent_HCQ { #region 重写父类函数 public override void actionOpen() { } public override void actionStart() { } public override void actionStop() { } bool pcHeartBeat = false; public override void actionTimer() { try { // 心跳信号 pcHeartBeat = !pcHeartBeat; bool res1 = Write("PC心跳信号", pcHeartBeat); // 轮询监控节点 foreach (var p in monitorPoints) { short value; if (!Read(p, out value)) continue; if (value != Convert.ToInt16(p.value)) { p.value = value; if (p.proc != null) p.proc.Invoke(this, new object[] { value }); } } redis.Publish(SysEnvironment.OpcDataChannel, ""); } catch (Exception ex) { LogHelper.log.Error("读取PLC信号发生异常:" + ex.Message); actEasyIF.Close(); SetRedisPlcDisConnect(); } } #endregion #region 生产过程_缓冲器2 public void 缓冲器2芯子压机压装完成(object value) { bool signal = Convert.ToBoolean(value); LogHelper.log.Debug("缓冲器2芯子压机压装完成: signal = " + signal.ToString()); if (!signal) { Write("芯子读取完成", false); 芯子压机结果 = false; 芯子压机关联流水号 = 0; 芯子压机加工步骤号 = 0; return; } if (signal) { Read("芯子压机结果", out 芯子压机结果);//true Read("芯子压机关联流水号", out 芯子压机关联流水号);//工件流水号 Read("芯子压机加工步骤号", out 芯子压机加工步骤号);//2 } if (process_HCQ2[缓冲器2工序.芯子压机].Count == 0) { Tool.LogAndNotice("生产过程报警", 3, "缓冲器2工序.芯子压机: 生产序列无数据"); Write("芯子读取完成", true); return; } ProductionData_HCQ2 data = process_HCQ2[缓冲器2工序.芯子压机][0]; data.dict["芯子压机结果"] = 芯子压机结果 ? "OK" : "NG"; LogHelper.log.Debug("更新芯子压机结果: " + 芯子压机结果.ToString()); BLLFactory.Instance.Update(data.toModel(), data.model.DataId); process_HCQ2[缓冲器2工序.芯子压机].RemoveAt(0); process_HCQ2[缓冲器2工序.壳体压机].Add(data); Write("芯子读取完成", true); } #endregion } }