yc_t 6 år sedan
förälder
incheckning
4eb44d6048
54 ändrade filer med 163162 tillägg och 279 borttagningar
  1. 2 14
      PLCLinker/CentralController.sln
  2. 26 13
      PLCLinker/PLCConnector/Form1.cs
  3. 194 0
      PLCLinker/PLCConnector/LOG/LogManager.cs
  4. 25 0
      PLCLinker/PLCConnector/LOG/LogTest.cs
  5. 87 0
      PLCLinker/PLCConnector/LOG/log.cs
  6. 3 0
      PLCLinker/PLCConnector/PLCConnector.csproj
  7. BIN
      PLCLinker/PLCLinker/bin/Release/PLCLinker.exe
  8. BIN
      PLCLinker/PLCLinker/bin/Release/PLCLinker.pdb
  9. BIN
      PLCLinker/PLCLinker/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
  10. 3 0
      PLCLinker/PLCLinker/obj/Debug/PLCLinker.csproj.FileListAbsolute.txt
  11. 8 0
      PLCLinker/PLCLinker/obj/Release/PLCLinker.csproj.FileListAbsolute.txt
  12. BIN
      PLCLinker/PLCLinker/obj/Release/PLCLinker.csprojResolveAssemblyReference.cache
  13. BIN
      PLCLinker/PLCLinker/obj/Release/PLCLinker.exe
  14. BIN
      PLCLinker/PLCLinker/obj/Release/PLCLinker.pdb
  15. BIN
      PLCLinker/PLCS7/bin/Release/PLCS7.dll
  16. BIN
      PLCLinker/PLCS7/bin/Release/PLCS7.pdb
  17. 6 0
      PLCLinker/PLCS7/obj/Release/PLCS7.csproj.FileListAbsolute.txt
  18. BIN
      PLCLinker/PLCS7/obj/Release/PLCS7.dll
  19. BIN
      PLCLinker/PLCS7/obj/Release/PLCS7.pdb
  20. 3 3
      PLCLinker/centralController/App.config
  21. 3 3
      PLCLinker/centralController/FormCentralController.Designer.cs
  22. 14 13
      PLCLinker/centralController/FormCentralController.cs
  23. 177 126
      PLCLinker/centralController/FormPLCConf.cs
  24. 5 2
      PLCLinker/centralController/FormSysConfig.cs
  25. 10 8
      PLCLinker/centralController/Monitor/Monitor.cs
  26. 40 37
      PLCLinker/centralController/Monitor/SystemInitializer.cs
  27. 30 14
      PLCLinker/centralController/Terminal/Terminal.cs
  28. 2 1
      PLCLinker/centralController/WebServer/CentralForWebSocketServer.cs
  29. 4 2
      PLCLinker/centralController/WebServer/WebServer.cs
  30. 27 10
      PLCLinker/centralController/centralController.csproj
  31. 3 1
      PLCLinker/centralController/model/PaymentScheme.cs
  32. BIN
      PLCLinker/centralController/obj/Release/DesignTimeResolveAssemblyReferences.cache
  33. BIN
      PLCLinker/centralController/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
  34. 1 1
      PLCLinker/centralController/obj/Release/centralController.csproj.CoreCompileInputs.cache
  35. 118 31
      PLCLinker/centralController/obj/Release/centralController.csproj.FileListAbsolute.txt
  36. BIN
      PLCLinker/centralController/obj/Release/centralController.csproj.GenerateResource.Cache
  37. BIN
      PLCLinker/centralController/sdk/PLC/PLCS7.dll
  38. BIN
      PLCLinker/centralController/sdk/PLC/S7.Net.dll
  39. BIN
      PLCLinker/centralController/sdk/PLC/snap7Enc.dll
  40. 1342 0
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Keyboard.XML
  41. BIN
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Keyboard.dll
  42. BIN
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Layout.Design.dll
  43. BIN
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Layout.dll
  44. 13541 0
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Schedule.XML
  45. BIN
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Schedule.dll
  46. 25035 0
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.SuperGrid.XML
  47. BIN
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.SuperGrid.dll
  48. 40473 0
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.xml
  49. BIN
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar2.dll
  50. 78752 0
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar2.xml
  51. 3228 0
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.Instrumentation.XML
  52. BIN
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.Instrumentation.dll
  53. BIN
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.SuperGrid.Design.dll
  54. BIN
      PLCLinker/centralController/sdk/dotnetbar/DevComponents.TreeGX.dll

