瀏覽代碼

修改PLC调试工具,可选择读取三数据块任意数据。更换新PLC协议库文件,将读写PLC操作放入Thread,稳定性待调试。记录读PLC异常数据

yc_t 6 年之前
父節點
當前提交
17a864f94f
共有 36 個文件被更改,包括 882 次插入491 次删除
  1. 26 13
      PLCLinker/PLCConnector/Form1.cs
  2. 194 0
      PLCLinker/PLCConnector/LOG/LogManager.cs
  3. 25 0
      PLCLinker/PLCConnector/LOG/LogTest.cs
  4. 87 0
      PLCLinker/PLCConnector/LOG/log.cs
  5. 3 0
      PLCLinker/PLCConnector/PLCConnector.csproj
  6. 二進制
      PLCLinker/PLCLinker/bin/Release/PLCLinker.exe
  7. 二進制
      PLCLinker/PLCLinker/bin/Release/PLCLinker.pdb
  8. 二進制
      PLCLinker/PLCLinker/obj/Release/PLCLinker.exe
  9. 二進制
      PLCLinker/PLCLinker/obj/Release/PLCLinker.pdb
  10. 二進制
      PLCLinker/PLCS7/bin/Release/PLCS7.dll
  11. 二進制
      PLCLinker/PLCS7/bin/Release/PLCS7.pdb
  12. 二進制
      PLCLinker/PLCS7/obj/Release/PLCS7.dll
  13. 二進制
      PLCLinker/PLCS7/obj/Release/PLCS7.pdb
  14. 11 11
      PLCLinker/centralController/App.config
  15. 199 199
      PLCLinker/centralController/FormCentralController.Designer.cs
  16. 14 13
      PLCLinker/centralController/FormCentralController.cs
  17. 177 126
      PLCLinker/centralController/FormPLCConf.cs
  18. 10 8
      PLCLinker/centralController/Monitor/Monitor.cs
  19. 40 37
      PLCLinker/centralController/Monitor/SystemInitializer.cs
  20. 3 2
      PLCLinker/centralController/Terminal/Terminal.cs
  21. 2 2
      PLCLinker/centralController/centralController.csproj
  22. 二進制
      PLCLinker/centralController/obj/Release/DesignTimeResolveAssemblyReferences.cache
  23. 二進制
      PLCLinker/centralController/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
  24. 二進制
      PLCLinker/centralController/obj/Release/centralController.Properties.Resources.resources
  25. 1 1
      PLCLinker/centralController/obj/Release/centralController.csproj.CoreCompileInputs.cache
  26. 89 79
      PLCLinker/centralController/obj/Release/centralController.csproj.FileListAbsolute.txt
  27. 二進制
      PLCLinker/centralController/obj/Release/centralController.csproj.GenerateResource.Cache
  28. 二進制
      PLCLinker/centralController/sdk/PLC/PLCS7.dll
  29. 二進制
      PLCLinker/centralController/sdk/PLC/S7.Net.dll
  30. 二進制
      PLCLinker/centralController/sdk/PLC/snap7Enc.dll
  31. 二進制
      PLCLinker/socketTest/bin/Release/socketTest.exe
  32. 二進制
      PLCLinker/socketTest/bin/Release/socketTest.pdb
  33. 1 0
      PLCLinker/socketTest/obj/Release/socketTest.csproj.FileListAbsolute.txt
  34. 二進制
      PLCLinker/socketTest/obj/Release/socketTest.csproj.GenerateResource.Cache
  35. 二進制
      PLCLinker/socketTest/obj/Release/socketTest.exe
  36. 二進制
      PLCLinker/socketTest/obj/Release/socketTest.pdb

+ 26 - 13
PLCLinker/PLCConnector/Form1.cs

@@ -1,4 +1,5 @@
-using PLCS7;
+using parkMonitor.LOG;
+using PLCS7;
 using S7.Net;
 using System;
 using System.Collections.Generic;
@@ -33,7 +34,7 @@ namespace PLCConnector
                 pl = new PLCLinker(CpuType.S71500, ip, rack, slot, int.Parse(blockIds[0]), int.Parse(blockIds[1]), int.Parse(blockIds[2]), 6, 200);
             }
             catch (Exception e) { MessageBox.Show("配置文件异常"); }
-            
+
         }
 
         public static void parkingSpaceDBTest(AbstractPLCLinker pl, Random rnd)
@@ -120,7 +121,7 @@ namespace PLCConnector
                     break;
                 case "终端3":
                     type = PLCDataType.terminal;
-                    offset += 42*2;
+                    offset += 42 * 2;
                     break;
                 case "车位1":
                     type = PLCDataType.parkingSpace;
@@ -147,7 +148,7 @@ namespace PLCConnector
             switch ((string)textBox5.Text)
             {
                 case "中控":
-                    type = PLCDataType.central;id = 0;
+                    type = PLCDataType.central; id = 0;
                     break;
                 case "终端1":
                     type = PLCDataType.terminal; id = 1;
@@ -170,13 +171,17 @@ namespace PLCConnector
             {
                 if (id >= 4)
                 {
-                    List<object> list = pl.ReadFromPLC(type, id-3);
+                    List<object> list = pl.ReadFromPLC(type, id - 3);
                     result = ((ParkingSpaceStru)list[0]).ToString();
                 }
                 else if (id > 0)
                 {
                     List<object> list = pl.ReadFromPLC(type, id);
                     result = ((TerminalStru)list[0]).ToString();
+                    if (((TerminalStru)list[0]).terminalID == 0 || ((TerminalStru)list[0]).terminalStatus == 0)
+                    {
+                        Log.WriteLog(LogType.database, "读到终端0数据\n" + result + "\n*********************************");
+                    }
                 }
                 else if (id == 0)
                 {
@@ -184,8 +189,8 @@ namespace PLCConnector
                     result = ((MainBlockStru)list[0]).ToString();
                 }
             }
-            catch { Console.WriteLine("异常"); return; }
-            textBox1.Text = result.Replace(",","\r\n");
+            catch { Console.WriteLine("异常"); Log.WriteLog(LogType.database, "与plc连接断开\n*********************************"); return; }
+            textBox1.Text = result.Replace(",", "\r\n");
         }
 
         private void button3_Click(object sender, EventArgs e)
@@ -226,6 +231,10 @@ namespace PLCConnector
                 {
                     List<object> list = pl.ReadFromPLC(type, id);
                     result = ((TerminalStru)list[0]).ToString();
+                    if (((TerminalStru)list[0]).terminalID == 0 || ((TerminalStru)list[0]).terminalStatus == 0)
+                    {
+                        Log.WriteLog(LogType.database, "读到终端0数据\n" + result + "\n*********************************");
+                    }
                 }
                 else if (id == 0)
                 {
@@ -233,7 +242,7 @@ namespace PLCConnector
                     result = ((MainBlockStru)list[0]).ToString();
                 }
             }
-            catch { Console.WriteLine("异常"); return; }
+            catch { Console.WriteLine("异常"); Log.WriteLog(LogType.database, "与plc连接断开\n*********************************"); return; }
             textBox7.Text = result.Replace(",", "\r\n");
         }
 
@@ -274,6 +283,10 @@ namespace PLCConnector
                 {
                     List<object> list = pl.ReadFromPLC(type, id);
                     result = ((TerminalStru)list[0]).ToString();
+                    if (((TerminalStru)list[0]).terminalID == 0 || ((TerminalStru)list[0]).terminalStatus == 0)
+                    {
+                        Log.WriteLog(LogType.database, "读到终端0数据\n" + result + "\n*********************************");
+                    }
                 }
                 else if (id == 0)
                 {
@@ -281,7 +294,7 @@ namespace PLCConnector
                     result = ((MainBlockStru)list[0]).ToString();
                 }
             }
-            catch { Console.WriteLine("异常"); return; }
+            catch { Console.WriteLine("异常"); Log.WriteLog(LogType.database, "与plc连接断开\n*********************************"); return; }
             textBox9.Text = result.Replace(",", "\r\n");
         }
 
@@ -308,7 +321,7 @@ namespace PLCConnector
                 terminalID = 1,
                 parkingFee = (short)32767,
                 paymentStatus = (short)0,
-                licVerification =(short)0,
+                licVerification = (short)0,
                 userType = (short)0,
             };
             TerminalStru tsFromTerminal = new TerminalStru
@@ -373,14 +386,14 @@ namespace PLCConnector
                 pl.WriteAccordingToOffset(PLCDataType.central, 2, (short)0);
                 pl.WriteAccordingToOffset(PLCDataType.central, 16, (short)1);
                 pl.WriteAccordingToOffset(PLCDataType.central, 52, (short)0);
-                
+
             }
             else
             {
                 pl.WriteAccordingToOffset(PLCDataType.central, 2, (short)0);
                 pl.WriteAccordingToOffset(PLCDataType.central, 16, (short)0);
                 pl.WriteAccordingToOffset(PLCDataType.central, 52, (short)0);
-                
+
             }
         }
         /// <summary>
