diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_Dry.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_Dry.cs
new file mode 100644
index 0000000..5473141
--- /dev/null
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_Dry.cs
@@ -0,0 +1,73 @@
+using FreeSql.DataAnnotations;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Mesnac.Action.ChemicalWeighing.FreeDb.DBEntity
+{
+    /// <summary>
+    /// 干混机报表
+    /// </summary>
+
+    public partial class Report_Dry
+    {
+
+        /// <summary>
+        /// 主键标识
+        /// </summary>
+        [Column(IsPrimary = true, IsIdentity = true)]
+        public int objId { get; set; }
+
+        /// <summary>
+        /// 车次
+        /// </summary>
+
+        public int? Batch { get; set; }
+
+        /// <summary>
+        /// 是第几台干混机
+        /// </summary>
+
+        public int? dryNo { get; set; }
+
+        /// <summary>
+        /// 计划编码
+        /// </summary>
+
+        public int? planCode { get; set; }
+
+        /// <summary>
+        /// 计划名称
+        /// </summary>
+        [Column(DbType = "nvarchar(50)")]
+        public string planName { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 设备编号
+        /// </summary>
+
+        public int? recipeCode { get; set; }
+
+        /// <summary>
+        /// 配方名称
+        /// </summary>
+        [Column(DbType = "nvarchar(50)")]
+        public string recipeName { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+
+        public DateTime? recordTime { get; set; }
+
+        /// <summary>
+        /// 报表标识
+        /// </summary>
+        [Column(DbType = "varchar(36)")]
+        public string reportId { get; set; } = string.Empty;
+
+    }
+}
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_DryDos_Detail.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_DryDos_Detail.cs
new file mode 100644
index 0000000..c9ecb87
--- /dev/null
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_DryDos_Detail.cs
@@ -0,0 +1,69 @@
+using FreeSql.DataAnnotations;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Mesnac.Action.ChemicalWeighing.FreeDb.DBEntity.Report
+{
+    public partial class Report_DryDos_Detail
+    {
+
+        /// <summary>
+        /// 主键
+        /// </summary>
+        [Column(IsPrimary = true, IsIdentity = true)]
+        public int objId { get; set; }
+
+        /// <summary>
+        /// 实际公差
+        /// </summary>
+
+        public double? actToler { get; set; }
+
+        /// <summary>
+        /// 实际重量
+        /// </summary>
+
+        public double? actValue { get; set; }
+
+        /// <summary>
+        /// 批次号
+        /// </summary>
+
+        public int? batch { get; set; }
+
+        /// <summary>
+        /// 设备编号
+        /// </summary>
+
+        public int? eqNo { get; set; }
+
+        /// <summary>
+        /// 物料代码
+        /// </summary>
+
+        public int? matCode { get; set; }
+
+
+        public DateTime? recordTime { get; set; }
+
+        [Column(DbType = "varchar(36)")]
+        public string reportId { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 设定公差
+        /// </summary>
+
+        public double? setToler { get; set; }
+
+        /// <summary>
+        /// 设定重量
+        /// </summary>
+
+        public double? setValue { get; set; }
+
+    }
+}
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_DryMixer_Detail.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_DryMixer_Detail.cs
new file mode 100644
index 0000000..6cae447
--- /dev/null
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_DryMixer_Detail.cs
@@ -0,0 +1,75 @@
+using FreeSql.DataAnnotations;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Mesnac.Action.ChemicalWeighing.FreeDb.DBEntity.Report
+{
+    public partial class Report_DryMixer_Detail
+    {
+
+        /// <summary>
+        /// 主键标识
+        /// </summary>
+        [Column(IsPrimary = true, IsIdentity = true)]
+        public int objId { get; set; }
+
+        /// <summary>
+        /// 动作
+        /// </summary>
+
+        public double? actCode { get; set; }
+
+        /// <summary>
+        /// 设备编号
+        /// </summary>
+
+        public int? eqNo { get; set; }
+
+        /// <summary>
+        /// 批次
+        /// </summary>
+
+        public int? mixBatch { get; set; }
+
+        /// <summary>
+        /// 速度
+        /// </summary>
+
+        public double? mixSpeed { get; set; }
+
+        /// <summary>
+        /// 步号
+        /// </summary>
+
+        public int? mixStep { get; set; }
+
+        /// <summary>
+        /// 温度
+        /// </summary>
+
+        public double? mixTemp { get; set; }
+
+        /// <summary>
+        /// 时间
+        /// </summary>
+
+        public double? mixTime { get; set; }
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+
+        public DateTime? recordTime { get; set; }
+
+        /// <summary>
+        /// 报表标识
+        /// </summary>
+        [Column(DbType = "varchar(36)")]
+        public string reportId { get; set; } = string.Empty;
+
+    }
+}
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_Gel.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_Gel.cs
new file mode 100644
index 0000000..d428113
--- /dev/null
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_Gel.cs
@@ -0,0 +1,45 @@
+using FreeSql.DataAnnotations;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Mesnac.Action.ChemicalWeighing.FreeDb.DBEntity.Report
+{
+    public partial class Report_Gel
+    {
+
+        [Column(IsPrimary = true, IsIdentity = true)]
+        public int objId { get; set; }
+
+        /// <summary>
+        /// 车次
+        /// </summary>
+
+        public int? Batch { get; set; }
+
+
+        public int? gelNo { get; set; }
+
+
+        public int? planCode { get; set; }
+
+        [Column(DbType = "nvarchar(50)")]
+        public string planName { get; set; } = string.Empty;
+
+
+        public int? recipeCode { get; set; }
+
+        [Column(DbType = "nvarchar(50)")]
+        public string recipeName { get; set; } = string.Empty;
+
+
+        public DateTime? recordTime { get; set; }
+
+        [Column(DbType = "varchar(36)")]
+        public string reportId { get; set; } = string.Empty;
+
+    }
+}
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_GelDoser_Detail.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_GelDoser_Detail.cs
new file mode 100644
index 0000000..c8c1128
--- /dev/null
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_GelDoser_Detail.cs
@@ -0,0 +1,85 @@
+using FreeSql.DataAnnotations;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Mesnac.Action.ChemicalWeighing.FreeDb.DBEntity.Report
+{
+    /// <summary>
+    /// 干混机报表
+    /// </summary>
+
+    public partial class Report_GelDoser_Detail
+    {
+
+        /// <summary>
+        /// 主键标识
+        /// </summary>
+        [Column(IsPrimary = true, IsIdentity = true)]
+        public int objId { get; set; }
+
+        /// <summary>
+        /// 实际公差
+        /// </summary>
+
+        public double? actToLer { get; set; }
+
+        /// <summary>
+        /// 实际重量
+        /// </summary>
+
+        public double? actValue { get; set; }
+
+        /// <summary>
+        /// 批次号
+        /// </summary>
+
+        public int? batch { get; set; }
+
+        /// <summary>
+        /// 设备编号
+        /// </summary>
+
+        public int? eqNo { get; set; }
+
+        /// <summary>
+        /// 1 糊化机Dos 2  hotWater 3 coolWater 4 mixing
+        /// </summary>
+
+        public int? kinds { get; set; }
+
+        /// <summary>
+        /// 物料代码
+        /// </summary>
+
+        public int? matCode { get; set; }
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+
+        public DateTime? recordTime { get; set; }
+
+        /// <summary>
+        /// 报表标识
+        /// </summary>
+        [Column(DbType = "varchar(36)")]
+        public string reportId { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 设定公差
+        /// </summary>
+
+        public double? setToler { get; set; }
+
+        /// <summary>
+        /// 设定重量
+        /// </summary>
+
+        public double? setValue { get; set; }
+
+    }
+}
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_GelMixing_Detail.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_GelMixing_Detail.cs
new file mode 100644
index 0000000..bb63b51
--- /dev/null
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_GelMixing_Detail.cs
@@ -0,0 +1,75 @@
+using FreeSql.DataAnnotations;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Mesnac.Action.ChemicalWeighing.FreeDb.DBEntity.Report
+{
+    public partial class Report_GelMixing_Detail
+    {
+
+        /// <summary>
+        /// 主键标识
+        /// </summary>
+        [Column(IsPrimary = true, IsIdentity = true)]
+        public int objId { get; set; }
+
+        /// <summary>
+        /// 动作
+        /// </summary>
+
+        public int? actCode { get; set; }
+
+        /// <summary>
+        /// 设备编号
+        /// </summary>
+
+        public int? eqNo { get; set; }
+
+        /// <summary>
+        /// 批次
+        /// </summary>
+
+        public int? mixBatch { get; set; }
+
+        /// <summary>
+        /// 速度
+        /// </summary>
+
+        public double? mixSpeed { get; set; }
+
+        /// <summary>
+        /// 步号
+        /// </summary>
+
+        public int? mixStep { get; set; }
+
+        /// <summary>
+        /// 温度
+        /// </summary>
+
+        public double? mixTemp { get; set; }
+
+        /// <summary>
+        /// 时间
+        /// </summary>
+
+        public int? mixTime { get; set; }
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+
+        public DateTime? recordTime { get; set; }
+
+        /// <summary>
+        /// 报表标识
+        /// </summary>
+        [Column(DbType = "varchar(36)")]
+        public string reportId { get; set; } = string.Empty;
+
+    }
+}
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_WetMixer.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_WetMixer.cs
new file mode 100644
index 0000000..540fd3f
--- /dev/null
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_WetMixer.cs
@@ -0,0 +1,76 @@
+using FreeSql.DataAnnotations;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Mesnac.Action.ChemicalWeighing.FreeDb.DBEntity.Report
+{
+    /// <summary>
+    /// 干混机报表
+    /// </summary>
+
+    public partial class Report_WetMixer
+    {
+
+        /// <summary>
+        /// 主键标识
+        /// </summary>
+        [Column(IsPrimary = true, IsIdentity = true)]
+        public int objId { get; set; }
+
+        /// <summary>
+        /// 车次
+        /// </summary>
+
+        public int? Batch { get; set; }
+
+        /// <summary>
+        /// 计划代码
+        /// </summary>
+
+        public int? planCode { get; set; }
+
+        /// <summary>
+        /// 计划名称
+        /// </summary>
+        [Column(DbType = "nvarchar(50)")]
+        public string planName { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 配方编码
+        /// </summary>
+
+        public int? recipeCode { get; set; }
+
+        /// <summary>
+        /// 配方名称
+        /// </summary>
+        [Column(DbType = "nvarchar(50)")]
+        public string recipeName { get; set; } = string.Empty;
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+
+        public DateTime? recordTime { get; set; }
+
+        /// <summary>
+        /// 报表标识
+        /// </summary>
+        [Column(DbType = "varchar(36)")]
+        public string reportId { get; set; } = string.Empty;
+
+
+        public DateTime? reportTime { get; set; }
+
+        /// <summary>
+        /// 设备编号
+        /// </summary>
+
+        public int? WetNo { get; set; }
+
+    }
+}
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_WetMixer_Detail.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_WetMixer_Detail.cs
new file mode 100644
index 0000000..76de7ce
--- /dev/null
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/FreeDb/DBEntity/Report/Report_WetMixer_Detail.cs
@@ -0,0 +1,85 @@
+using FreeSql.DataAnnotations;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Mesnac.Action.ChemicalWeighing.FreeDb.DBEntity.Report
+{
+    public partial class Report_WetMixer_Detail
+    {
+
+        /// <summary>
+        /// 主键标识
+        /// </summary>
+        [Column(IsPrimary = true, IsIdentity = true)]
+        public int objId { get; set; }
+
+        /// <summary>
+        /// 动作
+        /// </summary>
+
+        public int? actCode { get; set; }
+
+
+        public double? actTolerence { get; set; }
+
+        /// <summary>
+        /// mix编号
+        /// </summary>
+
+        public double? actWeight { get; set; }
+
+        /// <summary>
+        /// 设备编号
+        /// </summary>
+
+        public int? eqNo { get; set; }
+
+        /// <summary>
+        /// 批次
+        /// </summary>
+
+        public int? mixBatch { get; set; }
+
+        /// <summary>
+        /// 速度
+        /// </summary>
+
+        public double? mixSpeed { get; set; }
+
+        /// <summary>
+        /// 步号
+        /// </summary>
+
+        public int? mixStep { get; set; }
+
+        /// <summary>
+        /// 温度
+        /// </summary>
+
+        public double? mixTemp { get; set; }
+
+        /// <summary>
+        /// 时间
+        /// </summary>
+
+        public int? mixTime { get; set; }
+
+        /// <summary>
+        /// 记录时间
+        /// </summary>
+
+        public DateTime? recordTime { get; set; }
+
+        /// <summary>
+        /// 报表标识
+        /// </summary>
+        [Column(DbType = "varchar(36)")]
+        public string reportId { get; set; } = string.Empty;
+
+    }
+
+}
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj
index 7ecc46c..bf6fed2 100644
--- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Mesnac.Action.ChemicalWeighing.csproj
@@ -275,6 +275,14 @@
     <Compile Include="FreeDb\DBEntity\LjFormulaDetailEntity.cs" />
     <Compile Include="FreeDb\DBEntity\LjFormulaEntity.cs" />
     <Compile Include="FreeDb\DBEntity\LjPlanningEntity.cs" />
+    <Compile Include="FreeDb\DBEntity\Report\Report_Dry.cs" />
+    <Compile Include="FreeDb\DBEntity\Report\Report_DryDos_Detail.cs" />
+    <Compile Include="FreeDb\DBEntity\Report\Report_DryMixer_Detail.cs" />
+    <Compile Include="FreeDb\DBEntity\Report\Report_Gel.cs" />
+    <Compile Include="FreeDb\DBEntity\Report\Report_GelDoser_Detail.cs" />
+    <Compile Include="FreeDb\DBEntity\Report\Report_GelMixing_Detail.cs" />
+    <Compile Include="FreeDb\DBEntity\Report\Report_WetMixer.cs" />
+    <Compile Include="FreeDb\DBEntity\Report\Report_WetMixer_Detail.cs" />
     <Compile Include="FreeDb\FreeSqlUnit.cs" />
     <Compile Include="InterfaceDocking\DockingEntity\JsonReturnEntity.cs" />
     <Compile Include="InterfaceDocking\DockingEntity\MaterialPlanSyncEntity.cs" />
@@ -616,6 +624,7 @@
     <Compile Include="Report\GelDoser\SelectRowAction.cs" />
     <Compile Include="Report\OpenDoor\OpenDoor.cs" />
     <Compile Include="Report\ReportHelper.cs" />
+    <Compile Include="Report\ReportReadDb.cs" />
     <Compile Include="Report\WetMixer\ExportAction.cs" />
     <Compile Include="Report\WetMixer\InitFormAction.cs" />
     <Compile Include="Report\WetMixer\SelectAction.cs" />
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/ReportReadDb.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/ReportReadDb.cs
new file mode 100644
index 0000000..f48b998
--- /dev/null
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/ReportReadDb.cs
@@ -0,0 +1,472 @@
+using DataBlockHelper;
+using DataBlockHelper.DBHelpers;
+using DataBlockHelper.Entity.DB2106Entity;
+using DataBlockHelper.Entity.DB2107Entity;
+
+using DevExpress.Utils.Extensions;
+
+using ICSharpCode.Core;
+
+using Mesnac.Action.ChemicalWeighing.FreeDb;
+using Mesnac.Action.ChemicalWeighing.FreeDb.DBEntity;
+using Mesnac.Action.ChemicalWeighing.FreeDb.DBEntity.Report;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Mesnac.Action.ChemicalWeighing.Report
+{
+    public class ReportReadDb
+    {
+        public static void Read()
+        {
+            LoggingService<ReportReadDb>.InfoFormatted("开始读取报表");
+            DB2107Helper dB2107Helper = new DB2107Helper();
+            NormalStatusEntity normal = dB2107Helper.NormalStatus;
+            if (normal.RdyRpt_D1)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("干混机1读取报表");
+                InsertD(1);
+                PlcConnect.Instance.Write("DB2017.5.6", false);
+            }
+            if (normal.RdyRpt_D2)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("干混机2读取报表");
+                InsertD(2);
+                PlcConnect.Instance.Write("DB2017.5.7", false);
+            }
+
+            if (normal.RdyRpt_D3)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("干混机3读取报表");
+                InsertD(3);
+                PlcConnect.Instance.Write("DB2017.6.0", false);
+            }
+
+            if (normal.RdyRpt_D4)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("干混机4读取报表");
+                InsertD(4);
+                PlcConnect.Instance.Write("DB2017.6.1", false);
+            }
+
+            //InsertG
+
+            if (normal.RdyRpt_G1)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("糊化机1读取报表");
+                InsertG(1);
+                PlcConnect.Instance.Write("DB2017.6.2", false);
+            }
+
+            if (normal.RdyRpt_G2)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("糊化机2读取报表");
+                InsertG(2);
+                PlcConnect.Instance.Write("DB2017.6.3", false);
+            }
+            if (normal.RdyRpt_G3)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("糊化机3读取报表");
+                InsertG(3);
+                PlcConnect.Instance.Write("DB2017.6.4", false);
+            }
+
+            if (normal.RdyRpt_G4)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("糊化机4读取报表");
+                InsertG(4);
+                PlcConnect.Instance.Write("DB2017.6.5", false);
+            }
+
+            if (normal.RdyRpt_G5)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("糊化机5读取报表");
+                InsertG(5);
+                PlcConnect.Instance.Write("DB2017.6.6", false);
+            }
+
+
+            if (normal.RdyRpt_G6)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("糊化机6读取报表");
+                InsertG(6);
+                PlcConnect.Instance.Write("DB2017.6.7", false);
+            }
+
+            if (normal.RdyRpt_G7)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("糊化机7读取报表");
+                InsertG(7);
+                PlcConnect.Instance.Write("DB2017.7.0", false);
+            }
+
+            if (normal.RdyRpt_G8)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("糊化机8读取报表");
+                InsertG(8);
+                PlcConnect.Instance.Write("DB2017.7.1", false);
+            }
+
+            if (normal.RdyRpt_M1)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("湿混机1读取报表");
+                InsertM(1);
+                PlcConnect.Instance.Write("DB2017.7.2", false);
+            }
+
+            if (normal.RdyRpt_M2)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("湿混机2读取报表");
+                InsertM(2);
+                PlcConnect.Instance.Write("DB2017.7.3", false);
+            }
+
+            if (normal.RdyRpt_M3)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("湿混机3读取报表");
+                InsertM(3);
+                PlcConnect.Instance.Write("DB2017.7.4", false);
+            }
+
+            if (normal.RdyRpt_M4)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("湿混机4读取报表");
+                InsertM(4);
+                PlcConnect.Instance.Write("DB2017.7.5", false);
+            }
+
+            if (normal.RdyRpt_M5)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("湿混机5读取报表");
+                InsertM(5);
+                PlcConnect.Instance.Write("DB2017.7.6", false);
+            }
+
+
+            if (normal.RdyRpt_M6)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("湿混机6读取报表");
+                InsertM(6);
+                PlcConnect.Instance.Write("DB2017.7.7", false);
+            }
+
+            if (normal.RdyRpt_M7)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("湿混机7读取报表");
+                InsertM(7);
+                PlcConnect.Instance.Write("DB2017.8.0", false);
+            }
+
+            if (normal.RdyRpt_M8)
+            {
+                LoggingService<ReportReadDb>.InfoFormatted("湿混机8读取报表");
+                InsertM(8);
+                PlcConnect.Instance.Write("DB2017.8.1", false);
+            }
+        }
+
+
+        private static void InsertD(int no)
+        {
+            DB2106Helper dB2106 = new DB2106Helper();
+            Dryer_ dryer = null;
+            switch (no)
+            {
+                case 1:
+                    dryer = dB2106.DryReport.Dryer_A;
+                    break;
+                case 2:
+                    dryer = dB2106.DryReport.Dryer_B;
+                    break;
+                case 3:
+                    dryer = dB2106.DryReport.Dryer_C;
+                    break;
+                case 4:
+                    dryer = dB2106.DryReport.Dryer_D;
+                    break;
+            }
+
+            Report_Dry dry = new Report_Dry();
+            List<Report_DryDos_Detail> lsDos = new List<Report_DryDos_Detail>();
+            List<Report_DryMixer_Detail> lsMix = new List<Report_DryMixer_Detail>();
+
+            dry.reportId = Guid.NewGuid().ToString("N");
+            dry.recipeCode = 0;
+            dry.recipeName = "";
+
+            dry.planCode = 0;
+            dry.planName = "";
+            dry.recordTime = DateTime.Now;
+            dry.dryNo = no;
+            dry.Batch = 0;
+
+            foreach (var item in dryer.Dos)
+            {
+                if (item.EqNo != 0)
+                {
+                    lsDos.Add(new Report_DryDos_Detail()
+                    {
+                        reportId = dry.reportId,
+                        eqNo = item.EqNo,
+                        batch = item.Batch,
+                        matCode = item.MatCode,
+                        setToler = item.SetToler,
+                        setValue = item.SetValue,
+                        actToler = item.ActToler,
+                        actValue = item.ActValue,
+                        recordTime = DateTime.Now
+
+                    });
+                }
+            }
+
+            foreach (var item in dryer.Mix)
+            {
+                if (item.EqNo != 0)
+                {
+                    lsMix.Add(new Report_DryMixer_Detail()
+                    {
+                        reportId = dry.reportId,
+                        eqNo = item.EqNo,
+                        mixBatch = item.MixBatch,
+                        mixStep = item.MixStep,
+                        mixSpeed = item.MixSpeed,
+                        mixTemp = item.MixTemp,
+                        mixTime = item.MixTime,
+                        recordTime = DateTime.Now
+                    });
+                }
+            }
+
+            FreeSqlUnit.Instance.Insert(dry).ExecuteAffrows();
+            FreeSqlUnit.Instance.Insert(lsDos).ExecuteAffrows();
+            FreeSqlUnit.Instance.Insert(lsMix).ExecuteAffrows();
+
+        }
+
+        private static void InsertG(int no)
+        {
+            DB2106Helper dB2106 = new DB2106Helper();
+            Gel_ gel = null;
+            switch (no)
+            {
+                case 1:
+                    gel = dB2106.GelReport.Gel_A;
+                    break;
+                case 2:
+                    gel = dB2106.GelReport.Gel_B;
+                    break;
+                case 3:
+                    gel = dB2106.GelReport.Gel_C;
+                    break;
+                case 4:
+                    gel = dB2106.GelReport.Gel_D;
+                    break;
+
+
+                case 5:
+                    gel = dB2106.GelReport.Gel_E;
+                    break;
+                case 6:
+                    gel = dB2106.GelReport.Gel_F;
+                    break;
+                case 7:
+                    gel = dB2106.GelReport.Gel_G;
+                    break;
+                case 8:
+                    gel = dB2106.GelReport.Gel_H;
+                    break;
+            }
+            Report_Gel gelDb = new Report_Gel();
+
+            gelDb.reportId = Guid.NewGuid().ToString("N");
+            gelDb.recipeCode = 0;
+            gelDb.recipeName = "";
+
+            gelDb.planCode = 0;
+            gelDb.planName = "";
+            gelDb.recordTime = DateTime.Now;
+            gelDb.gelNo = no;
+            gelDb.Batch = 0;
+
+
+            List<Report_GelDoser_Detail> lsdetail = new List<Report_GelDoser_Detail>();
+            List<Report_GelMixing_Detail> lsMixing = new List<Report_GelMixing_Detail>();
+
+            var dosList = gel.GelDosing;
+            foreach (var dos in dosList)
+            {
+                if (dos.EqNo != 0)
+                {
+                    lsdetail.Add(new Report_GelDoser_Detail()
+                    {
+                        eqNo = dos.EqNo,
+                        batch = dos.Batch,
+                        matCode = dos.MatCode,
+                        setValue = dos.SetValue,
+                        setToler = dos.SetToler,
+                        actToLer = dos.ActToler,
+                        actValue = dos.ActValue,
+                        reportId = gelDb.reportId,
+                        recordTime = DateTime.Now,
+
+                        kinds = 1
+                    });
+                }
+            }
+
+
+            var mixList = gel.GelMixing;
+            foreach (var mix in mixList)
+            {
+                if (mix.EqNo != 0)
+                {
+                    lsMixing.Add(new Report_GelMixing_Detail()
+                    {
+                        eqNo = mix.EqNo,
+                        mixBatch = mix.MixBatch,
+                        mixStep = mix.MixStep,
+                        actCode = mix.ActCode,
+                        mixTime = mix.MixTime,
+
+                        mixSpeed = mix.MixSpeed,
+
+                        mixTemp = mix.MixTemp,
+
+                        reportId = gelDb.reportId,
+                        recordTime = DateTime.Now,
+
+
+                    });
+                }
+            }
+
+
+            var hotWater = gel.HotWater;
+            if (hotWater != null)
+            {
+                lsdetail.Add(new Report_GelDoser_Detail()
+                {
+                    eqNo = hotWater.EqNo,
+                    batch = hotWater.Batch,
+                    matCode = hotWater.MatCode,
+                    setValue = hotWater.SetValue,
+                    setToler = hotWater.SetToler,
+                    actToLer = hotWater.ActToler,
+                    actValue = hotWater.ActValue,
+                    reportId = gelDb.reportId,
+                    recordTime = DateTime.Now,
+
+                    kinds = 2
+                });
+            }
+
+            var coolWater = gel.CoolWater;
+            if (coolWater != null)
+            {
+                lsdetail.Add(new Report_GelDoser_Detail()
+                {
+                    eqNo = coolWater.EqNo,
+                    batch = coolWater.Batch,
+                    matCode = coolWater.MatCode,
+                    setValue = coolWater.SetValue,
+                    setToler = coolWater.SetToler,
+                    actToLer = coolWater.ActToler,
+                    actValue = coolWater.ActValue,
+                    reportId = gelDb.reportId,
+                    recordTime = DateTime.Now,
+
+                    kinds = 3
+                });
+            }
+
+
+            FreeSqlUnit.Instance.Insert(gelDb).ExecuteAffrows();
+            FreeSqlUnit.Instance.Insert(lsdetail).ExecuteAffrows();
+            FreeSqlUnit.Instance.Insert(lsMixing).ExecuteAffrows();
+        }
+
+
+
+        private static void InsertM(int no)
+        {
+            DB2106Helper dB2106 = new DB2106Helper();
+            List<Report_WMixE> ls = null;
+            switch (no)
+            {
+                case 1:
+                    ls = dB2106.WetReport.WetMixing_A;
+                    break;
+                case 2:
+                    ls = dB2106.WetReport.WetMixing_B;
+                    break;
+                case 3:
+                    ls = dB2106.WetReport.WetMixing_C;
+                    break;
+                case 4:
+                    ls = dB2106.WetReport.WetMixing_D;
+                    break;
+
+
+                case 5:
+                    ls = dB2106.WetReport.WetMixing_E;
+                    break;
+                case 6:
+                    ls = dB2106.WetReport.WetMixing_F;
+                    break;
+                case 7:
+                    ls = dB2106.WetReport.WetMixing_G;
+                    break;
+                case 8:
+                    ls = dB2106.WetReport.WetMixing_H;
+                    break;
+            }
+
+
+            Report_WetMixer report = new Report_WetMixer();
+
+            report.reportId = Guid.NewGuid().ToString("N");
+            report.recipeCode = 0;
+            report.recipeName = "";
+
+            report.planCode = 0;
+            report.planName = "";
+            report.recordTime = DateTime.Now;
+            report.WetNo = no;
+            report.Batch = 0;
+
+            List<Report_WetMixer_Detail> lde = new List<Report_WetMixer_Detail>();
+            foreach (var item in ls)
+            {
+                if (item.EqNo != 0)
+                {
+                    lde.Add(new Report_WetMixer_Detail()
+                    {
+                        recordTime = DateTime.Now,
+                        reportId = report.reportId,
+                        eqNo = item.EqNo,
+                        mixBatch = item.MixBatch,
+                        mixSpeed = item.MixSpeed,
+                        actCode = item.ActCode,
+                        mixTemp = item.MixTemp,
+                        mixStep = item.MixStep,
+                        mixTime = item.MixTime,
+                        actTolerence = item.ActTolerence,
+                        actWeight = item.ActWeight,
+
+                    });
+                }
+
+            }
+
+
+            FreeSqlUnit.Instance.Insert(report).ExecuteAffrows();
+            FreeSqlUnit.Instance.Insert(lde).ExecuteAffrows();
+        }
+    }
+}
diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Test/TestAction.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Test/TestAction.cs
index f43cec2..b946f16 100644
--- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Test/TestAction.cs
+++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Test/TestAction.cs
@@ -5,6 +5,7 @@ using System.Diagnostics;
 using System.Drawing;
 using System.Linq;
 using System.Text;
