|
|
@@ -22,14 +22,16 @@ namespace PLC_S.ServerModel
|
|
|
/// </summary>
|
|
|
public class PieceWork : SocketServer<SimpleSocketServerModel>, IShowFormLog, IWindowsServer
|
|
|
{
|
|
|
- public static Dictionary<string, PLC_S_PW> PLC_FLAGS = new Dictionary<string, PLC_S_PW>();
|
|
|
- public static Dictionary<string, PLC_S_GC> PLC_FLAGS_GC = new Dictionary<string, PLC_S_GC>();
|
|
|
+ public Dictionary<string, PLC_S_PW> PLC_FLAGS = new Dictionary<string, PLC_S_PW>();
|
|
|
+ public Dictionary<string, PLC_S_GC> PLC_FLAGS_GC = new Dictionary<string, PLC_S_GC>();
|
|
|
public const string M_NAME = "PW";
|
|
|
private readonly MES_S _mes_s = null;
|
|
|
private readonly Logger logger = Logger.CreateLogger(M_NAME);
|
|
|
private readonly LogInfo logger_t = new LogInfo();
|
|
|
private readonly LogInfo logger_e = new LogInfo();
|
|
|
|
|
|
+ private bool _S_STOP = false;
|
|
|
+
|
|
|
public PieceWork()
|
|
|
{
|
|
|
logger.FileExistDays = 30;
|
|
|
@@ -67,6 +69,7 @@ namespace PLC_S.ServerModel
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
+ _S_STOP = false;
|
|
|
logger.OutputTrace($"{M_NAME}_ServerStarting");
|
|
|
}
|
|
|
catch { }
|
|
|
@@ -75,6 +78,7 @@ namespace PLC_S.ServerModel
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
+ _S_STOP = false;
|
|
|
logger.OutputTrace($"{M_NAME}_ServerStarted");
|
|
|
}
|
|
|
catch { }
|
|
|
@@ -83,6 +87,7 @@ namespace PLC_S.ServerModel
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
+ _S_STOP = true;
|
|
|
logger.OutputTrace($"{M_NAME}_ServerStoping");
|
|
|
}
|
|
|
catch { }
|
|
|
@@ -91,6 +96,7 @@ namespace PLC_S.ServerModel
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
+ _S_STOP = true;
|
|
|
logger.OutputTrace($"{M_NAME}_ServerStoped");
|
|
|
}
|
|
|
catch { }
|
|
|
@@ -99,6 +105,7 @@ namespace PLC_S.ServerModel
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
+ _S_STOP = true;
|
|
|
string message = e.ToString();
|
|
|
string cip = e?.Client?.IP;
|
|
|
if (e.Type == ServerMessageType.Debug)
|
|
|
@@ -137,6 +144,7 @@ namespace PLC_S.ServerModel
|
|
|
SocketClient<SiemensS7_1200Model> plc = null;
|
|
|
lock (this)
|
|
|
{
|
|
|
+ _S_STOP = false;
|
|
|
try
|
|
|
{
|
|
|
string outputMessage = e.ToString();
|
|
|
@@ -179,8 +187,12 @@ namespace PLC_S.ServerModel
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
return;
|
|
|
}
|
|
|
+
|
|
|
plc = new SocketClient<SiemensS7_1200Model>();
|
|
|
plc.Connect(plc_s.IP, plc_s.Port);
|
|
|
+ outputMessage = $"[{e.Content}]PLC_Connect=[{plc_s.IP}:{plc_s.Port}]";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
|
|
|
if (string.IsNullOrWhiteSpace(flag))
|
|
|
{
|
|
|
@@ -188,19 +200,22 @@ namespace PLC_S.ServerModel
|
|
|
Logger.Warn(outputMessage, logKeyT, logger_t);
|
|
|
Logger.Warn(outputMessage, logKeyE, logger_e);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
- SendError(plc_s, e, logKeyE, plc);
|
|
|
+ SendError(plc_s, e, logKeyT, logKeyE, plc);
|
|
|
return;
|
|
|
}
|
|
|
- if (string.IsNullOrWhiteSpace(barcode) || barcode == "0")
|
|
|
+ if (string.IsNullOrWhiteSpace(barcode) || barcode == "0" || barcode.StartsWith("0"))
|
|
|
{
|
|
|
outputMessage = $"[{e.Content}]接收条码为空";
|
|
|
Logger.Warn(outputMessage, logKeyT, logger_t);
|
|
|
Logger.Warn(outputMessage, logKeyE, logger_e);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
- SendError(plc_s, e, logKeyE, plc);
|
|
|
+ SendError(plc_s, e, logKeyT, logKeyE, plc);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
+ outputMessage = $"[{e.Content}]GET_产品型号";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
DataRow codeRow = GetGoodsCode(barcode, e, logKeyE);
|
|
|
if (codeRow == null)
|
|
|
{
|
|
|
@@ -208,20 +223,14 @@ namespace PLC_S.ServerModel
|
|
|
Logger.Warn(outputMessage, logKeyT, logger_t);
|
|
|
Logger.Warn(outputMessage, logKeyE, logger_e);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
- SendError(plc_s, e, logKeyE, plc);
|
|
|
+ SendError(plc_s, e, logKeyT, logKeyE, plc);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
string code = codeRow["goodscode"].ToString();
|
|
|
string intcode = codeRow["seatcovercode"].ToString();
|
|
|
- //string code = "A77";
|
|
|
- //string intcode = (iii++)+"";
|
|
|
- //if (iii > 3)
|
|
|
- //{
|
|
|
- // iii = 1;
|
|
|
- //}
|
|
|
-
|
|
|
- outputMessage = $"[{e.Content}]产品型号={code}[{intcode}]";
|
|
|
+
|
|
|
+ outputMessage = $"[{e.Content}]END_产品型号={code}[{intcode}]";
|
|
|
Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
|
|
|
@@ -231,25 +240,36 @@ namespace PLC_S.ServerModel
|
|
|
Logger.Error(null, outputMessage, logKeyT, logger_t);
|
|
|
Logger.Error(null, outputMessage, logKeyE, logger_e);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
- SendError(plc_s, e, logKeyE, plc);
|
|
|
+ SendError(plc_s, e, logKeyT, logKeyE, plc);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- outputMessage = $"[{e.Content}]GoodsCode=[{intcode}]";
|
|
|
+ outputMessage = $"[{e.Content}]SET_GoodsCode=[{intcode}]{plc_s.Add_GoodsCode + plc_s.Add_GoodsCodeNum}";
|
|
|
Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
plc.Write<short>(plc_s.Add_GoodsCode, plc_s.Add_GoodsCodeNum, (short)(intcode.ToInt32()));
|
|
|
+ outputMessage = $"[{e.Content}]END_GoodsCode=[{intcode}]{plc_s.Add_GoodsCode + plc_s.Add_GoodsCodeNum}";
|
|
|
|
|
|
- outputMessage = $"[{e.Content}]FlagCode=[1]";
|
|
|
+ outputMessage = $"[{e.Content}]SET_FlagCode=[1]{plc_s.Add_FlagCode + plc_s.Add_FlagCodeNum}";
|
|
|
Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
plc.Write<short>(plc_s.Add_FlagCode, plc_s.Add_FlagCodeNum, (short)1);
|
|
|
+ outputMessage = $"[{e.Content}]END_FlagCode=[1]{plc_s.Add_FlagCode + plc_s.Add_FlagCodeNum}";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
|
|
|
PLCResult<short> flag_result = null;
|
|
|
while (true)
|
|
|
{
|
|
|
Thread.Sleep(plc_s.Thread_Sleep);
|
|
|
+ outputMessage = $"[{e.Content}]GET_FlagCode=[ ]{plc_s.Add_FlagCode + plc_s.Add_FlagCodeNum}";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
flag_result = plc.Read<short>(plc_s.Add_FlagCode, plc_s.Add_FlagCodeNum);
|
|
|
+ outputMessage = $"[{e.Content}]END_FlagCode=[{flag_result.Data}]{plc_s.Add_FlagCode + plc_s.Add_FlagCodeNum}";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
+
|
|
|
if (flag_result.Data == 1)
|
|
|
{
|
|
|
continue;
|
|
|
@@ -258,17 +278,36 @@ namespace PLC_S.ServerModel
|
|
|
{
|
|
|
break;
|
|
|
}
|
|
|
+ if (_S_STOP)
|
|
|
+ {
|
|
|
+ outputMessage = $"[{e.Content}]STOP[S]";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
+ SendError(plc_s, e, logKeyT, logKeyE, plc);
|
|
|
+ return;
|
|
|
+ }
|
|
|
//if (flag_result.Data == 0)
|
|
|
{
|
|
|
+ outputMessage = $"[{e.Content}]STOP[{flag_result.Data}]";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
+ SendError(plc_s, e, logKeyT, logKeyE, plc);
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ outputMessage = $"[{e.Content}]GET_RoomCode=[ ]{plc_s.Add_RoomCode + plc_s.Add_RoomCodeNum}";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
PLCResult<short> room_result = plc.Read<short>(plc_s.Add_RoomCode, plc_s.Add_RoomCodeNum);
|
|
|
+ outputMessage = $"[{e.Content}]END_RoomCode=[{room_result.Data}]{plc_s.Add_RoomCode + plc_s.Add_RoomCodeNum}";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
+
|
|
|
int room_num = room_result.Data;
|
|
|
string roomcode = room_num.ToString();
|
|
|
|
|
|
- outputMessage = $"[{e.Content}]RoomCode=[{roomcode}]";
|
|
|
+ outputMessage = $"[{e.Content}]ADD_RoomCode=[{roomcode}]";
|
|
|
Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
|
|
|
@@ -279,19 +318,22 @@ namespace PLC_S.ServerModel
|
|
|
Logger.Warn(outputMessage, logKeyT, logger_t);
|
|
|
Logger.Warn(outputMessage, logKeyE, logger_e);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
- SendError(plc_s, e, logKeyE, plc);
|
|
|
+ SendError(plc_s, e, logKeyT, logKeyE, plc);
|
|
|
//return;
|
|
|
}
|
|
|
- outputMessage = $"[{e.Content}]FlagCode=[0]";
|
|
|
+
|
|
|
+ outputMessage = $"[{e.Content}]usercode_s=[{plc_s.USER_CDOE}]";
|
|
|
Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
- plc.Write<short>(plc_s.Add_FlagCode, plc_s.Add_FlagCodeNum, (short)0);
|
|
|
|
|
|
string usercode = plc_s.USER_CDOES[room_num];
|
|
|
outputMessage = $"[{e.Content}]usercode=[{usercode}]";
|
|
|
Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
|
|
|
+ outputMessage = $"[{e.Content}]AddWorkPieceByStatus3=[P_ID:{plc_s.P_ID}][Code:{roomcode}]";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
string result = SmartDeviceProxy.Instance.Invoke<string>(
|
|
|
p => p.AddWorkPieceByStatus3(
|
|
|
_mes_s.AccountCode,
|
|
|
@@ -304,7 +346,7 @@ namespace PLC_S.ServerModel
|
|
|
// 返回状态(成功、失败)
|
|
|
if (result == "OK")
|
|
|
{
|
|
|
- outputMessage = $"[{e.Content}]PW=[OK]";
|
|
|
+ outputMessage = $"[{e.Content}]result=[OK]";
|
|
|
Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
return;
|
|
|
@@ -325,7 +367,7 @@ namespace PLC_S.ServerModel
|
|
|
Logger.Error(null, outputMessage, logKeyT, logger_t);
|
|
|
Logger.Error(null, outputMessage, logKeyE, logger_e);
|
|
|
FormLogShow?.ShowLog(outputMessage);
|
|
|
- SendError(plc_s, e, logKeyE, plc);
|
|
|
+ SendError(plc_s, e, logKeyT, logKeyE, plc);
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
@@ -333,7 +375,7 @@ namespace PLC_S.ServerModel
|
|
|
if (plc_s != null)
|
|
|
{
|
|
|
Logger.Error(ex, $"ERROR[{e.Content}]", logKeyE, logger_e);
|
|
|
- SendError(plc_s, e, logKeyE, plc);
|
|
|
+ SendError(plc_s, e, logKeyT, logKeyE, plc);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
@@ -344,10 +386,13 @@ namespace PLC_S.ServerModel
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- //string outputMessage = $"[{e.Content}]FlagCode=[0]";
|
|
|
- //Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
- //FormLogShow?.ShowLog(outputMessage);
|
|
|
+ string outputMessage = $"[{e.Content}]SET_FlagCode=[0]{plc_s.Add_FlagCode + plc_s.Add_FlagCodeNum}";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
plc?.Write<short>(plc_s.Add_FlagCode, plc_s.Add_FlagCodeNum, (short)0);
|
|
|
+ outputMessage = $"[{e.Content}]END_FlagCode=[0]{plc_s.Add_FlagCode + plc_s.Add_FlagCodeNum}";
|
|
|
+ Logger.Trace(outputMessage, logKeyT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
}
|
|
|
catch(Exception ex)
|
|
|
{
|
|
|
@@ -361,20 +406,26 @@ namespace PLC_S.ServerModel
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void SendError(PLC_S_PW plc_s, ReceiveSession e, string loggerName, SocketClient<SiemensS7_1200Model> plc)
|
|
|
+ private void SendError(PLC_S_PW plc_s, ReceiveSession e, string loggerNameT,
|
|
|
+ string loggerNameE, SocketClient<SiemensS7_1200Model> plc)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
//using (SocketClient<SiemensS7_1200Model> plc = new SocketClient<SiemensS7_1200Model>())
|
|
|
{
|
|
|
- //plc.Connect(plc_s.IP, plc_s.Port);
|
|
|
+ string outputMessage = $"[{e.Content}]SET_ErrorNum=[1]{plc_s.Add_Error + plc_s.Add_ErrorNum}";
|
|
|
+ Logger.Trace(outputMessage, loggerNameT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
plc?.Write<short>(plc_s.Add_Error, plc_s.Add_ErrorNum, (short)1);
|
|
|
+ outputMessage = $"[{e.Content}]END_ErrorNum=[1]{plc_s.Add_Error + plc_s.Add_ErrorNum}";
|
|
|
+ Logger.Trace(outputMessage, loggerNameT, logger_t);
|
|
|
+ FormLogShow?.ShowLog(outputMessage);
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
//Logger.Error(ex, $"ERROR[{e.Content}]", $"{M_NAME}-E[{e?.Client?.IP}]", logger_e);
|
|
|
- Logger.Error(ex, $"ERROR[{e.Content}]", loggerName, logger_e);
|
|
|
+ Logger.Error(ex, $"ERROR[{e.Content}]", loggerNameE, logger_e);
|
|
|
FormLogShow?.ShowLog("SendError=" + ex.Message);
|
|
|
}
|
|
|
}
|
|
|
@@ -493,6 +544,8 @@ namespace PLC_S.ServerModel
|
|
|
plc_s.P_ID = ini.Read(flag, "P_ID").ToInt32();
|
|
|
plc_s.USER_CDOE = ini.Read(flag, "USER_CDOE");
|
|
|
plc_s.USER_CDOES = plc_s.USER_CDOE?.Split(',');
|
|
|
+ plc_s.USER_CDOE = JsonHelper.ToJson(plc_s.USER_CDOES);
|
|
|
+
|
|
|
plc_s.IP = ini.Read(flag, "IP");
|
|
|
plc_s.Port = ini.Read(flag, "Port").ToInt32();
|
|
|
plc_s.Add_GoodsCode = ini.Read(flag, "Add_GoodsCode");
|