@@ -392,7 +405,7 @@ namespace PLCConnector
         {
             List<object> list = pl.ReadFromPLC(PLCDataType.central, 0);
             short park = ((MainBlockStru)list[0]).parkingRunning;
-            if(park == (short)0)
+            if (park == (short)0)
             {
                 pl.WriteAccordingToOffset(PLCDataType.central, 12, (short)1);
                 pl.WriteAccordingToOffset(PLCDataType.central, 14, (short)0);

+ 194 - 0
PLCLinker/PLCConnector/LOG/LogManager.cs

@@ -0,0 +1,194 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.IO;
+using System.Configuration;
+
+namespace parkMonitor.LOG
+{
+    /// <summary>
+    /// 日志管理
+    /// </summary>
+    public class LogManager
+    {
+        public static string logAddressStr = "LogAddress";
+        public static string logAddress;
+        DateTime time;                                        //文件创建时间
+        private string logFileExtName = "log";     //日志文件扩展名
+        private Encoding logFileEncoding = Encoding.UTF8;   //日志文件编码格式
+        private string logFileName = string.Empty;  //日志文件名
+        private string logPath = "";            //日志文件路径
+        private bool writeLogTime = true;     //log文件是否写时间
+        private bool writeStatus = false;        //是否写入标志位
+        private static object obj = new object();
+        /// <summary>
+        /// 配置文件初始化
+        /// </summary>
+        public static void Init()
+        {
+            try
+            {
+                logAddress = ConfigurationManager.AppSettings[logAddressStr];
+            }
+            catch
+            {
+                Console.WriteLine("配置文件有误");
+            }
+        }
+        /// <summary>
+        /// 日志文件路径
+        /// </summary>
+        public string CreateLogPath()
+        {
+            if (logPath == null || logPath == string.Empty || time.ToString("yyyy-MM-dd") != System.DateTime.Now.ToString("yyyy-MM-dd"))
+            {
+                try
+                {
+                    time = System.DateTime.Now;
+                    logPath = System.IO.Path.Combine(logAddress, time.ToString("yyyy-MM-dd"));
+                }
+                catch
+                {
+                    Console.WriteLine("路径合成失败");
+                }
+            }
+            if (!logPath.EndsWith(@"\"))
+            {
+                logPath += @"\";
+            }
+            if (!Directory.Exists(logPath))
+            {
+                try
+                {
+                    Directory.CreateDirectory(logPath);
+                }
+                catch
+                {
+                    Console.WriteLine("创建文件路径失败");
+                }
+            }
+            return logPath;
+        }
+        /// <summary>
+        /// 写日志
+        /// </summary>
+        public void WriteLog(LogType logType, string logFile, string msg)
+        {
+            CreateLogPath();
+            lock (obj)
+            {
+                try
+                {
+                    //创建log文件
+                    logFileName = string.Format("{0}{1}.{2}", logPath, logType, this.logFileExtName);
+                    using (StreamWriter sw = new StreamWriter(logFileName, true, logFileEncoding))
+                    {
+                        //是否写时间
+                        if (logType == LogType.database)
+                        {
+                            writeLogTime = false;
+                        }
+                        else
+                        {
+                            writeLogTime = true;
+                        }
+                        ////sql类型
+                        //if (logType == LogType.DATABASE)
+                        //{
+                        //    writeStatus = true;
+                        //}
+                        //else
+                        //{
+                        //    writeStatus = false;
+                        //}
+                        if (writeLogTime)
+                        {
+                            sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:") + logFile + ":" + msg);
+                        }
+                        else
+                        {
+                            sw.WriteLine(logFile + ":" + msg);
+
+                        }
+                    }
+                }
+                catch { }
+            }
+        }
+        /// <summary>
+        /// log类型不定
+        /// </summary>
+        /// <param name="logType"></param>
+        /// <param name="logFile"></param>
+        /// <param name="msg"></param>
+        public void WriteLog(LogType logType, LogFile logFile, string msg)
+        {
+            this.WriteLog(logType, logFile.ToString(), msg);
+        }
+        /// <summary>
+        /// log类型为null
+        /// </summary>
+        /// <param name="logType"></param>
+        /// <param name="msg"></param>
+        public void WriteLog(LogType logType, string msg)
+        {
+            this.WriteLog(logType, string.Empty, msg);
+        }
+        /// <summary>
+        /// 读日志文件
+        /// </summary>
+        /// <param name="sqlStatus"></param>
+        /// <param name="sqlMsg"></param>
+        public void ReadLog(out string sqlStatus, out string sqlMsg, out int count)
+        {
+            sqlStatus = null;
+            sqlMsg = null;
+            count = 0;
+            string date = System.DateTime.Now.ToString("yyyy-MM-dd");
+            string filePath = logAddress + "\\\\" + date + "\\\\" + "DATABASE.log";
+            try
+            {
+                List<string> logLines = null;
+                if (File.Exists(filePath))
+                {
+                    logLines = new List<string>(File.ReadAllLines(filePath));
+                }
+                if (logLines != null)
+                {
+                    count = logLines.Count;
+                    string logLine = logLines[0];
+                    sqlStatus = logLine.Substring(0, 1);
+                    sqlMsg = logLine.Substring(2, logLine.Length - 2);
+                    logLines.RemoveAt(0);
+                    File.WriteAllLines(filePath, logLines.ToArray());
+                }
+            }
+            catch (Exception e) { Console.WriteLine(e.Message); }
+        }
+
+
+
+    }
+    /// <summary>
+    /// log类型
+    /// </summary>
+    public enum LogFile
+    {
+        LOG,
+        RESET,
+        ERROR,
+        WARNING,
+        INFO,
+        ERROR_NUMBERPLATE
+    }
+    /// <summary>
+    /// log文件类型
+    /// </summary>
+    public enum LogType
+    {
+        database,
+        process
+    }
+}

+ 25 - 0
PLCLinker/PLCConnector/LOG/LogTest.cs

@@ -0,0 +1,25 @@
+//using System;
+//using System.Collections.Generic;
+//using System.Linq;
+//using System.Text;
+//using System.Threading.Tasks;
+
+//namespace parkMonitor.LOG
+//{
+//    //日志测试用例
+//    class LogTest
+//    {
+//        public void TestMethod()
+//        {
+//            //三种方式写入文件
+//            //第一种:WriteLog( string msg) 默认是INFO类型
+//            //第二种:WriteLog(string logFile,string msg) log类型和信息
+//            //第三种:WriteLog(LogFile logFile,string msg) 枚举的log类型以及相应信息
+//            LogFile logFile = LogFile.ERROR;
+//            string msg = "2";
+//            Log.WriteLog("",logFile, msg);
+//            Log.WriteLog("",msg);
+//            Log.WriteLog("WARNING", "22");
+//        }
+//    }
+//}

+ 87 - 0
PLCLinker/PLCConnector/LOG/log.cs

@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace parkMonitor.LOG
+{
+    public static class Log
+    {
+        private static LogManager logManager;
+        static Log()
+        {
+            LogManager.Init();
+            logManager = new LogManager();
+        }
+        /// <summary>
+        /// 写文件类型
+        /// </summary>
+        /// <param name="logType"></param>
+        /// <param name="logFile"></param>
+        /// <param name="msg"></param>
+        public static void WriteLog(LogType logType, LogFile logFile, string msg)
+        {
+            try
+            {
+                logManager.WriteLog(logType, logFile, msg);
+            }
+            catch
+            {
+
+            }
+        }
+        /// <summary>
+        /// 文件类型为null
+        /// </summary>
+        /// <param name="logType"></param>
+        /// <param name="msg"></param>
+        public static void WriteLog(LogType logType, string msg)
+        {
+            try
+            {
+                logManager.WriteLog(logType, string.Empty, msg);
+            }
+            catch
+            {
+
+            }
+        }
+        /// <summary>
+        /// 数据库异常的标志位
+        /// 0表示update,1表示insert
+        /// </summary>
+        /// <param name="logType"></param>
+        /// <param name="status"></param>
+        /// <param name="msg"></param>
+        public static void WriteLog(LogType logType, string status, string msg)
+        {
+            try
+            {
+                logManager.WriteLog(logType, status, msg);
+            }
+            catch
+            {
+
+            }
+        }
+        /// <summary>
+        /// 读日志文件
+        /// </summary>
+        /// <param name="sqlStatus"></param>
+        /// <param name="sqlMsg"></param>
+        /// <param name="count"></param>      
+        public static void ReadLog(out string sqlStatus, out string sqlMsg,out int count)
+        {
+            sqlStatus = null;
+            sqlMsg = null;
+            count = 0;
+            try
+            {
+                logManager.ReadLog(out sqlStatus,out sqlMsg,out count);
+            }
+            catch { }
+        }
+
+    }
+}

+ 3 - 0
PLCLinker/PLCConnector/PLCConnector.csproj

@@ -60,6 +60,9 @@
     <Compile Include="Form1.Designer.cs">
       <DependentUpon>Form1.cs</DependentUpon>
     </Compile>
+    <Compile Include="LOG\log.cs" />
+    <Compile Include="LOG\LogManager.cs" />
+    <Compile Include="LOG\LogTest.cs" />
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <EmbeddedResource Include="Form1.resx">

二進制
PLCLinker/PLCLinker/bin/Release/PLCLinker.exe


二進制
PLCLinker/PLCLinker/bin/Release/PLCLinker.pdb


二進制
PLCLinker/PLCLinker/obj/Release/PLCLinker.exe


二進制
PLCLinker/PLCLinker/obj/Release/PLCLinker.pdb


二進制
PLCLinker/PLCS7/bin/Release/PLCS7.dll


二進制
PLCLinker/PLCS7/bin/Release/PLCS7.pdb


二進制
PLCLinker/PLCS7/obj/Release/PLCS7.dll


二進制
PLCLinker/PLCS7/obj/Release/PLCS7.pdb


+ 11 - 11
PLCLinker/centralController/App.config

@@ -1,25 +1,25 @@
 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
-    <startup> 
-        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
-    </startup>
+  <startup>
+    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
+  </startup>
   <appSettings>
     <add key="retryCount" value="3"/>
     <add key="defaultLic" value="鄂ZZZZZZ"/>
     <!--数据库信息-->
     <!--<add key="remoteDBConnStr" value="Data Source=59.175.148.85;port=3306;uid=root;pooling=true;max pool size=1024;pwd=x5;database=zxpark;CharSet=utf8;Allow Zero Datetime=true;"/>-->
     <!--<add key="remoteDBConnStr" value="Data Source=192.168.111.61;port=3306;uid=remote;pooling=true;max pool size=1024;pwd=x5;database=zxpark_cloud_2;CharSet=utf8;Allow Zero Datetime=true;"/>-->
-    <add key="remoteDBConnStr" value="Data Source=127.0.0.1;port=3306;uid=root;pooling=true;max pool size=1024;pwd=;database=zxpark_cloud_2;CharSet=utf8;Allow Zero Datetime=true;"/>
+    <add key="remoteDBConnStr" value="Data Source=127.0.0.1;port=20000;uid=root;pooling=true;max pool size=1024;pwd=yct;database=zxpark_cloud_2;CharSet=utf8;Allow Zero Datetime=true;"/>
     <!--<add key="remoteDBConnStr" value="Data Source=192.168.0.106;port=3306;uid=remote;pooling=true;max pool size=1024;pwd=x5;database=zxpark_cloud_2;CharSet=utf8;Allow Zero Datetime=true;"/>-->
-    <add key="localDBConnStr" value="Data Source=127.0.0.1;port=3306;uid=root;pooling=true;max pool size=1024;pwd=;database=zxpark_local;CharSet=utf8;Allow Zero Datetime=true;"/>
+    <add key="localDBConnStr" value="Data Source=127.0.0.1;port=20000;uid=root;pooling=true;max pool size=1024;pwd=yct;database=zxpark_local;CharSet=utf8;Allow Zero Datetime=true;"/>
     <add key="DBtimeout" value="3"/>
     <!--号牌机信息-->
-    <add key="192.168.0.51" value="2"/>
-    <add key="192.168.0.50" value="1"/>
+    <add key="192.168.10.42" value="1"/>
+    <add key="192.168.10.41" value="2"/>
     <add key="filterRatio" value="0.7"/>
     <!--PLC基本配置-->
     <!--<add key="PLC_ip_address" value="192.168.0.10" />-->
-    <add key="plcIpAddress" value="192.168.0.1" />
+    <add key="plcIpAddress" value="192.168.10.60" />
     <add key="plcRack" value="0" />
     <add key="plcSlot" value="1" />
     <!--PLCdb块,分别对应终端、中控、车位-->
@@ -28,12 +28,12 @@
     <add key="plcParkingSpaceCount" value="200" />
     <add key="plcRefreshInterval" value="200"/>
     <!--显示屏信息-->
-    <add key="allInOneMachineIP" value="192.168.0.189"/>
-    <add key="allInOneMachinePort" value="10001"/>
+    <add key="allInOneMachineIP" value="192.168.10.90"/>
+    <add key="allInOneMachinePort" value="8888"/>
     <!--中控webServer端口,deprecated-->
     <add key="webPort" value="9000"/>
     <!--车库信息-->
-    <add key="garageID" value="6"/>
+    <add key="garageID" value="2"/>
     <!--日志写入地址配置文件-->
     <add key="LogAddress" value="c:\\c#workspace\\LogDemo\\LoggerTest" />
     <!--广告存放路径-->

+ 199 - 199
PLCLinker/centralController/FormCentralController.Designer.cs

@@ -35,6 +35,17 @@
             this.dockSite4 = new DevComponents.DotNetBar.DockSite();
             this.dockSite_mainView = new DevComponents.DotNetBar.DockSite();
             this.bar_mainWin = new DevComponents.DotNetBar.Bar();
+            this.pdc_devStatus = new DevComponents.DotNetBar.PanelDockContainer();
+            this.panel1 = new System.Windows.Forms.Panel();
+            this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
+            this.lbx_webStatus = new DevComponents.DotNetBar.LabelX();
+            this.lbx_PLCStatus = new DevComponents.DotNetBar.LabelX();
+            this.lbx_PLC = new DevComponents.DotNetBar.LabelX();
+            this.lbx_web = new DevComponents.DotNetBar.LabelX();
+            this.NumMachineMonitorPanel = new DevComponents.DotNetBar.PanelDockContainer();
+            this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
+            this.paymentPanel = new DevComponents.DotNetBar.PanelDockContainer();
+            this.ParkingSpaceMonitorPanel = new DevComponents.DotNetBar.PanelDockContainer();
             this.testPanel = new DevComponents.DotNetBar.PanelDockContainer();
             this.groupPanel2 = new DevComponents.DotNetBar.Controls.GroupPanel();
             this.pictureBox4 = new System.Windows.Forms.PictureBox();
@@ -50,17 +61,6 @@
             this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
             this.pictureBox1 = new System.Windows.Forms.PictureBox();
             this.labelX1 = new DevComponents.DotNetBar.LabelX();
-            this.NumMachineMonitorPanel = new DevComponents.DotNetBar.PanelDockContainer();
-            this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
-            this.paymentPanel = new DevComponents.DotNetBar.PanelDockContainer();
-            this.ParkingSpaceMonitorPanel = new DevComponents.DotNetBar.PanelDockContainer();
-            this.pdc_devStatus = new DevComponents.DotNetBar.PanelDockContainer();
-            this.panel1 = new System.Windows.Forms.Panel();
-            this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
-            this.lbx_webStatus = new DevComponents.DotNetBar.LabelX();
-            this.lbx_PLCStatus = new DevComponents.DotNetBar.LabelX();
-            this.lbx_PLC = new DevComponents.DotNetBar.LabelX();
-            this.lbx_web = new DevComponents.DotNetBar.LabelX();
             this.dci_NumMachine = new DevComponents.DotNetBar.DockContainerItem();
             this.dci_payment = new DevComponents.DotNetBar.DockContainerItem();
             this.dci_ParkingSpace = new DevComponents.DotNetBar.DockContainerItem();
@@ -141,6 +141,10 @@
             this.dockSite_mainView.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.bar_mainWin)).BeginInit();
             this.bar_mainWin.SuspendLayout();
+            this.pdc_devStatus.SuspendLayout();
+            this.panel1.SuspendLayout();
+            this.tableLayoutPanel2.SuspendLayout();
+            this.NumMachineMonitorPanel.SuspendLayout();
             this.testPanel.SuspendLayout();
             this.groupPanel2.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit();
@@ -150,10 +154,6 @@
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
             this.tableLayoutPanel1.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
-            this.NumMachineMonitorPanel.SuspendLayout();
-            this.pdc_devStatus.SuspendLayout();
-            this.panel1.SuspendLayout();
-            this.tableLayoutPanel2.SuspendLayout();
             ((System.ComponentModel.ISupportInitialize)(this.bar_bottom)).BeginInit();
             this.bar_bottom.SuspendLayout();
             this.RecordsMonitorPanel.SuspendLayout();
@@ -216,12 +216,12 @@
             this.dockSite_mainView.Dock = System.Windows.Forms.DockStyle.Fill;
             this.dockSite_mainView.DocumentDockContainer = new DevComponents.DotNetBar.DocumentDockContainer(new DevComponents.DotNetBar.DocumentBaseContainer[] {
             ((DevComponents.DotNetBar.DocumentBaseContainer)(new DevComponents.DotNetBar.DocumentDockContainer(new DevComponents.DotNetBar.DocumentBaseContainer[] {
-                        ((DevComponents.DotNetBar.DocumentBaseContainer)(new DevComponents.DotNetBar.DocumentBarContainer(this.bar_mainWin, 503, 328))),
-                        ((DevComponents.DotNetBar.DocumentBaseContainer)(new DevComponents.DotNetBar.DocumentBarContainer(this.bar_side, 360, 328)))}, DevComponents.DotNetBar.eOrientation.Horizontal))),
+                        ((DevComponents.DotNetBar.DocumentBaseContainer)(new DevComponents.DotNetBar.DocumentBarContainer(this.bar_mainWin, 503, 326))),
+                        ((DevComponents.DotNetBar.DocumentBaseContainer)(new DevComponents.DotNetBar.DocumentBarContainer(this.bar_side, 360, 326)))}, DevComponents.DotNetBar.eOrientation.Horizontal))),
             ((DevComponents.DotNetBar.DocumentBaseContainer)(new DevComponents.DotNetBar.DocumentBarContainer(this.bar_bottom, 871, 181)))}, DevComponents.DotNetBar.eOrientation.Vertical);
