Browse Source

BUG调整

章政 6 years ago
parent
commit
0824609a9e

+ 14 - 11
PLCDataReader/Main.cs

@@ -459,11 +459,14 @@ namespace UAS_PLCDataReader
 
         List<string> StartDccode = new List<string>();
 
+        List<Polling> StartPolling = new List<Polling>();
+
         private void ButtonStartPolling_Click(object sender, EventArgs e)
         {
             GridView grid = GridViewPollSetting;
             StartDecode.Clear();
             StartDccode.Clear();
+            StartPolling.Clear();
             for (int i = 0; i < GridPollingSetting.RowCount; i++)
             {
                 Polling pl = new Polling();
@@ -477,22 +480,26 @@ namespace UAS_PLCDataReader
                 {
                     StartDecode.Add(pl.DeviceCode);
                     StartDccode.Add(pl.CommandCode);
+                    StartPolling.Add(pl);
                     //插入轮询日志
                     sql.Clear();
                     sql.Append("insert into DEVICEPOLLINGLOG(dpg_id,dpg_decode,dpg_starttime,dpg_interval)values");
                     sql.Append("(DEVICEPOLLINGLOG_seq.nextval,'" + pl.DeviceCode + "',sysdate,'" + pl.Interval + "')");
                     QueueUpdateDevice.Enqueue(sql.ToString());
                     LogicHandler.UpdateDeviceStatus(pl.DeviceCode, pl.DeviceName, "设备启动", DeviceStatus.Noanswer, -1);
-                    pt.AddTask(RunTask, pl);
                     //添加到状态为运行的行
                     PollSettingPaintRowIndex.Add(i);
                     GridPollingSetting.Focus();
                 }
                 else LogicHandler.UpdateDeviceStatus(pl.DeviceCode, pl.DeviceName, "设备未启用", DeviceStatus.Stopped, 0);
             }
-            DNC = (DataTable)dh.ExecuteSql("select dnc_ip,dnc_port from DEVICENETCONFIG where dnc_decode in (" + BaseUtil.ArrayToString(StartDecode) + ")", "select");
-            DC = (DataTable)dh.ExecuteSql("select dc_sendcoding,dc_value,dc_receivecoding,dc_type from devicecommand where dc_code in (" + BaseUtil.ArrayToString(StartDccode) + ") order by dc_dataindex", "select");
-            ButtonSaveCommandSet.DoSaveAfterHandler(false);
+            DNC = (DataTable)dh.ExecuteSql("select dnc_ip,dnc_port,dnc_decode from DEVICENETCONFIG where dnc_decode in (" + BaseUtil.ArrayToString(StartDecode) + ")", "select");
+            DC = (DataTable)dh.ExecuteSql("select dc_sendcoding,dc_value,dc_receivecoding,dc_type,dc_code from devicecommand where dc_code in (" + BaseUtil.ArrayToString(StartDccode) + ") order by dc_dataindex", "select");
+            for (int i = 0; i < StartPolling.Count; i++)
+            {
+                pt.AddTask(RunTask, StartPolling[i]);
+            }
+            //ButtonSaveCommandSet.DoSaveAfterHandler(false);
         }
 
         private void TimerUpdateSQL_Tick(object sender, EventArgs e)
@@ -554,19 +561,15 @@ namespace UAS_PLCDataReader
             string Decode = pl.DeviceCode;
             string Dccode = pl.CommandCode;
             string DpcID = pl.Id.ToString();