+ 2 - 14
PLCLinker/CentralController.sln

@@ -1,7 +1,7 @@
 
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27130.2026
+# Visual Studio 2013
+VisualStudioVersion = 12.0.21005.1
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PLCLinker", "PLCLinker\PLCLinker.csproj", "{2091F0C4-06F2-403A-B660-28E98344309D}"
 EndProject
@@ -11,12 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "centralController", "centra
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "socketTest", "socketTest\socketTest.csproj", "{9AB6542B-0FD8-4ED2-8484-CC7F8C23C67D}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfApp1", "WpfApp1\WpfApp1.csproj", "{4B52BB18-B89A-47C0-A20C-27FF628437FE}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PLCConnector", "PLCConnector\PLCConnector.csproj", "{12254714-E07B-4514-BD5B-EDD0A2C71D62}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NettyTest", "..\NettyCommunication\NettyTest\NettyTest.csproj", "{E693B11B-F146-4EA1-8960-78755FD48DE6}"
-EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -39,18 +35,10 @@ Global
 		{9AB6542B-0FD8-4ED2-8484-CC7F8C23C67D}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{9AB6542B-0FD8-4ED2-8484-CC7F8C23C67D}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{9AB6542B-0FD8-4ED2-8484-CC7F8C23C67D}.Release|Any CPU.Build.0 = Release|Any CPU
