فهرست منبع

倍福版本更新

Shun 2 سال پیش
والد
کامیت
be4f065409

+ 13 - 3
src/YSAI.DAQ/YSAI.Beckhoff/client/BeckhoffClientData.cs

@@ -9,17 +9,17 @@ using System.Threading.Tasks;
 using YSAI.Core.subscription;
 using YSAI.Unility;
 
-namespace YSAI.Beckhoff.client
+namespace YSAI.Beckhoff
 {
     /// <summary>
     /// 倍福基础数据
     /// </summary>
-    public class BeckhoffClientData
+    public class BeckhoffData
     {
         /// <summary>
         /// 基础数据
         /// </summary>
-        public class Basics : SubscribeData.SCData
+        public class Basics
         {
             /// <summary>
             /// 唯一标识符
@@ -36,6 +36,16 @@ namespace YSAI.Beckhoff.client
             /// </summary>
             [Description("端口")]
             public int Port { get; set; } = 851;
+            /// <summary>
+            /// 任务数量
+            /// </summary>
+            [Description("任务数量")]
+            public int TaskNumber { get; set; } = 5;
+            /// <summary>
+            /// 任务处理间隔(毫秒)
+            /// </summary>
+            [Description("任务处理间隔(毫秒)")]
+            public int TaskHandleInterval { get; set; } = 100;
         }
     }
 }

+ 24 - 24
src/YSAI.DAQ/YSAI.Beckhoff/client/BeckhoffClientOperate.cs

@@ -14,12 +14,12 @@ using System.Reflection.Metadata;
 using TwinCAT.Ads.TypeSystem;
 using TwinCAT;
 
