2017-09-26 update 1 Update to .Net Standard 2.0
This commit is contained in:
15
Modbus.Net/Modbus.Net.Core/App.config
Normal file
15
Modbus.Net/Modbus.Net.Core/App.config
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<configuration>
|
||||||
|
<appSettings>
|
||||||
|
<add key="COM" value="COM1" />
|
||||||
|
<add key="FBoxOpcDaHost" value="opcda://localhost/FBoxOpcServer" />
|
||||||
|
<add key="IP" value="192.168.1.1" />
|
||||||
|
<add key="ComConnectionTimeout" value="3000" />
|
||||||
|
<add key="IPConnectionTimeout" value="5000" />
|
||||||
|
<add key="ModbusPort" value="502" />
|
||||||
|
<add key="OpcDaHost" value="opcda://localhost/..." />
|
||||||
|
<add key="OpcUaHost" value="opc.tcp://localhost/..." />
|
||||||
|
<add key="SiemensPort" value="102" />
|
||||||
|
</appSettings>
|
||||||
|
</configuration>
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
using System.IO;
|
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
|
|
||||||
namespace Modbus.Net
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Simulate ConfigurationManager in System.Configuration
|
|
||||||
/// </summary>
|
|
||||||
public static class ConfigurationManager
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Configuration Builder
|
|
||||||
/// </summary>
|
|
||||||
private static readonly IConfigurationBuilder Builder = new ConfigurationBuilder()
|
|
||||||
.SetBasePath(RootPath ?? Directory.GetCurrentDirectory())
|
|
||||||
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// RootPath of App.config and appsettings.json
|
|
||||||
/// </summary>
|
|
||||||
public static string RootPath { get; set; } = null;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Configuration Root
|
|
||||||
/// </summary>
|
|
||||||
private static IConfigurationRoot Configuration => Builder.Build();
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// AppSettings
|
|
||||||
/// </summary>
|
|
||||||
public static IConfigurationSection AppSettings => Configuration.GetSection("AppSettings");
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// ConnectionStrings
|
|
||||||
/// </summary>
|
|
||||||
public static IConfigurationSection ConnectionStrings => Configuration.GetSection("ConnectionStrings");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netstandard1.3</TargetFramework>
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
<AssemblyName>Modbus.Net.Core</AssemblyName>
|
<AssemblyName>Modbus.Net.Core</AssemblyName>
|
||||||
<RootNamespace>Modbus.Net</RootNamespace>
|
<RootNamespace>Modbus.Net</RootNamespace>
|
||||||
<PackageId>Modbus.Net.Core</PackageId>
|
<PackageId>Modbus.Net.Core</PackageId>
|
||||||
<Version>1.3.9</Version>
|
<Version>1.3.10</Version>
|
||||||
<Product>Modbus.Net</Product>
|
<Product>Modbus.Net</Product>
|
||||||
<Authors>Chris L.(Luo Sheng)</Authors>
|
<Authors>Chris L.(Luo Sheng)</Authors>
|
||||||
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
<DocumentationFile>bin\Debug\netstandard1.3\Modbus.Net.xml</DocumentationFile>
|
<DocumentationFile>bin\Debug\netstandard2.0\Modbus.Net.xml</DocumentationFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -50,18 +50,18 @@
|
|||||||
<Compile Include="..\src\Base.Common\ValueHelper.cs" Link="ValueHelper.cs" />
|
<Compile Include="..\src\Base.Common\ValueHelper.cs" Link="ValueHelper.cs" />
|
||||||
<Compile Include="..\src\Base.Common\IUtilityMethod.cs" Link="IUtilityMethod.cs" />
|
<Compile Include="..\src\Base.Common\IUtilityMethod.cs" Link="IUtilityMethod.cs" />
|
||||||
<Compile Include="..\src\Base.Common\IMachineMethod.cs" Link="IMachineMethod.cs" />
|
<Compile Include="..\src\Base.Common\IMachineMethod.cs" Link="IMachineMethod.cs" />
|
||||||
<Compile Include="..\src\Base.Common\TypeExtensions.cs" Link="TypeExtensions.cs" />
|
|
||||||
<Compile Include="..\src\Base.Common\IConnector.cs" Link="IConnector.cs" />
|
<Compile Include="..\src\Base.Common\IConnector.cs" Link="IConnector.cs" />
|
||||||
|
<Compile Include="..\src\Base.Common\ComProtocalLinker.cs" Link="ComProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Base.Common\ComConnector.cs" Link="ComConnector.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration" Version="1.1.2" />
|
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.2" />
|
|
||||||
<PackageReference Include="Nito.AsyncEx.Tasks" Version="1.1.0" />
|
<PackageReference Include="Nito.AsyncEx.Tasks" Version="1.1.0" />
|
||||||
<PackageReference Include="Serilog" Version="2.4.0" />
|
<PackageReference Include="Serilog" Version="2.5.0" />
|
||||||
<PackageReference Include="System.Collections.NonGeneric" Version="4.3.0" />
|
<PackageReference Include="System.Collections.NonGeneric" Version="4.3.0" />
|
||||||
|
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.4.0" />
|
||||||
<PackageReference Include="System.Threading.ThreadPool" Version="4.3.0" />
|
<PackageReference Include="System.Threading.ThreadPool" Version="4.3.0" />
|
||||||
<PackageReference Include="System.ValueTuple" Version="4.3.1" />
|
<PackageReference Include="System.IO.Ports" Version="4.4.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
"AppSettings": {
|
|
||||||
"COM": "COM1",
|
|
||||||
"IP": "192.168.1.1",
|
|
||||||
"ComConnectionTimeout": "3000",
|
|
||||||
"IPConnectionTimeout": "5000",
|
|
||||||
"ModbusPort": "502",
|
|
||||||
"SiemensPort": "102"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,55 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
|
<AssemblyName>Modbus.Net.Modbus.Core</AssemblyName>
|
||||||
|
<RootNamespace>Modbus.Net.Modbus</RootNamespace>
|
||||||
|
<PackageId>Modbus.Net.Modbus.Core</PackageId>
|
||||||
|
<Version>1.3.10</Version>
|
||||||
|
<Authors>Chris L.(Luo Sheng)</Authors>
|
||||||
|
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
||||||
|
<Product>Modbus.Net.Modbus</Product>
|
||||||
|
<Description>Modbus.Net Modbus Implementation</Description>
|
||||||
|
<Copyright>Copyright 2017 Hangzhou Delian IoT Science Technology Co.,Ltd.</Copyright>
|
||||||
|
<PackageLicenseUrl>https://github.com/parallelbgls/Modbus.Net/blob/master/LICENSE.md</PackageLicenseUrl>
|
||||||
|
<PackageProjectUrl>https://github.com/parallelbgls/Modbus.Net/tree/master/Modbus.Net/Modbus.Net.Modbus</PackageProjectUrl>
|
||||||
|
<RepositoryUrl>https://github.com/parallelbgls/Modbus.Net</RepositoryUrl>
|
||||||
|
<RepositoryType>git</RepositoryType>
|
||||||
|
<PackageTags>hardware communicate protocal modbus Delian</PackageTags>
|
||||||
|
<PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
|
||||||
|
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||||
|
<IncludeSymbols>True</IncludeSymbols>
|
||||||
|
<IncludeSource>True</IncludeSource>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
<DocumentationFile>bin\Debug\netstandard2.0\Modbus.Net.Modbus.xml</DocumentationFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="..\src\Modbus.Common\AddressFormaterModbus.cs" Link="AddressFormaterModbus.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\AddressTranslatorModbus.cs" Link="AddressTranslatorModbus.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusAsciiProtocal.cs" Link="ModbusAsciiProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusAsciiProtocalLinker.cs" Link="ModbusAsciiProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusAsciiInTcpProtocal.cs" Link="ModbusAsciiInTcpProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusAsciiInTcpProtocalLinker.cs" Link="ModbusAsciiInTcpProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusMachine.cs" Link="ModbusMachine.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusProtocal.cs" Link="ModbusProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusProtocalLinkerBytesExtend.cs" Link="ModbusProtocalLinkerBytesExtend.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusRtuProtocal.cs" Link="ModbusRtuProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusRtuProtocalLinker.cs" Link="ModbusRtuProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusRtuInTcpProtocal.cs" Link="ModbusRtuInTcpProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusRtuInTcpProtocalLinker.cs" Link="ModbusRtuInTcpProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusTcpProtocal.cs" Link="ModbusTcpProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusTcpProtocalLinker.cs" Link="ModbusTcpProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusUtility.cs" Link="ModbusUtility.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Modbus.Net.Core\Modbus.Net.Core.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="System.ValueTuple" Version="4.4.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<AssemblyName>Modbus.Net.Modbus</AssemblyName>
|
<AssemblyName>Modbus.Net.Modbus</AssemblyName>
|
||||||
<RootNamespace>Modbus.Net.Modbus</RootNamespace>
|
<RootNamespace>Modbus.Net.Modbus</RootNamespace>
|
||||||
<PackageId>Modbus.Net.Modbus</PackageId>
|
<PackageId>Modbus.Net.Modbus</PackageId>
|
||||||
<Version>1.3.9</Version>
|
<Version>1.3.10</Version>
|
||||||
<Authors>Chris L.(Luo Sheng)</Authors>
|
<Authors>Chris L.(Luo Sheng)</Authors>
|
||||||
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
||||||
<Product>Modbus.Net.Modbus</Product>
|
<Product>Modbus.Net.Modbus</Product>
|
||||||
@@ -30,11 +30,30 @@
|
|||||||
<ProjectReference Include="..\Modbus.Net\Modbus.Net.csproj" />
|
<ProjectReference Include="..\Modbus.Net\Modbus.Net.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="..\src\Modbus.Common\AddressFormaterModbus.cs" Link="AddressFormaterModbus.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\AddressTranslatorModbus.cs" Link="AddressTranslatorModbus.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusAsciiProtocal.cs" Link="ModbusAsciiProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusAsciiProtocalLinker.cs" Link="ModbusAsciiProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusAsciiInTcpProtocal.cs" Link="ModbusAsciiInTcpProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusAsciiInTcpProtocalLinker.cs" Link="ModbusAsciiInTcpProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusMachine.cs" Link="ModbusMachine.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusProtocal.cs" Link="ModbusProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusProtocalLinkerBytesExtend.cs" Link="ModbusProtocalLinkerBytesExtend.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusRtuProtocal.cs" Link="ModbusRtuProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusRtuProtocalLinker.cs" Link="ModbusRtuProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusRtuInTcpProtocal.cs" Link="ModbusRtuInTcpProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusRtuInTcpProtocalLinker.cs" Link="ModbusRtuInTcpProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusTcpProtocal.cs" Link="ModbusTcpProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusTcpProtocalLinker.cs" Link="ModbusTcpProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Modbus.Common\ModbusUtility.cs" Link="ModbusUtility.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System.Configuration" />
|
<Reference Include="System.Configuration" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="System.ValueTuple" Version="4.3.1" />
|
<PackageReference Include="System.ValueTuple" Version="4.4.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<AssemblyName>Modbus.Net.OPC</AssemblyName>
|
<AssemblyName>Modbus.Net.OPC</AssemblyName>
|
||||||
<RootNamespace>Modbus.Net.OPC</RootNamespace>
|
<RootNamespace>Modbus.Net.OPC</RootNamespace>
|
||||||
<PackageId>Modbus.Net.OPC</PackageId>
|
<PackageId>Modbus.Net.OPC</PackageId>
|
||||||
<Version>1.3.9</Version>
|
<Version>1.3.10</Version>
|
||||||
<Authors>Chris L.(Luo Sheng)</Authors>
|
<Authors>Chris L.(Luo Sheng)</Authors>
|
||||||
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
||||||
<Description>Modbus.Net OPC Implementation</Description>
|
<Description>Modbus.Net OPC Implementation</Description>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="H.Opc" Version="0.9.0" />
|
<PackageReference Include="H.Opc" Version="0.9.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
|
<AssemblyName>Modbus.Net.Siemens.Core</AssemblyName>
|
||||||
|
<RootNamespace>Modbus.Net.Siemens</RootNamespace>
|
||||||
|
<PackageId>Modbus.Net.Siemens.Core</PackageId>
|
||||||
|
<Version>1.3.10</Version>
|
||||||
|
<Authors>Chris L.(Luo Sheng)</Authors>
|
||||||
|
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
||||||
|
<Description>Modbus.Net Siemens Profinet Implementation</Description>
|
||||||
|
<Copyright>Copyright 2017 Hangzhou Delian IoT Science Technology Co.,Ltd.</Copyright>
|
||||||
|
<PackageLicenseUrl>https://github.com/parallelbgls/Modbus.Net/blob/master/LICENSE.md</PackageLicenseUrl>
|
||||||
|
<PackageProjectUrl>https://github.com/parallelbgls/Modbus.Net/tree/master/Modbus.Net/Modbus.Net.Siemens</PackageProjectUrl>
|
||||||
|
<RepositoryUrl>https://github.com/parallelbgls/Modbus.Net</RepositoryUrl>
|
||||||
|
<RepositoryType>git</RepositoryType>
|
||||||
|
<PackageTags>hardware communicate protocal Siemens profinet Delian</PackageTags>
|
||||||
|
<PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
|
||||||
|
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||||
|
<IncludeSymbols>True</IncludeSymbols>
|
||||||
|
<IncludeSource>True</IncludeSource>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
<DocumentationFile>bin\Debug\netstandard2.0\Modbus.Net.Siemens.xml</DocumentationFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="..\src\Siemens.Common\AddressFormaterSiemens.cs" Link="AddressFormaterSiemens.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\AddressTranslatorSiemens.cs" Link="AddressTranslatorSiemens.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensMachine.cs" Link="SiemensMachine.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensPpiProtocal.cs" Link="SiemensPpiProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensPpiProtocalLinker.cs" Link="SiemensPpiProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensProtocal.cs" Link="SiemensProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensProtocalLinkerBytesExtend.cs" Link="SiemensProtocalLinkerBytesExtend.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensTcpProtocal.cs" Link="SiemensTcpProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensTcpProtocalLinker.cs" Link="SiemensTcpProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensUtility.cs" Link="SiemensUtility.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="System.IO.Ports" Version="4.4.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Modbus.Net.Core\Modbus.Net.Core.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<AssemblyName>Modbus.Net.Siemens</AssemblyName>
|
<AssemblyName>Modbus.Net.Siemens</AssemblyName>
|
||||||
<RootNamespace>Modbus.Net.Siemens</RootNamespace>
|
<RootNamespace>Modbus.Net.Siemens</RootNamespace>
|
||||||
<PackageId>Modbus.Net.Siemens</PackageId>
|
<PackageId>Modbus.Net.Siemens</PackageId>
|
||||||
<Version>1.3.9</Version>
|
<Version>1.3.10</Version>
|
||||||
<Authors>Chris L.(Luo Sheng)</Authors>
|
<Authors>Chris L.(Luo Sheng)</Authors>
|
||||||
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
||||||
<Description>Modbus.Net Siemens Profinet Implementation</Description>
|
<Description>Modbus.Net Siemens Profinet Implementation</Description>
|
||||||
@@ -25,6 +25,19 @@
|
|||||||
<DocumentationFile>bin\Debug\net45\Modbus.Net.Siemens.xml</DocumentationFile>
|
<DocumentationFile>bin\Debug\net45\Modbus.Net.Siemens.xml</DocumentationFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="..\src\Siemens.Common\AddressFormaterSiemens.cs" Link="AddressFormaterSiemens.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\AddressTranslatorSiemens.cs" Link="AddressTranslatorSiemens.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensMachine.cs" Link="SiemensMachine.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensPpiProtocal.cs" Link="SiemensPpiProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensPpiProtocalLinker.cs" Link="SiemensPpiProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensProtocal.cs" Link="SiemensProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensProtocalLinkerBytesExtend.cs" Link="SiemensProtocalLinkerBytesExtend.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensTcpProtocal.cs" Link="SiemensTcpProtocal.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensTcpProtocalLinker.cs" Link="SiemensTcpProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Siemens.Common\SiemensUtility.cs" Link="SiemensUtility.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Modbus.Net\Modbus.Net.csproj" />
|
<ProjectReference Include="..\Modbus.Net\Modbus.Net.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -1,20 +1,20 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 15
|
# Visual Studio 15
|
||||||
VisualStudioVersion = 15.0.26430.6
|
VisualStudioVersion = 15.0.26730.16
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Modbus.Net", "Modbus.Net\Modbus.Net.csproj", "{124EBEF2-8960-4447-84CF-1D683B1EF7CC}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Modbus.Net", "Modbus.Net\Modbus.Net.csproj", "{124EBEF2-8960-4447-84CF-1D683B1EF7CC}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{64472271-8B95-4036-ACF9-C10941C1DB0A}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{64472271-8B95-4036-ACF9-C10941C1DB0A}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
..\README.md = ..\README.md
|
..\README.md = ..\README.md
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Modbus.Net.Modbus", "Modbus.Net.Modbus\Modbus.Net.Modbus.csproj", "{FDCA72BA-6D06-4DE0-B873-C11C4AC853AD}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Modbus.Net.Modbus", "Modbus.Net.Modbus\Modbus.Net.Modbus.csproj", "{FDCA72BA-6D06-4DE0-B873-C11C4AC853AD}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Modbus.Net.Siemens", "Modbus.Net.Siemens\Modbus.Net.Siemens.csproj", "{6258F9D9-0DF4-497F-9F3B-6D2F6F752A21}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Modbus.Net.Siemens", "Modbus.Net.Siemens\Modbus.Net.Siemens.csproj", "{6258F9D9-0DF4-497F-9F3B-6D2F6F752A21}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Modbus.Net.OPC", "Modbus.Net.OPC\Modbus.Net.OPC.csproj", "{97F5A329-357A-4813-BAAE-58E71CC6FA87}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Modbus.Net.OPC", "Modbus.Net.OPC\Modbus.Net.OPC.csproj", "{97F5A329-357A-4813-BAAE-58E71CC6FA87}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{145DA93A-6768-4D98-8512-AB22339933F7}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{145DA93A-6768-4D98-8512-AB22339933F7}"
|
||||||
EndProject
|
EndProject
|
||||||
@@ -30,7 +30,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CrossLamp", "..\Samples\Cro
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnyType", "..\Samples\AnyType\AnyType.csproj", "{25FABD48-D82E-4E08-91A4-46F7057EC954}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AnyType", "..\Samples\AnyType\AnyType.csproj", "{25FABD48-D82E-4E08-91A4-46F7057EC954}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Modbus.Net.Core", "Modbus.Net.Core\Modbus.Net.Core.csproj", "{BBC091FC-A995-4C06-96F1-F91ECD70FA7E}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Modbus.Net.Core", "Modbus.Net.Core\Modbus.Net.Core.csproj", "{BBC091FC-A995-4C06-96F1-F91ECD70FA7E}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Modbus.Net.Modbus.Core", "Modbus.Net.Modbus.Core\Modbus.Net.Modbus.Core.csproj", "{71BF9248-B261-4C93-A039-FFA4D55A4A26}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Modbus.Net.Siemens.Core", "Modbus.Net.Siemens.Core\Modbus.Net.Siemens.Core.csproj", "{84071437-A569-4AAE-BA44-732138AC010E}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
@@ -78,6 +82,14 @@ Global
|
|||||||
{BBC091FC-A995-4C06-96F1-F91ECD70FA7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{BBC091FC-A995-4C06-96F1-F91ECD70FA7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{BBC091FC-A995-4C06-96F1-F91ECD70FA7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{BBC091FC-A995-4C06-96F1-F91ECD70FA7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{BBC091FC-A995-4C06-96F1-F91ECD70FA7E}.Release|Any CPU.Build.0 = Release|Any CPU
|
{BBC091FC-A995-4C06-96F1-F91ECD70FA7E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{71BF9248-B261-4C93-A039-FFA4D55A4A26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{71BF9248-B261-4C93-A039-FFA4D55A4A26}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{71BF9248-B261-4C93-A039-FFA4D55A4A26}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{71BF9248-B261-4C93-A039-FFA4D55A4A26}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{84071437-A569-4AAE-BA44-732138AC010E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{84071437-A569-4AAE-BA44-732138AC010E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{84071437-A569-4AAE-BA44-732138AC010E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{84071437-A569-4AAE-BA44-732138AC010E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
@@ -89,4 +101,7 @@ Global
|
|||||||
{41F40C27-AB1A-4153-BBAD-BFC7BD57B380} = {145DA93A-6768-4D98-8512-AB22339933F7}
|
{41F40C27-AB1A-4153-BBAD-BFC7BD57B380} = {145DA93A-6768-4D98-8512-AB22339933F7}
|
||||||
{25FABD48-D82E-4E08-91A4-46F7057EC954} = {145DA93A-6768-4D98-8512-AB22339933F7}
|
{25FABD48-D82E-4E08-91A4-46F7057EC954} = {145DA93A-6768-4D98-8512-AB22339933F7}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {AF00D64E-3C70-474A-8A81-E9E48017C4B5}
|
||||||
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<AssemblyName>Modbus.Net</AssemblyName>
|
<AssemblyName>Modbus.Net</AssemblyName>
|
||||||
<RootNamespace>Modbus.Net</RootNamespace>
|
<RootNamespace>Modbus.Net</RootNamespace>
|
||||||
<PackageId>Modbus.Net</PackageId>
|
<PackageId>Modbus.Net</PackageId>
|
||||||
<Version>1.3.9</Version>
|
<Version>1.3.10</Version>
|
||||||
<Product>Modbus.Net</Product>
|
<Product>Modbus.Net</Product>
|
||||||
<Authors>Chris L.(Luo Sheng)</Authors>
|
<Authors>Chris L.(Luo Sheng)</Authors>
|
||||||
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
<Company>Hangzhou Delian IoT Science Technology Co.,Ltd.</Company>
|
||||||
@@ -50,23 +50,18 @@
|
|||||||
<Compile Include="..\src\Base.Common\ValueHelper.cs" Link="ValueHelper.cs" />
|
<Compile Include="..\src\Base.Common\ValueHelper.cs" Link="ValueHelper.cs" />
|
||||||
<Compile Include="..\src\Base.Common\IUtilityMethod.cs" Link="IUtilityMethod.cs" />
|
<Compile Include="..\src\Base.Common\IUtilityMethod.cs" Link="IUtilityMethod.cs" />
|
||||||
<Compile Include="..\src\Base.Common\IMachineMethod.cs" Link="IMachineMethod.cs" />
|
<Compile Include="..\src\Base.Common\IMachineMethod.cs" Link="IMachineMethod.cs" />
|
||||||
<Compile Include="..\src\Base.Common\TypeExtensions.cs" Link="TypeExtensions.cs" />
|
|
||||||
<Compile Include="..\src\Base.Common\IConnector.cs" Link="IConnector.cs" />
|
<Compile Include="..\src\Base.Common\IConnector.cs" Link="IConnector.cs" />
|
||||||
|
<Compile Include="..\src\Base.Common\ComProtocalLinker.cs" Link="ComProtocalLinker.cs" />
|
||||||
|
<Compile Include="..\src\Base.Common\ComConnector.cs" Link="ComConnector.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Nito.AsyncEx" Version="4.0.1" />
|
<PackageReference Include="Nito.AsyncEx" Version="4.0.1" />
|
||||||
<PackageReference Include="Serilog" Version="2.4.0" />
|
<PackageReference Include="Serilog" Version="2.5.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System.Configuration" />
|
<Reference Include="System.Configuration" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Update="ComConnector.cs">
|
|
||||||
<SubType>Component</SubType>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Serilog;
|
using Serilog;
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
|
|
||||||
<metadata>
|
|
||||||
<id>Modbus.Net</id>
|
|
||||||
<version>1.2.4</version>
|
|
||||||
<title>Modbus.Net</title>
|
|
||||||
<authors>Chris L.(Luo Sheng)</authors>
|
|
||||||
<owners>Hangzhou Delian IoT Science Technology Co.,Ltd.</owners>
|
|
||||||
<licenseUrl>https://github.com/parallelbgls/Modbus.Net/blob/master/LICENSE.md</licenseUrl>
|
|
||||||
<projectUrl>https://github.com/parallelbgls/Modbus.Net/tree/master/Modbus.Net</projectUrl>
|
|
||||||
<requireLicenseAcceptance>false</requireLicenseAcceptance>
|
|
||||||
<description>High extensible hardware communication implementation platform</description>
|
|
||||||
<copyright>Copyright 2017 Hangzhou Delian IoT Science Technology Co.,Ltd.</copyright>
|
|
||||||
<tags>hardware communicate protocal Delian</tags>
|
|
||||||
</metadata>
|
|
||||||
<files>
|
|
||||||
<file src="bin\Release\Modbus.Net.dll" target="lib\net45\Modbus.Net.dll" />
|
|
||||||
</files>
|
|
||||||
</package>
|
|
||||||
@@ -8,7 +8,6 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Nito.AsyncEx;
|
|
||||||
using Serilog;
|
using Serilog;
|
||||||
|
|
||||||
namespace Modbus.Net
|
namespace Modbus.Net
|
||||||
@@ -108,11 +107,7 @@ namespace Modbus.Net
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void NotifyThreadPoolOfPendingWork()
|
private void NotifyThreadPoolOfPendingWork()
|
||||||
{
|
{
|
||||||
#if NET40 || NET45 || NET451 || NET452 || NET46 || NET461 || NET462 || NET47
|
|
||||||
ThreadPool.UnsafeQueueUserWorkItem(_ =>
|
ThreadPool.UnsafeQueueUserWorkItem(_ =>
|
||||||
#else
|
|
||||||
ThreadPool.QueueUserWorkItem(_ =>
|
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
// Note that the current thread is now processing work items.
|
// Note that the current thread is now processing work items.
|
||||||
// This is necessary to enable inlining of tasks into this thread.
|
// This is necessary to enable inlining of tasks into this thread.
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
#if NET40||NET45||NET451||NET452||NET46||NET461||NET462||NET47
|
using System.Configuration;
|
||||||
using System.Configuration;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace Modbus.Net
|
namespace Modbus.Net
|
||||||
{
|
{
|
||||||
|
|||||||
48
Modbus.Net/src/Modbus.Common/ModbusAsciiInTcpProtocal.cs
Normal file
48
Modbus.Net/src/Modbus.Common/ModbusAsciiInTcpProtocal.cs
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
using System.Configuration;
|
||||||
|
|
||||||
|
namespace Modbus.Net.Modbus
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Modbus/Ascii码协议
|
||||||
|
/// </summary>
|
||||||
|
public class ModbusAsciiInTcpProtocal : ModbusProtocal
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="slaveAddress">从站号</param>
|
||||||
|
/// <param name="masterAddress">主站号</param>
|
||||||
|
/// <param name="endian">端格式</param>
|
||||||
|
public ModbusAsciiInTcpProtocal(byte slaveAddress, byte masterAddress, Endian endian)
|
||||||
|
: this(ConfigurationManager.AppSettings["IP"], slaveAddress, masterAddress, endian)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="com">串口地址</param>
|
||||||
|
/// <param name="slaveAddress">从站号</param>
|
||||||
|
/// <param name="masterAddress">主站号</param>
|
||||||
|
/// <param name="endian">端格式</param>
|
||||||
|
public ModbusAsciiInTcpProtocal(string ip, byte slaveAddress, byte masterAddress, Endian endian)
|
||||||
|
: base(slaveAddress, masterAddress, endian)
|
||||||
|
{
|
||||||
|
ProtocalLinker = new ModbusAsciiInTcpProtocalLinker(ip, slaveAddress);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ip">ip地址</param>
|
||||||
|
/// <param name="port">端口</param>
|
||||||
|
/// <param name="slaveAddress">从站号</param>
|
||||||
|
/// <param name="masterAddress">主站号</param>
|
||||||
|
/// <param name="endian">端格式</param>
|
||||||
|
public ModbusAsciiInTcpProtocal(string ip, int port, byte slaveAddress, byte masterAddress, Endian endian)
|
||||||
|
: base(slaveAddress, masterAddress, endian)
|
||||||
|
{
|
||||||
|
ProtocalLinker = new ModbusTcpProtocalLinker(ip, port);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
using System.Configuration;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace Modbus.Net.Modbus
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Modbus/Ascii码协议连接器Tcp透传
|
||||||
|
/// </summary>
|
||||||
|
public class ModbusAsciiInTcpProtocalLinker : TcpProtocalLinker
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ip">IP地址</param>
|
||||||
|
public ModbusAsciiInTcpProtocalLinker(string ip)
|
||||||
|
: base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ip">ip地址</param>
|
||||||
|
/// <param name="port">端口号</param>
|
||||||
|
public ModbusAsciiInTcpProtocalLinker(string ip, int port)
|
||||||
|
: base(ip, port)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 校验返回数据是否正确
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="content">返回的数据</param>
|
||||||
|
/// <returns>校验是否正确</returns>
|
||||||
|
public override bool? CheckRight(byte[] content)
|
||||||
|
{
|
||||||
|
//ProtocalLinker不会返回null
|
||||||
|
if (!base.CheckRight(content).Value) return false;
|
||||||
|
//CRC校验失败
|
||||||
|
var contentString = Encoding.ASCII.GetString(content);
|
||||||
|
if (!Crc16.GetInstance().LrcEfficacy(contentString))
|
||||||
|
throw new ModbusProtocalErrorException(501);
|
||||||
|
//Modbus协议错误
|
||||||
|
if (byte.Parse(contentString.Substring(3, 2)) > 127)
|
||||||
|
throw new ModbusProtocalErrorException(byte.Parse(contentString.Substring(5, 2)));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,6 +5,16 @@ using System.Text;
|
|||||||
|
|
||||||
namespace Modbus.Net.Modbus
|
namespace Modbus.Net.Modbus
|
||||||
{
|
{
|
||||||
|
public class ModbusRtuInTcpProtocalLinkerBytesExtend : ModbusRtuProtocalLinkerBytesExtend
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ModbusAsciiInTcpProtocalLinkerBytesExtend : ModbusAsciiProtocalLinkerBytesExtend
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Tcp协议字节伸缩
|
/// Tcp协议字节伸缩
|
||||||
/// </summary>
|
/// </summary>
|
||||||
48
Modbus.Net/src/Modbus.Common/ModbusRtuInTcpProtocal.cs
Normal file
48
Modbus.Net/src/Modbus.Common/ModbusRtuInTcpProtocal.cs
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
using System.Configuration;
|
||||||
|
|
||||||
|
|
||||||
|
namespace Modbus.Net.Modbus
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Modbus/Rtu协议tcp透传
|
||||||
|
/// </summary>
|
||||||
|
public class ModbusRtuInTcpProtocal : ModbusProtocal
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="slaveAddress">从站号</param>
|
||||||
|
/// <param name="masterAddress">主站号</param>
|
||||||
|
/// <param name="endian">端格式</param>
|
||||||
|
public ModbusRtuInTcpProtocal(byte slaveAddress, byte masterAddress, Endian endian)
|
||||||
|
: this(ConfigurationManager.AppSettings["IP"], slaveAddress, masterAddress, endian)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ip">ip地址</param>
|
||||||
|
/// <param name="slaveAddress">从站号</param>
|
||||||
|
/// <param name="masterAddress">主站号</param>
|
||||||
|
/// <param name="endian">端格式</param>
|
||||||
|
public ModbusRtuInTcpProtocal(string ip, byte slaveAddress, byte masterAddress, Endian endian)
|
||||||
|
: base(slaveAddress, masterAddress, endian)
|
||||||
|
{
|
||||||
|
ProtocalLinker = new ModbusTcpProtocalLinker(ip);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="com">串口</param>
|
||||||
|
/// <param name="slaveAddress">从站号</param>
|
||||||
|
/// <param name="masterAddress">主站号</param>
|
||||||
|
/// <param name="endian">端格式</param>
|
||||||
|
public ModbusRtuInTcpProtocal(string ip, int port, byte slaveAddress, byte masterAddress, Endian endian)
|
||||||
|
: base(slaveAddress, masterAddress, endian)
|
||||||
|
{
|
||||||
|
ProtocalLinker = new ModbusRtuInTcpProtocalLinker(ip, port);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
47
Modbus.Net/src/Modbus.Common/ModbusRtuInTcpProtocalLinker.cs
Normal file
47
Modbus.Net/src/Modbus.Common/ModbusRtuInTcpProtocalLinker.cs
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
using System.Configuration;
|
||||||
|
|
||||||
|
namespace Modbus.Net.Modbus
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Modbus/Rtu协议连接器
|
||||||
|
/// </summary>
|
||||||
|
public class ModbusRtuInTcpProtocalLinker : TcpProtocalLinker
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ip">IP地址</param>
|
||||||
|
public ModbusRtuInTcpProtocalLinker(string ip)
|
||||||
|
: base(ip, int.Parse(ConfigurationManager.AppSettings["ModbusPort"] ?? "502"))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ip">IP地址</param>
|
||||||
|
/// <param name="port">端口号</param>
|
||||||
|
public ModbusRtuInTcpProtocalLinker(string ip, int port)
|
||||||
|
: base(ip, port)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 校验返回数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="content">设备返回的数据</param>
|
||||||
|
/// <returns>数据是否正确</returns>
|
||||||
|
public override bool? CheckRight(byte[] content)
|
||||||
|
{
|
||||||
|
//ProtocalLinker的CheckRight不会返回null
|
||||||
|
if (!base.CheckRight(content).Value) return false;
|
||||||
|
//CRC校验失败
|
||||||
|
if (!Crc16.GetInstance().CrcEfficacy(content))
|
||||||
|
throw new ModbusProtocalErrorException(501);
|
||||||
|
//Modbus协议错误
|
||||||
|
if (content[1] > 127)
|
||||||
|
throw new ModbusProtocalErrorException(content[2]);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,7 +22,17 @@ namespace Modbus.Net.Modbus
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ascii连接
|
/// Ascii连接
|
||||||
/// </summary>
|
/// </summary>
|
||||||
Ascii = 2
|
Ascii = 2,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Rtu连接Tcp透传
|
||||||
|
/// </summary>
|
||||||
|
RtuInTcp = 3,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Ascii连接Tcp透传
|
||||||
|
/// </summary>
|
||||||
|
AsciiInTcp = 4,
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface IUtilityMethodWriteSingle : IUtilityMethod
|
public interface IUtilityMethodWriteSingle : IUtilityMethod
|
||||||
@@ -158,6 +168,22 @@ namespace Modbus.Net.Modbus
|
|||||||
: new ModbusAsciiProtocal(ConnectionString, SlaveAddress, MasterAddress, Endian);
|
: new ModbusAsciiProtocal(ConnectionString, SlaveAddress, MasterAddress, Endian);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
//Rtu协议
|
||||||
|
case ModbusType.RtuInTcp:
|
||||||
|
{
|
||||||
|
Wrapper = ConnectionString == null
|
||||||
|
? new ModbusRtuInTcpProtocal(SlaveAddress, MasterAddress, Endian)
|
||||||
|
: new ModbusRtuInTcpProtocal(ConnectionString, SlaveAddress, MasterAddress, Endian);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//Ascii协议
|
||||||
|
case ModbusType.AsciiInTcp:
|
||||||
|
{
|
||||||
|
Wrapper = ConnectionString == null
|
||||||
|
? new ModbusAsciiInTcpProtocal(SlaveAddress, MasterAddress, Endian)
|
||||||
|
: new ModbusAsciiInTcpProtocal(ConnectionString, SlaveAddress, MasterAddress, Endian);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user