-		{4B52BB18-B89A-47C0-A20C-27FF628437FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{4B52BB18-B89A-47C0-A20C-27FF628437FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{4B52BB18-B89A-47C0-A20C-27FF628437FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{4B52BB18-B89A-47C0-A20C-27FF628437FE}.Release|Any CPU.Build.0 = Release|Any CPU
 		{12254714-E07B-4514-BD5B-EDD0A2C71D62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{12254714-E07B-4514-BD5B-EDD0A2C71D62}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{12254714-E07B-4514-BD5B-EDD0A2C71D62}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{12254714-E07B-4514-BD5B-EDD0A2C71D62}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E693B11B-F146-4EA1-8960-78755FD48DE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E693B11B-F146-4EA1-8960-78755FD48DE6}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E693B11B-F146-4EA1-8960-78755FD48DE6}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E693B11B-F146-4EA1-8960-78755FD48DE6}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 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">

BIN
PLCLinker/PLCLinker/bin/Release/PLCLinker.exe


BIN
PLCLinker/PLCLinker/bin/Release/PLCLinker.pdb


BIN
PLCLinker/PLCLinker/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache


+ 3 - 0
PLCLinker/PLCLinker/obj/Debug/PLCLinker.csproj.FileListAbsolute.txt

@@ -6,3 +6,6 @@ E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCLinker\obj\
 E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCLinker\obj\Debug\PLCLinker.csproj.CoreCompileInputs.cache
 E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCLinker\obj\Debug\PLCLinker.exe
 E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCLinker\obj\Debug\PLCLinker.pdb
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCLinker\bin\Debug\PLCLinker.exe.config
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCLinker\obj\Debug\PLCLinker.exe
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCLinker\obj\Debug\PLCLinker.pdb

+ 8 - 0
PLCLinker/PLCLinker/obj/Release/PLCLinker.csproj.FileListAbsolute.txt

@@ -8,3 +8,11 @@ E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCLinker\obj\
 E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCLinker\obj\Release\PLCLinker.csproj.CoreCompileInputs.cache
 E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCLinker\obj\Release\PLCLinker.exe
 E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCLinker\obj\Release\PLCLinker.pdb
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCLinker\bin\Release\PLCLinker.exe.config
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCLinker\bin\Release\PLCLinker.exe
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCLinker\bin\Release\PLCLinker.pdb
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCLinker\bin\Release\PLCS7.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCLinker\bin\Release\S7.Net.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCLinker\bin\Release\PLCS7.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCLinker\obj\Release\PLCLinker.exe
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCLinker\obj\Release\PLCLinker.pdb

BIN
PLCLinker/PLCLinker/obj/Release/PLCLinker.csprojResolveAssemblyReference.cache


BIN
PLCLinker/PLCLinker/obj/Release/PLCLinker.exe


BIN
PLCLinker/PLCLinker/obj/Release/PLCLinker.pdb


BIN
PLCLinker/PLCS7/bin/Release/PLCS7.dll


BIN
PLCLinker/PLCS7/bin/Release/PLCS7.pdb


+ 6 - 0
PLCLinker/PLCS7/obj/Release/PLCS7.csproj.FileListAbsolute.txt

@@ -6,3 +6,9 @@ E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCS7\obj\Rele
 E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCS7\obj\Release\PLCS7.dll
 E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCS7\obj\Release\PLCS7.pdb
 E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\PLCS7\obj\Release\PLCS7.csprojResolveAssemblyReference.cache
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCS7\bin\Release\PLCS7.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCS7\bin\Release\PLCS7.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCS7\bin\Release\PLCS7.pdb
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCS7\bin\Release\S7.Net.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCS7\obj\Release\PLCS7.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\PLCS7\obj\Release\PLCS7.pdb

BIN
PLCLinker/PLCS7/obj/Release/PLCS7.dll


BIN
PLCLinker/PLCS7/obj/Release/PLCS7.pdb


+ 3 - 3
PLCLinker/centralController/App.config

@@ -1,8 +1,8 @@
 <?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"/>

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

@@ -238,11 +238,11 @@
             this.bar_mainWin.CanDockRight = false;
             this.bar_mainWin.CanDockTop = false;
             this.bar_mainWin.CanHide = true;
-            this.bar_mainWin.Controls.Add(this.testPanel);
+            this.bar_mainWin.Controls.Add(this.pdc_devStatus);
             this.bar_mainWin.Controls.Add(this.NumMachineMonitorPanel);
             this.bar_mainWin.Controls.Add(this.paymentPanel);
             this.bar_mainWin.Controls.Add(this.ParkingSpaceMonitorPanel);
-            this.bar_mainWin.Controls.Add(this.pdc_devStatus);
+            this.bar_mainWin.Controls.Add(this.testPanel);
             this.bar_mainWin.DockTabAlignment = DevComponents.DotNetBar.eTabStripAlignment.Top;
             this.bar_mainWin.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
             this.bar_mainWin.IsMaximized = false;
@@ -255,7 +255,7 @@
             this.bar_mainWin.LayoutType = DevComponents.DotNetBar.eLayoutType.DockContainer;
             this.bar_mainWin.Location = new System.Drawing.Point(0, 0);
             this.bar_mainWin.Name = "bar_mainWin";
-            this.bar_mainWin.SelectedDockTab = 3;
+            this.bar_mainWin.SelectedDockTab = 4;
             this.bar_mainWin.SingleLineColor = System.Drawing.SystemColors.ControlDarkDark;
             this.bar_mainWin.Size = new System.Drawing.Size(503, 326);
             this.bar_mainWin.Stretch = true;

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

+ 5 - 2
PLCLinker/centralController/FormSysConfig.cs

@@ -25,6 +25,7 @@ namespace centralController
 
         private void cb_nmIP_DropDown(object sender, EventArgs e)
         {
+            cb_nmIP.Items.Clear();
             Dictionary<string, int>.Enumerator enumer = Monitor.Monitor.numMachineLinker.GetIpIdMap().GetEnumerator();
             while (enumer.MoveNext())
             {
@@ -42,7 +43,8 @@ namespace centralController
             Dictionary<string, int> dictionary = Monitor.Monitor.numMachineLinker.GetIpIdMap();
             if (dictionary != null && selectedIP != null)
             {
-                bool result = dictionary.TryGetValue(selectedIP, out int id);
+                int id=0;
+                bool result = dictionary.TryGetValue(selectedIP, out id);
                 if (result)
                     tb_nmId.Text = id.ToString();
                 else
@@ -66,7 +68,8 @@ namespace centralController
             }
             else
             {
-                if (int.TryParse(tb_nmId.Text, out int id))
+                int id=0;
+                if (int.TryParse(tb_nmId.Text, out id))
                 {
                     ConfigurationManager.AppSettings.Set(selectedIP, tb_nmId.Text);
                     ConfModify(selectedIP, tb_nmId.Text);

+ 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>

+ 30 - 14
PLCLinker/centralController/Terminal/Terminal.cs

@@ -162,17 +162,27 @@ namespace Terminal
                 }
                 else
                 {
-                    insertParkingSpace = "insert into parkingspace (parkingSpaceID,parkingSpaceX,parkingSpaceY,parkingSpaceZ,parkingSpaceState) values (" + Monitor.Monitor.parkingSpaceInfo[i].parkingSpace + "," + Monitor.Monitor.parkingSpaceInfo[i].coordX +
-                        "," + Monitor.Monitor.parkingSpaceInfo[i].coordY + "," + Monitor.Monitor.parkingSpaceInfo[i].floorNo + "," + Monitor.Monitor.parkingSpaceInfo[i].spaceStatus + ");";
-                    insertSpaceList.Add(insertParkingSpace);
+                    if (!remote)
+                    {
+                        insertParkingSpace = "insert into parkingspace (parkingSpaceID,parkingSpaceX,parkingSpaceY,parkingSpaceZ,parkingSpaceState) values (" + Monitor.Monitor.parkingSpaceInfo[i].parkingSpace + "," + Monitor.Monitor.parkingSpaceInfo[i].coordX +
+                            "," + Monitor.Monitor.parkingSpaceInfo[i].coordY + "," + Monitor.Monitor.parkingSpaceInfo[i].floorNo + "," + Monitor.Monitor.parkingSpaceInfo[i].spaceStatus + ");";
+                        insertSpaceList.Add(insertParkingSpace);
+                    }
+                    else
+                    {
+                        insertParkingSpace = "insert into parkingspace (parkingSpaceID,parkingSpaceX,parkingSpaceY,parkingSpaceZ,parkingSpaceState,garageID,parkingSpaceName) values (" + Monitor.Monitor.parkingSpaceInfo[i].parkingSpace + "," + Monitor.Monitor.parkingSpaceInfo[i].coordX +
+                            "," + Monitor.Monitor.parkingSpaceInfo[i].coordY + "," + Monitor.Monitor.parkingSpaceInfo[i].floorNo + "," + Monitor.Monitor.parkingSpaceInfo[i].spaceStatus + "," + Monitor.Monitor.garageID + ",'默认');";
+                        insertSpaceList.Add(insertParkingSpace);
+                    }
                 }
             }
             try
             {
                 lock (dbHandle)
                 {
+                    int id = 0;
                     dbHandle.UpdateTransaction(updateSpaceList);
-                    dbHandle.Insert(insertSpaceList, out int id);
+                    dbHandle.Insert(insertSpaceList, out id);
                 }
             }
             catch (Exception e) { Log.WriteLog(LogType.process, LogFile.ERROR, "更新本地所有车位异常"); Console.WriteLine("更新本地所有车位异常" + e.Message); }
@@ -270,13 +280,14 @@ namespace Terminal
 
                         List<string> list = new List<string>();
                         list.Add(insertVehicleWithState);
+                        int id = 0;
                         if (!remote)
                         {
-                            Monitor.Monitor.localDBOper.Insert(list, out int id);
+                            Monitor.Monitor.localDBOper.Insert(list, out id);
                         }
                         else
                         {
-                            Monitor.Monitor.remoteDBOper.Insert(list, out int id);
+                            Monitor.Monitor.remoteDBOper.Insert(list, out id);
                         }
                     }
                     try
@@ -305,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>
@@ -437,7 +449,7 @@ namespace Terminal
                         //判断之前是否已拍摄号牌
                         if (!idLicMap.ContainsKey(term.terminalID))
                         {
-                            license = "";// "桂K88888"; //Monitor.Monitor.numMachineLinker.GetLicensePlate(terminalInfo[i].terminalID);
+                            license = "桂K88888";//Monitor.Monitor.numMachineLinker.GetLicensePlate(term.terminalID);
                             Monitor.Monitor.SetNotification("启动" + term.terminalID + "号号牌机,号牌:" + license, parkMonitor.model.TextColor.Info);
                         }
                         else
@@ -594,7 +606,8 @@ namespace Terminal
                     //无车位信息则跳出当前循环
                     if (parkingSpaceID == 0 || term.receiptNum == 0)
                     {
-                        try { idLicMap.Remove(currentTerm); } catch { }
+                        try { idLicMap.Remove(currentTerm); }
+                        catch { }
                         Monitor.Monitor.SetNotification("无车位或凭证号", parkMonitor.model.TextColor.Warning);
                         return;
                     }
@@ -614,9 +627,10 @@ namespace Terminal
                     }
                     List<string> list = new List<string>();
                     list.Add(parkingRecordsSql);
-
-                    Monitor.Monitor.localDBOper.Insert(list, out int parkingRecordsID);
-                    Monitor.Monitor.remoteDBOper.Insert(list, out int remoteParkingRecordsID);
+                    int parkingRecordsID = 0;
+                    int remoteParkingRecordsID = 0;
+                    Monitor.Monitor.localDBOper.Insert(list, out parkingRecordsID);
+                    Monitor.Monitor.remoteDBOper.Insert(list, out remoteParkingRecordsID);
                     Log.WriteLog(LogType.process, LogFile.INFO, "停车记录已插入," + license + "停在" + parkingSpaceID + ",凭证号:" + term.receiptNum);
                     Monitor.Monitor.SetNotification("停车记录已插入", parkMonitor.model.TextColor.Info);
 
@@ -643,7 +657,8 @@ namespace Terminal
                     //}
                     //中控清除车牌、凭证号、号牌验证等信息
                     ClearTerminal(term.terminalID);
-                    try { idLicMap.Remove(currentTerm); } catch { }
+                    try { idLicMap.Remove(currentTerm); }
+                    catch { }
                     Monitor.Monitor.SetNotification(license + " 数据库已更新,停车流程结束", parkMonitor.model.TextColor.Info);
                 }
             }
