#总装移交版本
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.28307.1738
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PLCModule", "PLCModule\PLCModule.csproj", "{43566B10-5883-40B5-82B1-505D91629B33}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x86 = Debug|x86
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{43566B10-5883-40B5-82B1-505D91629B33}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{43566B10-5883-40B5-82B1-505D91629B33}.Debug|x86.Build.0 = Debug|x86
|
||||
{43566B10-5883-40B5-82B1-505D91629B33}.Release|x86.ActiveCfg = Release|x86
|
||||
{43566B10-5883-40B5-82B1-505D91629B33}.Release|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {3B1923B3-18F0-4383-AA31-A5A3B43973DB}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{43566B10-5883-40B5-82B1-505D91629B33}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>PLCModule</RootNamespace>
|
||||
<AssemblyName>PLCModule</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<StartupObject />
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="HslCommunication, Version=5.3.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\合肥工大项目2期\HFGYProject\HFGYProject\ReleaseFiles\HslCommunication.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.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Telerik.WinControls, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e, processorArchitecture=MSIL">
|
||||
<HintPath>..\lib\RCWF\2018.3.1016.40\Telerik.WinControls.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e, processorArchitecture=MSIL">
|
||||
<HintPath>..\lib\RCWF\2018.3.1016.40\Telerik.WinControls.UI.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="TelerikCommon, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e, processorArchitecture=MSIL">
|
||||
<HintPath>..\lib\RCWF\2018.3.1016.40\TelerikCommon.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="PLCBase.cs" />
|
||||
<Compile Include="FormDebugModbusTCP.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FormDebugModbusTCP.designer.cs">
|
||||
<DependentUpon>FormDebugModbusTCP.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="FormDebugSiemensS7.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="FormDebugSiemensS7.designer.cs">
|
||||
<DependentUpon>FormDebugSiemensS7.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="HslModbusTcpObj.cs" />
|
||||
<Compile Include="HslSiemensS7Obj.cs" />
|
||||
<EmbeddedResource Include="FormDebugModbusTCP.resx">
|
||||
<DependentUpon>FormDebugModbusTCP.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="FormDebugSiemensS7.resx">
|
||||
<DependentUpon>FormDebugSiemensS7.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="PlcAddrSetup.resx">
|
||||
<DependentUpon>PlcAddrSetup.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\licenses.licx" />
|
||||
<Compile Include="PlcAddrSetup.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="PlcAddrSetup.designer.cs">
|
||||
<DependentUpon>PlcAddrSetup.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<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>
|
||||
<DesignTime>True</DesignTime>
|
||||
</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>
|
||||
<ItemGroup>
|
||||
<!--sirinie -->
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<!-- 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>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
|
||||
</startup>
|
||||
</configuration>
|
||||
@@ -0,0 +1,720 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using HslCommunication.Profinet;
|
||||
using HslCommunication;
|
||||
using HslCommunication.ModBus;
|
||||
using System.Threading;
|
||||
|
||||
namespace PLCModule
|
||||
{
|
||||
public partial class FormModbus : Telerik.WinControls.UI.ShapedForm
|
||||
{
|
||||
|
||||
public FormModbus()
|
||||
{
|
||||
InitializeComponent( );
|
||||
}
|
||||
|
||||
public FormModbus(string strIP, string strPort, string strMachAddr)
|
||||
{
|
||||
InitializeComponent();
|
||||
textBox_IPAddress.Text = strIP;
|
||||
textBox_Port.Text = strPort;
|
||||
textBox_Station.Text = strMachAddr;
|
||||
}
|
||||
|
||||
private ModbusTcpNet busTcpClient = null;
|
||||
|
||||
//private void linkLabel1_LinkClicked( object sender, LinkLabelLinkClickedEventArgs e )
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// System.Diagnostics.Process.Start( linkLabel1.Text );
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// MessageBox.Show( ex.Message );
|
||||
// }
|
||||
//}
|
||||
|
||||
private void FormSiemens_Load( object sender, EventArgs e )
|
||||
{
|
||||
panel2.Enabled = false;
|
||||
userCurve1.SetLeftCurve( "A", new float[0], Color.Tomato );
|
||||
|
||||
comboBox_DataFormat.SelectedIndex = 0;
|
||||
|
||||
comboBox_DataFormat.SelectedIndexChanged += comboBox_DataFormat_SelectedIndexChanged;
|
||||
checkBox_StringReverse.CheckedChanged += checkBox_StringReverse_CheckedChanged;
|
||||
}
|
||||
|
||||
|
||||
private void Language( int language )
|
||||
{
|
||||
if (language == 2)
|
||||
{
|
||||
Text = "Modbus Tcp Read Demo";
|
||||
|
||||
label1.Text = "Ip:";
|
||||
label3.Text = "Port:";
|
||||
label21.Text = "station";
|
||||
checkBox_AddressStartFromZero.Text = "address from 0";
|
||||
checkBox_StringReverse.Text = "string reverse";
|
||||
btn_ConnectPLC.Text = "Connect";
|
||||
btn_DisConnectPLC.Text = "Disconnect";
|
||||
|
||||
label6.Text = "address:";
|
||||
label7.Text = "result:";
|
||||
|
||||
button_read_bool.Text = "r-coil";
|
||||
button4.Text = "r-discrete";
|
||||
button_read_short.Text = "r-short";
|
||||
button_read_ushort.Text = "r-ushort";
|
||||
button_read_int.Text = "r-int";
|
||||
button_read_uint.Text = "r-uint";
|
||||
button_read_long.Text = "r-long";
|
||||
button_read_ulong.Text = "r-ulong";
|
||||
button_read_float.Text = "r-float";
|
||||
button_read_double.Text = "r-double";
|
||||
button_read_string.Text = "r-string";
|
||||
label8.Text = "length:";
|
||||
label11.Text = "Address:";
|
||||
label12.Text = "length:";
|
||||
button_Read_Batch.Text = "Bulk Read";
|
||||
label13.Text = "Results:";
|
||||
label16.Text = "Message:";
|
||||
label14.Text = "Results:";
|
||||
button26.Text = "Read";
|
||||
|
||||
label10.Text = "Address:";
|
||||
label9.Text = "Value:";
|
||||
label19.Text = "Note: The value of the string needs to be converted";
|
||||
button_Write_bool.Text = "w-coil";
|
||||
button_Write_Short.Text = "w-short";
|
||||
button_Write_Ushort.Text = "w-ushort";
|
||||
button_Write_Int.Text = "w-int";
|
||||
button_Write_Uint.Text = "w-uint";
|
||||
button_Write_Long.Text = "w-long";
|
||||
button_Write_Ulong.Text = "w-ulong";
|
||||
button_Write_Float.Text = "w-float";
|
||||
button_Write_Double.Text = "w-double";
|
||||
button_Write_String.Text = "w-string";
|
||||
|
||||
groupBox1.Text = "Single Data Read test";
|
||||
groupBox2.Text = "Single Data Write test";
|
||||
groupBox3.Text = "Bulk Read test";
|
||||
groupBox4.Text = "Message reading test, hex string needs to be filled in";
|
||||
groupBox5.Text = "Timed reading, curve display";
|
||||
|
||||
button3.Text = "Pressure test, r/w 3,000s";
|
||||
label15.Text = "Address:";
|
||||
label18.Text = "Interval";
|
||||
button27.Text = "Start";
|
||||
label17.Text = "This assumes that the type of data is determined for short:";
|
||||
}
|
||||
}
|
||||
|
||||
private void btnMouseHover(object sender, EventArgs e)
|
||||
{
|
||||
this.BeginInvoke((EventHandler)delegate
|
||||
{
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(14, 72, 87);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(14, 72, 87);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(14, 72, 87);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(14, 72, 87);
|
||||
});
|
||||
}
|
||||
|
||||
private void btnMouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
this.BeginInvoke((EventHandler)delegate
|
||||
{
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(16, 116, 139);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(16, 116, 139);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(16, 116, 139);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(16, 116, 139);
|
||||
});
|
||||
}
|
||||
|
||||
private void comboBox_DataFormat_SelectedIndexChanged( object sender, EventArgs e )
|
||||
{
|
||||
if (busTcpClient != null)
|
||||
{
|
||||
switch (comboBox_DataFormat.SelectedIndex)
|
||||
{
|
||||
case 0: busTcpClient.DataFormat = HslCommunication.Core.DataFormat.ABCD;break;
|
||||
case 1: busTcpClient.DataFormat = HslCommunication.Core.DataFormat.BADC; break;
|
||||
case 2: busTcpClient.DataFormat = HslCommunication.Core.DataFormat.CDAB; break;
|
||||
case 3: busTcpClient.DataFormat = HslCommunication.Core.DataFormat.DCBA; break;
|
||||
default:break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void checkBox_StringReverse_CheckedChanged( object sender, EventArgs e )
|
||||
{
|
||||
if (busTcpClient != null)
|
||||
{
|
||||
busTcpClient.IsStringReverse = checkBox_StringReverse.Checked;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void FormSiemens_FormClosing( object sender, FormClosingEventArgs e )
|
||||
{
|
||||
isThreadRun = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 统一的读取结果的数据解析,显示
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="result"></param>
|
||||
/// <param name="address"></param>
|
||||
/// <param name="textBox"></param>
|
||||
private void readResultRender<T>( OperateResult<T> result, string address, TextBox textBox )
|
||||
{
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
textBox.AppendText( DateTime.Now.ToString( "[HH:mm:ss] " ) + $"[{address}] {result.Content}{Environment.NewLine}" );
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show( DateTime.Now.ToString( "[HH:mm:ss] " ) + $"[{address}] 读取失败{Environment.NewLine}原因:{result.ToMessageShowString( )}" );
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 统一的数据写入的结果显示
|
||||
/// </summary>
|
||||
/// <param name="result"></param>
|
||||
/// <param name="address"></param>
|
||||
private void writeResultRender( OperateResult result, string address )
|
||||
{
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
MessageBox.Show( DateTime.Now.ToString( "[HH:mm:ss] " ) + $"[{address}] 写入成功" );
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show( DateTime.Now.ToString( "[HH:mm:ss] " ) + $"[{address}] 写入失败{Environment.NewLine}原因:{result.ToMessageShowString( )}" );
|
||||
}
|
||||
}
|
||||
#region Connect And Close
|
||||
|
||||
private void btn_ConnectPLC_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 连接
|
||||
System.Net.IPAddress address;
|
||||
if (!System.Net.IPAddress.TryParse( textBox_IPAddress.Text, out address ))
|
||||
{
|
||||
MessageBox.Show( "Ip地址输入不正确!" );
|
||||
return;
|
||||
}
|
||||
|
||||
int port;
|
||||
if(!int.TryParse(textBox_Port.Text,out port))
|
||||
{
|
||||
MessageBox.Show( "端口输入不正确!" );
|
||||
return;
|
||||
}
|
||||
|
||||
byte station;
|
||||
if(!byte.TryParse(textBox_Station.Text,out station))
|
||||
{
|
||||
MessageBox.Show( "站号输入不正确!" );
|
||||
return;
|
||||
}
|
||||
|
||||
busTcpClient?.ConnectClose( );
|
||||
busTcpClient = new ModbusTcpNet( textBox_IPAddress.Text, port, station );
|
||||
busTcpClient.AddressStartWithZero = checkBox_AddressStartFromZero.Checked;
|
||||
|
||||
comboBox_DataFormat_SelectedIndexChanged( null, new EventArgs( ) ); // 设置数据服务
|
||||
busTcpClient.IsStringReverse = checkBox_StringReverse.Checked;
|
||||
|
||||
try
|
||||
{
|
||||
OperateResult connect = busTcpClient.ConnectServer( );
|
||||
if (connect.IsSuccess)
|
||||
{
|
||||
MessageBox.Show( "连接成功!" );
|
||||
btn_DisConnectPLC.Enabled = true;
|
||||
btn_ConnectPLC.Enabled = false;
|
||||
panel2.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show( "连接失败!" );
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
private void btn_DisConnectPLC_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 断开连接
|
||||
busTcpClient.ConnectClose( );
|
||||
btn_DisConnectPLC.Enabled = false;
|
||||
btn_ConnectPLC.Enabled = true;
|
||||
panel2.Enabled = false;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region 单数据读取测试
|
||||
|
||||
|
||||
private void button_read_bool_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 读取bool变量
|
||||
readResultRender( busTcpClient.ReadCoil( textBox3.Text ), textBox3.Text, textBox4 );
|
||||
}
|
||||
|
||||
private void button4_Click_1( object sender, EventArgs e )
|
||||
{
|
||||
// 读取离散输入bool变量
|
||||
readResultRender( busTcpClient.ReadDiscrete( textBox3.Text ), textBox3.Text, textBox4 );
|
||||
}
|
||||
|
||||
private void button_read_short_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 读取short变量
|
||||
readResultRender( busTcpClient.ReadInt16( textBox3.Text ), textBox3.Text, textBox4 );
|
||||
|
||||
// 这一行是测试读取short数组的代码,忽略就行
|
||||
// short[] values = busTcpClient.ReadInt16( "100", 2 ).Content;
|
||||
}
|
||||
|
||||
private void button_read_ushort_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 读取ushort变量
|
||||
readResultRender( busTcpClient.ReadUInt16( textBox3.Text ), textBox3.Text, textBox4 );
|
||||
}
|
||||
|
||||
private void button_read_int_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 读取int变量
|
||||
readResultRender( busTcpClient.ReadInt32( textBox3.Text ), textBox3.Text, textBox4 );
|
||||
}
|
||||
private void button_read_uint_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 读取uint变量
|
||||
readResultRender( busTcpClient.ReadUInt32( textBox3.Text ), textBox3.Text, textBox4 );
|
||||
}
|
||||
private void button_read_long_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 读取long变量
|
||||
readResultRender( busTcpClient.ReadInt64( textBox3.Text ), textBox3.Text, textBox4 );
|
||||
}
|
||||
|
||||
private void button_read_ulong_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 读取ulong变量
|
||||
readResultRender( busTcpClient.ReadUInt64( textBox3.Text ), textBox3.Text, textBox4 );
|
||||
}
|
||||
|
||||
private void button_read_float_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 读取float变量
|
||||
readResultRender( busTcpClient.ReadFloat( textBox3.Text ), textBox3.Text, textBox4 );
|
||||
}
|
||||
|
||||
private void button_read_double_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 读取double变量
|
||||
readResultRender( busTcpClient.ReadDouble( textBox3.Text ), textBox3.Text, textBox4 );
|
||||
}
|
||||
|
||||
private void button_read_string_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 读取字符串
|
||||
readResultRender( busTcpClient.ReadString( textBox3.Text , ushort.Parse( textBox5.Text ) ), textBox3.Text, textBox4 );
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 单数据写入测试
|
||||
|
||||
|
||||
private void button_write_bool_Click( object sender, EventArgs e )
|
||||
{
|
||||
// bool写入
|
||||
try
|
||||
{
|
||||
writeResultRender( busTcpClient.WriteCoil( textBox_WriteAddress.Text, bool.Parse( textBox_WriteValue.Text ) ), textBox_WriteAddress.Text );
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
private void button_Write_Short_Click( object sender, EventArgs e )
|
||||
{
|
||||
// short写入
|
||||
try
|
||||
{
|
||||
writeResultRender( busTcpClient.Write( textBox_WriteAddress.Text , short.Parse( textBox_WriteValue.Text ) ), textBox_WriteAddress.Text );
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
private void button_Write_Ushort_Click( object sender, EventArgs e )
|
||||
{
|
||||
// ushort写入
|
||||
try
|
||||
{
|
||||
writeResultRender( busTcpClient.Write( textBox_WriteAddress.Text , ushort.Parse( textBox_WriteValue.Text ) ), textBox_WriteAddress.Text );
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void button_Write_Int_Click( object sender, EventArgs e )
|
||||
{
|
||||
// int写入
|
||||
try
|
||||
{
|
||||
writeResultRender( busTcpClient.Write( textBox_WriteAddress.Text , int.Parse( textBox_WriteValue.Text ) ), textBox_WriteAddress.Text );
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
private void button_Write_Uint_Click( object sender, EventArgs e )
|
||||
{
|
||||
// uint写入
|
||||
try
|
||||
{
|
||||
writeResultRender( busTcpClient.Write( textBox_WriteAddress.Text , uint.Parse( textBox_WriteValue.Text ) ), textBox_WriteAddress.Text );
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
private void button_Write_Long_Click( object sender, EventArgs e )
|
||||
{
|
||||
// long写入
|
||||
try
|
||||
{
|
||||
writeResultRender( busTcpClient.Write( textBox_WriteAddress.Text , long.Parse( textBox_WriteValue.Text ) ), textBox_WriteAddress.Text );
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
private void button_Write_Ulong_Click( object sender, EventArgs e )
|
||||
{
|
||||
// ulong写入
|
||||
try
|
||||
{
|
||||
writeResultRender( busTcpClient.Write( textBox_WriteAddress.Text , ulong.Parse( textBox_WriteValue.Text ) ), textBox_WriteAddress.Text );
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
private void button_Write_Float_Click( object sender, EventArgs e )
|
||||
{
|
||||
// float写入
|
||||
try
|
||||
{
|
||||
writeResultRender( busTcpClient.Write( textBox_WriteAddress.Text , float.Parse( textBox_WriteValue.Text ) ), textBox_WriteAddress.Text );
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
private void button_Write_Double_Click( object sender, EventArgs e )
|
||||
{
|
||||
// double写入
|
||||
try
|
||||
{
|
||||
writeResultRender( busTcpClient.Write( textBox_WriteAddress.Text , double.Parse( textBox_WriteValue.Text ) ), textBox_WriteAddress.Text );
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void button_Write_String_Click( object sender, EventArgs e )
|
||||
{
|
||||
// string写入
|
||||
try
|
||||
{
|
||||
//writeResultRender(busTcpClient.Write(textBox_WriteAddress.Text, textBox_WriteValue.Text, 6), textBox_WriteAddress.Text);
|
||||
writeResultRender( busTcpClient.Write( textBox_WriteAddress.Text , textBox_WriteValue.Text ), textBox_WriteAddress.Text );
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 批量读取测试
|
||||
private void button_Read_Batch_Click( object sender, EventArgs e )
|
||||
{
|
||||
try
|
||||
{
|
||||
OperateResult<byte[]> read = busTcpClient.Read( textBox6.Text , ushort.Parse( textBox9.Text ) );
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
textBox10.Text = "结果:" + HslCommunication.BasicFramework.SoftBasic.ByteToHexString( read.Content );
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show( "读取失败:" + read.ToMessageShowString( ) );
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( "读取失败:" + ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 报文读取测试
|
||||
|
||||
|
||||
private void button26_Click( object sender, EventArgs e )
|
||||
{
|
||||
try
|
||||
{
|
||||
OperateResult<byte[]> read = busTcpClient.ReadFromCoreServer( HslCommunication.BasicFramework.SoftBasic.HexStringToBytes( textBox13.Text ) );
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
textBox11.Text = "结果:" + HslCommunication.BasicFramework.SoftBasic.ByteToHexString( read.Content );
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show( "读取失败:" + read.ToMessageShowString( ) );
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( "读取失败:" + ex.Message );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 定时器读取测试
|
||||
|
||||
// 外加曲线显示
|
||||
|
||||
private Thread thread = null; // 后台读取的线程
|
||||
private int timeSleep = 300; // 读取的间隔
|
||||
private bool isThreadRun = false; // 用来标记线程的运行状态
|
||||
|
||||
private void button27_Click( object sender, EventArgs e )
|
||||
{
|
||||
// 启动后台线程,定时读取PLC中的数据,然后在曲线控件中显示
|
||||
|
||||
if (!isThreadRun)
|
||||
{
|
||||
if (!int.TryParse( textBox14.Text, out timeSleep ))
|
||||
{
|
||||
MessageBox.Show( "间隔时间格式输入错误!" );
|
||||
return;
|
||||
}
|
||||
button27.Text = "停止";
|
||||
isThreadRun = true;
|
||||
thread = new Thread( ThreadReadServer );
|
||||
thread.IsBackground = true;
|
||||
thread.Start( );
|
||||
}
|
||||
else
|
||||
{
|
||||
button27.Text = "启动";
|
||||
isThreadRun = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void ThreadReadServer()
|
||||
{
|
||||
while (isThreadRun)
|
||||
{
|
||||
Thread.Sleep( timeSleep );
|
||||
|
||||
try
|
||||
{
|
||||
OperateResult<short> read = busTcpClient.ReadInt16( textBox12.Text );
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
// 显示曲线
|
||||
if (isThreadRun) Invoke( new Action<short>( AddDataCurve ), read.Content );
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show( "读取失败:" + ex.Message );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void AddDataCurve( short data )
|
||||
{
|
||||
userCurve1.AddCurveData( "A", data );
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 压力测试
|
||||
|
||||
private void button4_Click( object sender, EventArgs e )
|
||||
{
|
||||
PressureTest2( );
|
||||
}
|
||||
|
||||
private int thread_status = 0;
|
||||
private int failed = 0;
|
||||
private DateTime thread_time_start = DateTime.Now;
|
||||
// 压力测试,开3个线程,每个线程进行读写操作,看使用时间
|
||||
private void PressureTest2( )
|
||||
{
|
||||
thread_status = 3;
|
||||
failed = 0;
|
||||
thread_time_start = DateTime.Now;
|
||||
new Thread( new ThreadStart( thread_test2 ) ) { IsBackground = true, }.Start( );
|
||||
new Thread( new ThreadStart( thread_test22 ) ) { IsBackground = true, }.Start( );
|
||||
new Thread( new ThreadStart( thread_test222) ) { IsBackground = true, }.Start( );
|
||||
button3.Enabled = false;
|
||||
}
|
||||
|
||||
private void thread_test2( )
|
||||
{
|
||||
int count = 500;
|
||||
string strAddress = textBox_WriteAddress.Text.Trim();
|
||||
while (count > 0)
|
||||
{
|
||||
if (!busTcpClient.Write(strAddress, (short)123 ).IsSuccess) failed++;
|
||||
if (!busTcpClient.ReadInt16(strAddress).IsSuccess) failed++;
|
||||
count--;
|
||||
}
|
||||
thread_end( );
|
||||
}
|
||||
|
||||
private void thread_test22()
|
||||
{
|
||||
int count = 500;
|
||||
string strAddress = textBox_WriteAddress.Text.Trim();
|
||||
while (count > 0)
|
||||
{
|
||||
if (!busTcpClient.Write(strAddress, (short)456).IsSuccess) failed++;
|
||||
if (!busTcpClient.ReadInt16(strAddress).IsSuccess) failed++;
|
||||
count--;
|
||||
}
|
||||
thread_end();
|
||||
}
|
||||
|
||||
private void thread_test222()
|
||||
{
|
||||
int count = 500;
|
||||
string strAddress = textBox_WriteAddress.Text.Trim();
|
||||
while (count > 0)
|
||||
{
|
||||
if (!busTcpClient.Write(strAddress, (short)789).IsSuccess) failed++;
|
||||
if (!busTcpClient.ReadInt16(strAddress).IsSuccess) failed++;
|
||||
count--;
|
||||
}
|
||||
thread_end();
|
||||
}
|
||||
|
||||
private void thread_end( )
|
||||
{
|
||||
if (Interlocked.Decrement( ref thread_status ) == 0)
|
||||
{
|
||||
// 执行完成
|
||||
Invoke( new Action( ( ) =>
|
||||
{
|
||||
button3.Enabled = true;
|
||||
MessageBox.Show( "耗时:" + (DateTime.Now - thread_time_start).TotalSeconds + Environment.NewLine + "失败次数:" + failed );
|
||||
} ) );
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Test Function
|
||||
|
||||
|
||||
private void Test1()
|
||||
{
|
||||
OperateResult<bool[]> read = busTcpClient.ReadCoil( "100", 10 );
|
||||
if(read.IsSuccess)
|
||||
{
|
||||
bool coil_100 = read.Content[0];
|
||||
// and so on
|
||||
bool coil_109 = read.Content[9];
|
||||
}
|
||||
else
|
||||
{
|
||||
// failed
|
||||
string err = read.Message;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void Test2()
|
||||
{
|
||||
bool[] values = new bool[] { true, false, false, false, true, true, false, true, false, false };
|
||||
OperateResult write = busTcpClient.WriteCoil( "100", values );
|
||||
if (write.IsSuccess)
|
||||
{
|
||||
// success
|
||||
}
|
||||
else
|
||||
{
|
||||
// failed
|
||||
string err = write.Message;
|
||||
}
|
||||
|
||||
HslCommunication.Core.IByteTransform ByteTransform = new HslCommunication.Core.ReverseWordTransform( );
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
+1547
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,232 @@
|
||||
<?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>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z
|
||||
uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y
|
||||
u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY
|
||||
urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA
|
||||
AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ
|
||||
pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4
|
||||
ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/
|
||||
dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7
|
||||
bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy
|
||||
Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW
|
||||
CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC
|
||||
df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW
|
||||
CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL
|
||||
jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp
|
||||
OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL
|
||||
jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC
|
||||
df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC
|
||||
dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC
|
||||
dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA
|
||||
AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om
|
||||
Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA
|
||||
AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B
|
||||
fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW
|
||||
CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY
|
||||
uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW
|
||||
CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY
|
||||
uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865
|
||||
YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb
|
||||
Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC
|
||||
df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch
|
||||
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
|
||||
f//wAH///AB///+Af///wH///+B////4f/8=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,668 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using HslCommunication.Profinet;
|
||||
using System.Threading;
|
||||
using HslCommunication.Profinet.Siemens;
|
||||
using HslCommunication;
|
||||
|
||||
namespace PLCModule
|
||||
{
|
||||
public partial class FormDebugSiemensS7 : Telerik.WinControls.UI.ShapedForm
|
||||
{
|
||||
public FormDebugSiemensS7(SiemensPLCS siemensPLCS)
|
||||
{
|
||||
InitializeComponent();
|
||||
siemensTcpNet = new SiemensS7Net(siemensPLCS);
|
||||
}
|
||||
|
||||
private SiemensS7Net siemensTcpNet = null;
|
||||
|
||||
private void FormSiemens_Load(object sender, EventArgs e)
|
||||
{
|
||||
panel2.Enabled = false;
|
||||
rddlAddr3.SelectedIndex = 0;
|
||||
userCurve1.SetLeftCurve("A", new float[0], Color.Tomato);
|
||||
}
|
||||
|
||||
private void Language(int language)
|
||||
{
|
||||
if (language == 2)
|
||||
{
|
||||
Text = "Siemens Read PLC Demo";
|
||||
|
||||
label1.Text = "Ip:";
|
||||
label3.Text = "Port:";
|
||||
button1.Text = "Connect";
|
||||
button2.Text = "Disconnect";
|
||||
label21.Text = "Address:";
|
||||
label6.Text = "address:";
|
||||
label7.Text = "result:";
|
||||
|
||||
button_read_bool.Text = "Read Bit";
|
||||
button_read_byte.Text = "r-byte";
|
||||
button_read_short.Text = "r-short";
|
||||
button_read_ushort.Text = "r-ushort";
|
||||
button_read_int.Text = "r-int";
|
||||
button_read_uint.Text = "r-uint";
|
||||
button_read_long.Text = "r-long";
|
||||
button_read_ulong.Text = "r-ulong";
|
||||
button_read_float.Text = "r-float";
|
||||
button_read_double.Text = "r-double";
|
||||
button_read_string.Text = "r-string";
|
||||
label8.Text = "length:";
|
||||
label11.Text = "Address:";
|
||||
label12.Text = "length:";
|
||||
button25.Text = "Bulk Read";
|
||||
label13.Text = "Results:";
|
||||
label16.Text = "Message:";
|
||||
label14.Text = "Results:";
|
||||
button26.Text = "Read";
|
||||
|
||||
label10.Text = "Address:";
|
||||
label9.Text = "Value:";
|
||||
label19.Text = "Note: The value of the string needs to be converted";
|
||||
button_Write_bool.Text = "Write Bit";
|
||||
button_write_short.Text = "w-short";
|
||||
button_write_ushort.Text = "w-ushort";
|
||||
button_write_int.Text = "w-int";
|
||||
button_write_uint.Text = "w-uint";
|
||||
button_write_long.Text = "w-long";
|
||||
button_write_ulong.Text = "w-ulong";
|
||||
button_write_float.Text = "w-float";
|
||||
button_write_double.Text = "w-double";
|
||||
button_write_string.Text = "w-string";
|
||||
|
||||
groupBox1.Text = "Single Data Read test";
|
||||
groupBox2.Text = "Single Data Write test";
|
||||
groupBox3.Text = "Bulk Read test";
|
||||
groupBox4.Text = "Message reading test, hex string needs to be filled in";
|
||||
groupBox5.Text = "Timed reading, curve display";
|
||||
|
||||
label15.Text = "Address:";
|
||||
label18.Text = "Interval";
|
||||
button27.Text = "Start";
|
||||
label17.Text = "This assumes that the type of data is determined for short:";
|
||||
button_write_byte.Text = "w-byte";
|
||||
}
|
||||
}
|
||||
|
||||
private void FormSiemens_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
isThreadRun = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 统一的读取结果的数据解析,显示
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="result"></param>
|
||||
/// <param name="address"></param>
|
||||
/// <param name="textBox"></param>
|
||||
private void readResultRender<T>(OperateResult<T> result, string address, Telerik.WinControls.UI.RadTextBox textBox)
|
||||
{
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
textBox.AppendText(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] {result.Content}{Environment.NewLine}");
|
||||
}
|
||||
else
|
||||
{
|
||||
rleMessage.Text = (DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 读取失败{Environment.NewLine}原因:{result.ToMessageShowString()}");
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 统一的数据写入的结果显示
|
||||
/// </summary>
|
||||
/// <param name="result"></param>
|
||||
/// <param name="address"></param>
|
||||
private void writeResultRender(OperateResult result, string address)
|
||||
{
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
rleMessage.Text = (DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 写入成功");
|
||||
}
|
||||
else
|
||||
{
|
||||
rleMessage.Text = (DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 写入失败{Environment.NewLine}原因:{result.ToMessageShowString()}");
|
||||
}
|
||||
}
|
||||
|
||||
#region Connect And Close
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 连接
|
||||
System.Net.IPAddress address;
|
||||
if (!System.Net.IPAddress.TryParse(textBox1.Text, out address))
|
||||
{
|
||||
rleMessage.Text = ("Ip地址输入不正确!");
|
||||
return;
|
||||
}
|
||||
|
||||
siemensTcpNet.IpAddress = textBox1.Text;
|
||||
|
||||
try
|
||||
{
|
||||
OperateResult connect = siemensTcpNet.ConnectServer();
|
||||
if (connect.IsSuccess)
|
||||
{
|
||||
rleMessage.Text = ("连接成功!");
|
||||
button2.Enabled = true;
|
||||
button1.Enabled = false;
|
||||
panel2.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
rleMessage.Text = ("连接失败!");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 断开连接
|
||||
siemensTcpNet.ConnectClose();
|
||||
button2.Enabled = false;
|
||||
button1.Enabled = true;
|
||||
panel2.Enabled = false;
|
||||
}
|
||||
|
||||
#endregion Connect And Close
|
||||
|
||||
#region 单数据读取测试
|
||||
|
||||
private void button_read_bool_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 读取bool变量
|
||||
readResultRender(siemensTcpNet.ReadBool(textBox3.Text), textBox3.Text, textBox4);
|
||||
}
|
||||
|
||||
private void button_read_byte_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 读取byte变量
|
||||
readResultRender(siemensTcpNet.ReadByte(textBox3.Text), textBox3.Text, textBox4);
|
||||
}
|
||||
|
||||
private void button_read_short_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 读取short变量
|
||||
readResultRender(siemensTcpNet.ReadInt16(textBox3.Text), textBox3.Text, textBox4);
|
||||
}
|
||||
|
||||
private void button_read_ushort_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 读取ushort变量
|
||||
readResultRender(siemensTcpNet.ReadUInt16(textBox3.Text), textBox3.Text, textBox4);
|
||||
}
|
||||
|
||||
private void button_read_int_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 读取int变量
|
||||
readResultRender(siemensTcpNet.ReadInt32(textBox3.Text), textBox3.Text, textBox4);
|
||||
}
|
||||
|
||||
private void button_read_uint_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 读取uint变量
|
||||
readResultRender(siemensTcpNet.ReadUInt32(textBox3.Text), textBox3.Text, textBox4);
|
||||
}
|
||||
|
||||
private void button_read_long_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 读取long变量
|
||||
readResultRender(siemensTcpNet.ReadInt64(textBox3.Text), textBox3.Text, textBox4);
|
||||
}
|
||||
|
||||
private void button_read_ulong_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 读取ulong变量
|
||||
readResultRender(siemensTcpNet.ReadUInt64(textBox3.Text), textBox3.Text, textBox4);
|
||||
}
|
||||
|
||||
private void button_read_float_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 读取float变量
|
||||
readResultRender(siemensTcpNet.ReadFloat(textBox3.Text), textBox3.Text, textBox4);
|
||||
}
|
||||
|
||||
private void button_read_double_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 读取double变量
|
||||
readResultRender(siemensTcpNet.ReadDouble(textBox3.Text), textBox3.Text, textBox4);
|
||||
}
|
||||
|
||||
private void button_read_string_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 读取字符串
|
||||
readResultRender(siemensTcpNet.ReadString(textBox3.Text, ushort.Parse(textBox5.Text)), textBox3.Text, textBox4);
|
||||
}
|
||||
|
||||
#endregion 单数据读取测试
|
||||
|
||||
#region 单数据写入测试
|
||||
|
||||
private void button_Write_bool_Click(object sender, EventArgs e)
|
||||
{
|
||||
// bool写入
|
||||
try
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(textBox8.Text, bool.Parse(textBox7.Text)), textBox8.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_write_byte_Click(object sender, EventArgs e)
|
||||
{
|
||||
// byte写入
|
||||
try
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(textBox8.Text, byte.Parse(textBox7.Text)), textBox8.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_write_short_Click(object sender, EventArgs e)
|
||||
{
|
||||
// short写入
|
||||
try
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(textBox8.Text, short.Parse(textBox7.Text)), textBox8.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_write_ushort_Click(object sender, EventArgs e)
|
||||
{
|
||||
// ushort写入
|
||||
try
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(textBox8.Text, ushort.Parse(textBox7.Text)), textBox8.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_write_int_Click(object sender, EventArgs e)
|
||||
{
|
||||
// int写入
|
||||
try
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(textBox8.Text, int.Parse(textBox7.Text)), textBox8.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_write_uint_Click(object sender, EventArgs e)
|
||||
{
|
||||
// uint写入
|
||||
try
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(textBox8.Text, uint.Parse(textBox7.Text)), textBox8.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_write_long_Click(object sender, EventArgs e)
|
||||
{
|
||||
// long写入
|
||||
try
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(textBox8.Text, long.Parse(textBox7.Text)), textBox8.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_write_ulong_Click(object sender, EventArgs e)
|
||||
{
|
||||
// ulong写入
|
||||
try
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(textBox8.Text, ulong.Parse(textBox7.Text)), textBox8.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_write_float_Click(object sender, EventArgs e)
|
||||
{
|
||||
// float写入
|
||||
try
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(textBox8.Text, float.Parse(textBox7.Text)), textBox8.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_write_double_Click(object sender, EventArgs e)
|
||||
{
|
||||
// double写入
|
||||
try
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(textBox8.Text, double.Parse(textBox7.Text)), textBox8.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button_write_string_Click(object sender, EventArgs e)
|
||||
{
|
||||
// string写入
|
||||
try
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(textBox8.Text, textBox7.Text), textBox8.Text);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = (ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion 单数据写入测试
|
||||
|
||||
#region 批量读取测试
|
||||
|
||||
private void button25_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
OperateResult<byte[]> read = siemensTcpNet.Read(textBox6.Text, ushort.Parse(textBox9.Text));
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
textBox10.Text = "结果:" + HslCommunication.BasicFramework.SoftBasic.ByteToHexString(read.Content);
|
||||
}
|
||||
else
|
||||
{
|
||||
rleMessage.Text = ("读取失败:" + read.ToMessageShowString());
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = ("读取失败:" + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void button3_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 订货号
|
||||
OperateResult<string> read = siemensTcpNet.ReadOrderNumber();
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
textBox10.Text = "订货号:" + read.Content;
|
||||
}
|
||||
else
|
||||
{
|
||||
rleMessage.Text = ("读取失败:" + read.ToMessageShowString());
|
||||
}
|
||||
}
|
||||
|
||||
#endregion 批量读取测试
|
||||
|
||||
#region 报文读取测试
|
||||
|
||||
private void button26_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
OperateResult<byte[]> read = siemensTcpNet.ReadFromCoreServer(HslCommunication.BasicFramework.SoftBasic.HexStringToBytes(textBox13.Text));
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
textBox11.Text = "结果:" + HslCommunication.BasicFramework.SoftBasic.ByteToHexString(read.Content);
|
||||
}
|
||||
else
|
||||
{
|
||||
rleMessage.Text = ("读取失败:" + read.ToMessageShowString());
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = ("读取失败:" + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion 报文读取测试
|
||||
|
||||
#region 定时器读取测试
|
||||
|
||||
// 外加曲线显示
|
||||
|
||||
private Thread thread = null; // 后台读取的线程
|
||||
private int timeSleep = 300; // 读取的间隔
|
||||
private bool isThreadRun = false; // 用来标记线程的运行状态
|
||||
|
||||
private void button27_Click(object sender, EventArgs e)
|
||||
{
|
||||
// 启动后台线程,定时读取PLC中的数据,然后在曲线控件中显示
|
||||
|
||||
if (!isThreadRun)
|
||||
{
|
||||
if (!int.TryParse(textBox14.Text, out timeSleep))
|
||||
{
|
||||
rleMessage.Text = ("间隔时间格式输入错误!");
|
||||
return;
|
||||
}
|
||||
button27.Text = "停止";
|
||||
isThreadRun = true;
|
||||
thread = new Thread(ThreadReadServer);
|
||||
thread.IsBackground = true;
|
||||
thread.Start();
|
||||
}
|
||||
else
|
||||
{
|
||||
button27.Text = "启动";
|
||||
isThreadRun = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void ThreadReadServer()
|
||||
{
|
||||
while (isThreadRun)
|
||||
{
|
||||
Thread.Sleep(timeSleep);
|
||||
|
||||
try
|
||||
{
|
||||
//OperateResult<short> read = siemensTcpNet.ReadInt16( textBox12.Text );
|
||||
//OperateResult<short> read = siemensTcpNet.ReadByte(textBox12.Text);
|
||||
//if (read.IsSuccess)
|
||||
//{
|
||||
// // 显示曲线
|
||||
// if (isThreadRun) Invoke(new Action<short>(AddDataCurve), read.Content);
|
||||
//}
|
||||
OperateResult<byte> read = siemensTcpNet.ReadByte(textBox12.Text);
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
// 显示曲线
|
||||
if (isThreadRun) Invoke(new Action<short>(AddDataCurve), read.Content);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
rleMessage.Text = ("读取失败:" + ex.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AddDataCurve(short data)
|
||||
{
|
||||
userCurve1.AddCurveData("A", data);
|
||||
}
|
||||
|
||||
#endregion 定时器读取测试
|
||||
|
||||
#region 测试功能代码
|
||||
|
||||
private void Test1()
|
||||
{
|
||||
OperateResult<bool> read = siemensTcpNet.ReadBool("M100.4");
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
bool m100_4 = read.Content;
|
||||
}
|
||||
else
|
||||
{
|
||||
// failed
|
||||
string err = read.Message;
|
||||
}
|
||||
|
||||
OperateResult write = siemensTcpNet.Write("M100.4", true);
|
||||
if (write.IsSuccess)
|
||||
{
|
||||
// success
|
||||
}
|
||||
else
|
||||
{
|
||||
// failed
|
||||
string err = write.Message;
|
||||
}
|
||||
}
|
||||
|
||||
private void Test2()
|
||||
{
|
||||
byte m100_byte = siemensTcpNet.ReadByte("M100").Content;
|
||||
short m100_short = siemensTcpNet.ReadInt16("M100").Content;
|
||||
ushort m100_ushort = siemensTcpNet.ReadUInt16("M100").Content;
|
||||
int m100_int = siemensTcpNet.ReadInt32("M100").Content;
|
||||
uint m100_uint = siemensTcpNet.ReadUInt32("M100").Content;
|
||||
float m100_float = siemensTcpNet.ReadFloat("M100").Content;
|
||||
double m100_double = siemensTcpNet.ReadDouble("M100").Content;
|
||||
string m100_string = siemensTcpNet.ReadString("M100", 10).Content;
|
||||
|
||||
HslCommunication.Core.IByteTransform ByteTransform = new HslCommunication.Core.ReverseBytesTransform();
|
||||
}
|
||||
|
||||
private void Test3()
|
||||
{
|
||||
// 读取操作,这里的M100可以替换成I100,Q100,DB20.100效果时一样的
|
||||
bool M100_7 = siemensTcpNet.ReadBool("M100.7").Content; // 读取M100.7是否通断,注意M100.0等同于M100
|
||||
byte byte_M100 = siemensTcpNet.ReadByte("M100").Content; // 读取M100的值
|
||||
short short_M100 = siemensTcpNet.ReadInt16("M100").Content; // 读取M100-M101组成的字
|
||||
ushort ushort_M100 = siemensTcpNet.ReadUInt16("M100").Content; // 读取M100-M101组成的无符号的值
|
||||
int int_M100 = siemensTcpNet.ReadInt32("M100").Content; // 读取M100-M103组成的有符号的数据
|
||||
uint uint_M100 = siemensTcpNet.ReadUInt32("M100").Content; // 读取M100-M103组成的无符号的值
|
||||
float float_M100 = siemensTcpNet.ReadFloat("M100").Content; // 读取M100-M103组成的单精度值
|
||||
long long_M100 = siemensTcpNet.ReadInt64("M100").Content; // 读取M100-M107组成的大数据值
|
||||
ulong ulong_M100 = siemensTcpNet.ReadUInt64("M100").Content; // 读取M100-M107组成的无符号大数据
|
||||
double double_M100 = siemensTcpNet.ReadDouble("M100").Content; // 读取M100-M107组成的双精度值
|
||||
string str_M100 = siemensTcpNet.ReadString("M100", 10).Content;// 读取M100-M109组成的ASCII字符串数据
|
||||
|
||||
// 写入操作,这里的M100可以替换成I100,Q100,DB20.100效果时一样的
|
||||
siemensTcpNet.Write("M100.7", true); // 写位,注意M100.0等同于M100
|
||||
siemensTcpNet.Write("M100", (byte)0x33); // 写单个字节
|
||||
siemensTcpNet.Write("M100", (short)12345); // 写双字节有符号
|
||||
siemensTcpNet.Write("M100", (ushort)45678); // 写双字节无符号
|
||||
siemensTcpNet.Write("M100", 123456789); // 写双字有符号
|
||||
siemensTcpNet.Write("M100", (uint)3456789123); // 写双字无符号
|
||||
siemensTcpNet.Write("M100", 123.456f); // 写单精度
|
||||
siemensTcpNet.Write("M100", 1234556434534545L); // 写大整数有符号
|
||||
siemensTcpNet.Write("M100", 523434234234343UL); // 写大整数无符号
|
||||
siemensTcpNet.Write("M100", 123.456d); // 写双精度
|
||||
siemensTcpNet.Write("M100", "K123456789");// 写ASCII字符串
|
||||
|
||||
OperateResult<byte[]> read = siemensTcpNet.Read("M100", 10);
|
||||
{
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
byte m100 = read.Content[0];
|
||||
byte m101 = read.Content[1];
|
||||
byte m102 = read.Content[2];
|
||||
byte m103 = read.Content[3];
|
||||
byte m104 = read.Content[4];
|
||||
byte m105 = read.Content[5];
|
||||
byte m106 = read.Content[6];
|
||||
byte m107 = read.Content[7];
|
||||
byte m108 = read.Content[8];
|
||||
byte m109 = read.Content[9];
|
||||
}
|
||||
else
|
||||
{
|
||||
// 发生了异常
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion 测试功能代码
|
||||
|
||||
private void userCurve1_Load(object sender, EventArgs e)
|
||||
{
|
||||
}
|
||||
|
||||
private void btnMouseHover(object sender, EventArgs e)
|
||||
{
|
||||
this.BeginInvoke((EventHandler)delegate
|
||||
{
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(14, 72, 87);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(14, 72, 87);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(14, 72, 87);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(14, 72, 87);
|
||||
});
|
||||
}
|
||||
|
||||
private void btnMouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
this.BeginInvoke((EventHandler)delegate
|
||||
{
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(16, 116, 139);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(16, 116, 139);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(16, 116, 139);
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(((Telerik.WinControls.UI.RadButton)sender).GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(16, 116, 139);
|
||||
});
|
||||
}
|
||||
|
||||
private void rbtnWriteAddr3_Click(object sender, EventArgs e)
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(rddlAddr3.Text, byte.Parse(rtbValue3.Text)), rddlAddr3.Text);
|
||||
}
|
||||
|
||||
private void rbtnWriteAddr2_Click(object sender, EventArgs e)
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(rtbAddr2.Text, byte.Parse(rtbValue2.Text)), rtbAddr2.Text);
|
||||
}
|
||||
|
||||
private void rlabClear_Click(object sender, EventArgs e)
|
||||
{
|
||||
textBox4.Clear();
|
||||
}
|
||||
|
||||
private void btnWriteAddr1Value_Click(object sender, EventArgs e)
|
||||
{
|
||||
writeResultRender(siemensTcpNet.Write(rtbAddr1.Text, byte.Parse(rtbValue1.Text)), rtbAddr1.Text);
|
||||
}
|
||||
}
|
||||
}
|
||||
+1966
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,231 @@
|
||||
<?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>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z
|
||||
uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y
|
||||
u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY
|
||||
urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA
|
||||
AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ
|
||||
pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4
|
||||
ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/
|
||||
dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7
|
||||
bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy
|
||||
Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW
|
||||
CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC
|
||||
df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW
|
||||
CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL
|
||||
jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp
|
||||
OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL
|
||||
jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC
|
||||
df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC
|
||||
dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC
|
||||
dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA
|
||||
AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om
|
||||
Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA
|
||||
AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B
|
||||
fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW
|
||||
CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY
|
||||
uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW
|
||||
CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY
|
||||
uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865
|
||||
YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb
|
||||
Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC
|
||||
df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch
|
||||
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
|
||||
f//wAH///AB///+Af///wH///+B////4f/8=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,558 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Threading;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Drawing;
|
||||
using System.Collections;
|
||||
using HslCommunication.Profinet;
|
||||
using HslCommunication;
|
||||
using HslCommunication.ModBus;
|
||||
|
||||
namespace PLCModule
|
||||
{
|
||||
public class HslModbusTcpObj
|
||||
{
|
||||
public static ModbusTcpNet busTcpClient = null;
|
||||
public static bool bConnected = false;
|
||||
|
||||
public static UInt32 TCP_ReConnect = 0; //断开后重连的次数。
|
||||
static byte[] MB_ReadData = new byte[200]; //读取的字节数据
|
||||
/// <summary>
|
||||
/// 获取PLC读取数据
|
||||
/// </summary>
|
||||
public static byte[] ReadDataBytes
|
||||
{
|
||||
get
|
||||
{
|
||||
return MB_ReadData;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool GetConnectStatus()
|
||||
{
|
||||
if (busTcpClient != null && bConnected == true)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
public static string strWriteResult = "";
|
||||
public static string strReadResult = "";
|
||||
|
||||
//==============================================================================
|
||||
#region ModbusTCP连接和关闭操作
|
||||
public static bool ConnectPlc(string IP, ushort uintPort, string strMac, bool bShowTip = true)
|
||||
{
|
||||
busTcpClient?.ConnectClose();
|
||||
//busTcpClient = new ModbusTcpNet(IP, uintPort, 0x01);
|
||||
busTcpClient = new ModbusTcpNet(IP, uintPort, Convert.ToByte(strMac));
|
||||
|
||||
//以下三个参数需要根据实际情况设置
|
||||
//--------------------------------------------------------------------------------------------------//
|
||||
busTcpClient.AddressStartWithZero = true; //寄存器首地址从0开始
|
||||
ModbusTcpClientDataFormat(0); // 设置数据服务
|
||||
busTcpClient.IsStringReverse = false; //字符串反转
|
||||
//--------------------------------------------------------------------------------------------------//
|
||||
|
||||
try
|
||||
{
|
||||
OperateResult connect = busTcpClient.ConnectServer();
|
||||
if (connect.IsSuccess)
|
||||
{
|
||||
bConnected = true;
|
||||
//MessageBox.Show("连接成功!");
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
bConnected = false;
|
||||
//MessageBox.Show("连接失败!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (bShowTip)
|
||||
MessageBox.Show(ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static void ClosePlc()
|
||||
{
|
||||
try
|
||||
{
|
||||
// 断开连接
|
||||
busTcpClient?.ConnectClose();
|
||||
bConnected = false;
|
||||
Console.WriteLine("关闭PLC连接(Modbus TCP)");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
private static void ModbusTcpClientDataFormat(int iDataFormat)
|
||||
{
|
||||
if (busTcpClient != null)
|
||||
{
|
||||
switch (iDataFormat)
|
||||
{
|
||||
case 0: busTcpClient.DataFormat = HslCommunication.Core.DataFormat.ABCD; break;
|
||||
case 1: busTcpClient.DataFormat = HslCommunication.Core.DataFormat.BADC; break;
|
||||
case 2: busTcpClient.DataFormat = HslCommunication.Core.DataFormat.CDAB; break;
|
||||
case 3: busTcpClient.DataFormat = HslCommunication.Core.DataFormat.DCBA; break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 统一的读取结果的数据解析,显示
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="result"></param>
|
||||
/// <param name="address"></param>
|
||||
private static bool readResultRender<T>(OperateResult<T> result, string address)
|
||||
{
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
//MyBase.TraceWriteLine(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] {result.Content}{Environment.NewLine}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 读取失败{Environment.NewLine}原因:{result.ToMessageShowString()}");
|
||||
//MessageBox.Show(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 读取失败{Environment.NewLine}原因:{result.ToMessageShowString()}");
|
||||
}
|
||||
return result.IsSuccess;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 统一的数据写入的结果显示
|
||||
/// </summary>
|
||||
/// <param name="result"></param>
|
||||
/// <param name="address"></param>
|
||||
private static bool writeResultRender(OperateResult result, string address)
|
||||
{
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
//MyBase.TraceWriteLine(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 写入成功");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 写入失败{Environment.NewLine}原因:{result.ToMessageShowString()}");
|
||||
}
|
||||
return result.IsSuccess;
|
||||
}
|
||||
//==============================================================================
|
||||
|
||||
|
||||
//===============================================================================================
|
||||
#region Modbus/Tcp读写函数定义
|
||||
|
||||
#region 单数据读取
|
||||
public static bool ReadBool(string startAddress)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 读取bool变量
|
||||
return readResultRender(busTcpClient.ReadCoil(startAddress), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ReadShort(string startAddress)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 读取short变量
|
||||
return readResultRender(busTcpClient.ReadInt16(startAddress), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ReadUshort(string startAddress)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 读取ushort变量
|
||||
return readResultRender(busTcpClient.ReadUInt16(startAddress), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ReadInt(string startAddress)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 读取int变量
|
||||
return readResultRender(busTcpClient.ReadInt32(startAddress), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ReadUint(string startAddress)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 读取uint变量
|
||||
return readResultRender(busTcpClient.ReadUInt32(startAddress), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ReadLong(string startAddress)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 读取long变量
|
||||
return readResultRender(busTcpClient.ReadInt64(startAddress), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ReadUlong(string startAddress)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 读取ulong变量
|
||||
return readResultRender(busTcpClient.ReadUInt64(startAddress), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ReadFloat(string startAddress)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 读取float变量
|
||||
return readResultRender(busTcpClient.ReadFloat(startAddress), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ReadDouble(string startAddress)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 读取double变量
|
||||
return readResultRender(busTcpClient.ReadDouble(startAddress), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ReadString(string startAddress, ushort length)
|
||||
{
|
||||
try
|
||||
{
|
||||
// 读取字符串
|
||||
return readResultRender(busTcpClient.ReadString(startAddress, length), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 批量读取
|
||||
public static bool ReadDatas(string startAddress, ushort length)
|
||||
{
|
||||
try
|
||||
{
|
||||
OperateResult<byte[]> read = busTcpClient.Read(startAddress, length);
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
Buffer.BlockCopy(read.Content, 0, MB_ReadData, 0, read.Content.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("批量读取失败");
|
||||
Console.WriteLine("错误码:" + read.ErrorCode.ToString() + ", 错误信息:" + read.Message);
|
||||
}
|
||||
return read.IsSuccess;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show("批量读取失败:" + ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ReadDatas(string startAddress, ushort length, ref Byte[] plcDatas)
|
||||
{
|
||||
try
|
||||
{
|
||||
OperateResult<byte[]> read = busTcpClient.Read(startAddress, length);
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
Buffer.BlockCopy(read.Content, 0, MB_ReadData, 0, read.Content.Length);
|
||||
plcDatas = new byte[read.Content.Length];
|
||||
Buffer.BlockCopy(read.Content, 0, plcDatas, 0, read.Content.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("批量读取失败");
|
||||
Console.WriteLine("错误码:" + read.ErrorCode.ToString() + ", 错误信息:" + read.Message);
|
||||
//MessageBox.Show("读取失败:" + read.ToMessageShowString());
|
||||
}
|
||||
return read.IsSuccess;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show("批量读取失败:" + ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public static bool ReadDatasAlone(string startAddress, ushort length, ref Byte[] plcDatas)
|
||||
{
|
||||
try
|
||||
{
|
||||
OperateResult<byte[]> read = busTcpClient.Read(startAddress, length);
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
plcDatas = new byte[read.Content.Length];
|
||||
Buffer.BlockCopy(read.Content, 0, plcDatas, 0, read.Content.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("批量读取PLC与机械手交互信息失败");
|
||||
Console.WriteLine("错误码:" + read.ErrorCode.ToString() + ", 错误信息:" + read.Message);
|
||||
}
|
||||
return read.IsSuccess;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 单数据写入
|
||||
public static bool WriteBool(string startAddress, bool value)
|
||||
{
|
||||
// bool写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(busTcpClient.WriteCoil(startAddress, value), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteShort(string startAddress, short value)
|
||||
{
|
||||
// short写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(busTcpClient.Write(startAddress, value), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteUshort(string startAddress, ushort value)
|
||||
{
|
||||
// ushort写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(busTcpClient.Write(startAddress, value), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static bool WriteInt(string startAddress, int value)
|
||||
{
|
||||
// int写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(busTcpClient.Write(startAddress, value), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteUint(string startAddress, uint value)
|
||||
{
|
||||
// uint写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(busTcpClient.Write(startAddress, value), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteLong(string startAddress, long value)
|
||||
{
|
||||
// long写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(busTcpClient.Write(startAddress, value), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteUlong(string startAddress, ulong value)
|
||||
{
|
||||
// ulong写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(busTcpClient.Write(startAddress, value), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteFloat(string startAddress, float value)
|
||||
{
|
||||
// float写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(busTcpClient.Write(startAddress, value), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteDouble(string startAddress, double value)
|
||||
{
|
||||
// double写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(busTcpClient.Write(startAddress, value), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteString(string startAddress, string value)
|
||||
{
|
||||
// string写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(busTcpClient.Write(startAddress, value), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public static bool WriteString(string startAddress, string value, int length)
|
||||
{
|
||||
// string写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(busTcpClient.Write(startAddress, value, length), startAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,413 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using HslCommunication.Profinet;
|
||||
using System.Threading;
|
||||
using HslCommunication.Profinet.Siemens;
|
||||
using HslCommunication;
|
||||
|
||||
namespace PLCModule
|
||||
{
|
||||
public class HslSiemensS7Obj
|
||||
{
|
||||
public static SiemensS7Net siemensTcpNet = null;
|
||||
public static bool bConnected = false;
|
||||
public static UInt32 S7_ReConnect = 0; //断开后重连的次数。
|
||||
public static byte[] S7_ReadData; //读取的字节数据
|
||||
/// <summary>
|
||||
/// 获取PLC读取数据
|
||||
/// </summary>
|
||||
public static byte[] ReadDataBytes
|
||||
{
|
||||
get
|
||||
{
|
||||
return S7_ReadData;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool GetConnectStatus()
|
||||
{
|
||||
if (siemensTcpNet != null && bConnected == true)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
#region Siemens S7 连接断开操作
|
||||
public static bool ConnectPlc(SiemensPLCS siemensPLCS, string IP, bool bShowTip = true)
|
||||
{
|
||||
siemensTcpNet?.ConnectClose();
|
||||
siemensTcpNet = new SiemensS7Net(siemensPLCS);
|
||||
siemensTcpNet.IpAddress = IP;
|
||||
|
||||
try
|
||||
{
|
||||
OperateResult connect = siemensTcpNet.ConnectServer();
|
||||
if (connect.IsSuccess)
|
||||
{
|
||||
//MessageBox.Show("连接成功!");
|
||||
bConnected = true;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
//MessageBox.Show("连接失败!");
|
||||
bConnected = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (bShowTip)
|
||||
MessageBox.Show(ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static void ClosePlc()
|
||||
{
|
||||
try
|
||||
{
|
||||
// 断开连接
|
||||
siemensTcpNet.ConnectClose();
|
||||
bConnected = false;
|
||||
Console.WriteLine("关闭PLC连接(Siemens S7)");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// 统一的读取结果的数据解析,显示
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="result"></param>
|
||||
/// <param name="address"></param>
|
||||
private static bool readResultRender<T>(OperateResult<T> result, string address, out T Readresult)
|
||||
{
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
Readresult = result.Content;
|
||||
//MyBase.TraceWriteLine(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] {result.Content}{Environment.NewLine}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Readresult = default(T);
|
||||
Console.WriteLine(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 读取失败{Environment.NewLine}原因:{result.ToMessageShowString()}");
|
||||
//MessageBox.Show(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 读取失败{Environment.NewLine}原因:{result.ToMessageShowString()}");
|
||||
}
|
||||
return result.IsSuccess;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 统一的数据写入的结果显示
|
||||
/// </summary>
|
||||
/// <param name="result"></param>
|
||||
/// <param name="address"></param>
|
||||
private static bool writeResultRender(OperateResult result, string address)
|
||||
{
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
//MyBase.TraceWriteLine(DateTime.Now.ToString("[HH:mm:ss] ") + $"[{address}] 写入成功");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine($"[{address}] 写入失败{Environment.NewLine}原因:{result.ToMessageShowString()}", Color.Red);
|
||||
}
|
||||
return result.IsSuccess;
|
||||
}
|
||||
#region Siemens S7 读写函数定义
|
||||
|
||||
#region 单数据读取测试
|
||||
|
||||
public static bool ReadBool(string startAddress, out bool boolResult)
|
||||
{
|
||||
// 读取bool变量
|
||||
return readResultRender(siemensTcpNet.ReadBool(startAddress), startAddress, out boolResult);
|
||||
}
|
||||
|
||||
public static bool ReadByte(string startAddress, out byte byteResult)
|
||||
{
|
||||
// 读取byte变量
|
||||
return readResultRender(siemensTcpNet.ReadByte(startAddress), startAddress, out byteResult);
|
||||
}
|
||||
public static bool ReadShort(string startAddress, out short shortResult)
|
||||
{
|
||||
// 读取short变量
|
||||
return readResultRender(siemensTcpNet.ReadInt16(startAddress), startAddress, out shortResult);
|
||||
}
|
||||
|
||||
public static bool ReadUshort(string startAddress, out ushort shortResult)
|
||||
{
|
||||
// 读取ushort变量
|
||||
return readResultRender(siemensTcpNet.ReadUInt16(startAddress), startAddress, out shortResult);
|
||||
}
|
||||
|
||||
//private void button_read_int_Click(object sender, EventArgs e)
|
||||
//{
|
||||
// // 读取int变量
|
||||
// readResultRender(siemensTcpNet.ReadInt32(textBox3.Text), textBox3.Text, textBox4);
|
||||
//}
|
||||
//private void button_read_uint_Click(object sender, EventArgs e)
|
||||
//{
|
||||
// // 读取uint变量
|
||||
// readResultRender(siemensTcpNet.ReadUInt32(textBox3.Text), textBox3.Text, textBox4);
|
||||
//}
|
||||
//private void button_read_long_Click(object sender, EventArgs e)
|
||||
//{
|
||||
// // 读取long变量
|
||||
// readResultRender(siemensTcpNet.ReadInt64(textBox3.Text), textBox3.Text, textBox4);
|
||||
//}
|
||||
|
||||
//private void button_read_ulong_Click(object sender, EventArgs e)
|
||||
//{
|
||||
// // 读取ulong变量
|
||||
// readResultRender(siemensTcpNet.ReadUInt64(textBox3.Text), textBox3.Text, textBox4);
|
||||
//}
|
||||
|
||||
public static bool ReadFloat(string startAddress, out float floatResult)
|
||||
{
|
||||
// 读取float变量
|
||||
return readResultRender(siemensTcpNet.ReadFloat(startAddress), startAddress, out floatResult);
|
||||
}
|
||||
|
||||
//private void button_read_double_Click(object sender, EventArgs e)
|
||||
//{
|
||||
// // 读取double变量
|
||||
// readResultRender(siemensTcpNet.ReadDouble(textBox3.Text), textBox3.Text, textBox4);
|
||||
//}
|
||||
|
||||
public static bool ReadString(string startAddress, ushort length, out string strResult)
|
||||
{
|
||||
// 读取字符串
|
||||
return readResultRender(siemensTcpNet.ReadString(startAddress, length), startAddress, out strResult);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region 批量读取测试
|
||||
public static bool ReadDatas(string startAddress, ushort length)
|
||||
{
|
||||
try
|
||||
{
|
||||
OperateResult<byte[]> read = siemensTcpNet.Read(startAddress, length);
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
Buffer.BlockCopy(read.Content, 0, S7_ReadData, 0, read.Content.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("批量读取失败", Color.Red);
|
||||
Console.WriteLine("错误码:" + read.ErrorCode.ToString() + ", 错误信息:" + read.Message, Color.Red);
|
||||
}
|
||||
return read.IsSuccess;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show("读取失败:" + ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public static bool ReadDatas(string startAddress, ushort length, ref byte[] plcDatas)
|
||||
{
|
||||
try
|
||||
{
|
||||
OperateResult<byte[]> read = siemensTcpNet.Read(startAddress, length);
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
S7_ReadData = new byte[read.Content.Length];
|
||||
Buffer.BlockCopy(read.Content, 0, S7_ReadData, 0, read.Content.Length);
|
||||
plcDatas = new byte[read.Content.Length];
|
||||
Buffer.BlockCopy(read.Content, 0, plcDatas, 0, read.Content.Length);
|
||||
//textBox10.Text = "结果:" + HslCommunication.BasicFramework.SoftBasic.ByteToHexString(read.Content);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("批量读取失败");
|
||||
Console.WriteLine("错误码:" + read.ErrorCode.ToString() + ", 错误信息:" + read.Message);
|
||||
}
|
||||
return read.IsSuccess;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show("读取失败:" + ex.Message);
|
||||
Console.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ReadDatasAlone(string startAddress, ushort length, ref byte[] plcDatas)
|
||||
{
|
||||
try
|
||||
{
|
||||
OperateResult<byte[]> read = siemensTcpNet.Read(startAddress, length);
|
||||
if (read.IsSuccess)
|
||||
{
|
||||
plcDatas = new byte[read.Content.Length];
|
||||
Buffer.BlockCopy(read.Content, 0, plcDatas, 0, read.Content.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("批量读取失败" );
|
||||
Console.WriteLine("错误码:" + read.ErrorCode.ToString() + ", 错误信息:" + read.Message);
|
||||
}
|
||||
return read.IsSuccess;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine("读取失败:" + ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 单数据写入测试
|
||||
|
||||
|
||||
public static bool WriteBool(string strAddress, bool bData)
|
||||
{
|
||||
// bool写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(siemensTcpNet.Write(strAddress, bData), strAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteByte(string strAddress, byte byteData)
|
||||
{
|
||||
// byte写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(siemensTcpNet.Write(strAddress, byteData), strAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//MessageBox.Show(ex.Message);
|
||||
Console.WriteLine(ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteShort(string strAddress, short shortData)
|
||||
{
|
||||
// short写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(siemensTcpNet.Write(strAddress, shortData), strAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
//MessageBox.Show(ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//private void button21_Click(object sender, EventArgs e)
|
||||
//{
|
||||
// // ushort写入
|
||||
// try
|
||||
// {
|
||||
// writeResultRender(siemensTcpNet.Write(textBox8.Text, ushort.Parse(textBox7.Text)), textBox8.Text);
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// MessageBox.Show(ex.Message);
|
||||
// }
|
||||
//}
|
||||
|
||||
public static bool WriteInt32(string strAddress, Int32 intData)
|
||||
{
|
||||
// int写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(siemensTcpNet.Write(strAddress, intData), strAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
//MessageBox.Show(ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteFloat(string strAddress, float fData)
|
||||
{
|
||||
// float写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(siemensTcpNet.Write(strAddress, fData), strAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
//MessageBox.Show(ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteDouble(string strAddress, double dData)
|
||||
{
|
||||
// double写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(siemensTcpNet.Write(strAddress, dData), strAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
//MessageBox.Show(ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteString(string strAddress, string strData)
|
||||
{
|
||||
// string写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(siemensTcpNet.Write(strAddress, strData), strAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static bool WriteString(string strAddress, string strData, int length)
|
||||
{
|
||||
// string写入
|
||||
try
|
||||
{
|
||||
return writeResultRender(siemensTcpNet.Write(strAddress, strData, length), strAddress);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine(ex.Message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,766 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using System.IO;
|
||||
using PLCBaseFunction;
|
||||
using Telerik.WinControls.UI;
|
||||
|
||||
namespace PLCModule
|
||||
{
|
||||
public partial class PlcAddrSetup : Telerik.WinControls.UI.ShapedForm
|
||||
{
|
||||
//=========================================//ModbusTCP/FinsTCP
|
||||
public static int StartAddr = 100;
|
||||
public static int Length = 100;
|
||||
public static int RobotStartAddr1 = 200;
|
||||
public static int RobotStartAddr2 = 300;
|
||||
public static int RobotLen = 100;
|
||||
public int PlcType=1;
|
||||
public static string strConfigFile = "";
|
||||
|
||||
//=========================================//S7协议
|
||||
public static string S7DataBlock = "DB4100";
|
||||
public static string S7ReadOffsetAddr = "200";
|
||||
public static int S7ReadByteCount = 200;
|
||||
|
||||
public static string S7RobotStartAddr = "DB4200.0";
|
||||
public static int S7RobotByteLen = 400;
|
||||
|
||||
public static string S7ReadStartAddr
|
||||
{
|
||||
get
|
||||
{
|
||||
return S7DataBlock + "." + S7ReadOffsetAddr;
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetS7WriteAddr(string strAddr)
|
||||
{
|
||||
return PlcAddrSetup.S7DataBlock + "." + strAddr;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="iPLCType">1:Modebus;3:S7</param>
|
||||
/// <param name="strConfigFilePath">配置文件路径</param>
|
||||
public PlcAddrSetup(int iPLCType,string strConfigFilePath)
|
||||
{
|
||||
InitializeComponent();
|
||||
PlcType = iPLCType;
|
||||
strConfigFile = strConfigFilePath;
|
||||
LoadXmlSettings();
|
||||
LoadConfig();
|
||||
DisplayStartAddressLength();
|
||||
}
|
||||
|
||||
private void radTitleBar1_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void PlcAddrSetup_Load(object sender, EventArgs e)
|
||||
{
|
||||
radTitleBar1.Text = "";
|
||||
DisplayStartAddressLength();
|
||||
}
|
||||
|
||||
private void PlcAddrSetup_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if (!bClose)
|
||||
{
|
||||
e.Cancel = true;
|
||||
this.Hide();
|
||||
}
|
||||
}
|
||||
|
||||
bool bClose = false;
|
||||
public void ClosePlcAddrForm()
|
||||
{
|
||||
bClose = true;
|
||||
}
|
||||
|
||||
private void btnLoad_Click(object sender, EventArgs e)
|
||||
{
|
||||
LoadConfig();
|
||||
DisplayStartAddressLength();
|
||||
}
|
||||
|
||||
private void btnSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
WriteConfig();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//==============================================================================================================
|
||||
//==============================================================================================================
|
||||
#region 保存加载按钮操作
|
||||
public static void LoadConfig()
|
||||
{
|
||||
StartAddr = FileIni.ReadInt(strConfigFile, "TCP", "PLC_StartAddr", 100);
|
||||
Length = FileIni.ReadInt(strConfigFile, "TCP", "PLC_Length", 100);
|
||||
|
||||
S7DataBlock = FileIni.ReadString(strConfigFile, "TCP", "PLC_S7DataBlock");
|
||||
S7ReadOffsetAddr = FileIni.ReadString(strConfigFile, "TCP", "PLC_S7StartAddr");
|
||||
S7ReadByteCount = FileIni.ReadInt(strConfigFile, "TCP", "PLC_S7ReadByteCount", 200);
|
||||
}
|
||||
|
||||
void DisplayStartAddressLength()
|
||||
{
|
||||
if (PlcType == 1 || PlcType == 2)
|
||||
{
|
||||
radLabel_DB.Visible = false;
|
||||
textBox_DataBlock.Visible = false;
|
||||
|
||||
textBox_StartAddr.Text = StartAddr.ToString();
|
||||
textBox_Length.Text = Length.ToString();
|
||||
labelLength.Text = "读取长度(字)";
|
||||
labelTitle.Text = "PLC信号地址定义";
|
||||
}
|
||||
else if (PlcType == 3)
|
||||
{
|
||||
radLabel_DB.Visible = true;
|
||||
textBox_DataBlock.Visible = true;
|
||||
|
||||
textBox_DataBlock.Text = S7DataBlock;
|
||||
textBox_StartAddr.Text = S7ReadOffsetAddr;
|
||||
textBox_Length.Text = S7ReadByteCount.ToString();
|
||||
labelLength.Text = "读取长度(字节)";
|
||||
labelTitle.Text = "PLC信号地址定义(S7协议)";
|
||||
}
|
||||
}
|
||||
|
||||
void WriteConfig()
|
||||
{
|
||||
if (File.Exists(strConfigFile))
|
||||
{
|
||||
try
|
||||
{
|
||||
if (PlcType == 1 || PlcType == 2)
|
||||
{
|
||||
int StartAddr = Convert.ToInt32(textBox_StartAddr.Text, 10);
|
||||
int Length = Convert.ToInt32(textBox_Length.Text, 10);
|
||||
PlcAddrSetup.StartAddr = StartAddr;
|
||||
PlcAddrSetup.Length = Length;
|
||||
FileIni.WriteString(strConfigFile, "TCP", "PLC_StartAddr", textBox_StartAddr.Text);
|
||||
FileIni.WriteString(strConfigFile, "TCP", "PLC_Length", textBox_Length.Text);
|
||||
}
|
||||
else if (PlcType == 3)
|
||||
{
|
||||
string StartAddr = textBox_StartAddr.Text;
|
||||
int Length = Convert.ToInt32(textBox_Length.Text, 10);
|
||||
PlcAddrSetup.S7DataBlock = textBox_DataBlock.Text;
|
||||
PlcAddrSetup.S7ReadOffsetAddr = StartAddr;
|
||||
PlcAddrSetup.S7ReadByteCount = Length;
|
||||
FileIni.WriteString(strConfigFile, "TCP", "PLC_S7DataBlock", textBox_DataBlock.Text);
|
||||
FileIni.WriteString(strConfigFile, "TCP", "PLC_S7StartAddr", textBox_StartAddr.Text);
|
||||
FileIni.WriteString(strConfigFile, "TCP", "PLC_S7ReadByteCount", textBox_Length.Text);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageBox.Show("起始地址或长度格式错误,必须为数字", "PLC参数保存错误");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary> 检查对象是否唯一,不允许有重复 </summary>
|
||||
bool CheckGridMapData(DataGridView m_dataGridView)
|
||||
{
|
||||
int count = m_dataGridView.Rows.Count - 1;
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
bool bValueNull = false;
|
||||
if (m_dataGridView.Rows[i].Cells[0].Value == null)
|
||||
{
|
||||
bValueNull = true;
|
||||
}
|
||||
else if (string.IsNullOrWhiteSpace(m_dataGridView.Rows[i].Cells[0].Value.ToString()))
|
||||
{
|
||||
bValueNull = true;
|
||||
}
|
||||
if (bValueNull)
|
||||
{
|
||||
m_dataGridView.Rows[i].DefaultCellStyle.BackColor = Color.Red;
|
||||
MessageBox.Show("信号名称不允许为空", "保存失败");
|
||||
return false;
|
||||
}
|
||||
|
||||
bValueNull = FirstCodeIsNum(m_dataGridView.Rows[i].Cells[0].Value.ToString());
|
||||
if (bValueNull)
|
||||
{
|
||||
m_dataGridView.Rows[i].DefaultCellStyle.BackColor = Color.Red;
|
||||
MessageBox.Show("信号名称首字母不能为数字", "保存失败");
|
||||
return false;
|
||||
}
|
||||
if (m_dataGridView.Rows[i].Cells[1].Value != null)
|
||||
{
|
||||
switch (m_dataGridView.Rows[i].Cells[1].Value.ToString())
|
||||
{
|
||||
case SignalTypeDfn.Bool:
|
||||
if (m_dataGridView.Rows[i].Cells[3].Value != null)
|
||||
{
|
||||
string strIndexLength = m_dataGridView.Rows[i].Cells[3].Value.ToString();
|
||||
{
|
||||
if (StringIsNum(strIndexLength))
|
||||
{
|
||||
int IndexLen = Convert.ToInt32(strIndexLength, 10);
|
||||
bool bOk = IndexLen >= 0 || IndexLen < 16;
|
||||
if (!bOk)
|
||||
{
|
||||
m_dataGridView.Rows[i].Cells[3].Style.BackColor = Color.Red;
|
||||
MessageBox.Show(string.Format("第{0}行 位地址设置不正确,必须为0-15之间的数字", (i + 1).ToString()), "保存失败");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SignalTypeDfn.String:
|
||||
if (m_dataGridView.Rows[i].Cells[3].Value != null)
|
||||
{
|
||||
string strIndexLength = m_dataGridView.Rows[i].Cells[3].Value.ToString();
|
||||
{
|
||||
if (StringIsNum(strIndexLength))
|
||||
{
|
||||
int IndexLen = Convert.ToInt32(strIndexLength, 10);
|
||||
bool bOk = IndexLen >= 1;
|
||||
if (!bOk)
|
||||
{
|
||||
m_dataGridView.Rows[i].Cells[3].Style.BackColor = Color.Red;
|
||||
MessageBox.Show(string.Format("第{0}行 长度设置不正确,必须为大于0的数字", (i + 1).ToString()), "保存失败");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show(string.Format("第{0}行 数据类型未选择", (i + 1).ToString()), "保存失败");
|
||||
return false;
|
||||
}
|
||||
if (m_dataGridView.Rows[i].Cells[2].Value == null)
|
||||
{
|
||||
MessageBox.Show(string.Format("第{0}行 地址未设置", (i + 1).ToString()), "保存失败");
|
||||
return false;
|
||||
}
|
||||
//m_dataGridView.Rows[i].DefaultCellStyle.BackColor = Color.White;
|
||||
m_dataGridView.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(27, 60, 68);
|
||||
}
|
||||
|
||||
if (count > 1)
|
||||
{
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
string strScan1 = m_dataGridView.Rows[i].Cells[0].Value.ToString();
|
||||
for (int j = i + 1; j < count; j++)
|
||||
{
|
||||
string strScan2 = m_dataGridView.Rows[j].Cells[0].Value.ToString();
|
||||
if (strScan1 == strScan2)
|
||||
{
|
||||
m_dataGridView.Rows[i].DefaultCellStyle.BackColor = Color.Red;
|
||||
m_dataGridView.Rows[j].DefaultCellStyle.BackColor = Color.Red;
|
||||
MessageBox.Show("存在两个相同的信号名(" + (i + 1).ToString() + " & " + (j + 1).ToString() + "),请删除其中一个", "保存失败");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//m_dataGridView.Rows[i].DefaultCellStyle.BackColor = Color.White;
|
||||
m_dataGridView.Rows[i].DefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(27, 60, 68); ;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool FirstCodeIsNum(string strInput)
|
||||
{
|
||||
if (strInput.Length > 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
byte temp = Convert.ToByte(strInput[0].ToString(), 10);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool StringIsNum(string strInput)
|
||||
{
|
||||
if (strInput.Length > 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
byte temp = Convert.ToByte(strInput, 10);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void GetSignalListObj(Dictionary<string, string[]> m_DictPlcAddr, DataGridView m_dataGridView)
|
||||
{
|
||||
m_DictPlcAddr.Clear();
|
||||
for (int i = 0; i < m_dataGridView.RowCount - 1; i++)
|
||||
{
|
||||
if (m_dataGridView.Rows[i].Cells[0].Value != null)
|
||||
{
|
||||
string SignalName = m_dataGridView.Rows[i].Cells[0].Value.ToString();
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(SignalName) && !m_DictPlcAddr.ContainsKey(SignalName))
|
||||
{
|
||||
string Type = m_dataGridView.Rows[i].Cells[1].Value != null ? m_dataGridView.Rows[i].Cells[1].Value.ToString() : "";
|
||||
string StartAddr = m_dataGridView.Rows[i].Cells[2].Value != null ? m_dataGridView.Rows[i].Cells[2].Value.ToString() : "";
|
||||
string IndexOrLength = m_dataGridView.Rows[i].Cells[3].Value != null ? m_dataGridView.Rows[i].Cells[3].Value.ToString() : "";
|
||||
string strRemark = m_dataGridView.Rows[i].Cells[4].Value != null ? m_dataGridView.Rows[i].Cells[4].Value.ToString() : "";
|
||||
string[] strs = new string[] { Type, StartAddr, IndexOrLength, strRemark };
|
||||
m_DictPlcAddr.Add(SignalName, strs);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateSignalListGrid(Dictionary<string, string[]> m_DictPlcAddr, DataGridView m_dataGridView)
|
||||
{
|
||||
try
|
||||
{
|
||||
m_dataGridView.Rows.Clear();
|
||||
Dictionary<string, string[]>.Enumerator en = m_DictPlcAddr.GetEnumerator();
|
||||
for (int i = 0; i < m_DictPlcAddr.Count; i++)
|
||||
{
|
||||
if (en.MoveNext())
|
||||
{
|
||||
string Key = en.Current.Key;
|
||||
string[] Value = en.Current.Value;
|
||||
|
||||
m_dataGridView.Rows.Add(Key, Value[0], Value[1], Value[2], Value[3]);
|
||||
}
|
||||
}
|
||||
for (int i = 0; i < m_dataGridView.RowCount - 1; i++)
|
||||
{
|
||||
m_dataGridView.Rows[i].HeaderCell.Value = (i + 1).ToString();
|
||||
|
||||
if (m_dataGridView.Rows[i].Cells[1].Value != null)
|
||||
{
|
||||
switch (m_dataGridView.Rows[i].Cells[1].Value.ToString())
|
||||
{
|
||||
case SignalTypeDfn.Bool:
|
||||
m_dataGridView.Rows[i].Cells[3].ReadOnly = false;
|
||||
//m_dataGridView.Rows[i].Cells[3].Style.BackColor = Color.LightGreen;
|
||||
Color mBackColor1 = System.Drawing.Color.FromArgb(19,46,53);
|
||||
m_dataGridView.Rows[i].Cells[3].Style.BackColor = mBackColor1;
|
||||
break;
|
||||
case SignalTypeDfn.String:
|
||||
m_dataGridView.Rows[i].Cells[3].ReadOnly = false;
|
||||
//m_dataGridView.Rows[i].Cells[3].Style.BackColor = Color.LightBlue;
|
||||
Color mBackColor2 = System.Drawing.Color.FromArgb(16,116,139);
|
||||
m_dataGridView.Rows[i].Cells[3].Style.BackColor = mBackColor2;
|
||||
break;
|
||||
case SignalTypeDfn.Word:
|
||||
case SignalTypeDfn.Single:
|
||||
default:
|
||||
m_dataGridView.Rows[i].Cells[3].ReadOnly = true;
|
||||
//m_dataGridView.Rows[i].Cells[3].Style.BackColor = Color.White;
|
||||
Color mBackColor3 = System.Drawing.Color.FromArgb(27,60,68);
|
||||
m_dataGridView.Rows[i].Cells[3].Style.BackColor = mBackColor3;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_dataGridView.Rows[i].Cells[3].ReadOnly = true;
|
||||
//m_dataGridView.Rows[i].Cells[3].Style.BackColor = Color.White;
|
||||
Color mBackColor = System.Drawing.Color.FromArgb(27, 60, 68);
|
||||
m_dataGridView.Rows[i].Cells[3].Style.BackColor = mBackColor;
|
||||
}
|
||||
}
|
||||
m_dataGridView.CurrentCell = null;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("更新工件类型提示信息列表出错:" + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
private void dataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
|
||||
{
|
||||
if (e.ColumnIndex == 1)
|
||||
{
|
||||
if (((DataGridView)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
|
||||
{
|
||||
switch (((DataGridView)sender).Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString())
|
||||
{
|
||||
case SignalTypeDfn.Bool:
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].ReadOnly = false;
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].Style.BackColor = Color.LightGreen;
|
||||
break;
|
||||
case SignalTypeDfn.String:
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].ReadOnly = false;
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].Style.BackColor = Color.LightBlue;
|
||||
break;
|
||||
case SignalTypeDfn.Word:
|
||||
case SignalTypeDfn.Single:
|
||||
default:
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].ReadOnly = true;
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].Style.BackColor = Color.White;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].ReadOnly = true;
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].Style.BackColor = Color.White;
|
||||
}
|
||||
}
|
||||
else if (e.ColumnIndex == 3)
|
||||
{
|
||||
if (((DataGridView)sender).Rows[e.RowIndex].Cells[1].Value != null)
|
||||
{
|
||||
switch (((DataGridView)sender).Rows[e.RowIndex].Cells[1].Value.ToString())
|
||||
{
|
||||
case SignalTypeDfn.Bool:
|
||||
if (((DataGridView)sender).Rows[e.RowIndex].Cells[3].Value != null)
|
||||
{
|
||||
string strIndexLength = ((DataGridView)sender).Rows[e.RowIndex].Cells[3].Value.ToString();
|
||||
{
|
||||
if (StringIsNum(strIndexLength))
|
||||
{
|
||||
int IndexLen = Convert.ToInt32(strIndexLength, 10);
|
||||
bool bOk = IndexLen >= 0 || IndexLen < 16;
|
||||
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].Style.BackColor = bOk ? Color.LightGreen : Color.Red;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SignalTypeDfn.String:
|
||||
if (((DataGridView)sender).Rows[e.RowIndex].Cells[3].Value != null)
|
||||
{
|
||||
string strIndexLength = ((DataGridView)sender).Rows[e.RowIndex].Cells[3].Value.ToString();
|
||||
{
|
||||
if (StringIsNum(strIndexLength))
|
||||
{
|
||||
int IndexLen = Convert.ToInt32(strIndexLength, 10);
|
||||
bool bOk = IndexLen >= 1;
|
||||
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].Style.BackColor = bOk ? Color.LightBlue : Color.Red;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SignalTypeDfn.Word:
|
||||
case SignalTypeDfn.Single:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].ReadOnly = true;
|
||||
((DataGridView)sender).Rows[e.RowIndex].Cells[3].Style.BackColor = Color.White;
|
||||
}
|
||||
}
|
||||
((DataGridView)sender).Rows[e.RowIndex].HeaderCell.Value = (e.RowIndex + 1).ToString();
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
//==============================================================================================================
|
||||
//==============================================================================================================
|
||||
#region 保存加载xml文件操作
|
||||
public string xmlFilePath = Application.StartupPath+"\\File\\PlcAddrDfn.xml";
|
||||
public Dictionary<string, string[]> DictPlcAddr_Write = new Dictionary<string, string[]>();
|
||||
public Dictionary<string, string[]> DictPlcAddr_Read = new Dictionary<string, string[]>();
|
||||
|
||||
void LoadXmlSettings(bool bShowTip = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (PlcType == 3)
|
||||
xmlFilePath = Application.StartupPath + "\\File\\PlcAddrDfn_S7.xml";
|
||||
|
||||
if (!File.Exists(xmlFilePath))
|
||||
{
|
||||
MessageBox.Show("PLC信号地址定义配置文件不存在" + xmlFilePath + " ! " );
|
||||
return;
|
||||
}
|
||||
XmlDocument m_XmlDoc = new XmlDocument();
|
||||
m_XmlDoc.Load(xmlFilePath);
|
||||
XmlNode m_RootNode = m_XmlDoc.SelectSingleNode("Config");
|
||||
LoadWriteSignalConfigXml(m_RootNode);
|
||||
LoadReadSignalConfigXml(m_RootNode);
|
||||
UpdateSignalListGrid(DictPlcAddr_Write, dataGridView_Write);
|
||||
UpdateSignalListGrid(DictPlcAddr_Read, dataGridView_Read);
|
||||
if (bShowTip)
|
||||
MessageBox.Show("加载信号地址定义列表成功!");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("加载信号地址定义列表失败:" + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
void SaveXmlSettings()
|
||||
{
|
||||
try
|
||||
{
|
||||
GetSignalListObj(DictPlcAddr_Write, dataGridView_Write);
|
||||
GetSignalListObj(DictPlcAddr_Read, dataGridView_Read);
|
||||
XmlDocument m_XmlDoc = new XmlDocument();
|
||||
XmlDeclaration dec = m_XmlDoc.CreateXmlDeclaration("1.0", "utf-8", "yes");
|
||||
m_XmlDoc.AppendChild(dec);
|
||||
XmlElement m_RootElement = m_XmlDoc.CreateElement("Config");
|
||||
m_XmlDoc.AppendChild(m_RootElement);
|
||||
|
||||
m_RootElement.AppendChild(GetWriteSignalConfigXml(m_XmlDoc));
|
||||
m_RootElement.AppendChild(GetReadSignalConfigXml(m_XmlDoc));
|
||||
m_XmlDoc.Save(xmlFilePath);
|
||||
|
||||
MessageBox.Show("保存列表数据成功!");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show("保存Qdas设置失败:" + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
//======================================================================//加载配置,解读xml节点
|
||||
void LoadWriteSignalConfigXml(XmlNode m_RootNode)
|
||||
{
|
||||
XmlNode m_Node = m_RootNode.SelectSingleNode("SignalList_Write");
|
||||
if (m_Node == null)
|
||||
return;
|
||||
DictPlcAddr_Write.Clear();
|
||||
|
||||
foreach (XmlNode ItemNode in m_Node)
|
||||
{
|
||||
string Key = ItemNode.Name;
|
||||
string[] Value = new string[4];
|
||||
foreach (XmlAttribute attri in ItemNode.Attributes)
|
||||
{
|
||||
switch (attri.Name)
|
||||
{
|
||||
case "Type": Value[0] = attri.Value; break;
|
||||
case "StartAddr": Value[1] = attri.Value; break;
|
||||
case "IndexOrLength": Value[2] = attri.Value; break;
|
||||
case "Remark": Value[3] = attri.Value; break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
DictPlcAddr_Write.Add(Key, Value);
|
||||
}
|
||||
}
|
||||
|
||||
void LoadReadSignalConfigXml(XmlNode m_RootNode)
|
||||
{
|
||||
XmlNode m_Node = m_RootNode.SelectSingleNode("SignalList_Read");
|
||||
if (m_Node == null)
|
||||
return;
|
||||
DictPlcAddr_Read.Clear();
|
||||
|
||||
foreach (XmlNode ItemNode in m_Node)
|
||||
{
|
||||
string Key = ItemNode.Name;
|
||||
string[] Value = new string[4];
|
||||
foreach (XmlAttribute attri in ItemNode.Attributes)
|
||||
{
|
||||
switch (attri.Name)
|
||||
{
|
||||
case "Type": Value[0] = attri.Value; break;
|
||||
case "StartAddr": Value[1] = attri.Value; break;
|
||||
case "IndexOrLength": Value[2] = attri.Value; break;
|
||||
case "Remark": Value[3] = attri.Value; break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
DictPlcAddr_Read.Add(Key, Value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//======================================================================//保存配置,获取xml节点
|
||||
XmlElement GetWriteSignalConfigXml(XmlDocument m_XmlDoc)
|
||||
{
|
||||
XmlElement m_Element = m_XmlDoc.CreateElement("SignalList_Write");
|
||||
Dictionary<string, string[]>.Enumerator en = DictPlcAddr_Write.GetEnumerator();
|
||||
for (int i = 0; i < DictPlcAddr_Write.Count; i++)
|
||||
{
|
||||
if (en.MoveNext())
|
||||
{
|
||||
string Key = en.Current.Key;
|
||||
string[] Value = en.Current.Value;
|
||||
|
||||
XmlElement m_Part = m_XmlDoc.CreateElement(Key);
|
||||
{
|
||||
m_Part.SetAttribute("Type", Value[0]);
|
||||
m_Part.SetAttribute("StartAddr", Value[1]);
|
||||
m_Part.SetAttribute("IndexOrLength", Value[2]);
|
||||
m_Part.SetAttribute("Remark", Value[3]);
|
||||
}
|
||||
m_Element.AppendChild(m_Part);
|
||||
}
|
||||
}
|
||||
return m_Element;
|
||||
}
|
||||
|
||||
XmlElement GetReadSignalConfigXml(XmlDocument m_XmlDoc)
|
||||
{
|
||||
XmlElement m_Element = m_XmlDoc.CreateElement("SignalList_Read");
|
||||
Dictionary<string, string[]>.Enumerator en = DictPlcAddr_Read.GetEnumerator();
|
||||
for (int i = 0; i < DictPlcAddr_Read.Count; i++)
|
||||
{
|
||||
if (en.MoveNext())
|
||||
{
|
||||
string Key = en.Current.Key;
|
||||
string[] Value = en.Current.Value;
|
||||
|
||||
XmlElement m_Part = m_XmlDoc.CreateElement(Key);
|
||||
{
|
||||
m_Part.SetAttribute("Type", Value[0]);
|
||||
m_Part.SetAttribute("StartAddr", Value[1]);
|
||||
m_Part.SetAttribute("IndexOrLength", Value[2]);
|
||||
m_Part.SetAttribute("Remark", Value[3]);
|
||||
}
|
||||
m_Element.AppendChild(m_Part);
|
||||
}
|
||||
}
|
||||
return m_Element;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
//==============================================================================================================
|
||||
//==============================================================================================================
|
||||
#region 外部操作指令
|
||||
int GetIntFromString(string strInput)
|
||||
{
|
||||
if (strInput.Length > 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
int temp = Convert.ToInt32(strInput, 10);
|
||||
return temp;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int GetAddr_W(string strName)
|
||||
{
|
||||
if (DictPlcAddr_Write.ContainsKey(strName))
|
||||
{
|
||||
string[] Value = DictPlcAddr_Write[strName];
|
||||
int Result= GetIntFromString(Value[2]);
|
||||
if (Result == -1)
|
||||
Console.WriteLine("获取PLC写地址出错:名字=" + strName + ", 地址=" + Value[2]);
|
||||
}
|
||||
Console.WriteLine("获取PLC写地址:变量名不存在:" + strName);
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int GetIndexLength_W(string strName)
|
||||
{
|
||||
if (DictPlcAddr_Write.ContainsKey(strName))
|
||||
{
|
||||
string[] Value = DictPlcAddr_Write[strName];
|
||||
int Result = GetIntFromString(Value[3]);
|
||||
if (Result == -1)
|
||||
Console.WriteLine("获取PLC写地址Index或长度出错:名字=" + strName + ", 地址=" + Value[3]);
|
||||
}
|
||||
Console.WriteLine("获取PLC写地址:变量名不存在:" + strName);
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int GetAddr_R(string strName)
|
||||
{
|
||||
if (DictPlcAddr_Read.ContainsKey(strName))
|
||||
{
|
||||
string[] Value = DictPlcAddr_Read[strName];
|
||||
int Result = GetIntFromString(Value[2]);
|
||||
if (Result == -1)
|
||||
Console.WriteLine("获取PLC读地址出错:名字=" + strName + ", 地址=" + Value[2]);
|
||||
}
|
||||
Console.WriteLine("获取PLC读地址:变量名不存在:" + strName);
|
||||
return -1;
|
||||
}
|
||||
|
||||
public int GetIndexLength_R(string strName)
|
||||
{
|
||||
if (DictPlcAddr_Read.ContainsKey(strName))
|
||||
{
|
||||
string[] Value = DictPlcAddr_Read[strName];
|
||||
int Result = GetIntFromString(Value[3]);
|
||||
if (Result == -1)
|
||||
Console.WriteLine("获取PLC读地址Index或长度出错:名字=" + strName + ", 地址=" + Value[3]);
|
||||
}
|
||||
Console.WriteLine("获取PLC读地址:变量名不存在:" + strName);
|
||||
return -1;
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
private void btnMouseHover(object sender, EventArgs e)
|
||||
{
|
||||
RadButton btn = sender as RadButton;
|
||||
btn.BackColor = Color.FromArgb(0, 151, 186);
|
||||
}
|
||||
|
||||
private void btnMouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
RadButton btn = sender as RadButton;
|
||||
btn.BackColor = Color.FromArgb(19, 46, 53);
|
||||
}
|
||||
|
||||
private void rbtnLoadList_Click(object sender, EventArgs e)
|
||||
{
|
||||
LoadConfig();
|
||||
DisplayStartAddressLength();
|
||||
LoadXmlSettings(true);
|
||||
}
|
||||
|
||||
private void rbtnSaveList_Click(object sender, EventArgs e)
|
||||
{
|
||||
WriteConfig();
|
||||
if (!CheckGridMapData(dataGridView_Write) || !CheckGridMapData(dataGridView_Read))
|
||||
return;
|
||||
SaveXmlSettings();
|
||||
}
|
||||
}//类结束
|
||||
|
||||
class SignalTypeDfn
|
||||
{
|
||||
public const string Bool = "bool";
|
||||
public const string Byte = "byte";
|
||||
public const string Word = "word";
|
||||
public const string DWord = "dword";
|
||||
public const string Single = "single";
|
||||
public const string String = "string";
|
||||
}
|
||||
}
|
||||
+681
@@ -0,0 +1,681 @@
|
||||
namespace PLCModule
|
||||
{
|
||||
partial class PlcAddrSetup
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PlcAddrSetup));
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
this.splitContainer_Set = new System.Windows.Forms.SplitContainer();
|
||||
this.rbtnSaveList = new Telerik.WinControls.UI.RadButton();
|
||||
this.rbtnLoadList = new Telerik.WinControls.UI.RadButton();
|
||||
this.textBox_DataBlock = new Telerik.WinControls.UI.RadTextBox();
|
||||
this.radLabel_DB = new Telerik.WinControls.UI.RadLabel();
|
||||
this.textBox_Length = new Telerik.WinControls.UI.RadTextBox();
|
||||
this.labelLength = new Telerik.WinControls.UI.RadLabel();
|
||||
this.textBox_StartAddr = new Telerik.WinControls.UI.RadTextBox();
|
||||
this.labelStartAddr = new Telerik.WinControls.UI.RadLabel();
|
||||
this.splitContainer_Set2 = new System.Windows.Forms.SplitContainer();
|
||||
this.radLabel1 = new Telerik.WinControls.UI.RadLabel();
|
||||
this.dataGridView_Write = new System.Windows.Forms.DataGridView();
|
||||
this.ColWrite_SingalName = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ColWrite_Type = new System.Windows.Forms.DataGridViewComboBoxColumn();
|
||||
this.ColWrite_StartAddr = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ColWrite_IndexOrLength = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ColWrite_Remark = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.radLabel2 = new Telerik.WinControls.UI.RadLabel();
|
||||
this.dataGridView_Read = new System.Windows.Forms.DataGridView();
|
||||
this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.labelTitle = new Telerik.WinControls.UI.RadLabel();
|
||||
this.object_609b4da7_378b_4cab_9163_677bdf0f149f = new Telerik.WinControls.RootRadElement();
|
||||
this.ColRead_SingalName = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ColRead_Type = new System.Windows.Forms.DataGridViewComboBoxColumn();
|
||||
this.ColRead_StartAddr = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ColRead_IndexOrLength = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.ColRead_Remark = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer_Set)).BeginInit();
|
||||
this.splitContainer_Set.Panel1.SuspendLayout();
|
||||
this.splitContainer_Set.Panel2.SuspendLayout();
|
||||
this.splitContainer_Set.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.rbtnSaveList)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.rbtnLoadList)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textBox_DataBlock)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.radLabel_DB)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textBox_Length)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.labelLength)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textBox_StartAddr)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.labelStartAddr)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer_Set2)).BeginInit();
|
||||
this.splitContainer_Set2.Panel1.SuspendLayout();
|
||||
this.splitContainer_Set2.Panel2.SuspendLayout();
|
||||
this.splitContainer_Set2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.radLabel1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView_Write)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.radLabel2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView_Read)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit();
|
||||
this.radTitleBar1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.labelTitle)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// splitContainer_Set
|
||||
//
|
||||
this.splitContainer_Set.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.splitContainer_Set.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer_Set.Location = new System.Drawing.Point(9, 49);
|
||||
this.splitContainer_Set.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.splitContainer_Set.Name = "splitContainer_Set";
|
||||
//
|
||||
// splitContainer_Set.Panel1
|
||||
//
|
||||
this.splitContainer_Set.Panel1.Controls.Add(this.rbtnSaveList);
|
||||
this.splitContainer_Set.Panel1.Controls.Add(this.rbtnLoadList);
|
||||
this.splitContainer_Set.Panel1.Controls.Add(this.textBox_DataBlock);
|
||||
this.splitContainer_Set.Panel1.Controls.Add(this.radLabel_DB);
|
||||
this.splitContainer_Set.Panel1.Controls.Add(this.textBox_Length);
|
||||
this.splitContainer_Set.Panel1.Controls.Add(this.labelLength);
|
||||
this.splitContainer_Set.Panel1.Controls.Add(this.textBox_StartAddr);
|
||||
this.splitContainer_Set.Panel1.Controls.Add(this.labelStartAddr);
|
||||
//
|
||||
// splitContainer_Set.Panel2
|
||||
//
|
||||
this.splitContainer_Set.Panel2.Controls.Add(this.splitContainer_Set2);
|
||||
this.splitContainer_Set.Size = new System.Drawing.Size(1466, 741);
|
||||
this.splitContainer_Set.SplitterDistance = 153;
|
||||
this.splitContainer_Set.TabIndex = 4;
|
||||
//
|
||||
// rbtnSaveList
|
||||
//
|
||||
this.rbtnSaveList.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
|
||||
this.rbtnSaveList.Font = new System.Drawing.Font("Segoe UI", 12F);
|
||||
this.rbtnSaveList.ForeColor = System.Drawing.Color.White;
|
||||
this.rbtnSaveList.Location = new System.Drawing.Point(19, 234);
|
||||
this.rbtnSaveList.Name = "rbtnSaveList";
|
||||
this.rbtnSaveList.Size = new System.Drawing.Size(112, 46);
|
||||
this.rbtnSaveList.TabIndex = 60;
|
||||
this.rbtnSaveList.Text = "保存列表";
|
||||
this.rbtnSaveList.Click += new System.EventHandler(this.rbtnSaveList_Click);
|
||||
this.rbtnSaveList.MouseLeave += new System.EventHandler(this.btnMouseLeave);
|
||||
this.rbtnSaveList.MouseHover += new System.EventHandler(this.btnMouseHover);
|
||||
((Telerik.WinControls.UI.RadButtonElement)(this.rbtnSaveList.GetChildAt(0))).Text = "保存列表";
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSaveList.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnSaveList.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186)))));
|
||||
//
|
||||
// rbtnLoadList
|
||||
//
|
||||
this.rbtnLoadList.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
|
||||
this.rbtnLoadList.Font = new System.Drawing.Font("Segoe UI", 12F);
|
||||
this.rbtnLoadList.ForeColor = System.Drawing.Color.White;
|
||||
this.rbtnLoadList.Location = new System.Drawing.Point(18, 318);
|
||||
this.rbtnLoadList.Name = "rbtnLoadList";
|
||||
this.rbtnLoadList.Size = new System.Drawing.Size(112, 46);
|
||||
this.rbtnLoadList.TabIndex = 59;
|
||||
this.rbtnLoadList.Text = "加载列表";
|
||||
this.rbtnLoadList.Click += new System.EventHandler(this.rbtnLoadList_Click);
|
||||
this.rbtnLoadList.MouseLeave += new System.EventHandler(this.btnMouseLeave);
|
||||
this.rbtnLoadList.MouseHover += new System.EventHandler(this.btnMouseHover);
|
||||
((Telerik.WinControls.UI.RadButtonElement)(this.rbtnLoadList.GetChildAt(0))).Text = "加载列表";
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLoadList.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.rbtnLoadList.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186)))));
|
||||
//
|
||||
// textBox_DataBlock
|
||||
//
|
||||
this.textBox_DataBlock.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
this.textBox_DataBlock.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.textBox_DataBlock.ForeColor = System.Drawing.Color.White;
|
||||
this.textBox_DataBlock.Location = new System.Drawing.Point(18, 33);
|
||||
this.textBox_DataBlock.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
|
||||
this.textBox_DataBlock.Name = "textBox_DataBlock";
|
||||
this.textBox_DataBlock.Size = new System.Drawing.Size(112, 27);
|
||||
this.textBox_DataBlock.TabIndex = 58;
|
||||
this.textBox_DataBlock.Text = "100";
|
||||
this.textBox_DataBlock.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
((Telerik.WinControls.UI.RadTextBoxElement)(this.textBox_DataBlock.GetChildAt(0))).Text = "100";
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.textBox_DataBlock.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
//
|
||||
// radLabel_DB
|
||||
//
|
||||
this.radLabel_DB.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.radLabel_DB.ForeColor = System.Drawing.Color.White;
|
||||
this.radLabel_DB.Location = new System.Drawing.Point(34, 8);
|
||||
this.radLabel_DB.Name = "radLabel_DB";
|
||||
this.radLabel_DB.Size = new System.Drawing.Size(81, 25);
|
||||
this.radLabel_DB.TabIndex = 57;
|
||||
this.radLabel_DB.Text = "DB块地址";
|
||||
this.radLabel_DB.TextAlignment = System.Drawing.ContentAlignment.TopLeft;
|
||||
//
|
||||
// textBox_Length
|
||||
//
|
||||
this.textBox_Length.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
this.textBox_Length.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.textBox_Length.ForeColor = System.Drawing.Color.White;
|
||||
this.textBox_Length.Location = new System.Drawing.Point(18, 171);
|
||||
this.textBox_Length.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
|
||||
this.textBox_Length.Name = "textBox_Length";
|
||||
this.textBox_Length.Size = new System.Drawing.Size(112, 27);
|
||||
this.textBox_Length.TabIndex = 54;
|
||||
this.textBox_Length.Text = "100";
|
||||
this.textBox_Length.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
((Telerik.WinControls.UI.RadTextBoxElement)(this.textBox_Length.GetChildAt(0))).Text = "100";
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.textBox_Length.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
//
|
||||
// labelLength
|
||||
//
|
||||
this.labelLength.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelLength.ForeColor = System.Drawing.Color.White;
|
||||
this.labelLength.Location = new System.Drawing.Point(14, 146);
|
||||
this.labelLength.Name = "labelLength";
|
||||
this.labelLength.Size = new System.Drawing.Size(121, 25);
|
||||
this.labelLength.TabIndex = 53;
|
||||
this.labelLength.Text = "读取长度(字节)";
|
||||
this.labelLength.TextAlignment = System.Drawing.ContentAlignment.TopLeft;
|
||||
//
|
||||
// textBox_StartAddr
|
||||
//
|
||||
this.textBox_StartAddr.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
this.textBox_StartAddr.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.textBox_StartAddr.ForeColor = System.Drawing.Color.White;
|
||||
this.textBox_StartAddr.Location = new System.Drawing.Point(18, 100);
|
||||
this.textBox_StartAddr.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
|
||||
this.textBox_StartAddr.Name = "textBox_StartAddr";
|
||||
this.textBox_StartAddr.Size = new System.Drawing.Size(112, 27);
|
||||
this.textBox_StartAddr.TabIndex = 52;
|
||||
this.textBox_StartAddr.Text = "100";
|
||||
this.textBox_StartAddr.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
((Telerik.WinControls.UI.RadTextBoxElement)(this.textBox_StartAddr.GetChildAt(0))).Text = "100";
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.textBox_StartAddr.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
//
|
||||
// labelStartAddr
|
||||
//
|
||||
this.labelStartAddr.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelStartAddr.ForeColor = System.Drawing.Color.White;
|
||||
this.labelStartAddr.Location = new System.Drawing.Point(19, 76);
|
||||
this.labelStartAddr.Name = "labelStartAddr";
|
||||
this.labelStartAddr.Size = new System.Drawing.Size(111, 25);
|
||||
this.labelStartAddr.TabIndex = 51;
|
||||
this.labelStartAddr.Text = "读取起始地址";
|
||||
//
|
||||
// splitContainer_Set2
|
||||
//
|
||||
this.splitContainer_Set2.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.splitContainer_Set2.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer_Set2.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.splitContainer_Set2.Name = "splitContainer_Set2";
|
||||
this.splitContainer_Set2.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer_Set2.Panel1
|
||||
//
|
||||
this.splitContainer_Set2.Panel1.Controls.Add(this.radLabel1);
|
||||
this.splitContainer_Set2.Panel1.Controls.Add(this.dataGridView_Write);
|
||||
//
|
||||
// splitContainer_Set2.Panel2
|
||||
//
|
||||
this.splitContainer_Set2.Panel2.Controls.Add(this.radLabel2);
|
||||
this.splitContainer_Set2.Panel2.Controls.Add(this.dataGridView_Read);
|
||||
this.splitContainer_Set2.Size = new System.Drawing.Size(1306, 737);
|
||||
this.splitContainer_Set2.SplitterDistance = 368;
|
||||
this.splitContainer_Set2.SplitterWidth = 5;
|
||||
this.splitContainer_Set2.TabIndex = 3;
|
||||
//
|
||||
// radLabel1
|
||||
//
|
||||
this.radLabel1.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.radLabel1.ForeColor = System.Drawing.Color.White;
|
||||
this.radLabel1.Location = new System.Drawing.Point(2, 6);
|
||||
this.radLabel1.Name = "radLabel1";
|
||||
this.radLabel1.Size = new System.Drawing.Size(173, 25);
|
||||
this.radLabel1.TabIndex = 58;
|
||||
this.radLabel1.Text = "写入PLC信号地址表:";
|
||||
this.radLabel1.TextAlignment = System.Drawing.ContentAlignment.TopLeft;
|
||||
//
|
||||
// dataGridView_Write
|
||||
//
|
||||
this.dataGridView_Write.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.dataGridView_Write.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
this.dataGridView_Write.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.dataGridView_Write.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
|
||||
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
dataGridViewCellStyle1.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle1.ForeColor = System.Drawing.Color.White;
|
||||
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(16)))), ((int)(((byte)(116)))), ((int)(((byte)(139)))));
|
||||
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dataGridView_Write.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
|
||||
this.dataGridView_Write.ColumnHeadersHeight = 30;
|
||||
this.dataGridView_Write.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.ColWrite_SingalName,
|
||||
this.ColWrite_Type,
|
||||
this.ColWrite_StartAddr,
|
||||
this.ColWrite_IndexOrLength,
|
||||
this.ColWrite_Remark});
|
||||
this.dataGridView_Write.EnableHeadersVisualStyles = false;
|
||||
this.dataGridView_Write.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(81)))), ((int)(((byte)(95)))));
|
||||
this.dataGridView_Write.Location = new System.Drawing.Point(1, 33);
|
||||
this.dataGridView_Write.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.dataGridView_Write.Name = "dataGridView_Write";
|
||||
this.dataGridView_Write.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
|
||||
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
dataGridViewCellStyle6.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle6.ForeColor = System.Drawing.Color.White;
|
||||
dataGridViewCellStyle6.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(16)))), ((int)(((byte)(116)))), ((int)(((byte)(139)))));
|
||||
dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dataGridView_Write.RowHeadersDefaultCellStyle = dataGridViewCellStyle6;
|
||||
this.dataGridView_Write.RowHeadersWidth = 80;
|
||||
dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
dataGridViewCellStyle7.ForeColor = System.Drawing.Color.White;
|
||||
dataGridViewCellStyle7.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(16)))), ((int)(((byte)(116)))), ((int)(((byte)(139)))));
|
||||
this.dataGridView_Write.RowsDefaultCellStyle = dataGridViewCellStyle7;
|
||||
this.dataGridView_Write.RowTemplate.Height = 30;
|
||||
this.dataGridView_Write.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False;
|
||||
this.dataGridView_Write.Size = new System.Drawing.Size(1303, 331);
|
||||
this.dataGridView_Write.TabIndex = 3;
|
||||
this.dataGridView_Write.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView_CellValueChanged);
|
||||
//
|
||||
// ColWrite_SingalName
|
||||
//
|
||||
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
this.ColWrite_SingalName.DefaultCellStyle = dataGridViewCellStyle2;
|
||||
this.ColWrite_SingalName.HeaderText = "信号名称";
|
||||
this.ColWrite_SingalName.MinimumWidth = 80;
|
||||
this.ColWrite_SingalName.Name = "ColWrite_SingalName";
|
||||
this.ColWrite_SingalName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
this.ColWrite_SingalName.Width = 180;
|
||||
//
|
||||
// ColWrite_Type
|
||||
//
|
||||
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
dataGridViewCellStyle3.ForeColor = System.Drawing.Color.White;
|
||||
dataGridViewCellStyle3.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
dataGridViewCellStyle3.SelectionForeColor = System.Drawing.Color.White;
|
||||
this.ColWrite_Type.DefaultCellStyle = dataGridViewCellStyle3;
|
||||
this.ColWrite_Type.DisplayStyleForCurrentCellOnly = true;
|
||||
this.ColWrite_Type.HeaderText = "类型";
|
||||
this.ColWrite_Type.Items.AddRange(new object[] {
|
||||
"bool",
|
||||
"word",
|
||||
"single",
|
||||
"string",
|
||||
"byte",
|
||||
"int16",
|
||||
"int32"});
|
||||
this.ColWrite_Type.Name = "ColWrite_Type";
|
||||
this.ColWrite_Type.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
//
|
||||
// ColWrite_StartAddr
|
||||
//
|
||||
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
this.ColWrite_StartAddr.DefaultCellStyle = dataGridViewCellStyle4;
|
||||
this.ColWrite_StartAddr.HeaderText = "起始地址";
|
||||
this.ColWrite_StartAddr.Name = "ColWrite_StartAddr";
|
||||
this.ColWrite_StartAddr.Width = 120;
|
||||
//
|
||||
// ColWrite_IndexOrLength
|
||||
//
|
||||
dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
this.ColWrite_IndexOrLength.DefaultCellStyle = dataGridViewCellStyle5;
|
||||
this.ColWrite_IndexOrLength.HeaderText = "位/长度";
|
||||
this.ColWrite_IndexOrLength.Name = "ColWrite_IndexOrLength";
|
||||
this.ColWrite_IndexOrLength.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.ColWrite_IndexOrLength.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
this.ColWrite_IndexOrLength.Width = 80;
|
||||
//
|
||||
// ColWrite_Remark
|
||||
//
|
||||
this.ColWrite_Remark.HeaderText = "说明";
|
||||
this.ColWrite_Remark.Name = "ColWrite_Remark";
|
||||
this.ColWrite_Remark.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
this.ColWrite_Remark.Width = 680;
|
||||
//
|
||||
// radLabel2
|
||||
//
|
||||
this.radLabel2.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.radLabel2.ForeColor = System.Drawing.Color.White;
|
||||
this.radLabel2.Location = new System.Drawing.Point(3, 3);
|
||||
this.radLabel2.Name = "radLabel2";
|
||||
this.radLabel2.Size = new System.Drawing.Size(173, 25);
|
||||
this.radLabel2.TabIndex = 58;
|
||||
this.radLabel2.Text = "读取PLC信号地址表:";
|
||||
this.radLabel2.TextAlignment = System.Drawing.ContentAlignment.TopLeft;
|
||||
//
|
||||
// dataGridView_Read
|
||||
//
|
||||
this.dataGridView_Read.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.dataGridView_Read.BackgroundColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
this.dataGridView_Read.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.dataGridView_Read.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
|
||||
dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
dataGridViewCellStyle8.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle8.ForeColor = System.Drawing.Color.White;
|
||||
dataGridViewCellStyle8.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(16)))), ((int)(((byte)(116)))), ((int)(((byte)(139)))));
|
||||
dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dataGridView_Read.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle8;
|
||||
this.dataGridView_Read.ColumnHeadersHeight = 30;
|
||||
this.dataGridView_Read.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.ColRead_SingalName,
|
||||
this.ColRead_Type,
|
||||
this.ColRead_StartAddr,
|
||||
this.ColRead_IndexOrLength,
|
||||
this.ColRead_Remark});
|
||||
this.dataGridView_Read.EnableHeadersVisualStyles = false;
|
||||
this.dataGridView_Read.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(81)))), ((int)(((byte)(95)))));
|
||||
this.dataGridView_Read.Location = new System.Drawing.Point(1, 30);
|
||||
this.dataGridView_Read.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.dataGridView_Read.Name = "dataGridView_Read";
|
||||
this.dataGridView_Read.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
|
||||
dataGridViewCellStyle13.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
dataGridViewCellStyle13.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
dataGridViewCellStyle13.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
dataGridViewCellStyle13.ForeColor = System.Drawing.Color.White;
|
||||
dataGridViewCellStyle13.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(16)))), ((int)(((byte)(116)))), ((int)(((byte)(139)))));
|
||||
dataGridViewCellStyle13.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dataGridView_Read.RowHeadersDefaultCellStyle = dataGridViewCellStyle13;
|
||||
this.dataGridView_Read.RowHeadersWidth = 80;
|
||||
dataGridViewCellStyle14.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
dataGridViewCellStyle14.ForeColor = System.Drawing.Color.White;
|
||||
dataGridViewCellStyle14.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(16)))), ((int)(((byte)(116)))), ((int)(((byte)(139)))));
|
||||
this.dataGridView_Read.RowsDefaultCellStyle = dataGridViewCellStyle14;
|
||||
this.dataGridView_Read.RowTemplate.Height = 30;
|
||||
this.dataGridView_Read.RowTemplate.Resizable = System.Windows.Forms.DataGridViewTriState.False;
|
||||
this.dataGridView_Read.Size = new System.Drawing.Size(1303, 316);
|
||||
this.dataGridView_Read.TabIndex = 2;
|
||||
this.dataGridView_Read.CellValueChanged += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView_CellValueChanged);
|
||||
//
|
||||
// radTitleBar1
|
||||
//
|
||||
this.radTitleBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.radTitleBar1.Controls.Add(this.pictureBox1);
|
||||
this.radTitleBar1.Controls.Add(this.labelTitle);
|
||||
this.radTitleBar1.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.radTitleBar1.ForeColor = System.Drawing.Color.White;
|
||||
this.radTitleBar1.Location = new System.Drawing.Point(-1, -1);
|
||||
this.radTitleBar1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.radTitleBar1.Name = "radTitleBar1";
|
||||
//
|
||||
//
|
||||
//
|
||||
this.radTitleBar1.RootElement.BorderHighlightColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
this.radTitleBar1.Size = new System.Drawing.Size(1486, 43);
|
||||
this.radTitleBar1.TabIndex = 5;
|
||||
this.radTitleBar1.TabStop = false;
|
||||
this.radTitleBar1.Text = "PLC信号地址定义";
|
||||
this.radTitleBar1.Click += new System.EventHandler(this.radTitleBar1_Click);
|
||||
((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).Text = "PLC信号地址定义";
|
||||
((Telerik.WinControls.UI.RadTitleBarElement)(this.radTitleBar1.GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124)))));
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124)))));
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124)))));
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124)))));
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(0))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.None;
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).LeftShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).TopShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).RightShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).BottomShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(1))).SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.Default;
|
||||
((Telerik.WinControls.UI.StackLayoutElement)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.UI.StackLayoutElement)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.UI.StackLayoutElement)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.UI.StackLayoutElement)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.UI.StackLayoutElement)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderInnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.UI.StackLayoutElement)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderInnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.UI.StackLayoutElement)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderInnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.UI.StackLayoutElement)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BorderInnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.UI.StackLayoutElement)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.UI.StackLayoutElement)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.UI.StackLayoutElement)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(1).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(2).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.FillPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(0))).BackColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(1).GetChildAt(3).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(135)))), ((int)(((byte)(161)))));
|
||||
((Telerik.WinControls.Primitives.TitleBarTextPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(2))).LineLimit = false;
|
||||
((Telerik.WinControls.Primitives.TitleBarTextPrimitive)(this.radTitleBar1.GetChildAt(0).GetChildAt(2).GetChildAt(2))).Visibility = Telerik.WinControls.ElementVisibility.Hidden;
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.pictureBox1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124)))));
|
||||
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
|
||||
this.pictureBox1.Location = new System.Drawing.Point(634, 6);
|
||||
this.pictureBox1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(30, 30);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
|
||||
this.pictureBox1.TabIndex = 1;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// labelTitle
|
||||
//
|
||||
this.labelTitle.Anchor = System.Windows.Forms.AnchorStyles.Top;
|
||||
this.labelTitle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124)))));
|
||||
this.labelTitle.Font = new System.Drawing.Font("Segoe UI", 14F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.labelTitle.ForeColor = System.Drawing.Color.White;
|
||||
this.labelTitle.Location = new System.Drawing.Point(670, 7);
|
||||
this.labelTitle.Name = "labelTitle";
|
||||
this.labelTitle.Size = new System.Drawing.Size(163, 29);
|
||||
this.labelTitle.TabIndex = 0;
|
||||
this.labelTitle.Text = "PLC信号地址定义";
|
||||
this.labelTitle.TextAlignment = System.Drawing.ContentAlignment.TopLeft;
|
||||
//
|
||||
// object_609b4da7_378b_4cab_9163_677bdf0f149f
|
||||
//
|
||||
this.object_609b4da7_378b_4cab_9163_677bdf0f149f.Name = "object_609b4da7_378b_4cab_9163_677bdf0f149f";
|
||||
this.object_609b4da7_378b_4cab_9163_677bdf0f149f.StretchHorizontally = true;
|
||||
this.object_609b4da7_378b_4cab_9163_677bdf0f149f.StretchVertically = true;
|
||||
//
|
||||
// ColRead_SingalName
|
||||
//
|
||||
dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
this.ColRead_SingalName.DefaultCellStyle = dataGridViewCellStyle9;
|
||||
this.ColRead_SingalName.HeaderText = "信号名称";
|
||||
this.ColRead_SingalName.MinimumWidth = 80;
|
||||
this.ColRead_SingalName.Name = "ColRead_SingalName";
|
||||
this.ColRead_SingalName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
this.ColRead_SingalName.Width = 170;
|
||||
//
|
||||
// ColRead_Type
|
||||
//
|
||||
dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
dataGridViewCellStyle10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
dataGridViewCellStyle10.ForeColor = System.Drawing.Color.White;
|
||||
dataGridViewCellStyle10.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
|
||||
dataGridViewCellStyle10.SelectionForeColor = System.Drawing.Color.White;
|
||||
this.ColRead_Type.DefaultCellStyle = dataGridViewCellStyle10;
|
||||
this.ColRead_Type.DisplayStyleForCurrentCellOnly = true;
|
||||
this.ColRead_Type.HeaderText = "类型";
|
||||
this.ColRead_Type.Items.AddRange(new object[] {
|
||||
"bool",
|
||||
"word",
|
||||
"dword",
|
||||
"single",
|
||||
"string",
|
||||
"byte",
|
||||
"int16",
|
||||
"int32",
|
||||
"double"});
|
||||
this.ColRead_Type.Name = "ColRead_Type";
|
||||
this.ColRead_Type.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
//
|
||||
// ColRead_StartAddr
|
||||
//
|
||||
dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
this.ColRead_StartAddr.DefaultCellStyle = dataGridViewCellStyle11;
|
||||
this.ColRead_StartAddr.HeaderText = "起始地址";
|
||||
this.ColRead_StartAddr.Name = "ColRead_StartAddr";
|
||||
this.ColRead_StartAddr.Width = 120;
|
||||
//
|
||||
// ColRead_IndexOrLength
|
||||
//
|
||||
dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
||||
this.ColRead_IndexOrLength.DefaultCellStyle = dataGridViewCellStyle12;
|
||||
this.ColRead_IndexOrLength.HeaderText = "位/长度";
|
||||
this.ColRead_IndexOrLength.Name = "ColRead_IndexOrLength";
|
||||
this.ColRead_IndexOrLength.Resizable = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.ColRead_IndexOrLength.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
this.ColRead_IndexOrLength.Width = 80;
|
||||
//
|
||||
// ColRead_Remark
|
||||
//
|
||||
this.ColRead_Remark.HeaderText = "说明";
|
||||
this.ColRead_Remark.Name = "ColRead_Remark";
|
||||
this.ColRead_Remark.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
this.ColRead_Remark.Width = 680;
|
||||
//
|
||||
// PlcAddrSetup
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 21F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
|
||||
this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(81)))), ((int)(((byte)(95)))));
|
||||
this.ClientSize = new System.Drawing.Size(1484, 799);
|
||||
this.Controls.Add(this.radTitleBar1);
|
||||
this.Controls.Add(this.splitContainer_Set);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ForeColor = System.Drawing.Color.White;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 5, 3, 5);
|
||||
this.Name = "PlcAddrSetup";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "PLC信号地址定义";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.PlcAddrSetup_FormClosing);
|
||||
this.Load += new System.EventHandler(this.PlcAddrSetup_Load);
|
||||
this.splitContainer_Set.Panel1.ResumeLayout(false);
|
||||
this.splitContainer_Set.Panel1.PerformLayout();
|
||||
this.splitContainer_Set.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer_Set)).EndInit();
|
||||
this.splitContainer_Set.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.rbtnSaveList)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.rbtnLoadList)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textBox_DataBlock)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.radLabel_DB)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textBox_Length)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.labelLength)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.textBox_StartAddr)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.labelStartAddr)).EndInit();
|
||||
this.splitContainer_Set2.Panel1.ResumeLayout(false);
|
||||
this.splitContainer_Set2.Panel1.PerformLayout();
|
||||
this.splitContainer_Set2.Panel2.ResumeLayout(false);
|
||||
this.splitContainer_Set2.Panel2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer_Set2)).EndInit();
|
||||
this.splitContainer_Set2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.radLabel1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView_Write)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.radLabel2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dataGridView_Read)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit();
|
||||
this.radTitleBar1.ResumeLayout(false);
|
||||
this.radTitleBar1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.labelTitle)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.SplitContainer splitContainer_Set;
|
||||
private Telerik.WinControls.UI.RadTextBox textBox_StartAddr;
|
||||
private Telerik.WinControls.UI.RadLabel labelStartAddr;
|
||||
private System.Windows.Forms.SplitContainer splitContainer_Set2;
|
||||
private System.Windows.Forms.DataGridView dataGridView_Read;
|
||||
private System.Windows.Forms.DataGridView dataGridView_Write;
|
||||
private Telerik.WinControls.UI.RadTextBox textBox_Length;
|
||||
private Telerik.WinControls.UI.RadLabel labelLength;
|
||||
private Telerik.WinControls.UI.RadTitleBar radTitleBar1;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private Telerik.WinControls.UI.RadLabel labelTitle;
|
||||
private Telerik.WinControls.UI.RadTextBox textBox_DataBlock;
|
||||
private Telerik.WinControls.UI.RadLabel radLabel_DB;
|
||||
private Telerik.WinControls.UI.RadLabel radLabel1;
|
||||
private Telerik.WinControls.UI.RadLabel radLabel2;
|
||||
private Telerik.WinControls.RootRadElement object_609b4da7_378b_4cab_9163_677bdf0f149f;
|
||||
private Telerik.WinControls.UI.RadButton rbtnLoadList;
|
||||
private Telerik.WinControls.UI.RadButton rbtnSaveList;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColWrite_SingalName;
|
||||
private System.Windows.Forms.DataGridViewComboBoxColumn ColWrite_Type;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColWrite_StartAddr;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColWrite_IndexOrLength;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColWrite_Remark;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColRead_SingalName;
|
||||
private System.Windows.Forms.DataGridViewComboBoxColumn ColRead_Type;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColRead_StartAddr;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColRead_IndexOrLength;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ColRead_Remark;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,261 @@
|
||||
<?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="ColWrite_SingalName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColWrite_Type.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColWrite_StartAddr.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColWrite_IndexOrLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColWrite_Remark.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColRead_SingalName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColRead_Type.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColRead_StartAddr.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColRead_IndexOrLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="ColRead_Remark.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
</value>
|
||||
</data>
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z
|
||||
uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y
|
||||
u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY
|
||||
urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA
|
||||
AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ
|
||||
pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4
|
||||
ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/
|
||||
dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7
|
||||
bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy
|
||||
Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW
|
||||
CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC
|
||||
df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW
|
||||
CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL
|
||||
jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp
|
||||
OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL
|
||||
jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC
|
||||
df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC
|
||||
dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC
|
||||
dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA
|
||||
AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om
|
||||
Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA
|
||||
AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B
|
||||
fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW
|
||||
CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY
|
||||
uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW
|
||||
CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY
|
||||
uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865
|
||||
YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb
|
||||
Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC
|
||||
df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch
|
||||
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
|
||||
f//wAH///AB///+Af///wH///+B////4f/8=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,20 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace PLCModule
|
||||
{
|
||||
static class Program
|
||||
{
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
//Application.Run(new RadForm1());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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("PLCModule")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("PLCModule")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2022")]
|
||||
[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("b4a80fd5-4f63-40e7-9be3-8c40922b2e0d")]
|
||||
|
||||
// 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("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
@@ -0,0 +1,63 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace PLCModule.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 一个强类型的资源类,用于查找本地化的字符串等。
|
||||
/// </summary>
|
||||
// 此类是由 StronglyTypedResourceBuilder
|
||||
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
||||
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
||||
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.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>
|
||||
/// 返回此类使用的缓存的 ResourceManager 实例。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PLCModule.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重写当前线程的 CurrentUICulture 属性
|
||||
/// 重写当前线程的 CurrentUICulture 属性。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace PLCModule.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
@@ -0,0 +1,9 @@
|
||||
Telerik.WinControls.UI.RadDropDownList, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e
|
||||
Telerik.WinControls.RadThemeManager, Telerik.WinControls, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e
|
||||
Telerik.WinControls.UI.RadTextBox, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e
|
||||
Telerik.WinControls.UI.RadPanel, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e
|
||||
Telerik.WinControls.UI.RadLabel, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e
|
||||
Telerik.WinControls.UI.RadStatusStrip, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e
|
||||
Telerik.WinControls.UI.RadTitleBar, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e
|
||||
Telerik.WinControls.UI.RadGroupBox, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e
|
||||
Telerik.WinControls.UI.RadButton, Telerik.WinControls.UI, Version=2018.3.1016.40, Culture=neutral, PublicKeyToken=5bb2a467cbec794e
|
||||
Binary file not shown.
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.5.2"/>
|
||||
</startup>
|
||||
</configuration>
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5.2", FrameworkDisplayName = ".NET Framework 4.5.2")]
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
a3bcaa28e0a89c37e0cfaf893e46745a00bee9a792ab90125e2b25d164f67304
|
||||
@@ -0,0 +1,20 @@
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\PLCModule.dll.config
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\PLCModule.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\PLCModule.pdb
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\HslCommunication.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\TelerikCommon.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.xml
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.xml
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\2.PLCModule.csproj.AssemblyReference.cache
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormModbus.resources
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormDebugSiemensS7.resources
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.PlcAddrSetup.resources
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.Properties.Resources.resources
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\2.PLCModule.csproj.GenerateResource.cache
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll.licenses
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\2.PLCModule.csproj.CoreCompileInputs.cache
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.pdb
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\2.PLCMod.74282057.Up2Date
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
63991492e601c4145f3f34cf4ebca770038ae1a59793dc4a6713b882acac15c2
|
||||
@@ -0,0 +1,57 @@
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\bin\Debug\PLCModule.dll.config
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\bin\Debug\PLCModule.dll
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\bin\Debug\PLCModule.pdb
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.dll
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.dll
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\bin\Debug\TelerikCommon.dll
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.xml
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.xml
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\obj\x86\Debug\4.PLCModule.csproj.AssemblyReference.cache
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormModbus.resources
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormDebugSiemensS7.resources
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\obj\x86\Debug\PLCModule.PlcAddrSetup.resources
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\obj\x86\Debug\PLCModule.Properties.Resources.resources
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\obj\x86\Debug\4.PLCModule.csproj.GenerateResource.cache
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll.licenses
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\obj\x86\Debug\4.PLCModule.csproj.CoreCompileInputs.cache
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\obj\x86\Debug\4.PLCMod.738FDF59.Up2Date
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll
|
||||
E:\1AHexagonProjects\2024\安徽大众C15-Nextsense\VWAnalysis\PLCModule\PLCModule\obj\x86\Debug\PLCModule.pdb
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\bin\Debug\PLCModule.dll.config
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\bin\Debug\PLCModule.dll
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\bin\Debug\PLCModule.pdb
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.dll
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.dll
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\bin\Debug\TelerikCommon.dll
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.xml
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.xml
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Debug\4.PLCModule.csproj.AssemblyReference.cache
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormModbus.resources
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormDebugSiemensS7.resources
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.PlcAddrSetup.resources
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.Properties.Resources.resources
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Debug\4.PLCModule.csproj.GenerateResource.cache
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll.licenses
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Debug\4.PLCModule.csproj.CoreCompileInputs.cache
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Debug\4.PLCMod.738FDF59.Up2Date
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.pdb
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\bin\Debug\PLCModule.dll.config
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\bin\Debug\PLCModule.dll
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\bin\Debug\PLCModule.pdb
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.dll
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.dll
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\bin\Debug\TelerikCommon.dll
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.xml
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.xml
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\obj\x86\Debug\4.PLCModule.csproj.AssemblyReference.cache
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormModbus.resources
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormDebugSiemensS7.resources
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.PlcAddrSetup.resources
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.Properties.Resources.resources
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\obj\x86\Debug\4.PLCModule.csproj.GenerateResource.cache
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll.licenses
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\obj\x86\Debug\4.PLCModule.csproj.CoreCompileInputs.cache
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\obj\x86\Debug\4.PLCMod.738FDF59.Up2Date
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll
|
||||
D:\HexagonProjects\2024-20-奇瑞间隙面差\奇瑞间隙面差总装代码资料\Code\PLCModule\PLCModule\obj\x86\Debug\PLCModule.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1 @@
|
||||
ec1f3fb59700e251830635ede02807ba6ecc763d7e3af53c672cb52d011b90ea
|
||||
@@ -0,0 +1,39 @@
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\PLCModule.dll.config
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\PLCModule.dll
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\PLCModule.pdb
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\HslCommunication.dll
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.dll
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.dll
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\TelerikCommon.dll
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.xml
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.xml
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormModbus.resources
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormDebugSiemensS7.resources
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.PlcAddrSetup.resources
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.Properties.Resources.resources
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.csproj.GenerateResource.cache
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll.licenses
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.csproj.CoreCompileInputs.cache
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.csproj.CopyComplete
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll
|
||||
E:\AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.pdb
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.csproj.AssemblyReference.cache
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormModbus.resources
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.FormDebugSiemensS7.resources
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.PlcAddrSetup.resources
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.Properties.Resources.resources
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.csproj.GenerateResource.cache
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll.licenses
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.csproj.CoreCompileInputs.cache
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\PLCModule.dll.config
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\PLCModule.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\PLCModule.pdb
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\HslCommunication.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\TelerikCommon.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.xml
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\bin\Debug\Telerik.WinControls.UI.xml
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.csproj.CopyComplete
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.dll
|
||||
E:\1AHexagonProjects\2022\PLCModule\PLCModule\obj\x86\Debug\PLCModule.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,4 @@
|
||||
// <autogenerated />
|
||||
using System;
|
||||
using System.Reflection;
|
||||
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5.2", FrameworkDisplayName = ".NET Framework 4.5.2")]
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
4810a257c64e01028bd7d7ff96fcf5ebe3fda5de18893020320e2a8715d5817b
|
||||
@@ -0,0 +1,8 @@
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Release\4.PLCModule.csproj.AssemblyReference.cache
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Release\PLCModule.FormModbus.resources
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Release\PLCModule.FormDebugSiemensS7.resources
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Release\PLCModule.PlcAddrSetup.resources
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Release\PLCModule.Properties.Resources.resources
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Release\4.PLCModule.csproj.GenerateResource.cache
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Release\PLCModule.dll.licenses
|
||||
E:\1AHexagonProjects\2024\CheryFinalAssemblyLine\Code\PLCModule\PLCModule\obj\x86\Release\4.PLCModule.csproj.CoreCompileInputs.cache
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user