mirror of
https://gitee.com/lircy/S7CommPlusV3Driver
synced 2026-03-23 15:06:35 +08:00
first commit
This commit is contained in:
1
DriverTest/.vs/DriverTest.csproj.dtbcache.json
Normal file
1
DriverTest/.vs/DriverTest.csproj.dtbcache.json
Normal file
@@ -0,0 +1 @@
|
||||
{"RootPath":"D:\\personal data\\S7CommPlus协议研究资料\\S7CommPlusDriver-master\\src\\DriverTest","ProjectFileName":"DriverTest.csproj","Configuration":"Debug|x86","FrameworkPath":"","Sources":[{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"TestPlcTag.cs"},{"SourceFile":"obj\\x86\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"}],"References":[{"Reference":"D:\\personal data\\S7CommPlus协议研究资料\\S7CommPlusDriver-master\\src\\packages\\BouncyCastle.1.8.9\\lib\\BouncyCastle.Crypto.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\personal data\\S7CommPlus协议研究资料\\S7CommPlusDriver-master\\src\\S7CommPlusDriver\\bin\\x86\\Debug\\S7CommPlusDriver.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"D:\\personal data\\S7CommPlus协议研究资料\\S7CommPlusDriver-master\\src\\S7CommPlusDriver\\bin\\x86\\Debug\\S7CommPlusDriver.dll"},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\personal data\\S7CommPlus协议研究资料\\S7CommPlusDriver-master\\src\\DriverTest\\bin\\x86\\Debug\\DriverTest.exe","OutputItemRelativePath":"DriverTest.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]}
|
||||
6
DriverTest/App.config
Normal file
6
DriverTest/App.config
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
|
||||
</startup>
|
||||
</configuration>
|
||||
112
DriverTest/DriverTest.csproj
Normal file
112
DriverTest/DriverTest.csproj
Normal file
@@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>DriverTest</RootNamespace>
|
||||
<AssemblyName>DriverTest</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="S7CommPlusDriver">
|
||||
<HintPath>..\Lib\S7CommPlusDriver.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
183
DriverTest/Program.cs
Normal file
183
DriverTest/Program.cs
Normal file
@@ -0,0 +1,183 @@
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using S7CommPlusDriver;
|
||||
|
||||
using S7CommPlusDriver.ClientApi;
|
||||
|
||||
|
||||
namespace DriverTest
|
||||
{
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
string HostIp = "192.168.0.250";
|
||||
string Password = "";
|
||||
int res;
|
||||
List<ItemAddress> readlist = new List<ItemAddress>();
|
||||
Console.WriteLine("Main - START");
|
||||
// Als Parameter lässt sich die IP-Adresse übergeben, sonst Default-Wert von oben
|
||||
if (args.Length >= 1) {
|
||||
HostIp = args[0];
|
||||
}
|
||||
// Als Parameter lässt sich das Passwort übergeben, sonst Default-Wert von oben (kein Passwort)
|
||||
if (args.Length >= 2) {
|
||||
Password = args[1];
|
||||
}
|
||||
Console.WriteLine("Main - Versuche Verbindungsaufbau zu: " + HostIp);
|
||||
|
||||
S7CommPlusConnection conn = new S7CommPlusConnection();
|
||||
res = conn.Connect(HostIp, Password);
|
||||
if (res == 0)
|
||||
{
|
||||
Console.WriteLine("Main - Connect fertig");
|
||||
|
||||
#region Variablenhaushalt browsen
|
||||
Console.WriteLine("Main - Starte Browse...");
|
||||
// Variablenhaushalt auslesen
|
||||
List<VarInfo> vars = new List<VarInfo>();
|
||||
res = conn.Browse(out vars);
|
||||
Console.WriteLine("Main - Browse res=" + res);
|
||||
#endregion
|
||||
List<VarInfo> vars_ = vars.GetRange(0,1000);
|
||||
#region Werte aller Variablen einlesen
|
||||
Console.WriteLine("Main - Lese Werte aller Variablen aus");
|
||||
|
||||
List<PlcTag> taglist = new List<PlcTag>();
|
||||
PlcTags tags = new PlcTags();
|
||||
|
||||
foreach (var v in vars_)
|
||||
{
|
||||
taglist.Add(PlcTags.TagFactory(v.Name, new ItemAddress(v.AccessSequence), v.Softdatatype));
|
||||
}
|
||||
foreach (var t in taglist)
|
||||
{
|
||||
tags.AddTag(t);
|
||||
}
|
||||
if (res == 0)
|
||||
{
|
||||
Console.WriteLine("====================== VARIABLENHAUSHALT ======================");
|
||||
|
||||
string formatstring = "{0,-80}{1,-30}{2,-20}{3,-20}";
|
||||
Console.WriteLine(String.Format(formatstring, "SYMBOLIC-NAME", "ACCESS-SEQUENCE", "TYP", "QC: VALUE"));
|
||||
for (int i = 0; i < vars_.Count; i++)
|
||||
{
|
||||
string s;
|
||||
|
||||
s = String.Format(formatstring, taglist[i].Name, taglist[i].Address.GetAccessString(), Softdatatype.Types[taglist[i].Datatype], taglist[i].ToString());
|
||||
Console.WriteLine(s);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
Console.WriteLine("按任意键开始读");
|
||||
Console.ReadKey();
|
||||
while (res == 0)
|
||||
{
|
||||
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
|
||||
stopwatch.Start();
|
||||
res = tags.ReadTags(conn);
|
||||
stopwatch.Stop();
|
||||
long ms = stopwatch.ElapsedMilliseconds;
|
||||
if (res == 0)
|
||||
{
|
||||
string header = $"读取{vars_.Count}个变量耗时{ms}毫秒";
|
||||
Console.WriteLine(header);
|
||||
}
|
||||
}
|
||||
|
||||
#region Werte aller Variablen einlesen
|
||||
Console.WriteLine("Main - Lese Werte aller Variablen aus");
|
||||
|
||||
foreach (var v in vars)
|
||||
{
|
||||
readlist.Add(new ItemAddress(v.AccessSequence));
|
||||
}
|
||||
List<object> values = new List<object>();
|
||||
List<UInt64> errors = new List<UInt64>();
|
||||
|
||||
|
||||
// Fehlerhafte Variable setzen
|
||||
//readlist[2].LID[0] = 123;
|
||||
res = conn.ReadValues(readlist, out values, out errors);
|
||||
#endregion
|
||||
|
||||
|
||||
#region Variablenhaushalt mit Werten ausgeben
|
||||
|
||||
if (res == 0)
|
||||
{
|
||||
Console.WriteLine("====================== VARIABLENHAUSHALT ======================");
|
||||
|
||||
// Liste ausgeben
|
||||
string formatstring = "{0,-80}{1,-30}{2,-20}{3,-20}";
|
||||
Console.WriteLine(String.Format(formatstring, "SYMBOLIC-NAME", "ACCESS-SEQUENCE", "TYP", "VALUE"));
|
||||
for (int i = 0; i < vars.Count; i++)
|
||||
{
|
||||
string s = String.Format(formatstring, vars[i].Name, vars[i].AccessSequence, Softdatatype.Types[vars[i].Softdatatype], values[i]);
|
||||
Console.WriteLine(s);
|
||||
}
|
||||
Console.WriteLine("===============================================================");
|
||||
}
|
||||
#endregion
|
||||
|
||||
/*
|
||||
#region Test: Wert schreiben
|
||||
List<PValue> writevalues = new List<PValue>();
|
||||
PValue writeValue = new ValueInt(8888);
|
||||
writevalues.Add(writeValue);
|
||||
List<ItemAddress> writelist = new List<ItemAddress>();
|
||||
writelist.Add(new ItemAddress("8A0E0001.F"));
|
||||
errors.Clear();
|
||||
res = conn.WriteValues(writelist, writevalues, out errors);
|
||||
Console.WriteLine("res=" + res);
|
||||
#endregion
|
||||
*/
|
||||
|
||||
/*
|
||||
#region Test: Absolutadressen lesen
|
||||
// Daten aus nicht "optimierten" Datenbausteinen lesen
|
||||
readlist.Clear();
|
||||
ItemAddress absAdr = new ItemAddress();
|
||||
absAdr.SetAccessAreaToDatablock(100); // DB 100
|
||||
absAdr.SymbolCrc = 0;
|
||||
|
||||
absAdr.AccessSubArea = Ids.DB_ValueActual;
|
||||
absAdr.LID.Add(3); // LID_OMS_STB_ClassicBlob
|
||||
absAdr.LID.Add(0); // Blob Start Offset, Anfangsadresse
|
||||
absAdr.LID.Add(20); // 20 Bytes
|
||||
|
||||
readlist.Add(absAdr);
|
||||
|
||||
values.Clear();
|
||||
errors.Clear();
|
||||
|
||||
res = conn.ReadValues(readlist, out values, out errors);
|
||||
Console.WriteLine(values.ToString());
|
||||
#endregion
|
||||
*/
|
||||
|
||||
|
||||
#region Test: SPS in Stopp setzen
|
||||
Console.WriteLine("Setze SPS in STOP...");
|
||||
conn.SetPlcOperatingState(1);
|
||||
Console.WriteLine("Taste drücken um wieder in RUN zu setzen...");
|
||||
Console.ReadKey();
|
||||
Console.WriteLine("Setze SPS in RUN...");
|
||||
conn.SetPlcOperatingState(3);
|
||||
#endregion
|
||||
|
||||
conn.Disconnect();
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Main - Connect fehlgeschlagen!");
|
||||
}
|
||||
Console.WriteLine("Main - ENDE. Bitte Taste drücken.");
|
||||
Console.ReadKey();
|
||||
}
|
||||
}
|
||||
}
|
||||
36
DriverTest/Properties/AssemblyInfo.cs
Normal file
36
DriverTest/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("DriverTest")]
|
||||
[assembly: AssemblyDescription("S7CommPlusDriver Test")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("DriverTest")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2023, Thomas Wiens")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("94755b6a-7e0d-40f9-a2ed-48ff0c0fea2b")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("0.1.0.0")]
|
||||
[assembly: AssemblyFileVersion("0.1.0.0")]
|
||||
BIN
DriverTest/bin/Debug/DriverTest.exe
Normal file
BIN
DriverTest/bin/Debug/DriverTest.exe
Normal file
Binary file not shown.
6
DriverTest/bin/Debug/DriverTest.exe.config
Normal file
6
DriverTest/bin/Debug/DriverTest.exe.config
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
|
||||
</startup>
|
||||
</configuration>
|
||||
BIN
DriverTest/bin/Debug/DriverTest.pdb
Normal file
BIN
DriverTest/bin/Debug/DriverTest.pdb
Normal file
Binary file not shown.
BIN
DriverTest/bin/Debug/S7CommPlusAuth.dll
Normal file
BIN
DriverTest/bin/Debug/S7CommPlusAuth.dll
Normal file
Binary file not shown.
BIN
DriverTest/bin/Debug/S7CommPlusDriver.dll
Normal file
BIN
DriverTest/bin/Debug/S7CommPlusDriver.dll
Normal file
Binary file not shown.
BIN
DriverTest/bin/Debug/S7Family0.dll
Normal file
BIN
DriverTest/bin/Debug/S7Family0.dll
Normal file
Binary file not shown.
BIN
DriverTest/bin/Debug/S7PublicKeys.dll
Normal file
BIN
DriverTest/bin/Debug/S7PublicKeys.dll
Normal file
Binary file not shown.
BIN
DriverTest/bin/Debug/S7Utilities.dll
Normal file
BIN
DriverTest/bin/Debug/S7Utilities.dll
Normal file
Binary file not shown.
BIN
DriverTest/bin/Debug/zlib.net.dll
Normal file
BIN
DriverTest/bin/Debug/zlib.net.dll
Normal file
Binary file not shown.
3
DriverTest/packages.config
Normal file
3
DriverTest/packages.config
Normal file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
</packages>
|
||||
BIN
Lib/S7CommPlusAuth.dll
Normal file
BIN
Lib/S7CommPlusAuth.dll
Normal file
Binary file not shown.
BIN
Lib/S7CommPlusDriver.dll
Normal file
BIN
Lib/S7CommPlusDriver.dll
Normal file
Binary file not shown.
BIN
Lib/S7Family0.dll
Normal file
BIN
Lib/S7Family0.dll
Normal file
Binary file not shown.
BIN
Lib/S7PublicKeys.dll
Normal file
BIN
Lib/S7PublicKeys.dll
Normal file
Binary file not shown.
BIN
Lib/S7Utilities.dll
Normal file
BIN
Lib/S7Utilities.dll
Normal file
Binary file not shown.
BIN
Lib/zlib.net.dll
Normal file
BIN
Lib/zlib.net.dll
Normal file
Binary file not shown.
51
S7CommPlusDriver.sln
Normal file
51
S7CommPlusDriver.sln
Normal file
@@ -0,0 +1,51 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.35714.111
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "S7CommPlusGUIBrowser", "S7CommPlusGUIBrowser\S7CommPlusGUIBrowser.csproj", "{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DriverTest", "DriverTest\DriverTest.csproj", "{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Debug|x64.Build.0 = Debug|x64
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Debug|x86.Build.0 = Debug|x86
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Release|x64.ActiveCfg = Release|x64
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Release|x64.Build.0 = Release|x64
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Release|x86.ActiveCfg = Release|x86
|
||||
{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}.Release|x86.Build.0 = Release|x86
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Debug|x64.Build.0 = Debug|x64
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Debug|x86.Build.0 = Debug|x86
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Release|x64.ActiveCfg = Release|x64
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Release|x64.Build.0 = Release|x64
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Release|x86.ActiveCfg = Release|x86
|
||||
{94755B6A-7E0D-40F9-A2ED-48FF0C0FEA2B}.Release|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {54F7646F-145F-47BA-9558-5A8A57627F7D}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1 @@
|
||||
{"RootPath":"D:\\personal data\\S7CommPlus协议研究资料\\S7CommPlusDriver-master\\src\\S7CommPlusGUIBrowser","ProjectFileName":"S7CommPlusGUIBrowser.csproj","Configuration":"Debug|x86","FrameworkPath":"","Sources":[{"SourceFile":"Form1.cs"},{"SourceFile":"Form1.Designer.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Properties\\Settings.Designer.cs"},{"SourceFile":"obj\\x86\\Debug\\.NETFramework,Version=v4.7.2.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"D:\\personal data\\S7CommPlus协议研究资料\\S7CommPlusDriver-master\\src\\S7CommPlusDriver\\bin\\x86\\Debug\\S7CommPlusDriver.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":true,"ProjectPath":"D:\\personal data\\S7CommPlus协议研究资料\\S7CommPlusDriver-master\\src\\S7CommPlusDriver\\bin\\x86\\Debug\\S7CommPlusDriver.dll"},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Deployment.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Drawing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.7.2\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"D:\\personal data\\S7CommPlus协议研究资料\\S7CommPlusDriver-master\\src\\S7CommPlusGUIBrowser\\bin\\x86\\Debug\\S7CommPlusGUIBrowser.exe","OutputItemRelativePath":"S7CommPlusGUIBrowser.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]}
|
||||
6
S7CommPlusGUIBrowser/App.config
Normal file
6
S7CommPlusGUIBrowser/App.config
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||
</startup>
|
||||
</configuration>
|
||||
346
S7CommPlusGUIBrowser/Form1.Designer.cs
generated
Normal file
346
S7CommPlusGUIBrowser/Form1.Designer.cs
generated
Normal file
@@ -0,0 +1,346 @@
|
||||
namespace S7CommPlusGUIBrowser {
|
||||
partial class Form1 {
|
||||
/// <summary>
|
||||
/// Erforderliche Designervariable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Verwendete Ressourcen bereinigen.
|
||||
/// </summary>
|
||||
/// <param name="disposing">True, wenn verwaltete Ressourcen gelöscht werden sollen; andernfalls False.</param>
|
||||
protected override void Dispose(bool disposing) {
|
||||
if (disposing && (components != null)) {
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Vom Windows Form-Designer generierter Code
|
||||
|
||||
/// <summary>
|
||||
/// Erforderliche Methode für die Designerunterstützung.
|
||||
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
|
||||
/// </summary>
|
||||
private void InitializeComponent() {
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.lbStatus = new System.Windows.Forms.Label();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.btnDisconnect = new System.Windows.Forms.Button();
|
||||
this.btnConnect = new System.Windows.Forms.Button();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.tbPassword = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tbIpAddress = new System.Windows.Forms.TextBox();
|
||||
this.treeView1 = new System.Windows.Forms.TreeView();
|
||||
this.imageListTreeIcons = new System.Windows.Forms.ImageList(this.components);
|
||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||
this.btnRead = new System.Windows.Forms.Button();
|
||||
this.tbValue = new System.Windows.Forms.TextBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.tbSymbolicAddress = new System.Windows.Forms.TextBox();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.tbSymbol = new System.Windows.Forms.TextBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
|
||||
this.txt_plcInfo = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.groupBox2.SuspendLayout();
|
||||
this.statusStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.lbStatus);
|
||||
this.groupBox1.Controls.Add(this.label6);
|
||||
this.groupBox1.Controls.Add(this.btnDisconnect);
|
||||
this.groupBox1.Controls.Add(this.btnConnect);
|
||||
this.groupBox1.Controls.Add(this.label2);
|
||||
this.groupBox1.Controls.Add(this.tbPassword);
|
||||
this.groupBox1.Controls.Add(this.label1);
|
||||
this.groupBox1.Controls.Add(this.tbIpAddress);
|
||||
this.groupBox1.Location = new System.Drawing.Point(12, 11);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(171, 131);
|
||||
this.groupBox1.TabIndex = 0;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "Connection";
|
||||
//
|
||||
// lbStatus
|
||||
//
|
||||
this.lbStatus.Location = new System.Drawing.Point(44, 114);
|
||||
this.lbStatus.Name = "lbStatus";
|
||||
this.lbStatus.Size = new System.Drawing.Size(116, 15);
|
||||
this.lbStatus.TabIndex = 7;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(6, 114);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(47, 12);
|
||||
this.label6.TabIndex = 6;
|
||||
this.label6.Text = "Status:";
|
||||
//
|
||||
// btnDisconnect
|
||||
//
|
||||
this.btnDisconnect.Location = new System.Drawing.Point(85, 90);
|
||||
this.btnDisconnect.Name = "btnDisconnect";
|
||||
this.btnDisconnect.Size = new System.Drawing.Size(75, 21);
|
||||
this.btnDisconnect.TabIndex = 5;
|
||||
this.btnDisconnect.Text = "Disconnect";
|
||||
this.btnDisconnect.UseVisualStyleBackColor = true;
|
||||
this.btnDisconnect.Click += new System.EventHandler(this.btnDisconnect_Click);
|
||||
//
|
||||
// btnConnect
|
||||
//
|
||||
this.btnConnect.Location = new System.Drawing.Point(9, 90);
|
||||
this.btnConnect.Name = "btnConnect";
|
||||
this.btnConnect.Size = new System.Drawing.Size(75, 21);
|
||||
this.btnConnect.TabIndex = 4;
|
||||
this.btnConnect.Text = "Connect";
|
||||
this.btnConnect.UseVisualStyleBackColor = true;
|
||||
this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(6, 51);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(125, 12);
|
||||
this.label2.TabIndex = 3;
|
||||
this.label2.Text = "Password (optional):";
|
||||
//
|
||||
// tbPassword
|
||||
//
|
||||
this.tbPassword.Location = new System.Drawing.Point(9, 66);
|
||||
this.tbPassword.Name = "tbPassword";
|
||||
this.tbPassword.PasswordChar = '*';
|
||||
this.tbPassword.Size = new System.Drawing.Size(151, 21);
|
||||
this.tbPassword.TabIndex = 2;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(6, 15);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(71, 12);
|
||||
this.label1.TabIndex = 1;
|
||||
this.label1.Text = "IP-Address:";
|
||||
//
|
||||
// tbIpAddress
|
||||
//
|
||||
this.tbIpAddress.Location = new System.Drawing.Point(9, 30);
|
||||
this.tbIpAddress.Name = "tbIpAddress";
|
||||
this.tbIpAddress.Size = new System.Drawing.Size(151, 21);
|
||||
this.tbIpAddress.TabIndex = 0;
|
||||
this.tbIpAddress.Text = "192.168.0.250";
|
||||
//
|
||||
// treeView1
|
||||
//
|
||||
this.treeView1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.treeView1.ImageIndex = 0;
|
||||
this.treeView1.ImageList = this.imageListTreeIcons;
|
||||
this.treeView1.Location = new System.Drawing.Point(12, 148);
|
||||
this.treeView1.Name = "treeView1";
|
||||
this.treeView1.SelectedImageIndex = 0;
|
||||
this.treeView1.Size = new System.Drawing.Size(776, 242);
|
||||
this.treeView1.TabIndex = 1;
|
||||
this.treeView1.AfterExpand += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterExpand);
|
||||
this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
|
||||
//
|
||||
// imageListTreeIcons
|
||||
//
|
||||
this.imageListTreeIcons.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageListTreeIcons.ImageStream")));
|
||||
this.imageListTreeIcons.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.imageListTreeIcons.Images.SetKeyName(0, "Default");
|
||||
this.imageListTreeIcons.Images.SetKeyName(1, "Datablock");
|
||||
this.imageListTreeIcons.Images.SetKeyName(2, "Tag");
|
||||
this.imageListTreeIcons.Images.SetKeyName(3, "Boolean");
|
||||
this.imageListTreeIcons.Images.SetKeyName(4, "Boolean1");
|
||||
this.imageListTreeIcons.Images.SetKeyName(5, "Boolean2");
|
||||
this.imageListTreeIcons.Images.SetKeyName(6, "Any");
|
||||
this.imageListTreeIcons.Images.SetKeyName(7, "Binary");
|
||||
this.imageListTreeIcons.Images.SetKeyName(8, "Binary2");
|
||||
this.imageListTreeIcons.Images.SetKeyName(9, "Date");
|
||||
this.imageListTreeIcons.Images.SetKeyName(10, "Integer");
|
||||
this.imageListTreeIcons.Images.SetKeyName(11, "Integer2");
|
||||
this.imageListTreeIcons.Images.SetKeyName(12, "Number");
|
||||
this.imageListTreeIcons.Images.SetKeyName(13, "Number2");
|
||||
this.imageListTreeIcons.Images.SetKeyName(14, "Time");
|
||||
this.imageListTreeIcons.Images.SetKeyName(15, "Datetime");
|
||||
this.imageListTreeIcons.Images.SetKeyName(16, "Datetimezone");
|
||||
this.imageListTreeIcons.Images.SetKeyName(17, "Duration");
|
||||
this.imageListTreeIcons.Images.SetKeyName(18, "Timer");
|
||||
this.imageListTreeIcons.Images.SetKeyName(19, "Char");
|
||||
this.imageListTreeIcons.Images.SetKeyName(20, "Text");
|
||||
this.imageListTreeIcons.Images.SetKeyName(21, "Text2");
|
||||
this.imageListTreeIcons.Images.SetKeyName(22, "Text3");
|
||||
this.imageListTreeIcons.Images.SetKeyName(23, "Structure");
|
||||
this.imageListTreeIcons.Images.SetKeyName(24, "Currency");
|
||||
this.imageListTreeIcons.Images.SetKeyName(25, "Percentage");
|
||||
this.imageListTreeIcons.Images.SetKeyName(26, "UserDataType");
|
||||
this.imageListTreeIcons.Images.SetKeyName(27, "UserDefinedDataType");
|
||||
this.imageListTreeIcons.Images.SetKeyName(28, "CountCollection");
|
||||
this.imageListTreeIcons.Images.SetKeyName(29, "FolderOpened");
|
||||
this.imageListTreeIcons.Images.SetKeyName(30, "FolderClosed");
|
||||
this.imageListTreeIcons.Images.SetKeyName(31, "FolderTopPanel");
|
||||
this.imageListTreeIcons.Images.SetKeyName(32, "Indexer");
|
||||
this.imageListTreeIcons.Images.SetKeyName(33, "Library");
|
||||
this.imageListTreeIcons.Images.SetKeyName(34, "NamedSet");
|
||||
this.imageListTreeIcons.Images.SetKeyName(35, "TypeDefinition");
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox2.Controls.Add(this.btnRead);
|
||||
this.groupBox2.Controls.Add(this.tbValue);
|
||||
this.groupBox2.Controls.Add(this.label5);
|
||||
this.groupBox2.Controls.Add(this.tbSymbolicAddress);
|
||||
this.groupBox2.Controls.Add(this.label4);
|
||||
this.groupBox2.Controls.Add(this.tbSymbol);
|
||||
this.groupBox2.Controls.Add(this.label3);
|
||||
this.groupBox2.Location = new System.Drawing.Point(189, 11);
|
||||
this.groupBox2.Name = "groupBox2";
|
||||
this.groupBox2.Size = new System.Drawing.Size(599, 131);
|
||||
this.groupBox2.TabIndex = 2;
|
||||
this.groupBox2.TabStop = false;
|
||||
this.groupBox2.Text = "Data";
|
||||
//
|
||||
// btnRead
|
||||
//
|
||||
this.btnRead.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnRead.Location = new System.Drawing.Point(518, 28);
|
||||
this.btnRead.Name = "btnRead";
|
||||
this.btnRead.Size = new System.Drawing.Size(75, 21);
|
||||
this.btnRead.TabIndex = 11;
|
||||
this.btnRead.Text = "Read";
|
||||
this.btnRead.UseVisualStyleBackColor = true;
|
||||
this.btnRead.Click += new System.EventHandler(this.btnRead_Click);
|
||||
//
|
||||
// tbValue
|
||||
//
|
||||
this.tbValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tbValue.Location = new System.Drawing.Point(6, 102);
|
||||
this.tbValue.Name = "tbValue";
|
||||
this.tbValue.ReadOnly = true;
|
||||
this.tbValue.Size = new System.Drawing.Size(587, 21);
|
||||
this.tbValue.TabIndex = 10;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(6, 87);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(41, 12);
|
||||
this.label5.TabIndex = 9;
|
||||
this.label5.Text = "Value:";
|
||||
//
|
||||
// tbSymbolicAddress
|
||||
//
|
||||
this.tbSymbolicAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tbSymbolicAddress.Location = new System.Drawing.Point(6, 66);
|
||||
this.tbSymbolicAddress.Name = "tbSymbolicAddress";
|
||||
this.tbSymbolicAddress.ReadOnly = true;
|
||||
this.tbSymbolicAddress.Size = new System.Drawing.Size(587, 21);
|
||||
this.tbSymbolicAddress.TabIndex = 8;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(6, 51);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(107, 12);
|
||||
this.label4.TabIndex = 7;
|
||||
this.label4.Text = "Symbolic address:";
|
||||
//
|
||||
// tbSymbol
|
||||
//
|
||||
this.tbSymbol.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tbSymbol.Location = new System.Drawing.Point(6, 30);
|
||||
this.tbSymbol.Name = "tbSymbol";
|
||||
this.tbSymbol.Size = new System.Drawing.Size(506, 21);
|
||||
this.tbSymbol.TabIndex = 6;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(6, 15);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(47, 12);
|
||||
this.label3.TabIndex = 0;
|
||||
this.label3.Text = "Symbol:";
|
||||
//
|
||||
// statusStrip1
|
||||
//
|
||||
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.txt_plcInfo});
|
||||
this.statusStrip1.Location = new System.Drawing.Point(0, 393);
|
||||
this.statusStrip1.Name = "statusStrip1";
|
||||
this.statusStrip1.Size = new System.Drawing.Size(800, 22);
|
||||
this.statusStrip1.TabIndex = 3;
|
||||
this.statusStrip1.Text = "statusStrip1";
|
||||
//
|
||||
// txt_plcInfo
|
||||
//
|
||||
this.txt_plcInfo.Name = "txt_plcInfo";
|
||||
this.txt_plcInfo.Size = new System.Drawing.Size(60, 17);
|
||||
this.txt_plcInfo.Text = "PLCType:";
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(800, 415);
|
||||
this.Controls.Add(this.statusStrip1);
|
||||
this.Controls.Add(this.groupBox2);
|
||||
this.Controls.Add(this.treeView1);
|
||||
this.Controls.Add(this.groupBox1);
|
||||
this.Name = "Form1";
|
||||
this.Text = "S7CommPlusGUIBrowser";
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed);
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
this.groupBox2.ResumeLayout(false);
|
||||
this.groupBox2.PerformLayout();
|
||||
this.statusStrip1.ResumeLayout(false);
|
||||
this.statusStrip1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.GroupBox groupBox1;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TextBox tbIpAddress;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.TextBox tbPassword;
|
||||
private System.Windows.Forms.Button btnDisconnect;
|
||||
private System.Windows.Forms.Button btnConnect;
|
||||
private System.Windows.Forms.TreeView treeView1;
|
||||
private System.Windows.Forms.GroupBox groupBox2;
|
||||
private System.Windows.Forms.TextBox tbValue;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TextBox tbSymbolicAddress;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.TextBox tbSymbol;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label lbStatus;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.Button btnRead;
|
||||
private System.Windows.Forms.ImageList imageListTreeIcons;
|
||||
private System.Windows.Forms.StatusStrip statusStrip1;
|
||||
private System.Windows.Forms.ToolStripStatusLabel txt_plcInfo;
|
||||
}
|
||||
}
|
||||
|
||||
406
S7CommPlusGUIBrowser/Form1.cs
Normal file
406
S7CommPlusGUIBrowser/Form1.cs
Normal file
@@ -0,0 +1,406 @@
|
||||
using S7CommPlusDriver;
|
||||
using S7CommPlusDriver.ClientApi;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace S7CommPlusGUIBrowser
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
|
||||
private S7CommPlusConnection conn = null;
|
||||
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
string[] args = Environment.GetCommandLineArgs();
|
||||
// 1st argument can be the plc ip-address, otherwise use default
|
||||
if (args.Length >= 2)
|
||||
{
|
||||
tbIpAddress.Text = args[1];
|
||||
}
|
||||
// 2nd argument can be the plc password, otherwise use default (no password)
|
||||
if (args.Length >= 3)
|
||||
{
|
||||
tbPassword.Text = args[2];
|
||||
}
|
||||
}
|
||||
|
||||
private void setStatus(string status)
|
||||
{
|
||||
lbStatus.Text = status;
|
||||
lbStatus.Refresh();
|
||||
}
|
||||
|
||||
private void btnConnect_Click(object sender, EventArgs e)
|
||||
{
|
||||
setStatus("connecting...");
|
||||
|
||||
if (conn != null) conn.Disconnect();
|
||||
conn = new S7CommPlusConnection();
|
||||
int res = conn.Connect(tbIpAddress.Text, tbPassword.Text);
|
||||
if (res != 0)
|
||||
{
|
||||
setStatus("error");
|
||||
return;
|
||||
}
|
||||
setStatus("connected");
|
||||
txt_plcInfo.Text = $"PLCType: {conn.PLCInformation.PLCType}";
|
||||
treeView1.Nodes.Clear();
|
||||
setStatus("loading...");
|
||||
List<S7CommPlusConnection.DatablockInfo> dbInfoList;
|
||||
res = conn.GetListOfDatablocks(out dbInfoList);
|
||||
if (res != 0)
|
||||
{
|
||||
setStatus("error");
|
||||
return;
|
||||
}
|
||||
TreeNode tn;
|
||||
foreach (S7CommPlusConnection.DatablockInfo dbInfo in dbInfoList)
|
||||
{
|
||||
tn = treeView1.Nodes.Add(dbInfo.db_name);
|
||||
tn.Nodes.Add("Loading...");
|
||||
tn.Tag = dbInfo.db_block_ti_relid;
|
||||
tn.ImageKey = "Datablock";
|
||||
tn.SelectedImageKey = tn.ImageKey;
|
||||
}
|
||||
// Inputs
|
||||
tn = treeView1.Nodes.Add("Inputs");
|
||||
tn.Nodes.Add("Loading...");
|
||||
tn.Tag = 0x90010000;
|
||||
tn.ImageKey = "Default";
|
||||
tn.SelectedImageKey = tn.ImageKey;
|
||||
// Outputs
|
||||
tn = treeView1.Nodes.Add("Outputs");
|
||||
tn.Nodes.Add("Loading...");
|
||||
tn.Tag = 0x90020000;
|
||||
tn.ImageKey = "Default";
|
||||
tn.SelectedImageKey = tn.ImageKey;
|
||||
// Merker
|
||||
tn = treeView1.Nodes.Add("Merker");
|
||||
tn.Nodes.Add("Loading...");
|
||||
tn.Tag = 0x90030000;
|
||||
tn.ImageKey = "Default";
|
||||
tn.SelectedImageKey = tn.ImageKey;
|
||||
// S7Timers
|
||||
tn = treeView1.Nodes.Add("S7Timers");
|
||||
tn.Nodes.Add("Loading...");
|
||||
tn.Tag = 0x90050000;
|
||||
tn.ImageKey = "Default";
|
||||
tn.SelectedImageKey = tn.ImageKey;
|
||||
// S7Counters
|
||||
tn = treeView1.Nodes.Add("S7Counters");
|
||||
tn.Nodes.Add("Loading...");
|
||||
tn.Tag = 0x90060000;
|
||||
tn.ImageKey = "Default";
|
||||
tn.SelectedImageKey = tn.ImageKey;
|
||||
|
||||
setStatus("connected");
|
||||
}
|
||||
|
||||
private void btnDisconnect_Click(object sender, EventArgs e)
|
||||
{
|
||||
setStatus("disconnecting...");
|
||||
|
||||
if (conn != null) conn.Disconnect();
|
||||
conn = null;
|
||||
treeView1.Nodes.Clear();
|
||||
txt_plcInfo.Text = "PLCType:";
|
||||
setStatus("disconnected");
|
||||
}
|
||||
|
||||
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
if (conn != null) conn.Disconnect();
|
||||
}
|
||||
|
||||
private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
if (e.Node.Nodes.Count < 0 || e.Node.Nodes[0].Text != "Loading...") return;
|
||||
|
||||
setStatus("loading...");
|
||||
e.Node.Nodes.Clear();
|
||||
uint relTiId = (uint)e.Node.Tag;
|
||||
PObject pObj = conn.getTypeInfoByRelId(relTiId);
|
||||
setStatus("connected");
|
||||
|
||||
if (pObj == null || pObj.VarnameList == null) return;
|
||||
TreeNode tn;
|
||||
TreeNode tnarr;
|
||||
for (int i = 0; i < pObj.VarnameList.Names.Count; ++i)
|
||||
{
|
||||
tn = e.Node.Nodes.Add(pObj.VarnameList.Names[i]);
|
||||
SetImageKey(ref tn, pObj.VartypeList.Elements[i]);
|
||||
if (pObj.VartypeList.Elements[i].OffsetInfoType.Is1Dim())
|
||||
{
|
||||
var ioitarr = (IOffsetInfoType_1Dim)pObj.VartypeList.Elements[i].OffsetInfoType;
|
||||
uint arrayElementCount = ioitarr.GetArrayElementCount();
|
||||
int arrayLowerBounds = ioitarr.GetArrayLowerBounds();
|
||||
for (int j = 0; j < arrayElementCount; ++j)
|
||||
{
|
||||
tnarr = tn.Nodes.Add(pObj.VarnameList.Names[i] + "[" + (j + arrayLowerBounds) + "]");
|
||||
SetImageKey(ref tnarr, pObj.VartypeList.Elements[i]);
|
||||
if (pObj.VartypeList.Elements[i].OffsetInfoType.HasRelation())
|
||||
{
|
||||
var ioit = (IOffsetInfoType_Relation)pObj.VartypeList.Elements[i].OffsetInfoType;
|
||||
tnarr.Nodes.Add("Loading...");
|
||||
tnarr.Tag = ioit.GetRelationId();
|
||||
SetImageKey(ref tnarr, pObj.VartypeList.Elements[i]);
|
||||
}
|
||||
}
|
||||
tn.Tag = (uint)0; // is array
|
||||
}
|
||||
else if (pObj.VartypeList.Elements[i].OffsetInfoType.IsMDim())
|
||||
{
|
||||
var ioitarrm = (IOffsetInfoType_MDim)pObj.VartypeList.Elements[i].OffsetInfoType;
|
||||
uint[] MdimArrayElementCount = ioitarrm.GetMdimArrayElementCount();
|
||||
int[] MdimArrayLowerBounds = ioitarrm.GetMdimArrayLowerBounds();
|
||||
int dimCount = MdimArrayElementCount.Aggregate(0, (acc, act) => acc += (act > 0) ? 1 : 0);
|
||||
int[] indexes = new int[dimCount];
|
||||
bool stop = false;
|
||||
while (!stop)
|
||||
{
|
||||
string arrIdxStr = "";
|
||||
for (int j = dimCount - 1; j >= 0; --j)
|
||||
{
|
||||
arrIdxStr += (arrIdxStr != "" ? "," : "") + (indexes[j] + MdimArrayLowerBounds[j]);
|
||||
}
|
||||
tnarr = tn.Nodes.Add(pObj.VarnameList.Names[i] + "[" + arrIdxStr + "]");
|
||||
SetImageKey(ref tnarr, pObj.VartypeList.Elements[i]);
|
||||
if (pObj.VartypeList.Elements[i].OffsetInfoType.HasRelation())
|
||||
{
|
||||
var ioit = (IOffsetInfoType_Relation)pObj.VartypeList.Elements[i].OffsetInfoType;
|
||||
tnarr.Nodes.Add("Loading...");
|
||||
tnarr.Tag = ioit.GetRelationId();
|
||||
SetImageKey(ref tnarr, pObj.VartypeList.Elements[i]);
|
||||
}
|
||||
++indexes[0];
|
||||
for (int j = 0; j < dimCount; ++j)
|
||||
{
|
||||
if (indexes[j] >= MdimArrayElementCount[j])
|
||||
{
|
||||
if (j + 1 < dimCount)
|
||||
{
|
||||
indexes[j] = 0;
|
||||
++indexes[j + 1];
|
||||
}
|
||||
else
|
||||
{
|
||||
stop = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
tn.Tag = (uint)0; // is array
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pObj.VartypeList.Elements[i].OffsetInfoType.HasRelation())
|
||||
{
|
||||
var ioit = (IOffsetInfoType_Relation)pObj.VartypeList.Elements[i].OffsetInfoType;
|
||||
tn.Nodes.Add("Loading...");
|
||||
tn.Tag = ioit.GetRelationId();
|
||||
SetImageKey(ref tn, pObj.VartypeList.Elements[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetImageKey(ref TreeNode tn, PVartypeListElement vte)
|
||||
{
|
||||
string sk = "Tag";
|
||||
switch (vte.Softdatatype)
|
||||
{
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_BOOL:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_BBOOL:
|
||||
sk = "Boolean";
|
||||
break;
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_INT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_DINT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_ULINT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_LINT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_USINT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_UINT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_UDINT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_SINT:
|
||||
// Derived types
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_BLOCKFB:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_BLOCKFC:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_OBANY:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_OBDELAY:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_OBTOD:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_OBCYCLIC:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_OBATT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_PORT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_RTM:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_PIP:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_OBPCYCLE:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_OBHWINT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_OBDIAG:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_OBTIMEERROR:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_OBSTARTUP:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_DBANY:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_DBWWW:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_DBDYN:
|
||||
sk = "Integer2";
|
||||
break;
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_BYTE:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_WORD:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_DWORD:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_LWORD:
|
||||
// Derived types
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_AOMIDENT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_EVENTANY:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_EVENTATT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_AOMLINK:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWANY:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWIOSYSTEM:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWDPMASTER:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWDEVICE:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWDPSLAVE:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWIO:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWMODULE:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWSUBMODULE:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWHSC:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWPWM:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWPTO:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWINTERFACE:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_HWIEPORT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_CONNANY:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_CONNPRG:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_CONNOUC:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_CONNRID:
|
||||
sk = "Binary2";
|
||||
break;
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_REAL:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_LREAL:
|
||||
sk = "Number2";
|
||||
break;
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_CHAR:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_WCHAR:
|
||||
sk = "Char";
|
||||
break;
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_STRING:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_WSTRING:
|
||||
sk = "Text";
|
||||
break;
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_DATE:
|
||||
sk = "Date";
|
||||
break;
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_TIMEOFDAY:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_LTOD:
|
||||
sk = "Time";
|
||||
break;
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_TIME:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_LTIME:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_S5TIME:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_TIMER:
|
||||
sk = "Timer"; // Duration
|
||||
break;
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_DATEANDTIME:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_LDT:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_DTL:
|
||||
sk = "DateTime";
|
||||
break;
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_ANY:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_POINTER:
|
||||
case Softdatatype.S7COMMP_SOFTDATATYPE_REMOTE:
|
||||
sk = "Any";
|
||||
break;
|
||||
}
|
||||
if (vte.OffsetInfoType.HasRelation())
|
||||
{
|
||||
sk = "Structure";
|
||||
}
|
||||
tn.ImageKey = sk;
|
||||
tn.SelectedImageKey = tn.ImageKey;
|
||||
}
|
||||
|
||||
private string escapeTiaString(string str, bool isRootNode, bool isArray)
|
||||
{
|
||||
if (isRootNode) return '"' + str + '"';
|
||||
Regex re = new Regex("(^[0-9]|[^0-9A-Za-z_])");
|
||||
if (isArray)
|
||||
{
|
||||
Regex reArr = new Regex("^([^\"]*)(\\[[0-9, ]+\\])$");
|
||||
Match m = reArr.Match(str);
|
||||
if (!m.Success) return str;
|
||||
if (re.Match(m.Groups[1].Value).Success) return '"' + m.Groups[1].Value + '"' + m.Groups[2].Value;
|
||||
return str;
|
||||
}
|
||||
if (re.IsMatch(str)) return '"' + str + '"';
|
||||
return str;
|
||||
}
|
||||
|
||||
private void readTagBySymbol()
|
||||
{
|
||||
tbValue.Text = "";
|
||||
tbSymbolicAddress.Text = "";
|
||||
|
||||
setStatus("loading...");
|
||||
PlcTag tag = conn.getPlcTagBySymbol(tbSymbol.Text);
|
||||
setStatus("connected");
|
||||
if (tag == null) return;
|
||||
|
||||
tbSymbolicAddress.Text = tag.Address.GetAccessString();
|
||||
|
||||
PlcTags tags = new PlcTags();
|
||||
tags.AddTag(tag);
|
||||
if (tags.ReadTags(conn) != 0) return;
|
||||
tbValue.Text = tag.ToString();
|
||||
}
|
||||
|
||||
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
|
||||
{
|
||||
if (e.Node.Tag != null) return; // has relId
|
||||
|
||||
string name = "";
|
||||
TreeNode tn = e.Node;
|
||||
while (tn != null)
|
||||
{
|
||||
bool isArray = false;
|
||||
string nodeText = tn.Text;
|
||||
tn = tn.Parent;
|
||||
if (tn != null && tn.Tag != null)
|
||||
{ // is array
|
||||
if ((uint)tn.Tag == 0)
|
||||
{
|
||||
isArray = true;
|
||||
tn = tn.Parent; // skip array parent
|
||||
}
|
||||
}
|
||||
if (tn != null && tn.Tag != null)
|
||||
{ // don't add in/out/merker area as tag
|
||||
uint relId = (uint)tn.Tag;
|
||||
if (relId == 0x90010000 || relId == 0x90020000 || relId == 0x90030000) tn = null;
|
||||
}
|
||||
name = escapeTiaString(nodeText, tn == null, isArray) + (name != "" ? "." : "") + name;
|
||||
}
|
||||
tbSymbol.Text = name;
|
||||
|
||||
readTagBySymbol();
|
||||
}
|
||||
|
||||
private void btnRead_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (tbSymbol.Text == "") return;
|
||||
|
||||
try
|
||||
{
|
||||
readTagBySymbol();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("ERROR: " + ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
316
S7CommPlusGUIBrowser/Form1.resx
Normal file
316
S7CommPlusGUIBrowser/Form1.resx
Normal file
@@ -0,0 +1,316 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="imageListTreeIcons.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="imageListTreeIcons.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC4
|
||||
KgAAAk1TRnQBSQFMAgEBJAEAAagBAAGoAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAAaADAAEBAQABCAYAASgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
|
||||
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
|
||||
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
|
||||
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
|
||||
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
|
||||
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
|
||||
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
|
||||
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
|
||||
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
|
||||
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
|
||||
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
|
||||
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
|
||||
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
|
||||
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
|
||||
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
|
||||
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
|
||||
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
|
||||
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
|
||||
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
|
||||
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
|
||||
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
|
||||
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
|
||||
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
|
||||
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
|
||||
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD//8A/wD/AP8ANQAJ9AcA
|
||||
BfQGABX0EAAB9AcUCfQDFAH0BgAB9AMUAvQEFAH0BBQB9AQUAfQBAAH/A/QGAAP0Af8BAAH0ARQF9AEU
|
||||
AfQGFAL0ARQD9AYAA/QBFAL0ARQC9AEUAfQBFAL0ARQB9AEUAvQBFAH0AQAB9AFtARQB8wYAAfQBFAFt
|
||||
AfQBAAH0ARQF9AEUBvQBFAL0ARQB9AoAAfQBFAL0BBQB9AQUAfQEFAH0AQAB8wEUAZIB9AYAAfQBkgEU
|
||||
AfMB/wH0ARQF9AEUBvQBFAL0ARQB9AoAAfQBFAL0ARQC9AEUAfQBFAL0ARQB9AEUAvQBFAH0AQAB8wEU
|
||||
CfQB8wEUAfQBAAH0ARQF9AEUAfQEFAH0ARQC9AEUAfQKAAH0ARQC9AQUAfQEFAH0BBQC9AGSARQC9AIU
|
||||
AvQCFAH0AfMBFAGSAvQBFAX0ARQG9AEUAvQBFAH0CgAB9AEUAvQEFAH0BBQB9AQUAvQBFAFtAvQCFAL0
|
||||
AhQC9AFtARQC9AcUBvQBFAL0ARQB9AoAAfQBFAL0BBQB9AQUAfQEFAH0AfMBFAFtCvQBbQEUCvQEFAH0
|
||||
ARQC9AEUAfQKAAH0ARQC9AQUAfQEFAH0BBQB9AHzAZIBFAH0Af8HAAH0ARQBkgH0BAAB9AEUCPQBFAL0
|
||||
ARQB9AoAAfQBFAL0ARQC9AEUAfQEFAH0ARQC9AEUAfQBAAHzARQB9AgAAfMBFAH0BQAB9AEUCPQBFAL0
|
||||
ARQB9AoAAfQBFAL0ARQC9AEUAfQEFAH0ARQC9AEUAfQBAAHzARQBkgH0BgAB9AGSARQB8wUAAfQBFAH0
|
||||
BhQB9AEUAvQBFAP0BgAD9AEUAvQEFAH0ARQC9AEUAfQEFAH0AQAB9AFtARQB9AYAAfQBFAFtAfQFAAH0
|
||||
ARQI9AEUAvQDFAH0BgAB9AMUB/QEFAb0AQAB/wP0BgAD9AH/BQAB9AEUCPQBFAb0BgAF9AUABvQZAAH0
|
||||
ChQB9DQADPQBAAv0NQAB9AEUAfQDFAH0AxQB9CUADfQDAAH0ARQB9AEUBfQBFAH0BAAO9AH/AQAP9AEA
|
||||
D/QCAAH0ARQB9AMUAvQCFAb0ApkKeQEaAfQBAAH0AZkLeQGZAfQBAAH0DJkBeQH0AQAC9AEUA/QBFAP0
|
||||
ARQB9AMUAvQBeQEaCnkBmQH0AQAB9A15AfQBAAH0AZkL9AF5AfQBAAH0AhQB9AMUAfQDFAP0ARQC9AF5
|
||||
AfMLeQEbAvQNeQH0AQAB9AGZC/QBeQH0AQAO9AEUAvQBeQH0AZkKeQEaAvQNeQH0AQAB9AGZC/QBeQH0
|
||||
BAAB9AEUBPQBFAT0ARQC9AF5AfQBGgp5AZkC9A15AfQBAAH0AZkL9AF5AfQEAAH0BhQE9AEUAvQBeQv0
|
||||
AXkD9A15AfQBAAH0DXkB9AQAC/QBFAL0AXkL9AF5A/QNeQH0AQAB9A15AfQFAAH0ARQD9AEUBPQBFAL0
|
||||
AXkL9AF5AfQBAAH0DXkB9AEAAfQNeQH0BQAB9AEUA/QGFAL0AXkG9AEaBHkBmQH0AQAB9Ax5AZkB9AEA
|
||||
AfQNeQH0BQAB9AEUC/QBeQb0AZkBGgX0AQAB9AF5BvQBGgGZBfQBAAH0CHkBmQX0BQAB9AEUBPQBFAH0
|
||||
BAAB8wGZBnkBmQT0Af8CAAH0AZkHeQEbAfQFAAH0CHkBGgH0CQAB9AYUAfQEAAr0BgAK9AH/BQAK9AH/
|
||||
CQAI9AUAAf8H9AH/LQAB7AHzCQABBwHqAfIEAAH/AewD6gHsAfQB/wX0Af8MAA30AwAB9AEHBOoBBwH0
|
||||
BwAB/wHsAW0B/wMAAe8B6gHvAfIB7wHqAewB9AHbA7MB2wH0DAAB9AsUAfQDAAHwBuoB6wH0BwAB8gHq
|
||||
Ae8DAAHqAW0DAAGSAeoB9AWzAfQMAAH0ARQJ9AEUAfQDAALwAfQBAAHsAfIB7wHqAfcIAAHvAeoB8wIA
|
||||
AeoBkgMAAbwB6gH0BbMB9AwAAfQBFAn0ARQB9AcAAewB8wH0AuoIAAH/AW0B7AH/AQAB6gHsAwABBwHq
|
||||
AfQBswHbAdwB2wGzCvQDAAH0ARQJ9AEUAfQHAAHsAfMB8gHqAesJAAHwAeoBBwEAAewB6gHzAQAB/wHs
|
||||
AeoB9AGzA/QBswf0ApIB9AMAAfQBFAn0ARQB9AcAAewB7wLqAfAKAAGSAeoB9AHyAuoB7AFtAeoBBwH0
|
||||
AdwDswHcBvQB8gHqAfAP9AEUAfQFAAH0AQcD6gEHBgAB/wHxAbwB8gEAAf8B6gHsAQAB8wHvApIBvAEA
|
||||
Af8F9AFtAewB8gL0AfEBbQHsAfQBAAH0BxQG9AEUAfQEAAHyA+oB9wH0BgAB9AFtA+oB7QH/AbwB6gG8
|
||||
CwAB9AHzAW0BEwJtARQB7QH0Af8BAAH0ARQB7QH0Ae0BFAH0ARQG9AEUAfQDAAH0AuoB7wHrAfMHAAHs
|
||||
AeoBvAH0AQcB6gEHAQAB7AFtAf8KAAH0AfIBEwHvAfQB8gGSAW0B9AH/AQAB9AEUAfQBFAH0ARQB9AEU
|
||||
BvQBFAH0AwABBwHqAQcBAAHsAfMHAAHqAewDAAHsAeoBAAHzAeoBkgoAAfQB7QHsBPQBbQEHAfQBAAH0
|
||||
ARQB9AETAfQBFAH0ARQC9AUUAfQDAAEHAeoB8AEAAewB8wcAAeoBvAMAAe8B6gH0AQABBwHqAfEJAAH0
|
||||
AW0BBwT0ApIB9AEAAfQBFAHtAfQB7QHqAfQBFAL0ARQC9AHxARQB9AMAAfEB6gHsAfQB7AHzAfQBBwH0
|
||||
BAAB6gHvAwAB7AHqAf8BAAH/AewBbQH/CAAB9AHsAfcE9AHsAe8B9AEAAfQHFAL0ARQB9AHxARQB8wH0
|
||||
BAAB9wbqAfQEAAFtAeoB9AEAAfMB6gHsAwAB8gHqAe8IAAH0AfABEwEHAvQB9wHqAfMB/wEACvQBFAHx
|
||||
ARQB8wH0BgAB8AHrA+oBBwH/BAAB8QLqAewC6gHxBAAB7wHqAfMIAAH0AQcB6gIUAW0B8AH0BQAB9AgU
|
||||
AfMB9AkAAewB8wgAAfMB7wGSAe8B8gUAAf8BvAHxCQAG9AYACvQOAAH/AvQB/zsAAbwBbQISAW0B8jkA
|
||||
AfIBEgH3AfMB9AHyAfQhAAb0AgAG9AEAAv8EAAH0Af8BAAGSAW0B/yUAAfQEigH0AgAB9ASKAfQBAALs
|
||||
AwAB8wESAfEBAAHrAfcFAAH/D/QB/w/0AQAB9ASKAfQCAAH0BIoB9AEAAbwBEgHzAvQB9wFtAf8BAAHr
|
||||
AZIFAAH0AZIDFAH0ARQB7AEUAewC8QHsAhQC9AGSAxQB9AEUAewBFAHsAvEB7AIUAfQBAAH0BIoB9AIA
|
||||
AfQEigH0AQAB/wFtBBIB7wIAAQcBbQH0BAAB9AEUAu8BFAH0AhQB8AEUAfcB7QEUAfEBBwL0ARQC7wEU
|
||||
AfQCFAHwARQB9wHtARQB8QEHAfQBAAH0BIoB9AIAAfQEigH0AgABkgHsAfQB8QESAfED9ALrAbwB8QG8
|
||||
AvQB8wFtAhQB9AEUAe8B9AFtAewBbQHsBPQB8wFtAhQB9AEUAe8B9AFtAewBbQHsA/QBAAb0AgAG9AIA
|
||||
AfIBEgH0AfcB6wMSAW0BBwGSAW0BEgFtAfEB9AEHAe8B7AEUAfQCFAEHARQB9wHvARMB7wH3AvQBBwHv
|
||||
AewBFAH0AhQBBwEUAfcB7wETAe8B9wH0AQAO9AIAAf8BbQEHAW0BBwESAbwB9AHvARIB8wP/AQAB9AG8
|
||||
AhQB7QH0ARQBkgEUAewC8wH3AhQC9AG8AhQB7QH0ARQBkgEUAewC8wH3AhQB9AEAAfQMigH0AwABBwFt
|
||||
ARIB8gESAfABAAH0ARIB8QQAAf8F9AEUAbwC9AH/BfQB/wX0ARQBvAL0Af8F9AEAAfQMigH0AwAB8wES
|
||||
AZIB/wESAe0B7wLrAfQJAAH0ARQBvAH0DAAB9AEUAbwB9AgAAfQMigH0BAAB9AH/AfQBEgHtAZIBbQHy
|
||||
CgAE9AwABPQIAAH0DIoB9AYAAfQBEgHxAQAB7wFtAf8lAA70BgAB9AESAQcB8QGSAW0B/zkAAfQCEgFt
|
||||
AewB8zgAAfEB7AHvAewC8wG7ArQBtQHzBgAB8wHvAewB6wHsAe8B9BUABvQBAAn0AgABBwHtAfMBkgHz
|
||||
AbwBtAHwAv8B8AG0AbwDAAH/AQcB7AHvAfEB8wHxAe8B7AEHAf8IAAf0BAAB9AGSAhQBbQH0AQAB9AGS
|
||||
BRQBvAH0AQAB8QHsAQcB8QH3AfIBtAH0Bf8BtAHzAgABBwHsAfQF/wH0AewBBwYAAf8B9AEHAW0DFAFt
|
||||
AQcB9AH/AgAB9AHyAewBEwHzAfQBAAH0AfMBbQIUAeoBBwL0Af8B7AHxAe8C7AGuAbwG/wHwAbUBAAHz
|
||||
AewB9Af/AfQB7AHzBQAB9AGSAeoBBwP0AQcB6gGSAfQDAAH0AfIBFAHwAfQBAAH/AfQBEwIUAe8B9AIA
|
||||
AfAB7wL/Ae0B/wG0AfQC/wPrAv8BtAEAAu8J/wLvBAAB9AEHAeoB8gX0AfIB6gEHAfQDAAH0AW0B7AP0
|
||||
Ae8CFAETAfMB/wIAAZIB8gL/AewB/wG0A/8B6wT/AbQBAAHsAfEJ/wHxAewEAAH0AW0BBwf0AQcBbQH0
|
||||
AwAB9AHvBxQB7AH0AwAB7AP/Ae0B/wG1AfAC/wHrA/8B8AG1AQAB6wHzBP8E6wH/AfMB6wQAAfQBFAP0
|
||||
AZIBEwGSA/QBFAH0AwAB/wH0ARMB7wH0AfIDFAHwAfQDAAHsBusBtAL/AesD/wG0AfABAAHsAfEE/wHr
|
||||
BP8B8QHsBAAB8gEUA/QDFAP0ARQB9AQAAfQB7QFtAfQB7QIUAW0B9AQAAewD/wHtAv8BvAG0AfAC/wHw
|
||||
AbQBBwH0AQAC7wT/AesE/wLvBAAB9AEUA/QB7AEUAewD9AEUAfQEAAH0AfIBFAHwARMCFAHvAfQEAAH3
|
||||
AfEC/wHsA/8B8gG1AbMBrQGRAfEB/wHxAQAB8gHsAfQD/wHrA/8B9AHsAfMEAAH0AW0BBwL0AQcBFAEH
|
||||
AvQBBwFtAfQFAAH0AW0B6gIUARMB8wH/BAAB8AHvAv8B7Qb/AfAB7wL/Ae8CAAHvAewB8wL/AesC/wHz
|
||||
AewB7wUAAfQBBwHqAfIC9AEUAvQB8gHqAQcB9AUAAfQB7wMUAewB9AUAAf8B7AHxAQcD7APrA+wB7wHw
|
||||
AewCAAH/Ae8B7AHvAfEB8wHxAe8B7AHvAf8GAAH0AZIB6gEHAfQBFAH0AQcB6gGSAfQGAAH/AfQBEwIU
|
||||
AfAB9AYAAfIB7AEHAfAB9wX/AewB8wG8AewB8wQAAfMB7wHsAesB7AHvAfMIAAH/AfQBBwFtAxQBbQEH
|
||||
AfQB/wcAAfQB7QEUAW0B9AgAAfAB7QHzAZIB8wP/AgcB8gHsAfEHAAPrDAAC9AMUAvQJAAH0AfIBFAHv
|
||||
AfQJAAHyAewB9wHsAfIB/wHwAewB7wHsAfMIAAPrDAAB9AUUAfQKAAP0Af8KAAH/AfEB9wLrAewB7wHx
|
||||
Af8IAAXrCwAH9DgAAfQBCQS0AbwB9A0AAfQBuwK0AbsB9CMAAf8BvAG0AbUBCQLwAQkBtQG0AbwB/wIA
|
||||
COsBrgG0AQkC9AHwAbQBvARtAeoB9AHsAe0B/wHtAm0B6gJtAfIGAAH/AfQJAAH/AbsBtAHwBv8B8AG0
|
||||
AbsB/wEAAesD/wHvAv8B8wG0Bv8BtAGSAe8BbQLsAf8B7AHtAf8B7wHqAuwC7wH0AwAE9AHwB/QCAAG8
|
||||
AbQB8wj/AfMBtAG8AQAB6wP/Ae8C/wG1AQkG/wHdAQAB9AFtAe8FAAH/AuwB8wYAAfQBFAGSAewBFAH3
|
||||
BBQBvAH0AQAB9AG0AfEK/wHxAbQB/wHrBv8BtAP/A+sC/wEAAfQBbQHvAf8FAAH0AewB6wYAAfQBFAGS
|
||||
AfMB9wHzAhMBBwG8AfMB9AEAAbwBtQz/AbUBvAHrAu8B/wNMAa4D/wHrBP8BAAH0AW0B7wH/BgAB/wFt
|
||||
AfMEAAL0ARQBkgP0Ae8BFAHqAfAB9AH/AQABtAEJBf8DbQHrAe0C/wEJAbQB6wP/AUwC/wG1AQkC/wHr
|
||||
A/8B3QEAAfQBbQHvAf8HAAHtAewB9AIAA/QBFAGSAfQBAAL0AfACEwHzAf8BAAG0AfEF/wFtBv8B8QG0
|
||||
AesD/wFMAv8B9AG0Av8B6wP/AbQBAAH0AW0B7wH/BwAB9AHrAe0B/wEAAfQB7wHsARQBkgH0AQAB9AG8
|
||||
AfQBkgEUAbwB9AEAAbQB8QX/AW0G/wHxAbQB6wP/AUwD/wGNAbQB8AL0AfABtAGuAQAB9AFtAe8B/wgA
|
||||
AQcB6gH0AQAB9AH3AhQBkgH0AQAB9AQUAfAB/wEAAbQBCQX/AW0G/wEJAbQB6wLvAf8FTAHzBLQB9wHr
|
||||
AfQB/wFtAe8B/wMAAv8DAAG8AeoB8gEAAvQB8AHsAe8B9AEAAfQBvAHtAewBBwH0AgABvAG1Bf8BbQb/
|
||||
AbUBvAHrC/8B7wL/AusBkgFtAe8B/wMAAf8B8gEHAf8B9AHsAeoB9AMABPQCAAT0AwAB9AG0AfEE/wFt
|
||||
Bf8B8QG0Af8B6wP/Ae8D/wHvA/8B7wL/AesBkgHrAeoB7wH/BAAB8gFtAesBbQHqAQcB/xEAAbwBtAHz
|
||||
A/8B8AT/AfMBtAG8AQAB6wP/Ae8D/wHvA/8B7wL/AesC/wHzAfIB/wQAAv8B8QHtAfMB/xIAAf8BuwG0
|
||||
AfAG/wHwAbQBuwH/AQAQ6yIAAf8BvAG0AbUBCQLwAQkBtQG0AbwB/wIAEOskAAH0AbwBtQK0AbUBvAH/
|
||||
BAAQ6xAAEOsLAAH0AfIB8yIAAesD/wHvA/8B7wP/Ae8D/wMAAf8GAAG8AxIB7AH0IAAB6wP/Ae8D/wHv
|
||||
A/8B7wP/AgABBwESAf8FAAHxAfQB/wHyAesBkhAAEPQB6wP/Ae8L/wIAAQcBEgH/CQABBwESAQAB/wj0
|
||||
A/8DAAH0DhQB9AHrBu8B/wVMAf8C7wIAAQcBEgH/CAAB/wGSAesBAAH0CPMB9ALzAvQBAAH0ARQM9AEU
|
||||
AfQB6wP/Ae8D/wFMA/8BTAP/AgABBwESBv8BAAG8AewBbQHsAfQBAAH0AbwBFAHwAfQDFAFtAfQCFAHq
|
||||
AfEB/wH0BBQB9AEUAfQDFAH0ARQB9AEUAfQB6wP/Ae8D/wFMA/8BTAP/AgABBwESAQcFEgEAAfIBBwGS
|
||||
AewB9AEAAfQBvAEUAfAB9AETAW0BBwHwAfQB8AG8ARQB9wL0AhQB9AEUAfQBFAH0ARQB9AEUAfQBFAH0
|
||||
ARQB9AHrA/8B7wP/AUwD/wFMA/8CAAEHARIBvAESAfED8gQAAewB9wL0AbwBFAHwAfQBBwETAW0B8wH0
|
||||
Ae0C6gHwAvQCFAH0ARQB9AEUAfQBFAH0ARQB9AEUAfQBFAH0AesG7wH/BUwB/wLvAfQBAAEHARIB/wLs
|
||||
Af8GAAHrAewB9AHxAe8BFAHwAvQB8AEUAZIB9ALwAW0B9AH/AfQEFAH0ARQB9AMUAfQBFAH0ARQB9AHr
|
||||
A/8B7wv/AQcB6wGSARIC/wHsAesB9AIAAW0B7AHrARIB8QH0AZICFAHwAfQB6gGSARQB7QH0AewBbQEU
|
||||
AbwC9AEUDPQBFAH0AesD/wHvA/8B7wP/Ae8E/wG8AesBEgH/AQAB/wHvAW0B9AEAAfECBwHzAQAB9AHz
|
||||
AfcBFAHwAfQBkgEUAewB8QH0AewBbQHtAfQBAAH0DhQB9AHrA/8B7wP/Ae8D/wHvA/8CAAH/AbwEAAH3
|
||||
AW0HAAH/DPQB/wEAEPQQ6wgAAfIBEgHyJQAQ6wQAAfMB8gIAAbwBEgHzJQAQ6wQAAfMBEgLsARIBkiYA
|
||||
EOsFAAH0AbwBBwG8RwAQ6wcAAvQXAAHvBBIB7wQSAe8B7ANtAfMB6w7/AesGAAH0AvAB9AYAEPQB/wH0
|
||||
ARIBvAL0AesBBwL0Af8B8wL/AZIC6w7/AesFAAH0AfACEwHwAfQFAAH0DhQB9AEAAfQBEgHxAgAB9AHr
|
||||
AbwFAAHvAW0B6wL/CusC/wHrBAAB9AHwBBMB8AH0BAAB9AQUAW0CFAb0ARQB9AEAAfQBEgHxAwAB9AHr
|
||||
AbwBAAH/Ae8BkgFtAbwB6w7/AesDAAH/AfQB6gETAvACEwHwAfQDAAH0AhQBEwEHAfQBEwEUAvQBFAFt
|
||||
AvQBFAH0AQAB9AESAfEEAAHzARIB8wH/Ae8B9wHsAfQB6w7/AesCAAH/AvQC8AL0AfACEwHwAfQCAAH0
|
||||
ARQBEwG8AfQBbQIUA/QBFAFtAfQBFAH0AQAB9AESAfEFAAHrAe8DAAHrAfcB6w7/AesBAAH/AvMC9ALz
|
||||
AvQB8AITAfAB9AEAAfQBFAG8BfQFFAHvARQB9AEHAewBEgHxAQAB9AGSAfEBvAESArwC8QFtAfcB6wL/
|
||||
CusC/wHrAf8B9AJtAvMCbQP0AfACEwH0AQAB9AEUAe8F9AUUAe8BFAL0AbwBkgHyAgAB7wLrAe8BAAHx
|
||||
AusBkgH0AesO/wHrAQAB9AHvARQCbQEUAe8B9AH/AQAB9AHwAQcB9AEAAfQCFAHvAfQBbQIUA/QBFAFt
|
||||
AfQBFAH0ARIB8QIAAf8DEgHqAZIB9AH/AQcB6wESAZIB6w7/AesCAAH0AfcCFAH3AfQB/wMAAvQCAAH0
|
||||
AxQB7wH0ARMBFAL0ARQBbQL0ARQB9AHvAewCAAHzAhICAAHtAe8BBwHsAfMB/wHzAesO/wHrAQAB9AHz
|
||||
AfcCFAH3AfMB9AcAAfQEFAFtAhQG9AEUAfQBAAQSAbwBEgEAAf8B9wEHAeoB9AMAAesC/wrrAv8B6wH/
|
||||
AfQBbQEUAu8BFAFtAvQGAAH0DhQB9AEAARIB8gH/ARIB9AMSAfcB/wESAf8DAAHrDv8B6wEAAfQB8AHv
|
||||
AvQC7wH0BwAQ9AEAAfIBEgHzARIBAAESAQAB/wHsAf8BbQHzAwAB6w7/AesCAAL0Af8BAAL0GQAB/wFt
|
||||
ARIB7wEAARIBAAH/AeoB9AG8AewB8wEAAfQB6w7/AesiAAG8ARIB/wEAAxIB7QH/AQAB8AHrARIB7BDr
|
||||
EwAB/wj0Af8JAAH/EAAB8gH0GQAC9AEJAdsEswHbAQkC9AcAA/QOAAH0ArQB/wYAD/QDAAH0AboIswG6
|
||||
AfQGAAH0AfEB6wHyAfQMAAH/AbQCrQG1Af8FAAH0AZkLeQGZAfQDAAH0CrMB9AUAAfQB8QHqAesBbQHy
|
||||
BfQGAAH/AbQBrQG0AbMBrQEHBQAB9A15AfQDAAH0CrMB9AQAAfQB8QHqAe8B9AGSAW0B8gHsARMB7AHx
|
||||
AfQEAAH/AbUCrQHyAfACrQHyBAAB9A15AfQDAAH0CrMB9AMAAfQB8QHqAe8D9AGSAW0C8gH3ARIB8QH0
|
||||
AwAB8QKtAfABAAH/AbsBrQG0AfQDAAH0DXkB9AMAAfQKswH0AgAB9AHxAeoB7wX0AZIBbQHyAfQB9wHr
|
||||
AfQB8wFMARoB8wGtAQkDAAHzAbQBrQG0Af8CAAH0DXkB9AMAAfQKswH0AgAB9ALrB/QBkgFtAvIBEwH0
|
||||
ARoCTAHyAfQB/wIAAfQBTAHxAbQBrQG7Af8BAAH0DXkB9AMAAfQKswH0AgAB9AHyAW0Bkgf0AZIB6wHy
|
||||
ARMB9AH/A0wB9AIAAfQBTAGTAQAB8QKtAbwBAAH0DXkB9AMAAfQKswH0AwAB9AHyAW0Bkgf0AQcB9wHr
|
||||
AfQBAAH0A0wC9AJMAf8BAAH/AbsCrQHzAfQNeQH0AwAB9AqzAfQEAAH0AfIBbQGSBfQB8gH3ARIB8QH0
|
||||
AgAB9AVMAfMDAAH/AbQBrQG1AfQMeQGZAfQDAAH0A7ME2wOzAfQFAAH0AfIBbQGSA/QB7wETAewB8QH0
|
||||
BAAB/wNMAZMFAAH0AbsB/wH0AXkG9AEaAZkF9AMAAfQBswEJBvQBCQGzAfQGAAH0AfIBbQGSBPQBBwH0
|
||||
BAAB9gGTBEwBkwH/BgAB9AGZB3kBGwH0BwAB9AG6AbkBCQEZAvMBGQEJAbkBugH0BwAB9AHyAW0FFAH0
|
||||
AwABGwNMARoB/wGTAUwBbwH0BQAK9AH/BwAC9AEJAdsEswHbAQkC9AgACPQDAAFvAkwB8gMAAfQBGgH/
|
||||
GAAB/wj0Af8UAAH0ARoB/wwAAUIBTQE+BwABPgMAASgDAAFAAwABoAMAAQEBAAEBBgABBRYAA/+BAAb/
|
||||
AQABfwEHAeACAAL/AgABBwHgAgABhwHhAgABBwHgAgABhwHhAgABHwH4AgABhwHgAgABHwH4AgABgAEB
|
||||
AgABHwH4BgABHwH4BgABHwH4BgABHwH4AgABBwLwAQABHwH4AgABjwHxAfABAAEfAfgCAAGHAeEB8AEA
|
||||
AQcB4AIAAYcB4QHwAQABBwHgAgABhwHhAfABAAEHAeAB+AEfAv8B8AEABv8B8AEAAYABDwb/AYABDwT/
|
||||
AYABAwGAAQ8BAAEBAQABAQEAAQEBgAIAAQEBAAEBAQABAQMAAQEBAAEBAQABAQUAAQEBAAEBBQABAQEA
|
||||
AQEB4AQAAQEBAAEBAeAEAAEBAQABAQHgBAABAQEAAQEB8AIAAQEBAAEBAQABAQHwAgABAQEAAQEBAAEB
|
||||
AfACAAEBAQABAQEAAQEB8AEPAQABAwEAAR8BAAEfAfABDwEAAT8BAAEfAQABHwHwAQ8BgAE/BP8B/gF/
|
||||
AccBgAEBAf8B4AEAAeABHwHDAYABAQH/AeABAAHgAQ8B4wGcAQEB/wHgAQAB4gEPAfEBnAEBAf8B4AEA
|
||||
Af4BDwHwAZwCAAHgAQAB/gEPAfgBiAIAAeABAAH+AQ8B/AUAAfgBHwGEAUEBAAEBAgAB8AE/AQABPwH4
|
||||
AQECAAHgAX8BAQEfAfgBAQIAAeIBfwE5AR8B+AEBAgAB4gF/ATgBjwH4AQECAAHgAQ8BOAGHAfgBAQIA
|
||||
AfABDwERAccB+AEBAQABAQH4AQ8BAQHjAfwBAwHgAQMB/gF/AYMB4wH+AQcB4AEHAf8B4Qf/AcAH/wGA
|
||||
BP8CgQE8AY8E/wKBATgBnwQAAoEBAAGfBAACgQEBAY8EAAKBAYAFAAKBAYAFAAGAAQEBgAEBBAABgAEB
|
||||
AcABjwQAAYABAQHAAQ8B+AF/AfgBfwGAAQEB4AEfAfgBfwH4AX8BgAEBAfgBjwT/AYABAQH4AQ8G/wH4
|
||||
AR8G/wHgAQMB8AEfAv8BAgEAAcABAQHAAQcB+AEPAQIBAAGAAQABwAEHAeABAwECAwABgAEDAeABAwGC
|
||||
AQMCAAGAAQMBwAEBAcABAwIAAYABAwHAAQEBwAEHAgABgAEDAcABAQHAAQcCAAGAAQMBwAEBAeABDwIA
|
||||
AYABAwHAAQEB4AEPAgABgAEDAcABAQHwAQ8CAAHAAQcBwAEBAfABHwIAAcABBwHgAQMB8AEfAYABAAHw
|
||||
AR8B4AEDAfgBPwHAAQEB/AF/AfgBDwH4AT8B4AEDAfwBfwH4AQ8B/AE/AfABBwH4AT8B+AEPBv8B8AEP
|
||||
Af8BgQT/AcABAwQAAfwB/wGAAQEEAAHgAQEBgAEBAgABjwGHAeABAQQAAYcBxwHgAQEEAAGHAeMBwAEB
|
||||
BAABhwHxAYEBAQQAAYcB8AGBAQEEAAGHAfgBgQEBBAABBwE4AYEBAwQAAQcBAAHhAYcEAAEHAYAC/wGA
|
||||
AQECAAEHAYEC/wGAAQECAAT/AcABAwIABP8B8AEPAgAC/wIAAf8B4wT/AgAB7wHABP8CAAHHAcAC/wQA
|
||||
AccB/AGAAQcEAAHHAfgBgAEBBAABwAEgAYAFAAHAASABgAUAAcABPAYAAUAB/AcAAWAGAAEEASEBAAEB
|
||||
BAABzwE/AYABAQQAAf8BHwT/AgAB8wEfBP8CAAHwAT8E/wIAAfgBfwj/AgAB/gF/Av8EAAH8AT8GAAH4
|
||||
AR8CAAGMAXwCAAHwAQ8CAAGOASACAAHgAQcCAAGPAwABwAEDAgABjwGcAgABgAEBAgABCAQAAQECAAEM
|
||||
ASACAAGAASECAAEwAwABwAFzAgABMQGAAgABgAF/AgABgQEHAwABPwIAAYABBwIAAYABfwIAAYUBBwIA
|
||||
AcQD/wGFAQICAAT/AcQBEAIAAv8B4AEHAf0B/wH+AX8C/wHAAQMB+AH/AfwBPwEAAQEBwAEDAfABfwH4
|
||||
AR8BAAEBAcABAwHgAQMB8AEfAQABAQHAAQMBwAEBAeABDwEAAQEBwAEDAYABAAHhAQcBAAEBAcABAwIA
|
||||
AQMBgwEAAQEBwAEDAgABAwEBAQABAQHAAQMCAAEGASEBAAEBAcABAwGAAQABgAEgAQABAQHAAQMBwAEA
|
||||
AcABcAEAAQEBwAEDAeABAQHgAfgBAAEBAcABAwHwAQMBwAE/AQABHwHAAQMB+AEDAYABHwEAAR8BwAED
|
||||
AfwBAwGHAR8C/wHgAQcC/wGPAf8L
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>182, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
18
S7CommPlusGUIBrowser/Program.cs
Normal file
18
S7CommPlusGUIBrowser/Program.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace S7CommPlusGUIBrowser
|
||||
{
|
||||
internal static class Program {
|
||||
/// <summary>
|
||||
/// Der Haupteinstiegspunkt für die Anwendung.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new Form1());
|
||||
}
|
||||
}
|
||||
}
|
||||
36
S7CommPlusGUIBrowser/Properties/AssemblyInfo.cs
Normal file
36
S7CommPlusGUIBrowser/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
||||
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
||||
// die einer Assembly zugeordnet sind.
|
||||
[assembly: AssemblyTitle("S7CommPlusGUIBrowser")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("S7CommPlusGUIBrowser")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2024")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
|
||||
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
|
||||
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
|
||||
[assembly: Guid("beb37276-b3b3-4dee-a1ea-d95eb774223b")]
|
||||
|
||||
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
||||
//
|
||||
// Hauptversion
|
||||
// Nebenversion
|
||||
// Buildnummer
|
||||
// Revision
|
||||
//
|
||||
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
||||
// indem Sie "*" wie unten gezeigt eingeben:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
62
S7CommPlusGUIBrowser/Properties/Resources.Designer.cs
generated
Normal file
62
S7CommPlusGUIBrowser/Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,62 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// Dieser Code wurde von einem Tool generiert.
|
||||
// Laufzeitversion: 4.0.30319.42000
|
||||
//
|
||||
// Änderungen an dieser Datei können fehlerhaftes Verhalten verursachen und gehen verloren, wenn
|
||||
// der Code neu generiert wird.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace S7CommPlusGUIBrowser.Properties {
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
||||
/// </summary>
|
||||
// Diese Klasse wurde von der StronglyTypedResourceBuilder-Klasse
|
||||
// über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
||||
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
||||
// mit der Option /str erneut aus, oder erstellen Sie Ihr VS-Projekt neu.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class Resources {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal Resources() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if ((resourceMan == null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("S7CommPlusGUIBrowser.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
||||
/// Ressourcenlookups, die diese stark typisierte Ressourcenklasse verwenden.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
117
S7CommPlusGUIBrowser/Properties/Resources.resx
Normal file
117
S7CommPlusGUIBrowser/Properties/Resources.resx
Normal file
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
26
S7CommPlusGUIBrowser/Properties/Settings.Designer.cs
generated
Normal file
26
S7CommPlusGUIBrowser/Properties/Settings.Designer.cs
generated
Normal file
@@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace S7CommPlusGUIBrowser.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
7
S7CommPlusGUIBrowser/Properties/Settings.settings
Normal file
7
S7CommPlusGUIBrowser/Properties/Settings.settings
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
6
S7CommPlusGUIBrowser/README.md
Normal file
6
S7CommPlusGUIBrowser/README.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# S7commPlusGuiBrowser
|
||||
|
||||
Dieses kleine Programm soll demonstrieren wie die Library dazu genutzt werden kann um dynamisch durch die in der PLC vorhandenen Symbole / Tags zu browsen.
|
||||
|
||||
WICHTIG: Das Programm dient nur als Beispiel und sollte nicht in einer produktiv Umgebung eingesetzt werden!
|
||||
Um dieses Beispielprogramm möglichst klein und simpel zu halten, erfolgt der Zugriff auf die Library im main Task und blockt daher die GUI.
|
||||
134
S7CommPlusGUIBrowser/S7CommPlusGUIBrowser.csproj
Normal file
134
S7CommPlusGUIBrowser/S7CommPlusGUIBrowser.csproj
Normal file
@@ -0,0 +1,134 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{BEB37276-B3B3-4DEE-A1EA-D95EB774223B}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>S7CommPlusGUIBrowser</RootNamespace>
|
||||
<AssemblyName>S7CommPlusGUIBrowser</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Optimize>true</Optimize>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<LangVersion>7.3</LangVersion>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="S7CommPlusDriver">
|
||||
<HintPath>..\Lib\S7CommPlusDriver.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Form1.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form1.Designer.cs">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="Form1.resx">
|
||||
<DependentUpon>Form1.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<Compile Include="Properties\Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
BIN
S7CommPlusGUIBrowser/bin/Debug/S7CommPlusAuth.dll
Normal file
BIN
S7CommPlusGUIBrowser/bin/Debug/S7CommPlusAuth.dll
Normal file
Binary file not shown.
BIN
S7CommPlusGUIBrowser/bin/Debug/S7CommPlusDriver.dll
Normal file
BIN
S7CommPlusGUIBrowser/bin/Debug/S7CommPlusDriver.dll
Normal file
Binary file not shown.
BIN
S7CommPlusGUIBrowser/bin/Debug/S7CommPlusGUIBrowser.exe
Normal file
BIN
S7CommPlusGUIBrowser/bin/Debug/S7CommPlusGUIBrowser.exe
Normal file
Binary file not shown.
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
|
||||
</startup>
|
||||
</configuration>
|
||||
BIN
S7CommPlusGUIBrowser/bin/Debug/S7CommPlusGUIBrowser.pdb
Normal file
BIN
S7CommPlusGUIBrowser/bin/Debug/S7CommPlusGUIBrowser.pdb
Normal file
Binary file not shown.
BIN
S7CommPlusGUIBrowser/bin/Debug/S7Family0.dll
Normal file
BIN
S7CommPlusGUIBrowser/bin/Debug/S7Family0.dll
Normal file
Binary file not shown.
BIN
S7CommPlusGUIBrowser/bin/Debug/S7PublicKeys.dll
Normal file
BIN
S7CommPlusGUIBrowser/bin/Debug/S7PublicKeys.dll
Normal file
Binary file not shown.
BIN
S7CommPlusGUIBrowser/bin/Debug/S7Utilities.dll
Normal file
BIN
S7CommPlusGUIBrowser/bin/Debug/S7Utilities.dll
Normal file
Binary file not shown.
BIN
S7CommPlusGUIBrowser/bin/Debug/zlib.net.dll
Normal file
BIN
S7CommPlusGUIBrowser/bin/Debug/zlib.net.dll
Normal file
Binary file not shown.
Reference in New Issue
Block a user