-            this.dockSite_mainView.Location = new System.Drawing.Point(0, 117);
+            this.dockSite_mainView.Location = new System.Drawing.Point(0, 121);
             this.dockSite_mainView.Name = "dockSite_mainView";
-            this.dockSite_mainView.Size = new System.Drawing.Size(866, 551);
+            this.dockSite_mainView.Size = new System.Drawing.Size(866, 547);
             this.dockSite_mainView.TabIndex = 8;
             this.dockSite_mainView.TabStop = false;
             // 
@@ -257,13 +257,167 @@
             this.bar_mainWin.Name = "bar_mainWin";
             this.bar_mainWin.SelectedDockTab = 4;
             this.bar_mainWin.SingleLineColor = System.Drawing.SystemColors.ControlDarkDark;
-            this.bar_mainWin.Size = new System.Drawing.Size(503, 328);
+            this.bar_mainWin.Size = new System.Drawing.Size(503, 326);
             this.bar_mainWin.Stretch = true;
             this.bar_mainWin.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003;
             this.bar_mainWin.TabIndex = 0;
             this.bar_mainWin.TabNavigation = true;
             this.bar_mainWin.TabStop = false;
             // 
+            // pdc_devStatus
+            // 
+            this.pdc_devStatus.CanvasColor = System.Drawing.SystemColors.GradientInactiveCaption;
+            this.pdc_devStatus.Controls.Add(this.panel1);
+            this.pdc_devStatus.DisabledBackColor = System.Drawing.Color.Empty;
+            this.pdc_devStatus.Location = new System.Drawing.Point(3, 28);
+            this.pdc_devStatus.Name = "pdc_devStatus";
+            this.pdc_devStatus.Size = new System.Drawing.Size(497, 295);
+            this.pdc_devStatus.Style.Alignment = System.Drawing.StringAlignment.Center;
+            this.pdc_devStatus.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
+            this.pdc_devStatus.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
+            this.pdc_devStatus.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
+            this.pdc_devStatus.Style.GradientAngle = 90;
+            this.pdc_devStatus.TabIndex = 43;
+            // 
+            // panel1
+            // 
+            this.panel1.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
+            this.panel1.Controls.Add(this.tableLayoutPanel2);
+            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.panel1.Location = new System.Drawing.Point(0, 0);
+            this.panel1.Name = "panel1";
+            this.panel1.Size = new System.Drawing.Size(497, 295);
+            this.panel1.TabIndex = 2;
+            // 
+            // tableLayoutPanel2
+            // 
+            this.tableLayoutPanel2.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
+            this.tableLayoutPanel2.ColumnCount = 2;
+            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+            this.tableLayoutPanel2.Controls.Add(this.lbx_webStatus, 1, 1);
+            this.tableLayoutPanel2.Controls.Add(this.lbx_PLCStatus, 1, 0);
+            this.tableLayoutPanel2.Controls.Add(this.lbx_PLC, 0, 0);
+            this.tableLayoutPanel2.Controls.Add(this.lbx_web, 0, 1);
+            this.tableLayoutPanel2.Location = new System.Drawing.Point(12, 12);
+            this.tableLayoutPanel2.Name = "tableLayoutPanel2";
+            this.tableLayoutPanel2.RowCount = 3;
+            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
+            this.tableLayoutPanel2.Size = new System.Drawing.Size(179, 121);
+            this.tableLayoutPanel2.TabIndex = 1;
+            // 
+            // lbx_webStatus
+            // 
+            this.lbx_webStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
+            this.lbx_webStatus.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
+            // 
+            // 
+            // 
+            this.lbx_webStatus.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+            this.lbx_webStatus.Location = new System.Drawing.Point(112, 43);
+            this.lbx_webStatus.Name = "lbx_webStatus";
+            this.lbx_webStatus.Size = new System.Drawing.Size(43, 34);
+            this.lbx_webStatus.Symbol = "";
+            this.lbx_webStatus.SymbolColor = System.Drawing.Color.Crimson;
+            this.lbx_webStatus.SymbolSize = 25F;
+            this.lbx_webStatus.TabIndex = 3;
+            // 
+            // lbx_PLCStatus
+            // 
+            this.lbx_PLCStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
+            this.lbx_PLCStatus.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
+            // 
+            // 
+            // 
+            this.lbx_PLCStatus.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+            this.lbx_PLCStatus.Location = new System.Drawing.Point(112, 3);
+            this.lbx_PLCStatus.Name = "lbx_PLCStatus";
+            this.lbx_PLCStatus.Size = new System.Drawing.Size(44, 34);
+            this.lbx_PLCStatus.Symbol = "";
+            this.lbx_PLCStatus.SymbolColor = System.Drawing.Color.Crimson;
+            this.lbx_PLCStatus.SymbolSize = 25F;
+            this.lbx_PLCStatus.TabIndex = 2;
+            // 
+            // lbx_PLC
+            // 
+            // 
+            // 
+            // 
+            this.lbx_PLC.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+            this.lbx_PLC.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.lbx_PLC.Location = new System.Drawing.Point(3, 3);
+            this.lbx_PLC.Name = "lbx_PLC";
+            this.lbx_PLC.Size = new System.Drawing.Size(83, 34);
+            this.lbx_PLC.TabIndex = 0;
+            this.lbx_PLC.Text = "PLC";
+            this.lbx_PLC.TextAlignment = System.Drawing.StringAlignment.Center;
+            // 
+            // lbx_web
+            // 
+            // 
+            // 
+            // 
+            this.lbx_web.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
+            this.lbx_web.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.lbx_web.Location = new System.Drawing.Point(3, 43);
+            this.lbx_web.Name = "lbx_web";
+            this.lbx_web.Size = new System.Drawing.Size(83, 34);
+            this.lbx_web.TabIndex = 1;
+            this.lbx_web.Text = "web服务器";
+            this.lbx_web.TextAlignment = System.Drawing.StringAlignment.Center;
+            // 
+            // NumMachineMonitorPanel
+            // 
+            this.NumMachineMonitorPanel.Controls.Add(this.flowLayoutPanel1);
+            this.NumMachineMonitorPanel.DisabledBackColor = System.Drawing.Color.Empty;
+            this.NumMachineMonitorPanel.Location = new System.Drawing.Point(3, 28);
+            this.NumMachineMonitorPanel.Name = "NumMachineMonitorPanel";
+            this.NumMachineMonitorPanel.Size = new System.Drawing.Size(497, 295);
+            this.NumMachineMonitorPanel.Style.Alignment = System.Drawing.StringAlignment.Center;
+            this.NumMachineMonitorPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
+            this.NumMachineMonitorPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
+            this.NumMachineMonitorPanel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
+            this.NumMachineMonitorPanel.Style.GradientAngle = 90;
+            this.NumMachineMonitorPanel.TabIndex = 0;
+            // 
+            // flowLayoutPanel1
+            // 
+            this.flowLayoutPanel1.BackColor = System.Drawing.SystemColors.GradientActiveCaption;
+            this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+            this.flowLayoutPanel1.Name = "flowLayoutPanel1";
+            this.flowLayoutPanel1.Size = new System.Drawing.Size(497, 295);
+            this.flowLayoutPanel1.TabIndex = 1;
+            this.flowLayoutPanel1.Resize += new System.EventHandler(this.flowLayoutPanel1_Resize);
+            // 
+            // paymentPanel
+            // 
+            this.paymentPanel.DisabledBackColor = System.Drawing.Color.Empty;
+            this.paymentPanel.Location = new System.Drawing.Point(3, 28);
+            this.paymentPanel.Name = "paymentPanel";
+            this.paymentPanel.Size = new System.Drawing.Size(497, 295);
+            this.paymentPanel.Style.Alignment = System.Drawing.StringAlignment.Center;
+            this.paymentPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
+            this.paymentPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
+            this.paymentPanel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
+            this.paymentPanel.Style.GradientAngle = 90;
+            this.paymentPanel.TabIndex = 24;
+            // 
+            // ParkingSpaceMonitorPanel
+            // 
+            this.ParkingSpaceMonitorPanel.DisabledBackColor = System.Drawing.Color.Empty;
+            this.ParkingSpaceMonitorPanel.Location = new System.Drawing.Point(3, 28);
+            this.ParkingSpaceMonitorPanel.Name = "ParkingSpaceMonitorPanel";
+            this.ParkingSpaceMonitorPanel.Size = new System.Drawing.Size(497, 295);
+            this.ParkingSpaceMonitorPanel.Style.Alignment = System.Drawing.StringAlignment.Center;
+            this.ParkingSpaceMonitorPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
+            this.ParkingSpaceMonitorPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
+            this.ParkingSpaceMonitorPanel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
+            this.ParkingSpaceMonitorPanel.Style.GradientAngle = 90;
+            this.ParkingSpaceMonitorPanel.TabIndex = 9;
+            // 
             // testPanel
             // 
             this.testPanel.Controls.Add(this.groupPanel2);
