1
schangxiang@126.com
2024-09-10 c34f8f93417c5a0125f9c55ba3d347411995ac13
DataCapture/iWare_SCADA_DataCapture/iWare_SCADA_BusinessLogical/DataCaptureHandlerV2/Special/DataCaptureHandler_OP1004.cs
@@ -1,4 +1,5 @@
using iWare_SCADA_BusinessLogical.BLL;
using iWare_SCADA_BusinessLogical.BLL.Important;
using iWare_SCADA_BusinessLogical.Utils;
using iWare_SCADA_Model;
using System;
@@ -84,18 +85,19 @@
                        else
                        {
                            var value = plcService.ReadValuePoint(_dataCaptureConfig.DbNumber, _dataCaptureConfig.Offset, PLCManger.GetTypeForString(_dataCaptureConfig.DataCaptureColumnType));
                            if (SystemValue.value_OP1004.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE"))
                            {//当上一标记位0,当前获取标记为1时,
                             //触发操作,  并给静态变量赋值为1
                             //业务代码  1.取推出标记,2取推出原因(1:nok,2和3:spc,4:状态不明  5:二维码识别失败 ),3 取推出二维码
                                threadStatusMonitor.Threadlastmodifytime = DateTime.Now;
                                WorkPieceLogMiddle wplog = new WorkPieceLogMiddle();
                            WorkPieceLogMiddle wplog = null;
                            var value_bool = value.ToString().ToUpper().Equals("TRUE");
                            if (value_bool)
                            {
                                wplog = new WorkPieceLogMiddle();
                                wplog.Id = Yitter.IdGenerator.YitIdHelper.NextId();
                                wplog.WorkingProcedure = WorkingProcedure;
                                wplog.EquipmentID = _dataCaptureConfig.EquipmentID;
                                wplog.MonitoringPoint = DataCapturePointCode;
                                //wplog.CreatedUserName = DataCapturePointCode;
                                SystemBussinessHelper.SetWorkPieceLogMiddleForCreatedUserName(ref wplog, DataCapturePointCode, DataCapturePointCname);
                                wplog.CreatedTime = DateTimeHelper.GetDateTime();
                                wplog.CreatedUserName = DataCapturePointCode;
                                wplog.UpdatedTime = DateTimeHelper.GetDateTime();
                                wplog.UpdatedUserName = Environment.MachineName + "自动" + Thread.CurrentThread.ManagedThreadId.ToString();
                                wplog.OnlineTime = DateTimeHelper.GetDateTime();
@@ -119,37 +121,62 @@
                                        Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序监控读码标记 读取工件码动态赋值【{WorkingProcedure ?? "空字符串"}】异常{wplog.Id}", setex);
                                    }
                                }
                                if (wplog.OP10Flag != "1" && wplog.OP10Flag != "2" && wplog.OP10Flag != "3")
                                {//获取到的工件号异常
                                    Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序监控读码标记 读取工件码数据{wplog.WorkPieceID}推出原因[{wplog.OP10Flag}]异常");
                                    wplog.Remarks = $"推出原因[{wplog.OP10Flag}]异常";
                                }
                                if (wplog.OP10Flag == "1")
                                {
                                    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序1监控读码标记 读取工件码数据{wplog.WorkPieceID}推出原因[{wplog.OP10Flag}]");
                                    WorkPieceInfoManager.WorkPiecePushOff(wplog, LogType.PLCOP10);
                                    threadStatusMonitor.Threadstatue = 1;
                                    wplog.Remarks =$"推出原因[{wplog.OP10Flag}]   NOOK";
                                }
                                //else if (wplog.OP10Flag == 2 || wplog.OP10Flag == 3)
                                else
                                {
                                    Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序23监控读码标记 读取工件码数据{wplog.WorkPieceID}推出原因[{wplog.OP10Flag}]");
                                    WorkPieceInfoManager.WorkPieceSPCPushOff(wplog, LogType.PLCOP10);
                                    wplog.Remarks = $"推出原因[{wplog.OP10Flag}]   SPC";
                                    threadStatusMonitor.Threadstatue = 1;
                                }
                                //监控上线
                                MonitorHelper.MonitorTestForLine(_dataCaptureConfig, value, colConfig, wplog.WorkPieceID);
                            }
                            SystemValue.value_OP1004 = value.ToString();
                            else
                            {
                                SystemValue.value_OP1004 = value.ToString();
                            }
                            if (wplog != null)
                            {
                                var isRight = SystemBussinessHelper.ValidateIsRightWorkPieceID(wplog.WorkPieceID);
                                if (isRight)
                                {
                                    #region 处理业务
                                    if (SystemValue.value_OP1004.ToUpper().Equals("FALSE") && value.ToString().ToUpper().Equals("TRUE"))
                                    {//当上一标记位0,当前获取标记为1时,
                                     //触发操作,  并给静态变量赋值为1
                                     //业务代码  1.取推出标记,2取推出原因(1:nok,2和3:spc,4:状态不明  5:二维码识别失败 ),3 取推出二维码
                                        threadStatusMonitor.Threadlastmodifytime = DateTime.Now;
                                        if (wplog.OP10Flag != "1" && wplog.OP10Flag != "2" && wplog.OP10Flag != "3")
                                        {//获取到的工件号异常
                                            Log4NetHelper.WriteErrorLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序监控读码标记 读取工件码数据{wplog.WorkPieceID}推出原因[{wplog.OP10Flag}]异常");
                                            wplog.Remarks = $"推出原因[{wplog.OP10Flag}]异常";
                                        }
                                        if (wplog.OP10Flag == "1")
                                        {
                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序1监控读码标记 读取工件码数据{wplog.WorkPieceID}推出原因[{wplog.OP10Flag}]");
                                            WorkPiecePushOffManager.WorkPiecePushOff(wplog, LogType.PLCOP10);
                                            threadStatusMonitor.Threadstatue = 1;
                                            wplog.Remarks = $"推出原因[{wplog.OP10Flag}]   NOOK";
                                        }
                                        //else if (wplog.OP10Flag == 2 || wplog.OP10Flag == 3)
                                        else
                                        {
                                            Log4NetHelper.WriteInfoLog(PLCManger.GetLogTypeForWorkingProcedure(WorkingProcedure), $" {DataCapturePointCode}工序23监控读码标记 读取工件码数据{wplog.WorkPieceID}推出原因[{wplog.OP10Flag}]");
                                            WorkPieceSPCPushOffManager.WorkPieceSPCPushOff(wplog, LogType.PLCOP10);
                                            wplog.Remarks = $"推出原因[{wplog.OP10Flag}]   SPC";
                                            threadStatusMonitor.Threadstatue = 1;
                                        }
                                    }
                                    SystemValue.value_OP1004 = value.ToString();
                                    #endregion
                                }
                            }
                        }
                        SystemValue.lbl_Alert_OP1004 = $"abcdefg:{RandomHelper.GenerateRandomCode(4)}";
                        if (!_dataCaptureConfig.DataCaptureFrequency.HasValue || _dataCaptureConfig.DataCaptureFrequency < 10)