diff --git a/Sln.Wcs.Plc/Factory/InovanceFactory.cs b/Sln.Wcs.Plc/Factory/InovanceFactory.cs
deleted file mode 100644
index 1a00778..0000000
--- a/Sln.Wcs.Plc/Factory/InovanceFactory.cs
+++ /dev/null
@@ -1,366 +0,0 @@
-using HslCommunication;
-using HslCommunication.Profinet.Inovance;
-using Sln.Wcs.Common;
-using System;
-using System.Threading.Tasks;
-
-#region << 版 本 注 释 >>
-
-/*--------------------------------------------------------------------
-* 版权所有 (c) 2024 WenJY 保留所有权利。
-* CLR版本:4.0.30319.42000
-* 机器名称:LAPTOP-E0N2L34V
-* 命名空间:SlnMesnac.Plc.Factory
-* 唯一标识:496f8d2b-70e3-4a05-ae18-a9b0fcd06b82
-*
-* 创建者:WenJY
-* 电子邮箱:wenjy@mesnac.com
-* 创建时间:2024-03-27 21:58:35
-* 版本:V1.0.0
-* 描述:
-*
-*--------------------------------------------------------------------
-* 修改人:
-* 时间:
-* 修改说明:
-*
-* 版本:V1.0.0
-*--------------------------------------------------------------------*/
-
-#endregion << 版 本 注 释 >>
-
-namespace Sln.Wcs.Plc.Factory
-{
- public class InovanceFactory : PlcAbsractFactory
- {
- private StringChange _stringChange;
-
- private InovanceTcpNet inovanceTcp = null;
-
- public InovanceFactory(StringChange stringChange)
- {
- _stringChange = stringChange;
-
- this.inovanceTcp = new InovanceTcpNet();
- this.inovanceTcp.ConnectTimeOut = 2000;
- }
-
- public override bool IsConnected { get; set; }
-
- ///
- /// 建立连接
- ///
- ///
- ///
- ///
- ///
- public override bool Connect(string ip, int port)
- {
- try
- {
- inovanceTcp?.ConnectClose();
- if (inovanceTcp != null)
- {
- inovanceTcp.IpAddress = ip;
- inovanceTcp.Port = port;
- inovanceTcp.DataFormat = HslCommunication.Core.DataFormat.CDAB;
-
- OperateResult connect = inovanceTcp.ConnectServer();
- this.IsConnected = connect.IsSuccess;
- if (!connect.IsSuccess)
- {
- throw new InvalidOperationException($"汇川PLC连接失败:{connect.Message}");
- }
-
- return connect.IsSuccess;
- }
- else
- {
- throw new ArgumentException($"汇川PLC实例inovanceTcp为null");
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine($"汇川PLC连接异常:{ex.Message}");
- return false;
- }
- }
-
- ///
- /// 断开连接
- ///
- ///
- ///
- public override bool DisConnect()
- {
- try
- {
- OperateResult disConnect = inovanceTcp.ConnectClose();
- this.IsConnected = false;
- if (!disConnect.IsSuccess)
- {
- throw new InvalidOperationException($"汇川PLC断开连接失败:{disConnect.Message}");
- }
- return disConnect.IsSuccess;
- }
- catch (Exception ex)
- {
- throw new InvalidOperationException($"汇川PLC断开连接异常:{ex.Message}");
- }
- }
-
- ///
- /// 根据地址读取指定长度数据
- ///
- ///
- ///
- ///
- ///
- public override byte[] readValueByAddress(string address, int len)
- {
- try
- {
- OperateResult read = inovanceTcp.Read(address, (ushort)(len));
- if (!read.IsSuccess)
- {
- throw new InvalidOperationException($"根据地址:{address};读取指定长度数据失败:{read.Message}");
- }
- return _stringChange.ConvertFloatToINt(read.Content);
- }
- catch (Exception ex)
- {
- throw new InvalidOperationException($"根据地址:{address};读取指定长度数据异常:{ex.Message}");
- }
- }
-
- ///
- /// 根据地址读取int16数据
- ///
- ///
- ///
- ///
- public override int readInt16ByAddress(string address)
- {
- try
- {
- OperateResult read = inovanceTcp.ReadInt16(address);
- if (!read.IsSuccess)
- {
- throw new InvalidOperationException($"根据地址:{address};读取int16数据失败:{read.Content}");
- }
- return read.Content;
- }
- catch (Exception ex)
- {
- throw new InvalidOperationException($"根据地址:{address};读取int16数据异常:{ex.Message}");
- }
- }
-
- ///
- /// 根据地址写入int16数据
- ///
- ///
- ///
- ///
- ///
- public override bool writeInt16ByAddress(string address, int value)
- {
- try
- {
- OperateResult operateResult = new OperateResult();
- int s = 0;
- string[] strArry = address.Split('.');
-
- //先读取整个块的内容
- var info = inovanceTcp.ReadInt16(strArry[0]);
- if (info.Content == 0)
- {
- int length = _stringChange.ParseToInt(strArry[1]) + 1;
- string[] array = new string[length];
- for (int i = 0; i < length; i++)
- {
- if (i == _stringChange.ParseToInt(strArry[1]))
- {
- array[i] = value.ToString();
- }
- else
- {
- array[i] = "0";
- }
- }
- //反转
- Array.Reverse(array);
- byte[] buffer = new byte[array.Length];
- string result = "";
- for (int i = 0; i < array.Length; i++)
- {
- result += (byte)Convert.ToInt32(array[i], 16);
- }
- s = Convert.ToInt32(result.Trim(), 2);
- operateResult = inovanceTcp.Write(strArry[0], (ushort)s);
- }
- else
- {
- var inf2 = Convert.ToString(info.Content, 2);
- string[] infoArray = new string[inf2.Length];
- for (int i = 0; i < inf2.Length; i++)
- {
- infoArray[i] = inf2.Substring(i, 1);
- }
- Array.Reverse(infoArray);
- infoArray[_stringChange.ParseToInt(strArry[1])] = value.ToString();
- string result = "";
- foreach (var item in infoArray)
- {
- result = result + item;
- }
- s = Convert.ToInt32(result.Trim(), 10);
- operateResult = inovanceTcp.Write(strArry[0], s);
- }
- if (!operateResult.IsSuccess)
- {
- throw new InvalidOperationException($"根据地址:{address};写入int16数据失败:{operateResult.Message}");
- }
- return operateResult.IsSuccess;
- }
- catch (Exception ex)
- {
- throw new InvalidOperationException($"根据地址:{address};写入int16数据异常:{ex.Message}");
- }
- }
-
- ///
- /// 通过PLC地址读取string类型数据
- ///
- ///
- ///
- ///
- ///
- public override string readStringByAddress(string address, ushort length)
- {
- try
- {
- OperateResult read = inovanceTcp.ReadString(address, length);
- if (!read.IsSuccess)
- {
- throw new InvalidOperationException($"根据地址:{address};读取string数据失败:{read.Content}");
- }
- return read.Content;
- }
- catch (Exception ex)
- {
- throw new InvalidOperationException($"根据地址:{address};读取string数据异常:{ex.Message}");
- }
- }
-
- ///
- /// 通过PLC地址写入String类型数据
- ///
- ///
- ///
- ///
- ///
- public override bool writeStringByAddress(string address, string value)
- {
- try
- {
- OperateResult operateResult = inovanceTcp.Write(address, value);
- if (!operateResult.IsSuccess)
- {
- throw new InvalidOperationException($"根据地址:{address};写入string数据失败:{operateResult.Message}");
- }
- return operateResult.IsSuccess;
- }
- catch (Exception ex)
- {
- throw new InvalidOperationException($"根据地址:{address};写入string数据异常:{ex.Message}");
- }
- }
-
- ///
- /// 通过PLC地址读取Bool类型数据
- ///
- ///
- ///
- ///
- public override bool readBoolByAddress(string address)
- {
- try
- {
- OperateResult read = inovanceTcp.ReadBool(address);
- if (!read.IsSuccess)
- {
- throw new InvalidOperationException($"根据地址:{address};读取bool数据失败:{read.Content}");
- }
- return read.Content;
- }
- catch (Exception ex)
- {
- throw new InvalidOperationException($"根据地址:{address};读取bool数据异常:{ex.Message}");
- }
- }
-
- ///
- /// 通过PLC地址写入Bool类型数据
- ///
- ///
- ///
- ///
- ///
- public override bool writeBoolByAddress(string address, bool value)
- {
- try
- {
- OperateResult operateResult = inovanceTcp.Write(address, short.Parse(_stringChange.ParseToInt(value ? "1" : "0").ToString()));
- if (!operateResult.IsSuccess)
- {
- throw new InvalidOperationException($"根据地址:{address};写入bool数据失败:{operateResult.Message}");
- }
- return operateResult.IsSuccess;
- }
- catch (Exception ex)
- {
- throw new InvalidOperationException($"根据地址:{address};写入bool数据异常:{ex.Message}");
- }
- }
-
- ///
- /// 通过PLC地址写入Double类型数据
- ///
- ///
- ///
- ///
- ///
- public override bool writeDoubleByAddress(string address, int value)
- {
- try
- {
- OperateResult operateResult = inovanceTcp.Write(address, Convert.ToDouble(value));
- if (!operateResult.IsSuccess)
- {
- throw new InvalidOperationException($"根据地址:{address};写入double数据失败:{operateResult.Message}");
- }
- return operateResult.IsSuccess;
- }
- catch (Exception ex)
- {
- throw new InvalidOperationException($"根据地址:{address};写入double数据异常:{ex.Message}");
- }
- }
-
- public override bool readHeartByAddress(string address)
- {
- throw new NotImplementedException();
- }
-
- public override Task ConnectAsync(string ip, int port)
- {
- throw new NotImplementedException();
- }
-
- public override bool writeStringByAddress(string address, string value, int length)
- {
- throw new NotImplementedException();
- }
- }
-}
\ No newline at end of file
diff --git a/Sln.Wcs.Plc/Sln.Wcs.Plc.csproj b/Sln.Wcs.Plc/Sln.Wcs.Plc.csproj
index 5c1a716..9e8136b 100644
--- a/Sln.Wcs.Plc/Sln.Wcs.Plc.csproj
+++ b/Sln.Wcs.Plc/Sln.Wcs.Plc.csproj
@@ -13,7 +13,10 @@
-
+
+
+
+