@@ -683,7 +698,7 @@ namespace Terminal
                 short registered = 4;
                 while (license == "" && countdown-- > 0)
                 {
-                    license = "";//"桂K88888"; //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 != "")
@@ -1068,7 +1083,8 @@ namespace Terminal
                 receiptNum = ts.receiptNum;
                 //取车状态、凭证号不为空,查询数据库计费
                 //Console.WriteLine((termIndex != -1) + "," + (termUsedMap.Count >= termIndex) + "," + termUsedMap.TryGetValue(termIndex, out bool valuee) + "," + (!valuee) + "," + (fetchState == 1) + "," + (receiptNum != 0));
-                if (termIndex != -1 && termCalcMap.Count >= termIndex && termCalcMap.TryGetValue(termIndex, out bool value) && !value && ts.cmd == 2 && receiptNum != 0)
+                bool value = false;
+                if (termIndex != -1 && termCalcMap.Count >= termIndex && termCalcMap.TryGetValue(termIndex, out value) && !value && ts.cmd == 2 && receiptNum != 0)
                 {
                     //fetchState = Monitor.Monitor.mainBlockInfo.fetchingRunning;
                     Monitor.Monitor.SetNotification(termIndex + "号终端准备计算费用", parkMonitor.model.TextColor.Log);

+ 2 - 1
PLCLinker/centralController/WebServer/CentralForWebSocketServer.cs

@@ -195,9 +195,10 @@ namespace centralController.WebServer
         private void InsertOrderRecords(string license)
         {
             string insertSql = "";
+            int id = 0;
             List<string> strs = new List<string>();
             strs.Add(insertSql);
-            Monitor.Monitor.localDBOper.Insert(strs, out int id);
+            Monitor.Monitor.localDBOper.Insert(strs, out id);
         }
         private void DownloadAds()
         {

+ 4 - 2
PLCLinker/centralController/WebServer/WebServer.cs

@@ -90,7 +90,8 @@ namespace centralController.WebServer
                 dbHandle = Monitor.Monitor.remoteDBOper;
             if (!dbHandle.UpdateTransaction(vehicleUpdateList))
             {
-                if (!dbHandle.Insert(vehicleInsertList, out int id))
+                int id =0;
+                if (!dbHandle.Insert(vehicleInsertList, out id))
                     return false;
                 else
                     return true;
@@ -168,7 +169,8 @@ namespace centralController.WebServer
         {
             UpdateVehicleState(localDB, parking ? 4 : 5, 0, license);
             //预约记录插入db
-            InsertOrderRecord(localDB, userID, parking, license, orderTime, orderLength, out int currentID);
+            int currentID = 0;
+            InsertOrderRecord(localDB, userID, parking, license, orderTime, orderLength, out currentID);
             ////查询预约记录id号
             //int currentID = FindCurrentOrderRecordID(localDB, license);
             if (currentID == 0) { /*反馈web,预约失败*/ return false; }

+ 27 - 10
PLCLinker/centralController/centralController.csproj

@@ -42,13 +42,22 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>sdk\mysql\db.dll</HintPath>
     </Reference>
-    <Reference Include="DevComponents.DotNetBar.Schedule, Version=12.5.0.2, Culture=neutral, PublicKeyToken=c39c3242a43eee2b" />
-    <Reference Include="DevComponents.DotNetBar.SuperGrid, Version=12.5.0.2, Culture=neutral, PublicKeyToken=c39c3242a43eee2b" />
+    <Reference Include="DevComponents.DotNetBar.Schedule, Version=12.5.0.2, Culture=neutral, PublicKeyToken=c39c3242a43eee2b, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>sdk\dotnetbar\DevComponents.DotNetBar.Schedule.dll</HintPath>
+    </Reference>
+    <Reference Include="DevComponents.DotNetBar.SuperGrid, Version=12.5.0.2, Culture=neutral, PublicKeyToken=c39c3242a43eee2b, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>sdk\dotnetbar\DevComponents.DotNetBar.SuperGrid.dll</HintPath>
+    </Reference>
     <Reference Include="DevComponents.DotNetBar2, Version=12.5.0.2, Culture=neutral, PublicKeyToken=c39c3242a43eee2b, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>D:\program_files\DotNetBar for Windows Forms\DevComponents.DotNetBar2.dll</HintPath>
+      <HintPath>sdk\dotnetbar\DevComponents.DotNetBar2.dll</HintPath>
+    </Reference>
+    <Reference Include="DevComponents.Instrumentation, Version=12.5.0.2, Culture=neutral, PublicKeyToken=bc4a9d761ea44ef0, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>sdk\dotnetbar\DevComponents.Instrumentation.dll</HintPath>
     </Reference>
-    <Reference Include="DevComponents.Instrumentation, Version=12.5.0.2, Culture=neutral, PublicKeyToken=bc4a9d761ea44ef0" />
     <Reference Include="DotNetty.Buffers">
       <HintPath>sdk\dotNetty\DotNetty.Buffers.dll</HintPath>
     </Reference>
@@ -125,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">
@@ -354,10 +363,18 @@
     <Content Include="sdk\mysql\MySql.Data.dll" />
     <Content Include="sdk\PLC\PLCS7.dll" />
     <Content Include="sdk\PLC\S7.Net.dll" />
-    <Content Include="sdk\VZ_Sdk\iDecoders.dll" />
-    <Content Include="sdk\VZ_Sdk\VzDrawsLib.dll" />
-    <Content Include="sdk\VZ_Sdk\VzLPRSDK.dll" />
-    <Content Include="sdk\VZ_Sdk\VZ_Sdk.dll" />
+    <Content Include="sdk\VZ_Sdk\iDecoders.dll">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="sdk\VZ_Sdk\VzDrawsLib.dll">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="sdk\VZ_Sdk\VzLPRSDK.dll">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
+    <Content Include="sdk\VZ_Sdk\VZ_Sdk.dll">
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+    </Content>
     <Resource Include="sdk\log4net\log4net.xml" />
   </ItemGroup>
   <ItemGroup>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 3 - 1
PLCLinker/centralController/model/PaymentScheme.cs


BIN
PLCLinker/centralController/obj/Release/DesignTimeResolveAssemblyReferences.cache


BIN
PLCLinker/centralController/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache


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

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

+ 118 - 31
PLCLinker/centralController/obj/Release/centralController.csproj.FileListAbsolute.txt

@@ -1,42 +1,101 @@
+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
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.BaseConfig_From.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\PLC_Communication.FormModbus.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.NetCfg_Form.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.RuleCfg_Form.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.RVideoCfg_Form.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\VzClientSDKDemo.VideoCfg_Form.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.FormNumberMachinePreview.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.FormRecordsManager.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.FormSysConfig.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.FormSysInfo.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.FormPaymentScheme.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.centralController.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\PLCConnector.FormPLCConf.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.Properties.Resources.resources
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.csproj.GenerateResource.Cache
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\serversettings.json
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\centralController.exe
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\centralController.pdb
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\broadcastDLL.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\db.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\DotNetty.Buffers.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\DotNetty.Codecs.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\DotNetty.Common.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\DotNetty.Handlers.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\DotNetty.Transport.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\HslCommunication.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\log4net.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Abstractions.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.FileExtensions.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Json.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.DependencyInjection.Abstractions.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Abstractions.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Physical.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.Abstractions.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Primitives.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\MySql.Data.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\nettyCommunication.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Newtonsoft.Json.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\PLCS7.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\S7.Net.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\System.Collections.Immutable.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\System.Runtime.CompilerServices.Unsafe.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\System.Runtime.InteropServices.RuntimeInformation.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\System.Threading.Tasks.Extensions.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\DotNetty.Buffers.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\DotNetty.Codecs.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\DotNetty.Common.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\DotNetty.Handlers.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\DotNetty.Transport.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\log4net.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Abstractions.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.FileExtensions.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Configuration.Json.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.DependencyInjection.Abstractions.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Abstractions.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.FileProviders.Physical.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Logging.Abstractions.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Microsoft.Extensions.Primitives.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\Newtonsoft.Json.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\PLCS7.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\System.Collections.Immutable.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\System.Runtime.CompilerServices.Unsafe.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\System.Threading.Tasks.Extensions.xml
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.exe
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\obj\Release\centralController.pdb
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\sdk\VZ_Sdk\VzLPRSDK.dll
+C:\parkMonitorV2\parkMonitor_V2.0\PLCLinker\centralController\bin\Release\sdk\VZ_Sdk\iDecoders.dll
+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\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\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
@@ -47,16 +106,26 @@ E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralControl
 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
@@ -69,11 +138,29 @@ E:\superScene\智能停车项目\智能停车项目v2.0\PLCLinker\centralControl
 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\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.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

BIN
PLCLinker/centralController/obj/Release/centralController.csproj.GenerateResource.Cache


BIN
PLCLinker/centralController/sdk/PLC/PLCS7.dll


BIN
PLCLinker/centralController/sdk/PLC/S7.Net.dll


BIN
PLCLinker/centralController/sdk/PLC/snap7Enc.dll


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1342 - 0
PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Keyboard.XML


BIN
PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Keyboard.dll


BIN
PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Layout.Design.dll


BIN
PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Layout.dll


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 13541 - 0
PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Schedule.XML


BIN
PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.Schedule.dll


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 25035 - 0
PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.SuperGrid.XML


BIN
PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.SuperGrid.dll


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 40473 - 0
PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar.xml


BIN
PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar2.dll


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 78752 - 0
PLCLinker/centralController/sdk/dotnetbar/DevComponents.DotNetBar2.xml


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 3228 - 0
PLCLinker/centralController/sdk/dotnetbar/DevComponents.Instrumentation.XML


BIN
PLCLinker/centralController/sdk/dotnetbar/DevComponents.Instrumentation.dll


BIN
PLCLinker/centralController/sdk/dotnetbar/DevComponents.SuperGrid.Design.dll


BIN
PLCLinker/centralController/sdk/dotnetbar/DevComponents.TreeGX.dll