|
|
@@ -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;
|
|
|
}
|