-namespace YSAI.Beckhoff.client
+namespace YSAI.Beckhoff
 {
     /// <summary>
     /// 倍福PLC
     /// </summary>
-    public class BeckhoffClientOperate : IBaseAbstract, IDaq
+    public class BeckhoffOperate : IBaseAbstract, IDaq
     {
         protected override string TAG => "BeckhoffOperate";
         /// <summary>
@@ -29,19 +29,19 @@ namespace YSAI.Beckhoff.client
         /// <summary>
         /// 自身对象集合
         /// </summary>
-        private static List<BeckhoffClientOperate> ThisObjList = new List<BeckhoffClientOperate>();
+        private static List<BeckhoffOperate> ThisObjList = new List<BeckhoffOperate>();
 
         /// <summary>
         /// 单例模式
         /// </summary>
         /// <returns></returns>
-        public static BeckhoffClientOperate Instance(BeckhoffClientData.Basics basics)
+        public static BeckhoffOperate Instance(BeckhoffData.Basics basics)
         {
             if (ThisObjList.Count >= MaxInstanceCount)
             {
                 throw new Exception(ExceedMaxInstanceCountTips);
             }
-            BeckhoffClientOperate? exp = ThisObjList.FirstOrDefault(c => c.basics.Comparer(basics).result);
+            BeckhoffOperate? exp = ThisObjList.FirstOrDefault(c => c.basics.Comparer(basics).result);
             if (exp == null)
             {
                 lock (Lock)
@@ -52,7 +52,7 @@ namespace YSAI.Beckhoff.client
                     }
                     else
                     {
-                        BeckhoffClientOperate exp2 = new BeckhoffClientOperate(basics);
+                        BeckhoffOperate exp2 = new BeckhoffOperate(basics);
                         ThisObjList.Add(exp2);
                         return exp2;
                     }
@@ -65,7 +65,7 @@ namespace YSAI.Beckhoff.client
         /// 构造函数
         /// </summary>
         /// <param name="basics"></param>
-        public BeckhoffClientOperate(BeckhoffClientData.Basics basics)
+        public BeckhoffOperate(BeckhoffData.Basics basics)
         {
             this.basics = basics;
         }
@@ -73,7 +73,7 @@ namespace YSAI.Beckhoff.client
         /// <summary>
         /// 基础数据
         /// </summary>
-        private BeckhoffClientData.Basics basics { get; set; }
+        private BeckhoffData.Basics basics { get; set; }
         /// <summary>
         /// 虚拟地址
         /// </summary>
@@ -127,7 +127,7 @@ namespace YSAI.Beckhoff.client
                                 //设置参数
                                 ConcurrentDictionary<string, AddressValue> param = new ConcurrentDictionary<string, AddressValue>();
                                 //处理数据
-                                AddressValue addressValue = YSAI.Core.handler.AddressHandler.ExecuteDispose(addressDetails, value);  //数据 
+                                AddressValue addressValue = Core.handler.AddressHandler.ExecuteDispose(addressDetails, value);  //数据 
                                 //添加或更新
                                 param.AddOrUpdate(addressDetails.AddressName, addressValue, (k, v) => addressValue);
 
@@ -178,7 +178,7 @@ namespace YSAI.Beckhoff.client
         /// <param name="e"></param>
         //private void Symbol_ValueChanged(object? sender, ValueChangedEventArgs e)
         //{
-            
+
         //}
 
         /// <summary>
@@ -199,7 +199,7 @@ namespace YSAI.Beckhoff.client
         /// <summary>
         /// 当连接状态已更改时发生
         /// </summary>
-        private void AdsClient_ConnectionStateChanged(object? sender, TwinCAT.ConnectionStateChangedEventArgs e)
+        private void AdsClient_ConnectionStateChanged(object? sender, ConnectionStateChangedEventArgs e)
         {
             OnEventHandler(sender, new EventResult(true, "连接状态已改变", e, Core.@enum.ResultType.Object));
         }
@@ -228,14 +228,14 @@ namespace YSAI.Beckhoff.client
         {
             if (adsClient != null && adsClient.IsConnected)
             {
-                return Break(Depart("GetStatus"),true,"已连接");
+                return Break(Depart("GetStatus"), true, "已连接");
             }
             return Break(Depart("GetStatus"), false, "未连接");
         }
 
         public Task<OperateResult> GetStatusAsync()
         {
-            return Task.Run(()=> GetStatus());
+            return Task.Run(() => GetStatus());
         }
 
         public OperateResult Off()
@@ -328,12 +328,12 @@ namespace YSAI.Beckhoff.client
                 adsClient.AdsNotificationError += AdsClient_AdsNotificationError;
                 adsClient.AdsNotificationEx += AdsClient_AdsNotificationEx;
                 adsClient.AdsNotificationsInvalidated += AdsClient_AdsNotificationsInvalidated;
-                adsClient.AdsStateChanged+= AdsClient_AdsStateChanged;
-                adsClient.AdsSymbolVersionChanged+= AdsClient_AdsSymbolVersionChanged;
-                adsClient.ConnectionStateChanged+= AdsClient_ConnectionStateChanged;
+                adsClient.AdsStateChanged += AdsClient_AdsStateChanged;
+                adsClient.AdsSymbolVersionChanged += AdsClient_AdsSymbolVersionChanged;
+                adsClient.ConnectionStateChanged += AdsClient_ConnectionStateChanged;
                 adsClient.RouterStateChanged += AdsClient_RouterStateChanged;
 
-                return Break(SN,true);
+                return Break(SN, true);
             }
             catch (Exception ex)
             {
@@ -405,11 +405,11 @@ namespace YSAI.Beckhoff.client
                                     resultAnyValue = adsClient.ReadAnyAsync(handle.Handle, typeof(DateTime), Cts.Token).Result;
                                     break;
                                 case Core.@enum.DataType.Time:
-                                    resultRead = adsClient.ReadAsync(handle.Handle, readBuffer.AsMemory(0, TIME.MarshalSize), Cts.Token).Result;
+                                    resultRead = adsClient.ReadAsync(handle.Handle, readBuffer.AsMemory(0, TimeBase.MarshalSize), Cts.Token).Result;
                                     if (resultRead.Succeeded)
                                     {
                                         TIME plcTime = null;
-                                        PrimitiveTypeMarshaler.Default.Unmarshal(readBuffer.AsSpan(0, TIME.MarshalSize), out plcTime);
+                                        PrimitiveTypeMarshaler.Default.Unmarshal(readBuffer.AsSpan(0, TimeBase.MarshalSize), out plcTime);
                                         if (plcTime != null)
                                         {
                                             Value = plcTime.Time.ToString();
@@ -417,11 +417,11 @@ namespace YSAI.Beckhoff.client
                                     }
                                     break;
                                 case Core.@enum.DataType.Date:
-                                    resultRead = adsClient.ReadAsync(handle.Handle, readBuffer.AsMemory(0, TIME.MarshalSize), Cts.Token).Result;
+                                    resultRead = adsClient.ReadAsync(handle.Handle, readBuffer.AsMemory(0, TimeBase.MarshalSize), Cts.Token).Result;
                                     if (resultRead.Succeeded)
                                     {
                                         DATE plcDate = null;
-                                        PrimitiveTypeMarshaler.Default.Unmarshal(readBuffer.AsSpan(0, TIME.MarshalSize), out plcDate);
+                                        PrimitiveTypeMarshaler.Default.Unmarshal(readBuffer.AsSpan(0, TimeBase.MarshalSize), out plcDate);
                                         if (plcDate != null)
                                         {
                                             Value = plcDate.ToString();
@@ -498,7 +498,7 @@ namespace YSAI.Beckhoff.client
                     switch (item.AddressDataType)
                     {
                         case Core.@enum.DataType.Bool:
-                            type = typeof(bool); 
+                            type = typeof(bool);
                             break;
                         case Core.@enum.DataType.String:
                         case Core.@enum.DataType.Char:
@@ -542,7 +542,7 @@ namespace YSAI.Beckhoff.client
                 return Break(SN, false, ex.Message, Exception: ex);
             }
         }
-      
+
 
         public Task<OperateResult> SubscribeAsync(Address address)
         {
@@ -662,7 +662,7 @@ namespace YSAI.Beckhoff.client
                             {
                                 byte[] writeBuffer = new byte[8];
                                 PrimitiveTypeMarshaler.Default.Marshal(Param.Value, writeBuffer.AsSpan());
-                                resultWrite = adsClient.WriteAsync(handle.Handle, writeBuffer.AsMemory(0, TIME.MarshalSize), Cts.Token).Result;
+                                resultWrite = adsClient.WriteAsync(handle.Handle, writeBuffer.AsMemory(0, TimeBase.MarshalSize), Cts.Token).Result;
                                 if (!resultWrite.Succeeded)
                                 {
                                     FailMessage.Add($"{Param.Key},写入失败,{resultWrite.ErrorCode}");

+ 13 - 0
src/YSAI.DAQ/YSAI.Beckhoff/Properties/PublishProfiles/FolderProfile.pubxml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+https://go.microsoft.com/fwlink/?LinkID=208121.
+-->
+<Project>
+  <PropertyGroup>
+    <Configuration>Release</Configuration>
+    <Platform>Any CPU</Platform>
+    <PublishDir>..\YSAI.Publish\Release\net6.0\</PublishDir>
+    <PublishProtocol>FileSystem</PublishProtocol>
+    <_TargetId>Folder</_TargetId>
+  </PropertyGroup>
+</Project>

+ 11 - 11
src/YSAI.DAQ/YSAI.Beckhoff/YSAI.Beckhoff.csproj

@@ -1,22 +1,22 @@
 <Project Sdk="Microsoft.NET.Sdk">
 
-  <PropertyGroup>
-    <TargetFramework>net6.0</TargetFramework>
-    <ImplicitUsings>enable</ImplicitUsings>
-    <Nullable>enable</Nullable>
-  </PropertyGroup>
+	<PropertyGroup>
+		<TargetFramework>net6.0</TargetFramework>
+		<ImplicitUsings>enable</ImplicitUsings>
+		<Nullable>enable</Nullable>
+		<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
+		<Version>1.0.0.1</Version>
+		<Authors>Shun</Authors>
+		<Company>YSAI</Company>
+		<Product>SCADA</Product>
+		<GenerateDocumentationFile>True</GenerateDocumentationFile>
+	</PropertyGroup>
 
 	<ItemGroup>
 		<PackageReference Include="Beckhoff.TwinCAT.Ads" Version="6.1.86" />
-		<PackageReference Include="Beckhoff.TwinCAT.Ads.Reactive" Version="6.1.86" />
-		<PackageReference Include="Beckhoff.TwinCAT.Ads.Server" Version="6.1.86" />
 		<PackageReference Include="YSAI.Core" Version="1.0.0.63" />
 	</ItemGroup>
 
-	<ItemGroup>
-	  <Folder Include="service\" />
-	</ItemGroup>
-
 	<!--<ItemGroup>
     <ProjectReference Include="..\YSAI.Core\YSAI.Core.csproj" />
   </ItemGroup>-->

+ 2 - 2
src/YSAI.DAQ/YSAI.Test.Console/Program.cs

@@ -2,11 +2,11 @@
 
 
 using System.Collections.Concurrent;
-using YSAI.Beckhoff.client;
+using YSAI.Beckhoff;
 using YSAI.Core.data;
 using YSAI.Unility;
 
-BeckhoffClientOperate beckhoffClientOperate = BeckhoffClientOperate.Instance(new BeckhoffClientData.Basics
+BeckhoffOperate beckhoffClientOperate = BeckhoffOperate.Instance(new BeckhoffData.Basics
 {
     AmsNetID = "192.168.66.130.1.1",
     Port = 1233