+using System.Threading;
 using System.Windows.Forms;
 
 using DataBlockHelper.DBHelpers;
@@ -12,6 +13,8 @@ using DataBlockHelper.DBHelpers;
 using DevExpress.XtraEditors.Filtering.Templates;
 
 using ICSharpCode.Core;
+using log4net;
+
 using Mesnac.Action.Base;
 
 using Mesnac.Action.ChemicalWeighing.LjReport.OpenDoor;
@@ -29,18 +32,16 @@ namespace Mesnac.Action.ChemicalWeighing.Test
 {
     public class TestAction : DatabaseAction, IAction
     {
-        HslLanternAlarm lanternAlarm;
+       
         MCButton mCButton;
 
-        HslSwitch hslSwitch;
-
+      //  LoggingService<TestAction> _log;
 
-        HslLedDisplay hslLed;
 
-        public void timer1EventProcessor(object source, EventArgs e)
+        public void theout(object source, EventArgs e)
         {
 
-            hslLed.DisplayText = DateTime.Now.ToString("mm:ss");
+           mCButton.Text = DateTime.Now.ToString();
 
         }
          
@@ -50,44 +51,13 @@ namespace Mesnac.Action.ChemicalWeighing.Test
             var allDb=GetAllControls();
             mCButton = allDb.FirstOrDefault(x => x.Name == "MCButton1") as MCButton;
 
-            mCButton.Click += new EventHandler(timer1EventProcessor);
-
-            
-            hslSwitch = allDb.FirstOrDefault(x => x.Name == "HsSwitch1") as HslSwitch;
-
-            hslSwitch.OnSwitchChanged += HslSwitch_OnSwitchChanged;
-
-
-            hslLed= allDb.FirstOrDefault(x => x.Name == "HslLedDisplay1") as HslLedDisplay;
-            hslLed.LeftRightOffect = 0;
-
-            this.hslLed.BackColor = Color.FromArgb(46, 46, 46);
-            this.hslLed.DisplayBackColor = Color.FromArgb(62, 62, 62);
-            this.hslLed.DisplayNumber = 5;
-            this.hslLed.DisplayText = "12:00";
-            this.hslLed.ForeColor = Color.Pink;
-            this.hslLed.LedNumberSize = 2;
-            this.hslLed.Location = new Point(555, 203);
-            this.hslLed.Margin = new Padding(3, 16, 3, 16);
-            this.hslLed.Name = "hslLedDisplay12";
-            this.hslLed.Size = new Size(113, 33);
-            this.hslLed.TabIndex = 8;
-
-            //MCButton1
-
-            //OpenDoorService
-
-
+            System.Timers.Timer t = new System.Timers.Timer(1000);//实例化Timer类,设置间隔时间为10000毫秒;
+            t.Elapsed += new System.Timers.ElapsedEventHandler(theout);//到达时间的时候执行事件;
+            t.AutoReset = true;//设置是执行一次(false)还是一直执行(true);
+            t.Enabled = true;//是否执行System.Timers.Timer.Elapsed事件;
 
         }
 
-        private void HslSwitch_OnSwitchChanged(object arg1, bool arg2)
-        {
-            HslSwitch hsl= (HslSwitch)arg1;
-            hslSwitch.Text = "测试:"+arg2;
-            bool b = arg2;
-
-
-        }
+      
     }
 }