@@ -277,7 +431,7 @@
             this.testPanel.DisabledBackColor = System.Drawing.Color.Empty;
             this.testPanel.Location = new System.Drawing.Point(3, 28);
             this.testPanel.Name = "testPanel";
-            this.testPanel.Size = new System.Drawing.Size(497, 297);
+            this.testPanel.Size = new System.Drawing.Size(497, 295);
             this.testPanel.Style.Alignment = System.Drawing.StringAlignment.Center;
             this.testPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
             this.testPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
@@ -500,160 +654,6 @@
             this.labelX1.Text = "label1\r\nlable2";
             this.labelX1.TextAlignment = System.Drawing.StringAlignment.Center;
             // 
-            // NumMachineMonitorPanel
-            // 
-            this.NumMachineMonitorPanel.Controls.Add(this.flowLayoutPanel1);
-            this.NumMachineMonitorPanel.DisabledBackColor = System.Drawing.Color.Empty;
-            this.NumMachineMonitorPanel.Location = new System.Drawing.Point(3, 28);
-            this.NumMachineMonitorPanel.Name = "NumMachineMonitorPanel";
-            this.NumMachineMonitorPanel.Size = new System.Drawing.Size(497, 297);
-            this.NumMachineMonitorPanel.Style.Alignment = System.Drawing.StringAlignment.Center;
-            this.NumMachineMonitorPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
-            this.NumMachineMonitorPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
-            this.NumMachineMonitorPanel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
-            this.NumMachineMonitorPanel.Style.GradientAngle = 90;
-            this.NumMachineMonitorPanel.TabIndex = 0;
-            // 
-            // flowLayoutPanel1
-            // 
-            this.flowLayoutPanel1.BackColor = System.Drawing.SystemColors.GradientActiveCaption;
-            this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
-            this.flowLayoutPanel1.Name = "flowLayoutPanel1";
-            this.flowLayoutPanel1.Size = new System.Drawing.Size(497, 297);
-            this.flowLayoutPanel1.TabIndex = 1;
-            this.flowLayoutPanel1.Resize += new System.EventHandler(this.flowLayoutPanel1_Resize);
-            // 
-            // paymentPanel
-            // 
-            this.paymentPanel.DisabledBackColor = System.Drawing.Color.Empty;
-            this.paymentPanel.Location = new System.Drawing.Point(3, 28);
-            this.paymentPanel.Name = "paymentPanel";
-            this.paymentPanel.Size = new System.Drawing.Size(497, 297);
-            this.paymentPanel.Style.Alignment = System.Drawing.StringAlignment.Center;
-            this.paymentPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
-            this.paymentPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
-            this.paymentPanel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
-            this.paymentPanel.Style.GradientAngle = 90;
-            this.paymentPanel.TabIndex = 24;
-            // 
-            // ParkingSpaceMonitorPanel
-            // 
-            this.ParkingSpaceMonitorPanel.DisabledBackColor = System.Drawing.Color.Empty;
-            this.ParkingSpaceMonitorPanel.Location = new System.Drawing.Point(3, 28);
-            this.ParkingSpaceMonitorPanel.Name = "ParkingSpaceMonitorPanel";
-            this.ParkingSpaceMonitorPanel.Size = new System.Drawing.Size(497, 297);
-            this.ParkingSpaceMonitorPanel.Style.Alignment = System.Drawing.StringAlignment.Center;
-            this.ParkingSpaceMonitorPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
-            this.ParkingSpaceMonitorPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
-            this.ParkingSpaceMonitorPanel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
-            this.ParkingSpaceMonitorPanel.Style.GradientAngle = 90;
-            this.ParkingSpaceMonitorPanel.TabIndex = 9;
-            // 
-            // pdc_devStatus
-            // 
-            this.pdc_devStatus.CanvasColor = System.Drawing.SystemColors.GradientInactiveCaption;
-            this.pdc_devStatus.Controls.Add(this.panel1);
-            this.pdc_devStatus.DisabledBackColor = System.Drawing.Color.Empty;
-            this.pdc_devStatus.Location = new System.Drawing.Point(3, 28);
-            this.pdc_devStatus.Name = "pdc_devStatus";
-            this.pdc_devStatus.Size = new System.Drawing.Size(497, 297);
-            this.pdc_devStatus.Style.Alignment = System.Drawing.StringAlignment.Center;
-            this.pdc_devStatus.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
-            this.pdc_devStatus.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
-            this.pdc_devStatus.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText;
-            this.pdc_devStatus.Style.GradientAngle = 90;
-            this.pdc_devStatus.TabIndex = 43;
-            // 
-            // panel1
-            // 
-            this.panel1.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
-            this.panel1.Controls.Add(this.tableLayoutPanel2);
-            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.panel1.Location = new System.Drawing.Point(0, 0);
-            this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(497, 297);
-            this.panel1.TabIndex = 2;
-            // 
-            // tableLayoutPanel2
-            // 
-            this.tableLayoutPanel2.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
-            this.tableLayoutPanel2.ColumnCount = 2;
-            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
-            this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
-            this.tableLayoutPanel2.Controls.Add(this.lbx_webStatus, 1, 1);
-            this.tableLayoutPanel2.Controls.Add(this.lbx_PLCStatus, 1, 0);
-            this.tableLayoutPanel2.Controls.Add(this.lbx_PLC, 0, 0);
-            this.tableLayoutPanel2.Controls.Add(this.lbx_web, 0, 1);
-            this.tableLayoutPanel2.Location = new System.Drawing.Point(12, 12);
-            this.tableLayoutPanel2.Name = "tableLayoutPanel2";
-            this.tableLayoutPanel2.RowCount = 3;
-            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
-            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
-            this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
-            this.tableLayoutPanel2.Size = new System.Drawing.Size(179, 121);
-            this.tableLayoutPanel2.TabIndex = 1;
-            // 
-            // lbx_webStatus
-            // 
-            this.lbx_webStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
-            this.lbx_webStatus.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
-            // 
-            // 
-            // 
-            this.lbx_webStatus.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
-            this.lbx_webStatus.Location = new System.Drawing.Point(112, 43);
-            this.lbx_webStatus.Name = "lbx_webStatus";
-            this.lbx_webStatus.Size = new System.Drawing.Size(43, 34);
-            this.lbx_webStatus.Symbol = "";
-            this.lbx_webStatus.SymbolColor = System.Drawing.Color.Crimson;
-            this.lbx_webStatus.SymbolSize = 25F;
-            this.lbx_webStatus.TabIndex = 3;
-            // 
-            // lbx_PLCStatus
-            // 
-            this.lbx_PLCStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
-            this.lbx_PLCStatus.BackColor = System.Drawing.SystemColors.GradientInactiveCaption;
-            // 
-            // 
-            // 
-            this.lbx_PLCStatus.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
-            this.lbx_PLCStatus.Location = new System.Drawing.Point(112, 3);
-            this.lbx_PLCStatus.Name = "lbx_PLCStatus";
-            this.lbx_PLCStatus.Size = new System.Drawing.Size(44, 34);
-            this.lbx_PLCStatus.Symbol = "";
-            this.lbx_PLCStatus.SymbolColor = System.Drawing.Color.Crimson;
-            this.lbx_PLCStatus.SymbolSize = 25F;
-            this.lbx_PLCStatus.TabIndex = 2;
-            // 
-            // lbx_PLC
-            // 
-            // 
-            // 
-            // 
-            this.lbx_PLC.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
-            this.lbx_PLC.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.lbx_PLC.Location = new System.Drawing.Point(3, 3);
-            this.lbx_PLC.Name = "lbx_PLC";
-            this.lbx_PLC.Size = new System.Drawing.Size(83, 34);
-            this.lbx_PLC.TabIndex = 0;
-            this.lbx_PLC.Text = "PLC";
-            this.lbx_PLC.TextAlignment = System.Drawing.StringAlignment.Center;
-            // 
-            // lbx_web
-            // 
-            // 
-            // 
-            // 
-            this.lbx_web.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square;
-            this.lbx_web.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.lbx_web.Location = new System.Drawing.Point(3, 43);
-            this.lbx_web.Name = "lbx_web";
-            this.lbx_web.Size = new System.Drawing.Size(83, 34);
-            this.lbx_web.TabIndex = 1;
-            this.lbx_web.Text = "web服务器";
-            this.lbx_web.TextAlignment = System.Drawing.StringAlignment.Center;
-            // 
             // dci_NumMachine
             // 
             this.dci_NumMachine.Control = this.NumMachineMonitorPanel;
