chenxy пре 4 година
родитељ
комит
3c4ef90ebf

+ 8 - 0
HG5020.3/PLC_S/Core/PLC_S_Core.cs

@@ -245,6 +245,14 @@ namespace PLC_S
         public string Add_F_CodeNum;
         public string Add_Error;
         public string Add_ErrorNum;
+        public string USER_CODE;
+        /// <summary>
+        /// 防伪码(为空时,不启用防伪码)
+        /// </summary>
+        public string Add_SE_Code1;
+        public string Add_SE_Code1Num;
+        public string Add_SE_Code2;
+        public string Add_SE_Code2Num;
     }
     /// <summary>
     /// 产品型号+条码 3#1楼试水

+ 13 - 1
HG5020.3/PLC_S/PLC_S_INI/PLC_S_GC_KL.ini

@@ -39,6 +39,12 @@ Add_F_Code=D
 Add_F_CodeNum=151.2
 Add_Error=D
 Add_ErrorNum=151.2
+USER_CODE=
+;防伪码(为空时,不启用防伪码)
+Add_SE_Code1=
+Add_SE_Code1Num=200.0
+Add_SE_Code2=D
+Add_SE_Code2Num=200.0
 
 ;产品型号+条码 登窑前
 [GC_KL12]
@@ -52,4 +58,10 @@ Add_CodeNum=151.58
 Add_F_Code=D
 Add_F_CodeNum=151.40
 Add_Error=D
-Add_ErrorNum=151.40
+Add_ErrorNum=151.40
+USER_CODE=
+;防伪码(为空时,不启用防伪码)
+Add_SE_Code1=
+Add_SE_Code1Num=200.0
+Add_SE_Code2=D
+Add_SE_Code2Num=200.0

+ 1 - 1
HG5020.3/PLC_S/PLC_S_INI/PLC_S_GL_QR.ini

@@ -27,10 +27,10 @@ Add_CodeNum=46.0
 IP=172.18.30.101
 Port=102
 P_ID=99
-USER_CODE=
 ;扫码结果:【1:通过,2:扫码异常,3:工序异常,0:复位】
 Add_Code=D
 Add_CodeNum=200.0
+USER_CODE=
 ;防伪码(为空时,不启用防伪码)
 Add_SE_Code1=
 Add_SE_Code1Num=200.0

+ 15 - 10
HG5020.3/PLC_S/ServerModel/Glazing_After.cs

@@ -243,6 +243,7 @@ namespace PLC_S.ServerModel
                 float g_p = 0;
                 string roomcode = null;
                 string p_id = "";
+                string se_flag = null;
                 using (IDataAccess dataAccess = PLC_S_DataAccess.GetDataAccess())
                 {
                     DataRow codeRow = GetGoodsCode(dataAccess, barcode, e, logKeyE);
@@ -399,10 +400,13 @@ update tp_pm_groutingdailydetail set
                     outputMessage = $"[{e.Content}]DB_Glazing[{r}]{plc_s.WS_NAME}[流量{g_f}][喷幅{g_s}][釉温{g_t}][釉压{g_p}]";
                     Logger.Trace(outputMessage, logKeyT, logger_t);
                     FormLogShow?.ShowLog(outputMessage);
+
+                    // 是否启用防伪码 TODO
+                    se_flag = dataAccess.ExecuteScalar("select t.settingvalue from tp_mst_systemsetting t where t.settingcode = ''") + "";
                 }
 
                 #region 防伪码
