Administrator 1 yıl önce
ebeveyn
işleme
18cfc6350c

BIN
DLL/PLC.Siemens.dll


+ 3 - 2
Projects/永冠OPP/WCS.Service/Worker.cs

@@ -34,7 +34,7 @@ namespace WCS.Service
             Logs.LogHelper.SetConfigInfo(logconfig);
             _logger.LogInformation("WCS¿ªÊ¼Æô¶¯");
             InfoLog.INFO_INIT("WCS¿ªÊ¼Æô¶¯");
-            Configs.DebugRedisUrl = "127.0.0.1";
+            Configs.DebugRedisUrl = "192.168.249.150";
             Configs.ProtocolProxyBaseType = typeof(ProtocolProxy);
             Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
             Configs.StringEncoding = Encoding.UTF8;
@@ -78,8 +78,9 @@ namespace WCS.Service
             {
                 DB.Do(db =>
                 {
+                    //var task = db.Default.Set<WCS_TASK>().ToList();
                     var items = db.Default.Set<WCS_DEVICEPROTOCOL>()
-                   //.Where(v => v.ENABLED && v.DEVICE.ENABLED && v.DB.ENABLED && v.DB.PLC.ENABLED)
+                   .Where(v => v.ENABLED && v.DEVICE.ENABLED && v.DB.ENABLED && v.DB.PLC.ENABLED)
                    .Include(v => v.DEVICE.ROUTES)
                    .Include(v => v.DEVICE.PATHS)
                    .Include(v => v.DB.PLC).ToArray();

+ 3 - 3
Projects/永冠OPP/WCS.Service/Works/Station/一楼出库.cs

@@ -46,9 +46,9 @@ namespace WCS.Service.Works.Station
                     foreach (var dev in devise)
                     {
                         var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.TYPE == TaskType.出库 && v.SRMSTATION == dev.FinishCode && v.STATUS == TaskStatus.堆垛机完成) ?? throw new WarnException("无任务");
-                        var tasks = db.Default.Set<WCS_TASK>().Where(v => v.TaskGroupKey == task.TaskGroupKey);
+                        var tasks = db.Default.Set<WCS_TASK>().Where(v => v.TaskGroupKey == task.TaskGroupKey && v.TYPE == TaskType.出库);
                         if (tasks.Count() != devise.Count) throw new WarnException($"可执行任务数{devise.Count},实际任务数{tasks.Count()}");
-                        if (tasks.Any(v => v.STATUS != TaskStatus.堆垛机完成 && v.STATUS != TaskStatus.执行中)) throw new WarnException("任务异常,同组任务状态不为堆垛机完成或执行中");
+                        if (tasks.Any(v => v.STATUS != TaskStatus.堆垛机完成 && v.STATUS != TaskStatus.执行中 && v.TYPE == TaskType.出库)) throw new WarnException("任务异常,同组任务状态不为堆垛机完成或执行中");
 
                         task.STATUS = TaskStatus.执行中;
                         task.CreateStatusLog(db,$"堆垛机放货点分配目标地址{task.ADDRNEXT}", GetType());
@@ -185,7 +185,7 @@ namespace WCS.Service.Works.Station
                     foreach (var dev in devise)
                     {
                         var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == dev.Station.Data2.Tasknum) ?? throw new WarnException("无任务");
-                        var tasks = db.Default.Set<WCS_TASK>().Where(v => v.TaskGroupKey == task.TaskGroupKey);
+                        var tasks = db.Default.Set<WCS_TASK>().Where(v => v.TaskGroupKey == task.TaskGroupKey && v.TYPE == TaskType.出库 && v.TYPE == TaskType.出库);
                         if (devise.Count != tasks.Count()) throw new WarnException($"可执行任务数{devise.Count},实际任务数{tasks.Count()}");
                         dev.Station.Data.Tasknum = task.ID;
                         dev.Station.Data.Goodsstart = dev.Station.Entity.CODE.ToShort();

+ 4 - 4
Projects/永冠OPP/WCS.Service/Works/Station/涂布出库.cs

@@ -53,8 +53,8 @@ namespace WCS.Service.Works.Station
                     foreach (var dev in devise)
                     {
                         var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => (v.TYPE == TaskType.出库 || v.TYPE == TaskType.倒库) && v.SRMSTATION == dev.FinishCode && v.STATUS == TaskStatus.堆垛机完成) ?? throw new WarnException("无任务");
-                        var tasks = db.Default.Set<WCS_TASK>().Where(v => v.TaskGroupKey == task.TaskGroupKey);
-                        if (tasks.Any(v => v.STATUS != TaskStatus.堆垛机完成 && v.STATUS != TaskStatus.执行中)) throw new WarnException("任务异常,同组任务状态不为堆垛机完成或执行中");
+                        var tasks = db.Default.Set<WCS_TASK>().Where(v => v.TaskGroupKey == task.TaskGroupKey && v.TYPE == TaskType.出库);
+                        if (tasks.Any(v => v.STATUS != TaskStatus.堆垛机完成 && v.STATUS != TaskStatus.执行中 && v.TYPE == TaskType.出库)) throw new WarnException("任务异常,同组任务状态不为堆垛机完成或执行中");
 
                         task.STATUS = TaskStatus.执行中;
                         task.CreateStatusLog(db, $"堆垛机放货点分配目标地址[{task.ADDRNEXT}]", this.GetType());
@@ -69,7 +69,7 @@ namespace WCS.Service.Works.Station
                     {
                         var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == finish.FinishCode);                        
                         if (task == null) continue;
-                        var count = db.Default.Set<WCS_TASK>().Where(v => v.TaskGroupKey == task.TaskGroupKey).Count();
+                        var count = db.Default.Set<WCS_TASK>().Where(v => v.TaskGroupKey == task.TaskGroupKey && v.TYPE == TaskType.出库).Count();
                         if (count > 2) continue;
                         finish.Station.Data.Tasknum = task.ID;
                         finish.Station.Data.Goodsstart = finish.Station.Entity.CODE.ToShort();
@@ -151,7 +151,7 @@ namespace WCS.Service.Works.Station
                         foreach (var dev in devise)
                         {
                             var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == dev.Station.Data2.Tasknum) ?? throw new WarnException("无任务");
-                            var tasks = db.Default.Set<WCS_TASK>().Count(v => v.TaskGroupKey == task.TaskGroupKey);
+                            var tasks = db.Default.Set<WCS_TASK>().Count(v => v.TaskGroupKey == task.TaskGroupKey && v.TYPE == TaskType.出库);
                             if (tasks != devise.Count) throw new WarnException($"可执行任务数{devise.Count},实际任务数{tasks}");
 
                             //找到下两个地址

+ 250 - 16
Projects/永冠OPP/WCS.Service/log4net.config

@@ -1,45 +1,153 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
   <log4net>
-    <appender name="Db_ExAppender" type="log4net.Appender.RollingFileAppender">
+    <appender name="Info_InitAppender" type="log4net.Appender.RollingFileAppender">
       <param name="Encoding" value="utf-8" />
-      <file value="D:\WCSLog\Db" />
+      <file value="D:\WCSLog\Info" />
       <appendToFile value="true" />
       <rollingStyle value="Composite" />
       <maxSizeRollBackups value="-1" />
       <maximumFileSize value="40MB" />
       <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
       <staticLogFileName value="false" />
-      <DatePattern value="/yyyyMMdd/'Db_Ex.log'" />
+      <DatePattern value="/yyyyMMdd/'Info_Init.log'" />
       <layout type="log4net.Layout.PatternLayout">
         <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
       </layout>
     </appender>
-    <logger name="Db_Ex">
+    <logger name="Info_Init">
       <level value="ALL" />
-      <appender-ref ref="Db_ExAppender" />
+      <appender-ref ref="Info_InitAppender" />
     </logger>
-    <appender name="Db_CleanAppender" type="log4net.Appender.RollingFileAppender">
+    <appender name="Info_SrmAlarmAppender" type="log4net.Appender.RollingFileAppender">
       <param name="Encoding" value="utf-8" />
-      <file value="D:\WCSLog\Db" />
+      <file value="D:\WCSLog\Info" />
       <appendToFile value="true" />
       <rollingStyle value="Composite" />
       <maxSizeRollBackups value="-1" />
       <maximumFileSize value="40MB" />
       <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
       <staticLogFileName value="false" />
-      <DatePattern value="/yyyyMMdd/'Db_Clean.log'" />
+      <DatePattern value="/yyyyMMdd/'Info_SrmAlarm.log'" />
       <layout type="log4net.Layout.PatternLayout">
         <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
       </layout>
     </appender>
-    <logger name="Db_Clean">
+    <logger name="Info_SrmAlarm">
       <level value="ALL" />
-      <appender-ref ref="Db_CleanAppender" />
+      <appender-ref ref="Info_SrmAlarmAppender" />
+    </logger>
+    <appender name="Info_InfoAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'Info_Info.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="Info_Info">
+      <level value="ALL" />
+      <appender-ref ref="Info_InfoAppender" />
+    </logger>
+    <appender name="Info_ErrorAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'Info_Error.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="Info_Error">
+      <level value="ALL" />
+      <appender-ref ref="Info_ErrorAppender" />
+    </logger>
+    <appender name="Info_SRMInfoAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'Info_SRMInfo.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="Info_SRMInfo">
+      <level value="ALL" />
+      <appender-ref ref="Info_SRMInfoAppender" />
+    </logger>
+    <appender name="Info_SyTaskTatusAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'Info_SyTaskTatus.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="Info_SyTaskTatus">
+      <level value="ALL" />
+      <appender-ref ref="Info_SyTaskTatusAppender" />
+    </logger>
+    <appender name="INFO_WMSRequestAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'INFO_WMSRequest.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="INFO_WMSRequest">
+      <level value="ALL" />
+      <appender-ref ref="INFO_WMSRequestAppender" />
+    </logger>
+    <appender name="Info_WarnAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'Info_Warn.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="Info_Warn">
+      <level value="ALL" />
+      <appender-ref ref="Info_WarnAppender" />
     </logger>
     <appender name="Info_PlcReadLogAppender" type="log4net.Appender.RollingFileAppender">
       <param name="Encoding" value="utf-8" />
-      <file value="D:\WCSLog\Db" />
+      <file value="D:\WCSLog\Info" />
       <appendToFile value="true" />
       <rollingStyle value="Composite" />
       <maxSizeRollBackups value="-1" />
@@ -55,23 +163,149 @@
       <level value="ALL" />
       <appender-ref ref="Info_PlcReadLogAppender" />
     </logger>
-    <appender name="DbAppender" type="log4net.Appender.RollingFileAppender">
+    <appender name="Info_TimingAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'Info_Timing.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="Info_Timing">
+      <level value="ALL" />
+      <appender-ref ref="Info_TimingAppender" />
+    </logger>
+    <appender name="INFO_I_WCS_GetExcTaskAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'INFO_I_WCS_GetExcTask.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="INFO_I_WCS_GetExcTask">
+      <level value="ALL" />
+      <appender-ref ref="INFO_I_WCS_GetExcTaskAppender" />
+    </logger>
+    <appender name="CreateTaskInAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'CreateTaskIn.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="CreateTaskIn">
+      <level value="ALL" />
+      <appender-ref ref="CreateTaskInAppender" />
+    </logger>
+    <appender name="RgvInfoAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'RgvInfo.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="RgvInfo">
+      <level value="ALL" />
+      <appender-ref ref="RgvInfoAppender" />
+    </logger>
+    <appender name="info_agvAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'info_agv.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="info_agv">
+      <level value="ALL" />
+      <appender-ref ref="info_agvAppender" />
+    </logger>
+    <appender name="INFO_ErrorCheckAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'INFO_ErrorCheck.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="INFO_ErrorCheck">
+      <level value="ALL" />
+      <appender-ref ref="INFO_ErrorCheckAppender" />
+    </logger>
+    <appender name="INFO_DeviceTaskTimeAppender" type="log4net.Appender.RollingFileAppender">
+      <param name="Encoding" value="utf-8" />
+      <file value="D:\WCSLog\Info" />
+      <appendToFile value="true" />
+      <rollingStyle value="Composite" />
+      <maxSizeRollBackups value="-1" />
+      <maximumFileSize value="40MB" />
+      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
+      <staticLogFileName value="false" />
+      <DatePattern value="/yyyyMMdd/'INFO_DeviceTaskTime.log'" />
+      <layout type="log4net.Layout.PatternLayout">
+        <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
+      </layout>
+    </appender>
+    <logger name="INFO_DeviceTaskTime">
+      <level value="ALL" />
+      <appender-ref ref="INFO_DeviceTaskTimeAppender" />
+    </logger>
+    <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
       <param name="Encoding" value="utf-8" />
-      <file value="D:\WCSLog\Db" />
+      <file value="D:\WCSLog\Info" />
       <appendToFile value="true" />
       <rollingStyle value="Composite" />
       <maxSizeRollBackups value="-1" />
       <maximumFileSize value="40MB" />
       <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
       <staticLogFileName value="false" />
-      <DatePattern value="/yyyyMMdd/'Db.log'" />
+      <DatePattern value="/yyyyMMdd/'Info.log'" />
       <layout type="log4net.Layout.PatternLayout">
         <conversionPattern value="%date || %5level || %logger || %message || %exception || end %newline" />
       </layout>
     </appender>
-    <logger name="Db">
+    <logger name="Info">
       <level value="ALL" />
-      <appender-ref ref="DbAppender" />
+      <appender-ref ref="InfoAppender" />
     </logger>
   </log4net>
 </configuration>

+ 1 - 1
WCS.Core/LogHelper.cs

@@ -26,7 +26,7 @@ namespace WCS.Core
             {
                 return;
             }
-            DebugPublisher.Publish(GetChannel(), msg);
+            //DebugPublisher.Publish(GetChannel(), msg);
         }
 
         private static string ResultString<T>(T obj)