@@ -705,10 +705,10 @@
             this.bar_bottom.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] {
             this.dci_ParkingRecords});
             this.bar_bottom.LayoutType = DevComponents.DotNetBar.eLayoutType.DockContainer;
-            this.bar_bottom.Location = new System.Drawing.Point(0, 331);
+            this.bar_bottom.Location = new System.Drawing.Point(0, 329);
             this.bar_bottom.Name = "bar_bottom";
             this.bar_bottom.SelectedDockTab = 0;
-            this.bar_bottom.Size = new System.Drawing.Size(866, 220);
+            this.bar_bottom.Size = new System.Drawing.Size(866, 218);
             this.bar_bottom.Stretch = true;
             this.bar_bottom.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003;
             this.bar_bottom.TabIndex = 1;
@@ -720,7 +720,7 @@
             this.RecordsMonitorPanel.DisabledBackColor = System.Drawing.Color.Empty;
             this.RecordsMonitorPanel.Location = new System.Drawing.Point(3, 28);
             this.RecordsMonitorPanel.Name = "RecordsMonitorPanel";
-            this.RecordsMonitorPanel.Size = new System.Drawing.Size(860, 189);
+            this.RecordsMonitorPanel.Size = new System.Drawing.Size(860, 187);
             this.RecordsMonitorPanel.Style.Alignment = System.Drawing.StringAlignment.Center;
             this.RecordsMonitorPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
             this.RecordsMonitorPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
@@ -755,7 +755,7 @@
             this.dgvx_parkingRecords.Location = new System.Drawing.Point(0, 0);
             this.dgvx_parkingRecords.Name = "dgvx_parkingRecords";
             this.dgvx_parkingRecords.RowTemplate.Height = 23;
-            this.dgvx_parkingRecords.Size = new System.Drawing.Size(860, 189);
+            this.dgvx_parkingRecords.Size = new System.Drawing.Size(860, 187);
             this.dgvx_parkingRecords.TabIndex = 0;
             // 
             // parkingRecordsID
@@ -861,7 +861,7 @@
             this.bar_side.Location = new System.Drawing.Point(506, 0);
             this.bar_side.Name = "bar_side";
             this.bar_side.SelectedDockTab = 0;
-            this.bar_side.Size = new System.Drawing.Size(360, 328);
+            this.bar_side.Size = new System.Drawing.Size(360, 326);
             this.bar_side.Stretch = true;
             this.bar_side.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003;
             this.bar_side.TabIndex = 2;
@@ -873,7 +873,7 @@
             this.terminalMonitorPanel.DisabledBackColor = System.Drawing.Color.Empty;
             this.terminalMonitorPanel.Location = new System.Drawing.Point(3, 28);
             this.terminalMonitorPanel.Name = "terminalMonitorPanel";
-            this.terminalMonitorPanel.Size = new System.Drawing.Size(354, 297);
+            this.terminalMonitorPanel.Size = new System.Drawing.Size(354, 295);
             this.terminalMonitorPanel.Style.Alignment = System.Drawing.StringAlignment.Center;
             this.terminalMonitorPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
             this.terminalMonitorPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
@@ -888,7 +888,7 @@
             this.flp_Term.Location = new System.Drawing.Point(0, 0);
             this.flp_Term.Name = "flp_Term";
             this.flp_Term.Padding = new System.Windows.Forms.Padding(5);
-            this.flp_Term.Size = new System.Drawing.Size(354, 297);
+            this.flp_Term.Size = new System.Drawing.Size(354, 295);
             this.flp_Term.TabIndex = 0;
             // 
             // dci_terminal
@@ -916,10 +916,10 @@
             this.dockSite_notification.Controls.Add(this.bar_notification);
             this.dockSite_notification.Dock = System.Windows.Forms.DockStyle.Right;
             this.dockSite_notification.DocumentDockContainer = new DevComponents.DotNetBar.DocumentDockContainer(new DevComponents.DotNetBar.DocumentBaseContainer[] {
-            ((DevComponents.DotNetBar.DocumentBaseContainer)(new DevComponents.DotNetBar.DocumentBarContainer(this.bar_notification, 325, 551)))}, DevComponents.DotNetBar.eOrientation.Vertical);
-            this.dockSite_notification.Location = new System.Drawing.Point(866, 117);
+            ((DevComponents.DotNetBar.DocumentBaseContainer)(new DevComponents.DotNetBar.DocumentBarContainer(this.bar_notification, 325, 547)))}, DevComponents.DotNetBar.eOrientation.Vertical);
+            this.dockSite_notification.Location = new System.Drawing.Point(866, 121);
             this.dockSite_notification.Name = "dockSite_notification";
-            this.dockSite_notification.Size = new System.Drawing.Size(328, 551);
+            this.dockSite_notification.Size = new System.Drawing.Size(328, 547);
             this.dockSite_notification.TabIndex = 1;
             this.dockSite_notification.TabStop = false;
             // 
@@ -939,7 +939,7 @@
             this.bar_notification.LayoutType = DevComponents.DotNetBar.eLayoutType.DockContainer;
             this.bar_notification.Location = new System.Drawing.Point(3, 0);
             this.bar_notification.Name = "bar_notification";
-            this.bar_notification.Size = new System.Drawing.Size(325, 551);
+            this.bar_notification.Size = new System.Drawing.Size(325, 547);
             this.bar_notification.Stretch = true;
             this.bar_notification.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003;
             this.bar_notification.TabIndex = 1;
@@ -953,7 +953,7 @@
             this.warningPanel.DisabledBackColor = System.Drawing.Color.Empty;
             this.warningPanel.Location = new System.Drawing.Point(3, 23);
             this.warningPanel.Name = "warningPanel";
-            this.warningPanel.Size = new System.Drawing.Size(319, 525);
+            this.warningPanel.Size = new System.Drawing.Size(319, 521);
             this.warningPanel.Style.Alignment = System.Drawing.StringAlignment.Center;
             this.warningPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground;
             this.warningPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder;
@@ -971,14 +971,14 @@
             this.rtb_notification.Location = new System.Drawing.Point(0, 0);
             this.rtb_notification.Name = "rtb_notification";
             this.rtb_notification.ReadOnly = true;
-            this.rtb_notification.Size = new System.Drawing.Size(319, 504);
+            this.rtb_notification.Size = new System.Drawing.Size(319, 500);
             this.rtb_notification.TabIndex = 1;
             this.rtb_notification.Text = "";
             // 
             // progressBar1
             // 
             this.progressBar1.Dock = System.Windows.Forms.DockStyle.Bottom;
-            this.progressBar1.Location = new System.Drawing.Point(0, 504);
+            this.progressBar1.Location = new System.Drawing.Point(0, 500);
             this.progressBar1.Name = "progressBar1";
             this.progressBar1.Size = new System.Drawing.Size(319, 21);
             this.progressBar1.Step = 20;
@@ -1029,7 +1029,7 @@
             this.dockSite_menu.Dock = System.Windows.Forms.DockStyle.Top;
             this.dockSite_menu.Location = new System.Drawing.Point(0, 0);
             this.dockSite_menu.Name = "dockSite_menu";
-            this.dockSite_menu.Size = new System.Drawing.Size(1194, 117);
+            this.dockSite_menu.Size = new System.Drawing.Size(1194, 121);
             this.dockSite_menu.TabIndex = 6;
             this.dockSite_menu.TabStop = false;
             // 
@@ -1050,7 +1050,7 @@
             this.bar_Menu.Location = new System.Drawing.Point(0, 0);
             this.bar_Menu.MenuBar = true;
             this.bar_Menu.Name = "bar_Menu";
-            this.bar_Menu.Size = new System.Drawing.Size(1194, 24);
+            this.bar_Menu.Size = new System.Drawing.Size(1194, 26);
             this.bar_Menu.Stretch = true;
             this.bar_Menu.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003;
             this.bar_Menu.TabIndex = 0;
@@ -1250,10 +1250,10 @@
             this.shortcut_sysInfo,
             this.shortcut_about,
             this.shortcut_close});
-            this.bar_shortcut.Location = new System.Drawing.Point(0, 25);
+            this.bar_shortcut.Location = new System.Drawing.Point(0, 27);
             this.bar_shortcut.MenuBar = true;
             this.bar_shortcut.Name = "bar_shortcut";
-            this.bar_shortcut.Size = new System.Drawing.Size(1194, 91);
+            this.bar_shortcut.Size = new System.Drawing.Size(1194, 93);
             this.bar_shortcut.Stretch = true;
             this.bar_shortcut.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2003;
             this.bar_shortcut.TabIndex = 1;
@@ -1266,7 +1266,7 @@
             this.panel_freeSpace.Dock = System.Windows.Forms.DockStyle.Right;
             this.panel_freeSpace.Location = new System.Drawing.Point(866, 0);
             this.panel_freeSpace.Name = "panel_freeSpace";
-            this.panel_freeSpace.Size = new System.Drawing.Size(328, 91);
+            this.panel_freeSpace.Size = new System.Drawing.Size(328, 93);
             this.panel_freeSpace.TabIndex = 3;
             // 
             // lbx_freeSpace
@@ -1282,7 +1282,7 @@
             this.lbx_freeSpace.ForeColor = System.Drawing.Color.Tomato;
             this.lbx_freeSpace.Location = new System.Drawing.Point(0, 0);
             this.lbx_freeSpace.Name = "lbx_freeSpace";
-            this.lbx_freeSpace.Size = new System.Drawing.Size(328, 91);
+            this.lbx_freeSpace.Size = new System.Drawing.Size(328, 93);
             this.lbx_freeSpace.TabIndex = 2;
             this.lbx_freeSpace.Text = "currentFreeSpace";
             this.lbx_freeSpace.TextAlignment = System.Drawing.StringAlignment.Center;
@@ -1475,6 +1475,10 @@
             this.dockSite_mainView.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)(this.bar_mainWin)).EndInit();
             this.bar_mainWin.ResumeLayout(false);
+            this.pdc_devStatus.ResumeLayout(false);
+            this.panel1.ResumeLayout(false);
+            this.tableLayoutPanel2.ResumeLayout(false);
+            this.NumMachineMonitorPanel.ResumeLayout(false);
             this.testPanel.ResumeLayout(false);
             this.testPanel.PerformLayout();
             this.groupPanel2.ResumeLayout(false);
@@ -1485,10 +1489,6 @@
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
             this.tableLayoutPanel1.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
-            this.NumMachineMonitorPanel.ResumeLayout(false);
-            this.pdc_devStatus.ResumeLayout(false);
-            this.panel1.ResumeLayout(false);
-            this.tableLayoutPanel2.ResumeLayout(false);
             ((System.ComponentModel.ISupportInitialize)(this.bar_bottom)).EndInit();
             this.bar_bottom.ResumeLayout(false);
             this.RecordsMonitorPanel.ResumeLayout(false);

+ 14 - 13
PLCLinker/centralController/FormCentralController.cs