-                if (!string.IsNullOrWhiteSpace(plc_s.Add_SE_Code1))
+                if ("1" == se_flag && !string.IsNullOrWhiteSpace(plc_s.Add_SE_Code1))
                 {
                     // 读取防伪码
                     //outputMessage = $"[{e.Content}]GET_SE_Code1=[ ]{plc_s.Add_SE_Code1 + plc_s.Add_SE_Code1Num}";
@@ -413,23 +417,24 @@ update tp_pm_groutingdailydetail set
                     Logger.Trace(outputMessage, logKeyT, logger_t);
                     FormLogShow?.ShowLog(outputMessage);
 
-                    //outputMessage = $"[{e.Content}]GET_SE_Code2=[ ]{plc_s.Add_SE_Code2 + plc_s.Add_SE_Code2Num}";
+                    // 2个PLC地址 OR 1个? TODO
+                    ////outputMessage = $"[{e.Content}]GET_SE_Code2=[ ]{plc_s.Add_SE_Code2 + plc_s.Add_SE_Code2Num}";
+                    ////Logger.Trace(outputMessage, logKeyT, logger_t);
+                    ////FormLogShow?.ShowLog(outputMessage);
+                    //PLCResult<string> se2_result = plc.Read<string>(plc_s.Add_SE_Code2, plc_s.Add_SE_Code2Num, 12);
+                    //outputMessage = $"[{e.Content}]END_SE_Code2=[{se2_result.Data}]{plc_s.Add_SE_Code2 + plc_s.Add_SE_Code2Num}";
                     //Logger.Trace(outputMessage, logKeyT, logger_t);
                     //FormLogShow?.ShowLog(outputMessage);
-                    PLCResult<string> se2_result = plc.Read<string>(plc_s.Add_SE_Code2, plc_s.Add_SE_Code2Num, 12);
-                    outputMessage = $"[{e.Content}]END_SE_Code2=[{se2_result.Data}]{plc_s.Add_SE_Code2 + plc_s.Add_SE_Code2Num}";
-                    Logger.Trace(outputMessage, logKeyT, logger_t);
-                    FormLogShow?.ShowLog(outputMessage);
 
                     string se_code = null;
                     if (!string.IsNullOrWhiteSpace(se1_result.Data) && !se1_result.Data.StartsWith("0"))
                     {
                         se_code = se1_result.Data;
                     }
-                    else if (!string.IsNullOrWhiteSpace(se2_result.Data) && !se2_result.Data.StartsWith("0"))
-                    {
-                        se_code = se2_result.Data;
-                    }
+                    //else if (!string.IsNullOrWhiteSpace(se2_result.Data) && !se2_result.Data.StartsWith("0"))
+                    //{
+                    //    se_code = se2_result.Data;
+                    //}
                     if (string.IsNullOrWhiteSpace(se_code))
                     {
                         SendError(plc_s, e, logKeyT, logKeyE, plc, 4);

+ 126 - 14
HG5020.3/PLC_S/ServerModel/GoodsCode_KL.cs

@@ -23,6 +23,7 @@ namespace PLC_S.ServerModel
     {
         public Dictionary<string, PLC_S_GC_KL> PLC_FLAGS = new Dictionary<string, PLC_S_GC_KL>();
         public const string M_NAME = "GC_KL";
+        private MES_S _mes_s = null;
 
         private readonly Logger logger = Logger.CreateLogger(M_NAME);
         private readonly LogInfo logger_t = new LogInfo();
@@ -63,6 +64,8 @@ namespace PLC_S.ServerModel
 
             this.ServerMessage += ServerSocket_ServerMessage;
             this.Received += ServerSocket_Received;
+
+            _mes_s = MES_S.Get();
         }
 
         #region Server
@@ -259,6 +262,82 @@ namespace PLC_S.ServerModel
                         return;
                     }
 
+                    #region 防伪码
+                    //string se_flag = null;
+                    //using (IDataAccess dataAccess = PLC_S_DataAccess.GetDataAccess())
+                    //{
+                    //    // 是否启用防伪码 TODO
+                    //    se_flag = dataAccess.ExecuteScalar("select t.settingvalue from tp_mst_systemsetting t where t.settingcode = ''") + "";
+                    //}
+                    //if (!string.IsNullOrWhiteSpace(plc_s.Add_SE_Code1))
+                    //{
+                    //    // 读取防伪码
+                    //    outputMessage = $"[{e.Content}]GET_SE_Code1=[ ]{plc_s.Add_SE_Code1 + plc_s.Add_SE_Code1Num}";
+                    //    Logger.Trace(outputMessage, logKeyT, logger_t);
+                    //    FormLogShow?.ShowLog(outputMessage);
+                    //    PLCResult<string> se1_result = plc.Read<string>(plc_s.Add_SE_Code1, plc_s.Add_SE_Code1Num, 12);
+                    //    outputMessage = $"[{e.Content}]END_SE_Code1=[{se1_result.Data}]{se1_result}";
+                    //    Logger.Trace(outputMessage, logKeyT, logger_t);
+                    //    FormLogShow?.ShowLog(outputMessage);
+
+                    //    ////outputMessage = $"[{e.Content}]GET_SE_Code2=[ ]{plc_s.Add_SE_Code2 + plc_s.Add_SE_Code2Num}";
+                    //    ////Logger.Trace(outputMessage, logKeyT, logger_t);
+                    //    ////FormLogShow?.ShowLog(outputMessage);
+                    //    //PLCResult<string> se2_result = plc.Read<string>(plc_s.Add_SE_Code2, plc_s.Add_SE_Code2Num, 12);
+                    //    //outputMessage = $"[{e.Content}]END_SE_Code2=[{se2_result.Data}]{plc_s.Add_SE_Code2 + plc_s.Add_SE_Code2Num}";
+                    //    //Logger.Trace(outputMessage, logKeyT, logger_t);
+                    //    //FormLogShow?.ShowLog(outputMessage);
+
+                    //    string se_code = "";
+                    //    if (!string.IsNullOrWhiteSpace(se1_result.Data) && !se1_result.Data.StartsWith("0"))
+                    //    {
+                    //        se_code = se1_result.Data;
+                    //    }
+                    //    //else if (!string.IsNullOrWhiteSpace(se2_result.Data) && !se2_result.Data.StartsWith("0"))
+                    //    //{
+                    //    //    se_code = se2_result.Data;
+                    //    //}
+                    //    if (string.IsNullOrWhiteSpace(se_code))
+                    //    {
+                    //        SendCode(plc_s, e, logKeyT, logKeyE, plc, 4);
+                    //        return;
+                    //    }
+                    //    string result = Proxy.SmartDeviceProxy.Instance.Invoke<string>(
+                    //        p => p.CheckSecurityCodeByBarcode(
+                    //            _mes_s.AccountCode,
+                    //            plc_s.USER_CODE,
+                    //            barcode,
+                    //            se_code
+                    //            ));
+
+                    //    outputMessage = $"[{e.Content}]SE_Result=[{result}]{se_code}[{plc_s.USER_CODE}]";
+                    //    Logger.Trace(outputMessage, logKeyT, logger_t);
+                    //    FormLogShow?.ShowLog(outputMessage);
+
+                    //    // 返回状态(成功、失败)
+                    //    if (result != "OK")
+                    //    {
+                    //        if (result == "EX")
+                    //        {
+                    //            outputMessage = $"MES服务端异常(详情参见MES端日志)";
+                    //        }
+                    //        else if (result == "EU-01")
+                    //        {
+                    //            outputMessage = $"无效的帐套或工号(详情参见MES端日志)";
+                    //        }
+                    //        else
+                    //        {
+                    //            outputMessage = $"其他错误(详情参见MES端日志)[{result}]";
+                    //        }
+                    //        Logger.Error(null, outputMessage, logKeyT, logger_t);
+                    //        Logger.Error(null, outputMessage, logKeyE, logger_e);
+                    //        FormLogShow?.ShowLog(outputMessage);
+                    //        SendCode(plc_s, e, logKeyT, logKeyE, plc, 5);
+                    //        return;
+                    //    }
+                    //}
+                    #endregion
+
                     // 写入PLC 条码
                     outputMessage = $"[{e.Content}]SET_BarCode=[{barcode}]{plc_s.Add_BarCode + plc_s.Add_BarCodeNum}";
                     Logger.Trace(outputMessage, logKeyT, logger_t);
@@ -281,24 +360,26 @@ namespace PLC_S.ServerModel
                     if (p_id != "100")
                     {
                         //2.状态(int)【3:产品不可到达】
-                        outputMessage = $"[{e.Content}]SET_F_Code=[3]{plc_s.Add_F_Code + plc_s.Add_F_CodeNum}";
-                        Logger.Trace(outputMessage, logKeyT, logger_t);
-                        FormLogShow?.ShowLog(outputMessage);
-                        p_r = plc?.Write<short>(plc_s.Add_F_Code, plc_s.Add_F_CodeNum, (short)3);
-                        outputMessage = $"[{e.Content}]END_F_Code=[{p_r}]{plc_s.Add_F_Code + plc_s.Add_F_CodeNum}";
-                        Logger.Trace(outputMessage, logKeyT, logger_t);
-                        FormLogShow?.ShowLog(outputMessage);
+                        //outputMessage = $"[{e.Content}]SET_F_Code=[3]{plc_s.Add_F_Code + plc_s.Add_F_CodeNum}";
+                        //Logger.Trace(outputMessage, logKeyT, logger_t);
+                        //FormLogShow?.ShowLog(outputMessage);
+                        //p_r = plc?.Write<short>(plc_s.Add_F_Code, plc_s.Add_F_CodeNum, (short)3);
+                        //outputMessage = $"[{e.Content}]END_F_Code=[{p_r}]{plc_s.Add_F_Code + plc_s.Add_F_CodeNum}";
+                        //Logger.Trace(outputMessage, logKeyT, logger_t);
+                        //FormLogShow?.ShowLog(outputMessage);
+                        SendCode(plc_s, e, logKeyT, logKeyE, plc, 3);
                         return;
                     }
 
                     //2.状态(int)【0:无,1:PLC等待读取;2.PLC读取完成】
-                    outputMessage = $"[{e.Content}]SET_F_Code=[1]{plc_s.Add_F_Code + plc_s.Add_F_CodeNum}";
-                    Logger.Trace(outputMessage, logKeyT, logger_t);
-                    FormLogShow?.ShowLog(outputMessage);
-                    p_r = plc?.Write<short>(plc_s.Add_F_Code, plc_s.Add_F_CodeNum, (short)1);
-                    outputMessage = $"[{e.Content}]END_F_Code=[{p_r}]{plc_s.Add_F_Code + plc_s.Add_F_CodeNum}";
-                    Logger.Trace(outputMessage, logKeyT, logger_t);
-                    FormLogShow?.ShowLog(outputMessage);
+                    //outputMessage = $"[{e.Content}]SET_F_Code=[1]{plc_s.Add_F_Code + plc_s.Add_F_CodeNum}";
+                    //Logger.Trace(outputMessage, logKeyT, logger_t);
+                    //FormLogShow?.ShowLog(outputMessage);
+                    //p_r = plc?.Write<short>(plc_s.Add_F_Code, plc_s.Add_F_CodeNum, (short)1);
+                    //outputMessage = $"[{e.Content}]END_F_Code=[{p_r}]{plc_s.Add_F_Code + plc_s.Add_F_CodeNum}";
+                    //Logger.Trace(outputMessage, logKeyT, logger_t);
+                    //FormLogShow?.ShowLog(outputMessage);
+                    SendCode(plc_s, e, logKeyT, logKeyE, plc, 1);
 
                     ////3.通信异常标识(int)【0:正常,1:后台处理异常,报警】
                     //outputMessage = $"[{e.Content}]SET_ErrorNum=[0]{plc_s.Add_Error + plc_s.Add_ErrorNum}";
@@ -335,6 +416,31 @@ namespace PLC_S.ServerModel
             }
         }
 