-            DataRow[] dnc_dr = DNC.Select("dnc_decode='" + pl.DeviceCode + "'");
-            DataRow[] dc_dr = DC.Select("dc_decode='" + pl.DeviceCode + "'");
+            DataRow[] dnc_dr = DNC.Select("dnc_decode='" + Decode + "'");
+            DataRow[] dc_dr = DC.Select("dc_code='" + Dccode + "'");
             if (dnc_dr.Length > 0)
             {
                 string IP = dnc_dr[0]["dnc_ip"].ToString() + ":" + dnc_dr[0]["dnc_port"].ToString();
-                string SendCoding = "";
-                string ReceiveCoding = "";
                 string Command = "";
                 int SendCommandByteSize = 0;
                 if (dc_dr.Length > 0)
                 {
-                    SendCoding = dc_dr[0]["dc_sendcoding"].ToString();
-                    ReceiveCoding = dc_dr[0]["dc_receivecoding"].ToString();
                     Command = dc_dr[0]["dc_value"].ToString();
                     SendCommandByteSize = Encoding.Default.GetBytes(Command.ToCharArray()).Length;
                 }
@@ -578,7 +581,7 @@ namespace UAS_PLCDataReader
                 {
                     try
                     {
-                        ModBusTCPClient modclient = new ModBusTCPClient(DNC.Rows[0]["dnc_ip"].ToString(), DNC.Rows[0]["dnc_port"].ToString(), pl.DeviceCode, pl.DeviceName);
+                        ModBusTCPClient modclient = new ModBusTCPClient(dnc_dr[0]["dnc_ip"].ToString(), dnc_dr[0]["dnc_port"].ToString(), pl.DeviceCode, pl.DeviceName);
                         modclient.Dh = dh;
                         client.Add(DpcID, modclient);
                     }

+ 3 - 2
PLCDataReader/PublicMethod/ModBusTCPClient.cs

@@ -131,11 +131,12 @@ namespace UAS_PLCDataReader.PublicMethod
             string str = "";
             try
             {
-                if (!socket.Connected || ResetCount == 5)
+                if (!socket.Connected || ResetCount == 20)
                 {
                     socket.Close();
                     socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                     socket.Connect(serverFullAddr);
+                    ResetCount = 0;
                 }
                 Command = Command.Replace(" ", "");
                 byte[] arr = new byte[Command.Length / 2];
@@ -144,7 +145,7 @@ namespace UAS_PLCDataReader.PublicMethod
                     arr[i] = (byte)Convert.ToInt32(Command.Substring(i * 2, 2), 16);
                 }
                 socket.Send(arr);
-                byte[] receive = new byte[1024];
+                byte[] receive = new byte[1024 * 100];
                 LogicHandler.UpdateDeviceStatus(decode, dename, "设备运行准备获取数据", DeviceStatus.Noanswer, 0);
                 LogicHandler.DoDevicePollingLog(decode, true);
                 int length = socket.Receive(receive);

+ 1 - 1
PLCDataReader/PublicMethod/PollingTask.cs

@@ -38,7 +38,7 @@ namespace UAS_PLCDataReader.PublicMethod
         /// </summary>
         /// <param name="TCode"></param>
         /// <returns></returns>
-        public void AddTask(Action<object> action, object obj)
+        public void AddTask(Action<object> action, Polling obj)
         {
             Task.Factory.StartNew(action, obj);
         }

+ 8 - 6
PLCDataReader/UAS_PLCDataReader.csproj

@@ -152,12 +152,12 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>Tool\DevExpress.XtraWizard.v15.2.dll</HintPath>
     </Reference>
-    <Reference Include="HslCommunication, Version=4.3.3.0, Culture=neutral, processorArchitecture=MSIL">
-      <HintPath>..\packages\HslCommunication.4.3.3\lib\net35\HslCommunication.dll</HintPath>
+    <Reference Include="HslCommunication, Version=5.6.7.0, Culture=neutral, PublicKeyToken=cdb2261fa039ed67, processorArchitecture=MSIL">
+      <HintPath>..\packages\HslCommunication.5.6.7\lib\net35\HslCommunication.dll</HintPath>
       <Private>True</Private>
     </Reference>
-    <Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
-      <HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
+    <Reference Include="Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+      <HintPath>..\packages\Newtonsoft.Json.11.0.2\lib\net40\Newtonsoft.Json.dll</HintPath>
       <Private>True</Private>
     </Reference>
     <Reference Include="NPOI">
@@ -274,6 +274,7 @@
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="PublicMethod\BaseUtil.cs" />
+    <Compile Include="PublicMethod\GlobalEventsHandler.cs" />
     <Compile Include="PublicMethod\LogicHandler.cs" />
     <Compile Include="PublicMethod\LogManager.cs" />
     <Compile Include="PublicMethod\ModBusTCPClient.cs" />
@@ -327,7 +328,6 @@
     <EmbeddedResource Include="MainWindow.resx">
       <DependentUpon>MainWindow.cs</DependentUpon>
     </EmbeddedResource>
-    <EmbeddedResource Include="Properties\licenses.licx" />
     <EmbeddedResource Include="Properties\Resources.resx">
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
@@ -338,7 +338,9 @@
       <DependentUpon>Resources.resx</DependentUpon>
       <DesignTime>True</DesignTime>
     </Compile>
-    <None Include="app.config" />
+    <None Include="app.config">
+      <SubType>Designer</SubType>
+    </None>
     <None Include="packages.config" />
     <None Include="Properties\Settings.settings">
       <Generator>SettingsSingleFileGenerator</Generator>

+ 2 - 2
PLCDataReader/packages.config

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
-  <package id="HslCommunication" version="4.3.3" targetFramework="net40" />
-  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net40" />
+  <package id="HslCommunication" version="5.6.7" targetFramework="net40" />
+  <package id="Newtonsoft.Json" version="11.0.2" targetFramework="net40" />
 </packages>