@@ -57,7 +57,6 @@ namespace centralController
                     Thread.Sleep(300);
                 }
             });
-
             //定时器,定时更新停车记录
             System.Windows.Forms.Timer recordsTimer = new System.Windows.Forms.Timer();
             recordsTimer.Interval = 10000;
@@ -461,21 +460,23 @@ namespace centralController
             {
                 if (!Monitor.Monitor.PLC.isConnected)
                 {
+                    Monitor.Monitor.SetNotification("检测到PLC掉线,尝试重连", TextColor.Info);
                     Monitor.Monitor.PLC.PLCConnect();
                 }
                 else
                 {
-                    List<object> received = Monitor.Monitor.PLC.ReadFromPLC(PLCDataType.terminal, 0);
-                    if (received.Count != Monitor.Monitor.plcTerminalCount)
-                    {
-                        Monitor.Monitor.SetNotification("检测到PLC数据异常", TextColor.Warning);
-                        Monitor.Monitor.PLC.PLCDisconnect();
-                        Monitor.Monitor.PLC.PLCConnect();
-                    }
-                    else
-                    {
-                        Monitor.Monitor.SetNotification("PLC连接正常,无需连接", TextColor.Info);
-                    }
+                    //List<object> received = Monitor.Monitor.PLC.ReadFromPLC(PLCDataType.terminal, 0);
+                    //if (received.Count != Monitor.Monitor.plcTerminalCount)
+                    //{
+                    //    Monitor.Monitor.SetNotification("检测到PLC数据异常", TextColor.Warning);
+                    Monitor.Monitor.SetNotification("尝试关闭并重新建立与PLC的连接", TextColor.Info);
+                    Monitor.Monitor.PLC.PLCDisconnect();
+                    Monitor.Monitor.PLC.PLCConnect();
+                    //}
+                    //else
+                    //{
+                    //    Monitor.Monitor.SetNotification("PLC连接正常,无需连接", TextColor.Info);
+                    //}
                 }
             }
         }
@@ -524,7 +525,7 @@ namespace centralController
                 rtb_notification.ScrollToCaret();
             string[] strs = rtb_notification.Text.Split('\n');
             //Console.WriteLine(strs.ToString());
-            if (strs.Length > maxlines*2)
+            if (strs.Length > maxlines * 2)
             {
                 string[] newStrs = new string[maxlines];
                 Array.Copy(strs, strs.Length - maxlines, newStrs, 0, maxlines);

+ 177 - 126
PLCLinker/centralController/FormPLCConf.cs

@@ -1,5 +1,4 @@
 using PLCS7;
-using S7.Net;
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
@@ -16,22 +15,10 @@ namespace PLCConnector
     public partial class FormPLCConf : Form
     {
         PLCLinker pl;
-        static string ip = "";
-        static short rack = 0;
-        static short slot = 0;
-        static string[] blockIds = new string[3];
         public FormPLCConf()
         {
             InitializeComponent();
-            try
-            {
-                ip = ConfigurationManager.AppSettings.Get("plcIpAddress");
-                rack = Int16.Parse(ConfigurationManager.AppSettings.Get("plcRack"));
-                slot = Int16.Parse(ConfigurationManager.AppSettings.Get("plcSlot"));
-                blockIds = (ConfigurationManager.AppSettings.Get("plcDatablockId")).Split(',');
-                pl = (PLCLinker)Monitor.Monitor.PLC;
-            }
-            catch (Exception e) { MessageBox.Show("配置文件异常"); }
+            pl = (PLCLinker)Monitor.Monitor.PLC;
             Control.ControlCollection cc = this.Controls;
             foreach (Control c in cc)
             {
@@ -142,137 +129,196 @@ namespace PLCConnector
 
         private void button2_Click(object sender, EventArgs e)
         {
-            PLCDataType type = PLCDataType.parkingSpace;
-            int id = -1;
-            switch ((string)textBox5.Text)
-            {
-                case "中控":
-                    type = PLCDataType.central; id = 0;
-                    break;
-                case "终端1":
-                    type = PLCDataType.terminal; id = 1;
-                    break;
-                case "终端2":
-                    type = PLCDataType.terminal; id = 2;
-                    break;
-                case "终端3":
-                    type = PLCDataType.terminal; id = 3;
-                    break;
-                case "车位1":
-                    type = PLCDataType.parkingSpace; id = 4;
-                    break;
-            }
-            string result = "";
-            try
-            {
-                if (id == 4)
-                {
-                    List<object> list = pl.ReadFromPLC(type, 1);
-                    result = ((ParkingSpaceStru)list[0]).ToString();
-                }
-                else if (id > 0)
-                {
-                    List<object> list = pl.ReadFromPLC(type, id);
-                    result = ((TerminalStru)list[0]).ToString();
-                }
-                else if (id == 0)
-                {
-                    List<object> list = pl.ReadFromPLC(type, id);
-                    result = ((MainBlockStru)list[0]).ToString();
-                }
-            }
-            catch { Console.WriteLine("异常"); return; }
-            textBox1.Text = result.Replace(",", "\r\n");
+            //PLCDataType type = PLCDataType.parkingSpace;
+            //int id = -1;
+            //switch ((string)textBox5.Text)
+            //{
+            //    case "中控":
+            //        type = PLCDataType.central; id = 0;
+            //        break;
+            //    case "终端1":
+            //        type = PLCDataType.terminal; id = 1;
+            //        break;
+            //    case "终端2":
+            //        type = PLCDataType.terminal; id = 2;
+            //        break;
+            //    case "终端3":
+            //        type = PLCDataType.terminal; id = 3;
+            //        break;
+            //    case "车位1":
+            //        type = PLCDataType.parkingSpace; id = 4;
+            //        break;
+            //}
+            //string result = "";
+            //try
+            //{
+            //    if (id == 4)
+            //    {
+            //        List<object> list = pl.ReadFromPLC(type, 1);
+            //        result = ((ParkingSpaceStru)list[0]).ToString();
+            //    }
+            //    else if (id > 0)
+            //    {
+            //        List<object> list = pl.ReadFromPLC(type, id);
+            //        result = ((TerminalStru)list[0]).ToString();
+            //    }
+            //    else if (id == 0)
+            //    {
+            //        List<object> list = pl.ReadFromPLC(type, id);
+            //        result = ((MainBlockStru)list[0]).ToString();
+            //    }
+            //}
+            //catch { Console.WriteLine("异常"); return; }
+            //textBox1.Text = result.Replace(",", "\r\n");
+            display(textBox5.Text, textBox1);
         }
 
         private void button3_Click(object sender, EventArgs e)
         {
+            //PLCDataType type = PLCDataType.parkingSpace;
+            //int id = -1;
+            //switch ((string)textBox6.Text)
+            //{
+            //    case "中控":
+            //        type = PLCDataType.central; id = 0;
+            //        break;
+            //    case "终端1":
+            //        type = PLCDataType.terminal; id = 1;
+            //        break;
+            //    case "终端2":
+            //        type = PLCDataType.terminal; id = 2;
+            //        break;
+            //    case "终端3":
+            //        type = PLCDataType.terminal; id = 3;
+            //        break;
+            //    case "车位1":
+            //        type = PLCDataType.parkingSpace; id = 4;
+            //        break;
+            //}
+            //string result = "";
+            //try
+            //{
+            //    if (id == 4)
+            //    {
+            //        List<object> list = pl.ReadFromPLC(type, 1);
+            //        result = ((ParkingSpaceStru)list[0]).ToString();
+            //    }
+            //    else if (id > 0)
+            //    {
+            //        List<object> list = pl.ReadFromPLC(type, id);
+            //        result = ((TerminalStru)list[0]).ToString();
+            //    }
+            //    else if (id == 0)
+            //    {
+            //        List<object> list = pl.ReadFromPLC(type, id);
+            //        result = ((MainBlockStru)list[0]).ToString();
+            //    }
+            //}
+            //catch { Console.WriteLine("异常"); return; }
+            //textBox7.Text = result.Replace(",", "\r\n");
+            display(textBox6.Text, textBox7);
+        }
+
+        private void button4_Click(object sender, EventArgs e)
+        {
+            //PLCDataType type = PLCDataType.parkingSpace;
+            //int id = -1;
+            //switch ((string)textBox8.Text)
+            //{
+            //    case "中控":
+            //        type = PLCDataType.central; id = 0;
+            //        break;
+            //    case "终端1":
+            //        type = PLCDataType.terminal; id = 1;
+            //        break;
+            //    case "终端2":
+            //        type = PLCDataType.terminal; id = 2;
+            //        break;
+            //    case "终端3":
+            //        type = PLCDataType.terminal; id = 3;
+            //        break;
+            //    case "车位1":
+            //        type = PLCDataType.parkingSpace; id = 4;
+            //        break;
+            //}
+            //string result = "";
+            //try
+            //{
+            //    if (id == 4)
+            //    {
+            //        //List<object> list = pl.ReadFromPLC(type, 1);
+            //        result = Monitor.Monitor.parkingSpaceInfo[1];//((ParkingSpaceStru)list[0]).ToString();
+            //    }
+            //    else if (id > 0)
+            //    {
+            //        List<object> list = pl.ReadFromPLC(type, id);
+            //        result = ((TerminalStru)list[0]).ToString();
+            //    }
+            //    else if (id == 0)
+            //    {
+            //        List<object> list = pl.ReadFromPLC(type, id);
+            //        result = ((MainBlockStru)list[0]).ToString();
+            //    }
+            //}
+            //catch { Console.WriteLine("异常"); return; }
+            //textBox9.Text = result.Replace(",", "\r\n");
+            display(textBox8.Text, textBox9);
+        }
+
+        private void display(string target, TextBox tb)
+        {
+            if (target == "")
+                return;
+            string result = "";
             PLCDataType type = PLCDataType.parkingSpace;
             int id = -1;
-            switch ((string)textBox6.Text)
+            int index = 0;
+            try
             {
-                case "中控":
-                    type = PLCDataType.central; id = 0;
-                    break;
-                case "终端1":
-                    type = PLCDataType.terminal; id = 1;
-                    break;
-                case "终端2":
-                    type = PLCDataType.terminal; id = 2;
-                    break;
-                case "终端3":
-                    type = PLCDataType.terminal; id = 3;
-                    break;
-                case "车位1":
-                    type = PLCDataType.parkingSpace; id = 4;
-                    break;
+                if (target.Length > 2)
+                    index = int.Parse(target.Substring(2, target.Length - 2));
             }
-            string result = "";
+            catch (Exception ex) { index = 0; Console.WriteLine("aaaaa"); }
             try
             {
-                if (id == 4)
+                string block = target.Substring(0, 2);
+                switch (block)
                 {
-                    List<object> list = pl.ReadFromPLC(type, 1);
-                    result = ((ParkingSpaceStru)list[0]).ToString();
-                }
-                else if (id > 0)
-                {
-                    List<object> list = pl.ReadFromPLC(type, id);
-                    result = ((TerminalStru)list[0]).ToString();
-                }
-                else if (id == 0)
-                {
-                    List<object> list = pl.ReadFromPLC(type, id);
-                    result = ((MainBlockStru)list[0]).ToString();
+                    case "中控":
+                        type = PLCDataType.central; id = 1001;
+                        break;
+                    case "终端":
+                        type = PLCDataType.terminal;
+                        id = 2000 + (index > 0 ? index - 1 : 0);
+                        break;
+                    case "车位":
+                        type = PLCDataType.parkingSpace;
+                        id = 3000 + (index > 0 ? index - 1 : 0);
+                        break;
                 }
             }
-            catch { Console.WriteLine("异常"); return; }
-            textBox7.Text = result.Replace(",", "\r\n");
-        }
-
-        private void button4_Click(object sender, EventArgs e)
-        {
-            PLCDataType type = PLCDataType.parkingSpace;
-            int id = -1;
-            switch ((string)textBox8.Text)
-            {
-                case "中控":
-                    type = PLCDataType.central; id = 0;
-                    break;
-                case "终端1":
-                    type = PLCDataType.terminal; id = 1;
-                    break;
-                case "终端2":
-                    type = PLCDataType.terminal; id = 2;
-                    break;
-                case "终端3":
-                    type = PLCDataType.terminal; id = 3;
-                    break;
-                case "车位1":
-                    type = PLCDataType.parkingSpace; id = 4;
-                    break;
-            }
-            string result = "";
+            catch { tb.Text = result.Replace(",", "\r\n"); return; }
             try
             {
-                if (id == 4)
+                if (id == 1001)
                 {
-                    List<object> list = pl.ReadFromPLC(type, 1);
-                    result = ((ParkingSpaceStru)list[0]).ToString();
+                    result = Monitor.Monitor.mainBlockInfo.ToString();
                 }
-                else if (id > 0)
+                else if (id >= 3000)
                 {
-                    List<object> list = pl.ReadFromPLC(type, id);
-                    result = ((TerminalStru)list[0]).ToString();
+                    result = Monitor.Monitor.parkingSpaceInfo[id - 3000].ToString();
                 }
-                else if (id == 0)
+                else if (id >= 2000)
                 {
-                    List<object> list = pl.ReadFromPLC(type, id);
-                    result = ((MainBlockStru)list[0]).ToString();
+                    result = Terminal.Terminal.terminalInfo[id - 2000].ToString();
+                }
+                else
+                {
+                    Console.WriteLine("无法识别输入"); return;
                 }
             }
             catch { Console.WriteLine("异常"); return; }
-            textBox9.Text = result.Replace(",", "\r\n");
+            tb.Text = result.Replace(",", "\r\n");
         }
 
         private void btn_refresh_Click(object sender, EventArgs e)
@@ -431,14 +477,19 @@ namespace PLCConnector
                 //pl = new PLCLinker(CpuType.S71500, ip, rack, slot, int.Parse(blockIds[0]), int.Parse(blockIds[1]), int.Parse(blockIds[2]), 6, 200);
                 pl = (PLCLinker)Monitor.Monitor.PLC;
             }
-            if (!pl.isConnected)
+            if (pl == null)
+                return;
+            else if (!pl.isConnected)
             {
                 pl.PLCConnect();
             }
-            Control.ControlCollection cc = this.Controls;
-            foreach (Control c in cc)
+            else
             {
-                c.Enabled = pl.isConnected;
+                Control.ControlCollection cc = this.Controls;
+                foreach (Control c in cc)
+                {
+                    c.Enabled = pl.isConnected;
+                }
             }
         }
     }

+ 10 - 8
PLCLinker/centralController/Monitor/Monitor.cs

@@ -140,7 +140,7 @@ namespace Monitor
                                 }
                             }
                         }