+        private void SendCode(PLC_S_GC_KL plc_s, ReceiveSession e, string loggerNameT,
+            string loggerNameE, SocketClient<SiemensS7_1200Model> plc, short code)
+        {
+            try
+            {
+                //using (SocketClient<SiemensS7_1200Model> plc = new SocketClient<SiemensS7_1200Model>())
+                {
+                    // 扫码结果:【0:复位 1:通过 2:扫码异常 3:工序异常 4:防伪码读取错误 5:防伪码绑定错误】
+                    string outputMessage = $"[{e.Content}]SET_CODE=[{code}]{plc_s.Add_F_Code + plc_s.Add_F_CodeNum}【1:完成 3:前工序不是[3#釉坯库(入)] 4:防伪码读取错误 5:防伪码验证错误】";
+                    Logger.Trace(outputMessage, loggerNameT, logger_t);
+                    FormLogShow?.ShowLog(outputMessage);
+                    PLCResult p_r = plc?.Write<short>(plc_s.Add_F_Code, plc_s.Add_F_CodeNum, code);
+                    outputMessage = $"[{e.Content}]END_CODE=[{p_r}]{plc_s.Add_F_Code + plc_s.Add_F_CodeNum}";
+                    Logger.Trace(outputMessage, loggerNameT, logger_t);
+                    FormLogShow?.ShowLog(outputMessage);
+                }
+            }
+            catch (Exception ex)
+            {
+                Logger.Error(ex, $"[{e.Content}]ERROR-SendCode", loggerNameT, logger_t);
+                Logger.Error(ex, $"[{e.Content}]ERROR-SendCode", loggerNameE, logger_e);
+                FormLogShow?.ShowLog($"[{e.Content}]ERROR-SendCode={ex.Message}");
+            }
+        }
+
         private void SendError(PLC_S_GC_KL plc_s, ReceiveSession e, string loggerNameT,
             string loggerNameE, SocketClient<SiemensS7_1200Model> plc)
         {
@@ -417,6 +523,12 @@ namespace PLC_S.ServerModel
                     plc_s.Add_Error = ini.Read(flag, "Add_Error");
                     plc_s.Add_ErrorNum = ini.Read(flag, "Add_ErrorNum");
 
+                    plc_s.USER_CODE = ini.Read(flag, "USER_CODE");
+                    plc_s.Add_SE_Code1 = ini.Read(flag, "Add_SE_Code1");
+                    plc_s.Add_SE_Code1Num = ini.Read(flag, "Add_SE_Code1Num");
+                    plc_s.Add_SE_Code2 = ini.Read(flag, "Add_SE_Code2");
+                    plc_s.Add_SE_Code2Num = ini.Read(flag, "Add_SE_Code2Num");
+
                     PLC_FLAGS.Add(flag, plc_s);
                     return plc_s;
                 }