diff --git a/Main/MCEdit/Data/MCProject/nodeForm/Form1.xml b/Main/MCEdit/Data/MCProject/nodeForm/Form1.xml
index 277944f..8bf25ec 100644
--- a/Main/MCEdit/Data/MCProject/nodeForm/Form1.xml
+++ b/Main/MCEdit/Data/MCProject/nodeForm/Form1.xml
@@ -1,26 +1,6 @@
 
   <Object type="Mesnac.Gui.Common.FrmRunTemplate, Mesnac.Gui.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="Form1" children="Controls">
     <Object type="System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Panel1" children="Controls">
-      <Object type="Mesnac.Controls.ChemicalWeighing.HslLedDisplay, Mesnac.Controls.ChemicalWeighing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="HslLedDisplay1" children="Controls">
-        <Property name="Location">267, 58</Property>
-        <Property name="Name">HslLedDisplay1</Property>
-        <Property name="Size">325, 58</Property>
-      </Object>
-      <Object type="Mesnac.Controls.ChemicalWeighing.HslSwitch, Mesnac.Controls.ChemicalWeighing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="HsSwitch1" children="Controls">
-        <Property name="Location">726, 199</Property>
-        <Property name="Name">HsSwitch1</Property>
-        <Property name="Size">90, 111</Property>
-      </Object>
-      <Object type="Mesnac.Controls.ChemicalWeighing.HslTruck, Mesnac.Controls.ChemicalWeighing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="HslTruck1" children="Controls">
-        <Property name="Location">682, 431</Property>
-        <Property name="Name">HslTruck1</Property>
-        <Property name="Size">329, 185</Property>
-      </Object>
-      <Object type="Mesnac.Controls.ChemicalWeighing.HslLanternAlarm, Mesnac.Controls.ChemicalWeighing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="HslLanternAlarm1" children="Controls">
-        <Property name="Location">563, 216</Property>
-        <Property name="Name">HslLanternAlarm1</Property>
-        <Property name="Size">29, 51</Property>
-      </Object>
       <Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton1" children="Controls">
         <Property name="ClickActionList">
           <Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAAAAAALAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAANBAs=</Binary>