-                        catch (Exception e) { Console.WriteLine("PLC监控终端数据," + e.Message); }
+                        catch (Exception ex) { Console.WriteLine("PLC监控终端数据," + ex.Message); }
                         //接下来获取中控监控信息
                         try
                         {
@@ -150,7 +150,7 @@ namespace Monitor
                                 mainBlockInfo = (MainBlockStru)received[0];
                             }
                         }
-                        catch (Exception e) { Console.WriteLine("PLC监控中控数据," + e.Message); }
+                        catch (Exception ex) { Console.WriteLine("PLC监控中控数据," + ex.Message); }
                         //最后获得所有车位信息
                         try
                         {
@@ -177,7 +177,7 @@ namespace Monitor
                                 }
                             }
                         }
-                        catch (Exception e) { Console.WriteLine("PLC监控车位数据," + e.Message); }
+                        catch (Exception ex) { Console.WriteLine("PLC监控车位数据," + ex.Message); }
                     }
                     else
                     {
@@ -194,7 +194,7 @@ namespace Monitor
                         }
                     }
                 }
-                Thread.Sleep(500);
+                Thread.Sleep(300);
             }
         }
 
@@ -600,10 +600,12 @@ namespace Monitor
                 });
 
                 //更新PLC数据
-                Task.Factory.StartNew(() =>
-                {
-                    PLCUpdate();
-                });
+                Thread PLCUpdateThread = new Thread(PLCUpdate);
+                PLCUpdateThread.Start();
+                //System.Windows.Forms.Timer PLCUpdateTimer = new System.Windows.Forms.Timer();
+                //PLCUpdateTimer.Interval = 300;
+                //PLCUpdateTimer.Tick += new EventHandler(PLCUpdate);
+                //PLCUpdateTimer.Start();
             }
         }
         /// <summary>

+ 40 - 37
PLCLinker/centralController/Monitor/SystemInitializer.cs

@@ -16,7 +16,7 @@ using NumMachine;
 using parkMonitor.LOG;
 using parkMonitor.tools;
 using PLCS7;
-using S7.Net;
+using snap7Enc;
 using Terminal;
 
 namespace Monitor
@@ -38,7 +38,7 @@ namespace Monitor
             mt.StartTiming();
             try
             {
-                Monitor.SetNotification("读取配置文件中...",parkMonitor.model.TextColor.Log);
+                Monitor.SetNotification("读取配置文件中...", parkMonitor.model.TextColor.Log);
                 retryCount = Convert.ToInt32(ConfigurationManager.AppSettings.Get("retryCount"));
                 Monitor.defaultLic = ConfigurationManager.AppSettings.Get("defaultLic");
                 //数据库
@@ -68,14 +68,14 @@ namespace Monitor
             }
             catch (Exception e) { Console.WriteLine("初始化," + e.Message); return; }
 
-            Monitor.SetNotification("初始化PLC连接...",parkMonitor.model.TextColor.Log);
+            Monitor.SetNotification("初始化PLC连接...", parkMonitor.model.TextColor.Log);
             initStatus = initStatus && PLCInit(retryCount);
             //PLC初始化结束,进入状态2
-            if (!initStatus) { Monitor.SetNotification("PLC连接失败,请检查设备",parkMonitor.model.TextColor.Error); return; }
+            if (!initStatus) { Monitor.SetNotification("PLC连接失败,请检查设备", parkMonitor.model.TextColor.Error); return; }
             else { Monitor.initializeState = 2; }
 
             //初始化数据库对象
-            Monitor.SetNotification("初始化数据库...",parkMonitor.model.TextColor.Log);
+            Monitor.SetNotification("初始化数据库...", parkMonitor.model.TextColor.Log);
             Monitor.remoteDBOper = new DBOperation(remoteDBConnStr, DBtimeout);
             Monitor.localDBOper = new DBOperation(localDBConnStr, DBtimeout);
             initStatus = initStatus && Monitor.remoteDBOper.InitConnPooling(10);
@@ -85,7 +85,7 @@ namespace Monitor
             else { Monitor.initializeState = 3; }
 
             //初始化web对象
-            Monitor.SetNotification("初始化云端连接...",parkMonitor.model.TextColor.Log);
+            Monitor.SetNotification("初始化云端连接...", parkMonitor.model.TextColor.Log);
             //Monitor.webServer = new CentralForWeb();
             Monitor.webServer = new MyWebServer();
             initStatus = initStatus && Monitor.webServer.Start(Monitor.webPort);
@@ -121,14 +121,14 @@ namespace Monitor
             #endregion
 
             //初始化计费策略
-            Monitor.SetNotification("读取计费策略...",parkMonitor.model.TextColor.Log);
+            Monitor.SetNotification("读取计费策略...", parkMonitor.model.TextColor.Log);
             PaymentScheme.ins = PaymentScheme.GetCurrentPaymentScheme(1);
             //初始化号牌机对象
-            Monitor.SetNotification("扫描已接入号牌机...",parkMonitor.model.TextColor.Log);
+            Monitor.SetNotification("扫描已接入号牌机...", parkMonitor.model.TextColor.Log);
             Monitor.numMachineLinker = new NumMachineLinker(flpHandle);
             Monitor.numMachineLinker.Start();
             //初始化显示板对象,显示板udp面向无连接
-            Monitor.SetNotification("初始化屏显...",parkMonitor.model.TextColor.Log);
+            Monitor.SetNotification("初始化屏显...", parkMonitor.model.TextColor.Log);
             //BroadcastLinker.Start();
             //Monitor.allInOneMachine = BroadcastLinker.ins;//new BroadcastBoard(Monitor.allInOneMachineIP, Monitor.allInOneMachinePort);
             //初始化广告实例
@@ -146,28 +146,28 @@ namespace Monitor
             {
                 case 0:
                     Console.WriteLine("配置文件读写异常");
-                    Monitor.SetNotification("配置文件读写异常",parkMonitor.model.TextColor.Error);
+                    Monitor.SetNotification("配置文件读写异常", parkMonitor.model.TextColor.Error);
                     break;
                 case 1:
                     Console.WriteLine("PLC初始化异常");
-                    Monitor.SetNotification("PLC初始化异常",parkMonitor.model.TextColor.Error);
+                    Monitor.SetNotification("PLC初始化异常", parkMonitor.model.TextColor.Error);
                     break;
                 case 2:
                     Console.WriteLine("数据库初始化异常");
-                    Monitor.SetNotification("数据库初始化异常",parkMonitor.model.TextColor.Error);
+                    Monitor.SetNotification("数据库初始化异常", parkMonitor.model.TextColor.Error);
                     break;
                 case 3:
                     Console.WriteLine("webServer初始化异常");
-                    Monitor.SetNotification("webServer初始化异常",parkMonitor.model.TextColor.Error);
+                    Monitor.SetNotification("webServer初始化异常", parkMonitor.model.TextColor.Error);
                     break;
                 case 4:
                     Console.WriteLine("其他异常");
-                    Monitor.SetNotification("其他异常",parkMonitor.model.TextColor.Error);
+                    Monitor.SetNotification("其他异常", parkMonitor.model.TextColor.Error);
                     break;
                 case 5:
                     Console.WriteLine("初始化成功");
                     Monitor.SetNotification("clear");
-                    Monitor.SetNotification("初始化成功",parkMonitor.model.TextColor.Log);
+                    Monitor.SetNotification("初始化成功", parkMonitor.model.TextColor.Log);
                     break;
             }
             //Monitor.SetNotification("aaaaaaaaaaaaaaaa", parkMonitor.model.TextColor.Info);