+ 16 - 11
HG5020.3/PLC_S/ServerModel/GoodsLevel_QR2.cs

@@ -245,6 +245,7 @@ namespace PLC_S.ServerModel
 
                 string usercode = "";
                 string p_id = "";
+                string se_flag = null;
                 using (IDataAccess dataAccess = PLC_S_DataAccess.GetDataAccess())
                 {
                     string sqlString = "select gdd.GOODSLEVELTYPEID,g.goodstypeid, inp.flowprocedureid\n" +
@@ -294,37 +295,40 @@ namespace PLC_S.ServerModel
                     outputMessage = $"[{e.Content}]DB_UserCode=[{usercode}]";
                     Logger.Trace(outputMessage, logKeyT, logger_t);
                     FormLogShow?.ShowLog(outputMessage);
+
+                    // 是否启用防伪码 TODO
+                    se_flag = dataAccess.ExecuteScalar("select t.settingvalue from tp_mst_systemsetting t where t.settingcode = ''") + "";
                 }
 
                 #region 防伪码
-                if (!string.IsNullOrWhiteSpace(plc_s.Add_SE_Code1))
+                if ("1" == se_flag && !string.IsNullOrWhiteSpace(plc_s.Add_SE_Code1))
                 {
                     // 读取防伪码
                     //outputMessage = $"[{e.Content}]GET_SE_Code1=[ ]{plc_s.Add_SE_Code1 + plc_s.Add_SE_Code1Num}";
                     //Logger.Trace(outputMessage, logKeyT, logger_t);
                     //FormLogShow?.ShowLog(outputMessage);
                     PLCResult<string> se1_result = plc.Read<string>(plc_s.Add_SE_Code1, plc_s.Add_SE_Code1Num, 12);
-                    outputMessage = $"[{e.Content}]END_SE_Code1=[{se1_result.Data}]{plc_s.Add_SE_Code1 + plc_s.Add_SE_Code1Num}";
+                    outputMessage = $"[{e.Content}]END_SE_Code1=[{se1_result.Data}]{se1_result}";
                     Logger.Trace(outputMessage, logKeyT, logger_t);
                     FormLogShow?.ShowLog(outputMessage);
 
-                    //outputMessage = $"[{e.Content}]GET_SE_Code2=[ ]{plc_s.Add_SE_Code2 + plc_s.Add_SE_Code2Num}";
+                    ////outputMessage = $"[{e.Content}]GET_SE_Code2=[ ]{plc_s.Add_SE_Code2 + plc_s.Add_SE_Code2Num}";
+                    ////Logger.Trace(outputMessage, logKeyT, logger_t);
+                    ////FormLogShow?.ShowLog(outputMessage);
+                    //PLCResult<string> se2_result = plc.Read<string>(plc_s.Add_SE_Code2, plc_s.Add_SE_Code2Num, 12);
+                    //outputMessage = $"[{e.Content}]END_SE_Code2=[{se2_result.Data}]{plc_s.Add_SE_Code2 + plc_s.Add_SE_Code2Num}";
                     //Logger.Trace(outputMessage, logKeyT, logger_t);
                     //FormLogShow?.ShowLog(outputMessage);
-                    PLCResult<string> se2_result = plc.Read<string>(plc_s.Add_SE_Code2, plc_s.Add_SE_Code2Num, 12);
-                    outputMessage = $"[{e.Content}]END_SE_Code2=[{se2_result.Data}]{plc_s.Add_SE_Code2 + plc_s.Add_SE_Code2Num}";
-                    Logger.Trace(outputMessage, logKeyT, logger_t);
-                    FormLogShow?.ShowLog(outputMessage);
 
                     string se_code = "";
                     if (!string.IsNullOrWhiteSpace(se1_result.Data) && !se1_result.Data.StartsWith("0"))
                     {
                         se_code = se1_result.Data;
                     }
-                    else if (!string.IsNullOrWhiteSpace(se2_result.Data) && !se2_result.Data.StartsWith("0"))
-                    {
-                        se_code = se2_result.Data;
-                    }
+                    //else if (!string.IsNullOrWhiteSpace(se2_result.Data) && !se2_result.Data.StartsWith("0"))
+                    //{
+                    //    se_code = se2_result.Data;
+                    //}
                     if (string.IsNullOrWhiteSpace(se_code))
                     {
                         SendCode(plc_s, e, logKeyT, logKeyE, plc, 4);
@@ -482,6 +486,7 @@ namespace PLC_S.ServerModel
                     plc_s.USER_CODE = ini.Read(flag, "USER_CODE");
                     plc_s.Add_Code = ini.Read(flag, "Add_Code");
                     plc_s.Add_CodeNum = ini.Read(flag, "Add_CodeNum");
+
                     plc_s.Add_SE_Code1 = ini.Read(flag, "Add_SE_Code1");
                     plc_s.Add_SE_Code1Num = ini.Read(flag, "Add_SE_Code1Num");
                     plc_s.Add_SE_Code2 = ini.Read(flag, "Add_SE_Code2");