@@ -201,37 +201,40 @@ namespace Monitor
                         Int32.Parse(Monitor.plcDatablockConfig[0]), Int32.Parse(Monitor.plcDatablockConfig[1]), Int32.Parse(Monitor.plcDatablockConfig[2]),
                         Monitor.plcTerminalCount, Monitor.plcParkingSpaceCount);
                 }
-                else if (Monitor.PLC.isConnected)
+                if (Monitor.PLC.isConnected)
                 {
                     Random rnd = new Random();
                     //启动心跳进程
-                    Task.Factory.StartNew(() =>
-                    {
-                        while (!Monitor.isClosing)
-                        {
-                            if (Monitor.PLC.isConnected)
-                            {
-                                MainBlockStru mbs = new MainBlockStru();
-                                List<object> list = Monitor.PLC.ReadFromPLC(PLCDataType.central, 0);
-                                if (list.Count != 0)
-                                {
-                                    mbs = (MainBlockStru)list[0];
-                                    mbs.centralHearbeat = (short)rnd.Next(100,999);
-                                    mbs.licenseReceived = (short)-1;
-                                    mbs.bookParkCmd = (short)-1;
-                                    mbs.bookFetchCmd = (short)-1;
-                                    Monitor.PLC.WriteToPLC(mbs, PLCDataType.central);
-                                }
-                            }
-                            Thread.Sleep(1000);
-                        }
-                    });
+                    System.Windows.Forms.Timer heartbeatTimer = new System.Windows.Forms.Timer();
+                    heartbeatTimer.Interval = 500;
+                    heartbeatTimer.Tick += new EventHandler(CentralHeartbeat);
+                    heartbeatTimer.Start();
                     return true;
                 }
                 else { Monitor.PLC.PLCConnect(); }
             }
             return false;
         }
+
+        private void CentralHeartbeat(object sender, EventArgs e)
+        {
+            Random rnd = new Random();
+            if (Monitor.PLC.isConnected)
+            {
+                MainBlockStru mbs = new MainBlockStru();
+                List<object> list = Monitor.PLC.ReadFromPLC(PLCDataType.central, 0);
+                if (list!=null && list.Count != 0)
+                {
+                    mbs = (MainBlockStru)list[0];
+                    mbs.centralHearbeat = (short)rnd.Next(100, 999);
+                    mbs.licenseReceived = (short)-1;
+                    mbs.bookParkCmd = (short)-1;
+                    mbs.bookFetchCmd = (short)-1;
+                    Monitor.PLC.WriteToPLC(mbs, PLCDataType.central);
+                }
+            }
+        }
+
         /// <summary>
         /// 初始化更新广告
         /// </summary>

+ 3 - 2
PLCLinker/centralController/Terminal/Terminal.cs

@@ -316,6 +316,7 @@ namespace Terminal
                 btnStatus = (short)0,
             };
             Monitor.Monitor.PLC.WriteToPLC(tsFromCentral, PLCDataType.central);
+            Thread.Sleep(300);
             Monitor.Monitor.PLC.WriteToPLC(tsFromTerminal, PLCDataType.terminal);
         }
         /// <summary>
@@ -448,7 +449,7 @@ namespace Terminal
                         //判断之前是否已拍摄号牌
                         if (!idLicMap.ContainsKey(term.terminalID))
                         {
-                            license = Monitor.Monitor.numMachineLinker.GetLicensePlate(term.terminalID);
+                            license = "桂K88888";//Monitor.Monitor.numMachineLinker.GetLicensePlate(term.terminalID);
                             Monitor.Monitor.SetNotification("启动" + term.terminalID + "号号牌机,号牌:" + license, parkMonitor.model.TextColor.Info);
                         }
                         else
@@ -697,7 +698,7 @@ namespace Terminal
                 short registered = 4;
                 while (license == "" && countdown-- > 0)
                 {
-                    license = Monitor.Monitor.numMachineLinker.GetLicensePlate(terminalInfo[index].terminalID);
+                    license = "桂K88888";// Monitor.Monitor.numMachineLinker.GetLicensePlate(terminalInfo[index].terminalID);
                 }
                 Monitor.Monitor.SetNotification(terminalInfo[index].terminalID + "号车位收到地感,拍到" + license, parkMonitor.model.TextColor.Log);
                 if (license != "")

+ 2 - 2
PLCLinker/centralController/centralController.csproj

@@ -134,9 +134,9 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>sdk\PLC\PLCS7.dll</HintPath>
     </Reference>
-    <Reference Include="S7.Net, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d5812d469e84c693, processorArchitecture=MSIL">
+    <Reference Include="snap7Enc, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>sdk\PLC\S7.Net.dll</HintPath>
+      <HintPath>sdk\PLC\snap7Enc.dll</HintPath>
     </Reference>
     <Reference Include="System" />
     <Reference Include="System.Collections.Immutable">

二進制
PLCLinker/centralController/obj/Release/DesignTimeResolveAssemblyReferences.cache


二進制
PLCLinker/centralController/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache


二進制
PLCLinker/centralController/obj/Release/centralController.Properties.Resources.resources


+ 1 - 1
PLCLinker/centralController/obj/Release/centralController.csproj.CoreCompileInputs.cache

@@ -1 +1 @@
-34c360fb20b62e50667afe432a7c5c55a98113c7
+e2e18498797396c0c4d793777c2850f188bce73b

+ 89 - 79
PLCLinker/centralController/obj/Release/centralController.csproj.FileListAbsolute.txt

@@ -1,82 +1,3 @@
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\centralController.exe.config
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\centralController.exe
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\centralController.pdb
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\broadcastDLL.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\db.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DevComponents.DotNetBar2.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\HslCommunication.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\log4net.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\MySql.Data.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Newtonsoft.Json.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\PLCS7.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\S7.Net.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DevComponents.DotNetBar2.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\log4net.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\PLCS7.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.csprojResolveAssemblyReference.cache
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.g.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.BaseConfig_From.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\PLC_Communication.FormModbus.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.NetCfg_Form.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.RuleCfg_Form.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.RVideoCfg_Form.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.VideoCfg_Form.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.FormNumberMachinePreview.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.FormRecordsManager.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.FormSysInfo.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.centralController.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\PLCConnector.FormPLCConf.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.Properties.Resources.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.csproj.GenerateResource.Cache
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.csproj.CoreCompileInputs.cache
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.exe
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.pdb
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.FormPaymentScheme.resources
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Buffers.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Codecs.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Common.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Handlers.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Transport.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Abstractions.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.FileExtensions.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Json.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.DependencyInjection.Abstractions.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Abstractions.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Physical.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.Abstractions.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Primitives.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\nettyCommunication.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Collections.Immutable.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Runtime.CompilerServices.Unsafe.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Runtime.InteropServices.RuntimeInformation.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Threading.Tasks.Extensions.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Buffers.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Codecs.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Common.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Handlers.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Transport.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Abstractions.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.FileExtensions.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Json.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.DependencyInjection.Abstractions.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Abstractions.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Physical.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.Abstractions.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Primitives.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\nettyCommunication.pdb
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\nettyCommunication.dll.config
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Collections.Immutable.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Runtime.CompilerServices.Unsafe.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Threading.Tasks.Extensions.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.exe.config
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\netstandard.dll
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\serversettings.json
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Newtonsoft.Json.xml
-E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.FormSysConfig.resources
 C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\centralController.exe.config
 C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.csproj.centralController.exe.config
 C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.g.resources
@@ -154,3 +75,92 @@ C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\sdk\VZ
 C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\sdk\VZ_Sdk\VzDrawsLib.dll
 C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\sdk\VZ_Sdk\VZ_Sdk.dll
 C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.csprojResolveAssemblyReference.cache
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\sdk\VZ_Sdk\iDecoders.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\sdk\VZ_Sdk\VzDrawsLib.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\sdk\VZ_Sdk\VzLPRSDK.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\sdk\VZ_Sdk\VZ_Sdk.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\serversettings.json
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\centralController.exe.config
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\centralController.exe
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\centralController.pdb
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\broadcastDLL.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\db.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DevComponents.DotNetBar.Schedule.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DevComponents.DotNetBar.SuperGrid.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DevComponents.DotNetBar2.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DevComponents.Instrumentation.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Buffers.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Codecs.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Common.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Handlers.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Transport.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\HslCommunication.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\log4net.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Abstractions.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.FileExtensions.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Json.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.DependencyInjection.Abstractions.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Abstractions.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Physical.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.Abstractions.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Primitives.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\MySql.Data.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\netstandard.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\nettyCommunication.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Newtonsoft.Json.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\PLCS7.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\snap7Enc.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Collections.Immutable.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Runtime.CompilerServices.Unsafe.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Runtime.InteropServices.RuntimeInformation.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Threading.Tasks.Extensions.dll
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DevComponents.DotNetBar.Schedule.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DevComponents.DotNetBar.SuperGrid.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DevComponents.DotNetBar2.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DevComponents.Instrumentation.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Buffers.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Codecs.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Common.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Handlers.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\DotNetty.Transport.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\log4net.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Abstractions.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.FileExtensions.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Json.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.DependencyInjection.Abstractions.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Abstractions.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Physical.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.Abstractions.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Primitives.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\nettyCommunication.pdb
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\nettyCommunication.dll.config
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\Newtonsoft.Json.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\PLCS7.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Collections.Immutable.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Runtime.CompilerServices.Unsafe.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\bin\Release\System.Threading.Tasks.Extensions.xml
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.exe.config
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.g.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.BaseConfig_From.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\PLC_Communication.FormModbus.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.NetCfg_Form.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.RuleCfg_Form.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.RVideoCfg_Form.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.VideoCfg_Form.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.FormNumberMachinePreview.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.FormRecordsManager.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.FormSysConfig.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.FormSysInfo.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.FormPaymentScheme.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.centralController.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\PLCConnector.FormPLCConf.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.Properties.Resources.resources
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.csproj.GenerateResource.Cache
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.csproj.CoreCompileInputs.cache
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.exe
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.pdb
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralController\obj\Release\centralController.csprojResolveAssemblyReference.cache

二進制
PLCLinker/centralController/obj/Release/centralController.csproj.GenerateResource.Cache


二進制
PLCLinker/centralController/sdk/PLC/PLCS7.dll


二進制
PLCLinker/centralController/sdk/PLC/S7.Net.dll


二進制
PLCLinker/centralController/sdk/PLC/snap7Enc.dll


二進制
PLCLinker/socketTest/bin/Release/socketTest.exe


二進制
PLCLinker/socketTest/bin/Release/socketTest.pdb


+ 1 - 0
PLCLinker/socketTest/obj/Release/socketTest.csproj.FileListAbsolute.txt

@@ -15,3 +15,4 @@ C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\socketTest\obj\Release\socketTest.Pr
 C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\socketTest\obj\Release\socketTest.csproj.GenerateResource.Cache
 C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\socketTest\obj\Release\socketTest.exe
 C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\socketTest\obj\Release\socketTest.pdb
+E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\socketTest\obj\Release\socketTest.csprojResolveAssemblyReference.cache

二進制
PLCLinker/socketTest/obj/Release/socketTest.csproj.GenerateResource.Cache


二進制
PLCLinker/socketTest/obj/Release/socketTest.exe


二進制
PLCLinker/socketTest/obj/Release/socketTest.pdb