init: 潍柴发动机线 中央控制程序 项目首次入库
324
SCADA/AMS_CentralControl.csproj
Normal file
@@ -0,0 +1,324 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{A8D0B4EF-E223-4B9A-B2D9-0156B7B8B073}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<RootNamespace>CentralControl</RootNamespace>
|
||||
<AssemblyName>AMS_CentralControl</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>..\WC_AssembleControl_Exe\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>任务管理.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="BasicData">
|
||||
<HintPath>..\DLL\BasicData.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="BouncyCastle.Crypto">
|
||||
<HintPath>..\DLL\BouncyCastle.Crypto.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ConLink">
|
||||
<HintPath>..\DLL\ConLink.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DataLinkMesWork">
|
||||
<HintPath>..\DLL\DataLinkMesWork.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="ICSharpCode.SharpZipLib">
|
||||
<HintPath>..\DLL\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MesWork.DeviceDriver">
|
||||
<HintPath>..\DLL\MesWork.DeviceDriver.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MesWork.MQTT">
|
||||
<HintPath>..\DLL\MesWork.MQTT.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MQTTnet">
|
||||
<HintPath>..\DLL\MQTTnet.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MQTTnet.Extensions.ManagedClient">
|
||||
<HintPath>..\DLL\MQTTnet.Extensions.ManagedClient.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json">
|
||||
<HintPath>..\DLL\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NPOI">
|
||||
<HintPath>..\DLL\NPOI.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NPOI.OOXML">
|
||||
<HintPath>..\DLL\NPOI.OOXML.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NPOI.OpenXml4Net">
|
||||
<HintPath>..\DLL\NPOI.OpenXml4Net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NPOI.OpenXmlFormats">
|
||||
<HintPath>..\DLL\NPOI.OpenXmlFormats.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Opc.Ua.Client">
|
||||
<HintPath>..\DLL\Opc.Ua.Client.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Opc.Ua.Configuration">
|
||||
<HintPath>..\DLL\Opc.Ua.Configuration.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Opc.Ua.Core">
|
||||
<HintPath>..\DLL\Opc.Ua.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="OpcUaHelper">
|
||||
<HintPath>..\DLL\OpcUaHelper.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Rhino3dm">
|
||||
<HintPath>..\DLL\Rhino3dm.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\DLL\System.Buffers.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Net.Http.Formatting, Version=5.2.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\DLL\System.Net.Http.Formatting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\DLL\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Runtime.InteropServices.RuntimeInformation" />
|
||||
<Reference Include="System.Web.Cors">
|
||||
<HintPath>..\DLL\System.Web.Cors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Extensions" />
|
||||
<Reference Include="System.Web.Http">
|
||||
<HintPath>..\DLL\System.Web.Http.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http.Cors">
|
||||
<HintPath>..\DLL\System.Web.Http.Cors.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Web.Http.SelfHost">
|
||||
<HintPath>..\DLL\System.Web.Http.SelfHost.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="Ubiety.Dns.Core">
|
||||
<HintPath>..\DLL\Ubiety.Dns.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="WeifenLuo.WinFormsUI.Docking">
|
||||
<HintPath>..\DLL\WeifenLuo.WinFormsUI.Docking.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Cache_Run\MES_QueryCache.cs" />
|
||||
<Compile Include="Core\FuncOperation.cs" />
|
||||
<Compile Include="Core\PLC_W.cs" />
|
||||
<Compile Include="MES_A95\MIS_upload_QC.cs" />
|
||||
<Compile Include="Page_Manager\Manager_Plan\PlanExecute.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Page_Manager\Manager_Plan\PlanExecute.Designer.cs">
|
||||
<DependentUpon>PlanExecute.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Page_Manager\Manager_Station\F_StationManage.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Page_Manager\Manager_Station\F_StationManage.Designer.cs">
|
||||
<DependentUpon>F_StationManage.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Core\PLC_R.cs" />
|
||||
<Compile Include="MainGuide\MW.Register.cs" />
|
||||
<Compile Include="MainGuide\MW.Event.cs" />
|
||||
<Compile Include="MainGuide\MW.PageDelayRefresh.cs" />
|
||||
<Compile Include="MES_A95\MIS_Statement.cs" />
|
||||
<Compile Include="Page_Manager\Manager_Config\ParamConfigPage.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Page_Manager\Manager_Config\ParamConfigPage.Designer.cs">
|
||||
<DependentUpon>ParamConfigPage.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Core\MyPlcData.cs" />
|
||||
<Compile Include="Core\OExcel.cs" />
|
||||
<Compile Include="Core\Tools.cs" />
|
||||
<Compile Include="WebAPI\AnalysisMsg.cs" />
|
||||
<Compile Include="WebAPI\CALL_Interfalce_WebAPI.cs" />
|
||||
<Compile Include="WebAPI\HttpCli.cs" />
|
||||
<Compile Include="WebAPI\InitServer.cs" />
|
||||
<Compile Include="WebAPI\IOrderController.cs" />
|
||||
<Compile Include="WebAPI\PP.cs" />
|
||||
<Compile Include="数据测试\F_TestPage.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="数据测试\F_TestPage.Designer.cs">
|
||||
<DependentUpon>F_TestPage.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Init\Hanger.cs" />
|
||||
<Compile Include="Page_Manager\Manager_Log\LogRecord.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Page_Manager\Manager_Log\LogRecord.Designer.cs">
|
||||
<DependentUpon>LogRecord.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MES_A95\MIS_Device.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="MES_A95\MIS_Save_QC.cs" />
|
||||
<Compile Include="Sql_Biz\MES_ExecuteDB.cs" />
|
||||
<Compile Include="Page_Manager\Manager_Monitor\TagDataEngineStatusShowDialog.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Page_Manager\Manager_Monitor\TagDataEngineStatusShowDialog.Designer.cs">
|
||||
<DependentUpon>TagDataEngineStatusShowDialog.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MainGuide\MW.Lyout.cs" />
|
||||
<Compile Include="MainGuide\MW.OnStart.cs" />
|
||||
<Compile Include="Core\AppConfig.cs" />
|
||||
<Compile Include="MES_A95\MIS_Funtion.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DC_A95_Page.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DC_A95_Page.Designer.cs">
|
||||
<DependentUpon>DC_A95_Page.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Core\TagTypeCodeID.cs" />
|
||||
<Compile Include="Core\SqlOperation.cs" />
|
||||
<Compile Include="Core\From_Opera.cs" />
|
||||
<Compile Include="弹出窗口\D_Station.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="弹出窗口\D_Station.Designer.cs">
|
||||
<DependentUpon>D_Station.cs</DependentUpon>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Page_Manager\Manager_Config\ParamConfigPage.resx">
|
||||
<DependentUpon>ParamConfigPage.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Page_Manager\Manager_Plan\PlanExecute.resx">
|
||||
<DependentUpon>PlanExecute.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Page_Manager\Manager_Station\F_StationManage.resx">
|
||||
<DependentUpon>F_StationManage.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DC_A95_Page.resx">
|
||||
<DependentUpon>DC_A95_Page.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="数据测试\F_TestPage.resx">
|
||||
<DependentUpon>F_TestPage.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Page_Manager\Manager_Log\LogRecord.resx">
|
||||
<DependentUpon>LogRecord.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Page_Manager\Manager_Monitor\TagDataEngineStatusShowDialog.resx">
|
||||
<DependentUpon>TagDataEngineStatusShowDialog.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<Compile Include="Properties\Resources.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="弹出窗口\D_Station.resx">
|
||||
<DependentUpon>D_Station.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="App.config" />
|
||||
<None Include="app.manifest" />
|
||||
<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>
|
||||
<Content Include="任务管理.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WCFMetadata Include="Connected Services\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.6.1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4.6.1 %28x86 和 x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||
<Install>false</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\MW_Log\01_MW_Log.csproj">
|
||||
<Project>{1ac112c4-2400-4d03-a26d-2e3ace6fe6d4}</Project>
|
||||
<Name>01_MW_Log</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\SAP\SYNC_ProductPlan_AMS.csproj">
|
||||
<Project>{5C516CC1-ABD5-4561-84C0-8B19B3DE6FA1}</Project>
|
||||
<Name>SYNC_ProductPlan_AMS</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="S7netplus">
|
||||
<Version>0.20.0</Version>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
32
SCADA/App.config
Normal file
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="NotHandlerSignal" value="0" />
|
||||
<add key="IsDemoMesServer" value="1" />
|
||||
<add key="IsAllowWrite" value="1" />
|
||||
<add key="BasicDataTableFile" value="WC_CONTROL.xlsx" />
|
||||
<!--是启用写监控报错日志-->
|
||||
<add key="IsWriteMonitorLog" value="0" />
|
||||
<add key="IsWriteLog4" value="1" />
|
||||
<!--数据库连接-->
|
||||
<!--<add key="ConnectionString" value="server=.\V2019;database=WC_WP12T_13L;uid=sa;pwd=126.com;Connection Reset=FALSE;Max Pool Size = 1000" />-->
|
||||
<add key="ConnectionString" value="server=.,1333;database=WC_WP12T_13L;uid=sa;pwd=126.com;Connection Reset=FALSE;Max Pool Size = 1000" />
|
||||
|
||||
<!--上线工位名称-->
|
||||
<add key="OPCodes_LineSet" value="OP3020" />
|
||||
<add key="LineID_Product" value="120000001" />
|
||||
|
||||
<!--BOM接口 测试环境-->
|
||||
<add key="WebAPI_Url_Boms" value="http://10.0.11.40:9000/open/listBoms" />
|
||||
<!--BOM接口 正式环境-->
|
||||
<!--<add key="WebAPI_Url_Boms" value="http://mes4api.weichai.com/open/listBoms" />-->
|
||||
|
||||
<add key="WebAPI_Url_Quality" value="http://mes4api.weichai.com/open/saveTwoPlant" />
|
||||
<add key="ProgramPartial" value="2" />
|
||||
<add key="WebSvrPort" value="9981" />
|
||||
|
||||
</appSettings>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
</configuration>
|
||||
134
SCADA/Cache_Run/MES_QueryCache.cs
Normal file
@@ -0,0 +1,134 @@
|
||||
using DC_A95.MES_A95;
|
||||
using NPOI.OpenXmlFormats.Dml;
|
||||
using NPOI.Util;
|
||||
using Opc.Ua;
|
||||
using OpcBasic;
|
||||
using Rhino.DocObjects;
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using SystemFramework;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class MES_QueryCache
|
||||
{
|
||||
/// <summary>
|
||||
/// 根据发动机编号,获取计划信息
|
||||
/// </summary>
|
||||
/// <param name="engineNo"></param>
|
||||
/// <returns></returns>
|
||||
public static void Get_ProductPlan_ByEngineNo(string engineNo, out string engineTypeNo, out string orderNum, out int orderNo, out int orderSum,out int if_codetest,out int if_hottest)
|
||||
{
|
||||
engineTypeNo = "";
|
||||
orderNum = "";
|
||||
orderNo = -1;
|
||||
orderSum = -1;
|
||||
if_codetest=0;
|
||||
if_hottest=0;
|
||||
var sql =
|
||||
$" SELECT" +
|
||||
$" [订单类型],[生产日期],[班次],[上线序号],[上线总排序]" +
|
||||
$" ,[发动机流水号],[机型号],[托盘号],[订单号],[订单序号],[订单数量]" +
|
||||
$" ,[起始流水号],[终止流水号],[创建时间],[执行状态],[状态变更时间],[操作标记],isnull([是否冷试],0) as 是否冷试,isnull([是否热试],0) as 是否热试" +
|
||||
$" FROM [潍柴_接口_生产计划_执行计划]" +
|
||||
$" WHERE [发动机流水号] = '{engineNo}'";
|
||||
SqlOperation.ExecuteSql(sql, out DataTable dt, out string err);
|
||||
if (dt.Rows.Count > 0)
|
||||
{
|
||||
engineTypeNo = dt.Rows[0]["机型号"].ToString();
|
||||
orderNum = dt.Rows[0]["订单号"].ToString();
|
||||
orderNo = int.Parse(dt.Rows[0]["订单序号"].ToString());
|
||||
orderSum = int.Parse(dt.Rows[0]["订单数量"].ToString());
|
||||
if_codetest= int.Parse(dt.Rows[0]["是否冷试"].ToString());
|
||||
if_hottest = int.Parse(dt.Rows[0]["是否热试"].ToString());
|
||||
}
|
||||
if (err.Length > 0)
|
||||
{
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.Alarm, "", $"Get_ProductPlan_ByEngineNo 报错!,,{err}");
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据工位号,获取工序信息
|
||||
/// </summary>
|
||||
/// <param name="stationName"></param>
|
||||
/// <param name="processNum"></param>
|
||||
/// <param name="processName"></param>
|
||||
public static void Get_ProductProcess_ByOP(string opCode, out string processCode, out string processName, out string opName, out string AreaCode)
|
||||
{
|
||||
processCode = "";
|
||||
processName = "";
|
||||
opName = "";
|
||||
AreaCode = "";
|
||||
var sql = $"SELECT [工序号],[工序名称],[工位名称],[区域编码] FROM [MES_计划BOM_工位与名称] WHERE [工位号]='{opCode}'";
|
||||
SqlOperation.ExecuteSql(sql, out DataTable dt, out string err);
|
||||
if (dt.Rows.Count > 0)
|
||||
{
|
||||
processCode = dt.Rows[0]["工序号"].ToString();
|
||||
processName = dt.Rows[0]["工序名称"].ToString();
|
||||
opName = dt.Rows[0]["工位名称"].ToString();
|
||||
AreaCode = dt.Rows[0]["区域编码"].ToString();
|
||||
}
|
||||
if (err.Length > 0)
|
||||
{
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.Alarm, "", $"Get_ProductProcess_ByOP报错!,,{err}");
|
||||
}
|
||||
}
|
||||
//public static DataTable Get_QCData_Configure(string opCode)
|
||||
//{
|
||||
// var sql = $"SELECT [修改时间],[机型号],[工序编号],[工序名称],[工位编号],[工位名称],[数据编码],[组顺序号],[列位置],[变量排序]," +
|
||||
// $"[测量位置],[测量项目],[数据单位],[理论值],[下限值],[上限值],[数据说明]" +
|
||||
// $" FROM [大柴_质量数据_配置信息]" +
|
||||
// $" WHERE 工位编号='{opCode}'";
|
||||
// SqlOperation.ExecuteSql(sql, out DataTable dt, out string err);
|
||||
// return dt;
|
||||
//}
|
||||
public static int Get_EngineTypeID(string EngineType)
|
||||
{
|
||||
var sql = $"SELECT [AID] FROM [配方_大柴_机型] WHERE [机型号]='{EngineType}'";
|
||||
SqlOperation.ExecuteSql(sql, out DataTable dt, out string err);
|
||||
if(dt.Rows.Count>0)return int.Parse(dt.Rows[0][0].ToString());
|
||||
else return 0;
|
||||
}
|
||||
public static void Get_StationInfo(string OPName, out string PLC, out string StartDB)
|
||||
{
|
||||
var rows = MesWorkForm.dt_OPNameInfo.Select($"工位号='{OPName}'");
|
||||
if (rows.Length > 0)
|
||||
{
|
||||
PLC = rows[0]["PLC"].ToString();
|
||||
StartDB = "DB" + rows[0]["工位起始DB号"].ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
PLC = "";
|
||||
StartDB = "";
|
||||
}
|
||||
}
|
||||
public static void Get_OPCode_ByAGVCode(string agvcode, out string OPCode)
|
||||
{
|
||||
string sql = $"SELECT [操作工位] FROM [大柴_上线记录_外装线] WHERE AGV号={agvcode}";
|
||||
SqlOperation.ExecuteSql(sql, out DataTable dt, out string err);
|
||||
if (dt.Rows.Count > 0)
|
||||
{
|
||||
OPCode = dt.Rows[0][0].ToString();
|
||||
}
|
||||
else OPCode = "";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
477
SCADA/Core/AppConfig.cs
Normal file
@@ -0,0 +1,477 @@
|
||||
using DataLinkMesWork;
|
||||
using ExternalDataSync;
|
||||
using NPOI.POIFS.Properties;
|
||||
using OpcBasic;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using SystemFramework;
|
||||
using static System.Configuration.ConfigurationManager;
|
||||
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public partial class Temp {
|
||||
public static MesWorkForm mesWorkForm = null;
|
||||
}
|
||||
/// <summary>
|
||||
/// 配置信息
|
||||
/// </summary>
|
||||
public partial class MesWorkForm
|
||||
{
|
||||
|
||||
public static int workerThreads = 4000;
|
||||
public static int completionPortThreads = 2000;
|
||||
|
||||
public static string NotHandlerSignal = AppSettings["NotHandlerSignal"];
|
||||
public static string BasicDataTableFile = AppSettings["BasicDataTableFile"];
|
||||
public static int IsDemoMesServer = Convert.ToInt32(AppSettings["IsDemoMesServer"]);
|
||||
public static int IsAllowWrite = Convert.ToInt32(AppSettings["IsAllowWrite"]);
|
||||
public static int IsWriteMonitorLog = Convert.ToInt32(AppSettings["IsWriteMonitorLog"]);
|
||||
public static int IsWriteLog4 = Convert.ToInt32(AppSettings["IsWriteLog4"]);
|
||||
|
||||
public static string ConnectionString = AppSettings["ConnectionString"];
|
||||
|
||||
|
||||
public static string LineID_Product = AppSettings["LineID_Product"];
|
||||
//所有上线工位的工位名称
|
||||
public static string OPCodes_LineSet = AppSettings["OPCodes_LineSet"];
|
||||
|
||||
public static string WebAPI_Url_Boms = AppSettings["WebAPI_Url_Boms"];
|
||||
|
||||
public static string WebAPI_Url_Quality = AppSettings["WebAPI_Url_Quality"];
|
||||
public static string ProgramPartial = AppSettings["ProgramPartial"];
|
||||
|
||||
public static int WebSvrPort = Convert.ToInt32(AppSettings["WebSvrPort"]);
|
||||
|
||||
|
||||
public static Color color_Faw = Color.FromArgb(0, 44, 101);//蓝色,大众:0,44,101
|
||||
public static Color color_Good = Color.FromArgb(132, 185, 235);//浅蓝,自定义
|
||||
public static Color color_Wait = Color.FromArgb(240, 230, 140);//淡黄,显示等待状态
|
||||
public static Color color_Bad = SystemColors.ActiveBorder;//灰色,显示操作过程
|
||||
public static Color color_Control = SystemColors.Control;//控件默认颜色
|
||||
public static Color color_Grey = Color.FromArgb(192, 192, 192);//灰色,Table底色
|
||||
|
||||
public static Color color_Green = Color.FromArgb(22, 161, 136);//绿色
|
||||
public static Color color_Yellow = Color.FromArgb(246, 227, 74);//黄色
|
||||
public static Color color_Red = Color.FromArgb(255, 0, 0);//红色
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public static ConcurrentQueue<OpcData.CustomeEvetnArgs> taskSql = new ConcurrentQueue<OpcData.CustomeEvetnArgs>();
|
||||
/// <summary>
|
||||
/// 在线状态
|
||||
/// </summary>
|
||||
public static bool OnLine_Sql = false;
|
||||
/// <summary>
|
||||
/// PMC列表
|
||||
/// </summary>
|
||||
public static DataTable dt_pmc_Simplify = null;
|
||||
/// <summary>
|
||||
/// PLC数据
|
||||
/// </summary>
|
||||
public static DataTable dt_PLC_Data = null;
|
||||
/// <summary>
|
||||
/// PMC列表
|
||||
/// </summary>
|
||||
public static Hashtable ht_PLM_Old = new Hashtable();
|
||||
/// <summary>
|
||||
/// PMC列表
|
||||
/// </summary>
|
||||
public static Hashtable ht_PLM_Curr = new Hashtable();
|
||||
/// <summary>
|
||||
/// ht_OpName_PMCReadTagIDArray
|
||||
/// </summary>
|
||||
public static Hashtable ht_OpName_PMCReadTagIDArray = new Hashtable();
|
||||
/// <summary>
|
||||
/// 工位打开记录
|
||||
/// </summary>
|
||||
public static List<String> list_OpenForm = new List<String>();
|
||||
/// <summary>
|
||||
/// IP和工位号的对应关系
|
||||
/// </summary>
|
||||
public static Dictionary<String, List<String>> G_DC_IP_OP = null;
|
||||
/// <summary>
|
||||
/// 设备的在线状态
|
||||
/// </summary>
|
||||
public static Hashtable ht_IP_OnLine = new Hashtable();
|
||||
/// <summary>
|
||||
/// 任务类型信息
|
||||
/// </summary>
|
||||
public static Hashtable ht_TaskTypeInfo = new Hashtable();
|
||||
/// <summary>
|
||||
/// 工位的自动信号
|
||||
/// </summary>
|
||||
public static Hashtable ht_Signal__Station_Auto = new Hashtable();
|
||||
/// <summary>
|
||||
/// 工位的运行信号
|
||||
/// </summary>
|
||||
public static Hashtable ht_Signal__Station_Running = new Hashtable();
|
||||
/// <summary>
|
||||
/// 工位的手动信号
|
||||
/// </summary>
|
||||
public static Hashtable ht_Signal__Station_Manual = new Hashtable();
|
||||
/// <summary>
|
||||
/// 工位的报警信号
|
||||
/// </summary>
|
||||
public static Hashtable ht_Signal__Station_Alarm = new Hashtable();
|
||||
/// <summary>
|
||||
/// 工位的掉线信号
|
||||
/// </summary>
|
||||
public static Hashtable ht_Signal__Station_OffLine = new Hashtable();
|
||||
/// <summary>
|
||||
/// 主界面显示的当前上线型号
|
||||
/// </summary>
|
||||
public static string RunSort = "6DM-1";
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 允许移动
|
||||
/// </summary>
|
||||
public static bool allowDrag = false;
|
||||
/// <summary>
|
||||
/// 鼠标状态
|
||||
/// </summary>
|
||||
private static bool isMouseDown = false;
|
||||
/// <summary>
|
||||
/// 记录鼠标指针的坐标
|
||||
/// </summary>
|
||||
private static Point mouseOffset;
|
||||
/// <summary>
|
||||
/// 工位内容
|
||||
/// </summary>
|
||||
public static Hashtable ht_Station_Content = null;
|
||||
/// <summary>
|
||||
/// 工位文本描述
|
||||
/// </summary>
|
||||
public static Hashtable ht_Station_Label = null;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Agv的DB地址
|
||||
/// </summary>
|
||||
public static DataTable dt_OPNameInfo = null;
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 监控数据的所有变化,从这里产生
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
public override void OPCTagData_TagDataOnChangeMIS(object sender, OpcData.CustomeEvetnArgs e)
|
||||
{
|
||||
//ThreadPool.QueueUserWorkItem(new WaitCallback(MIS_Funtion), e);
|
||||
//// 设备状态日志
|
||||
//ThreadPool.QueueUserWorkItem(TagTypeCodeID_TagDataOnChange, e);
|
||||
|
||||
MesWorkForm.taskSql.Enqueue(e);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 定时触发,检测PLC在线状态,周期:3 s
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="eState"></param>
|
||||
public override void PlcStateEvent(object sender, OpcData.PlcStateEvetnArgs eState)
|
||||
{
|
||||
ThreadPool.QueueUserWorkItem(new WaitCallback(MIS_Device), eState);
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="t"></param>
|
||||
/// <param name="location"></param>
|
||||
/// <param name="content"></param>
|
||||
public override void E_WriteLog(Enum_LogType t, string location, string content)
|
||||
{
|
||||
if (content .Contains("GetTagIDByTagTypeCodeID(),"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
WriteLog_Info(t.ToString(), $"<[<{location}>]>{content}");
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main()
|
||||
{
|
||||
new System.Threading.Mutex(true, $"WC_MES_{MesWorkForm.ProgramPartial}1", out bool bCanRun);
|
||||
if (!bCanRun)
|
||||
{
|
||||
MessageBox.Show("MES采集系统 已经在运行!不可重复启动!");
|
||||
return;
|
||||
}
|
||||
|
||||
Application.EnableVisualStyles();
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(Temp.mesWorkForm = new MesWorkForm());
|
||||
}
|
||||
/// <summary>
|
||||
/// 读写取方法
|
||||
/// </summary>
|
||||
/// <param name="readWhat"></param>
|
||||
/// <param name="opOrIp"></param>
|
||||
private void DemoRead(string doWhat, string opOrIp)
|
||||
{
|
||||
try
|
||||
{
|
||||
string opName = "OP1010";
|
||||
object tagValue = 1;
|
||||
bool result = false;
|
||||
ConcurrentDictionary<string, object> tagAdrListTagFormat = null;
|
||||
|
||||
switch (doWhat)
|
||||
{
|
||||
case "TagID":
|
||||
tagValue = ReadPLC("71010001");
|
||||
result = WritePLC("71010001", tagValue);
|
||||
break;
|
||||
case "TagTypeCodeID":
|
||||
tagValue = ReadPLC(10, opName);
|
||||
result = WritePLC(10, opName, tagValue);
|
||||
break;
|
||||
//case "Cmd":
|
||||
// tagValue = ReadPLC((int)EnumTagTypeCodeID.EngineID, opName);
|
||||
// result = WritePLC((int)EnumTagTypeCodeID.EngineID, opName, tagValue);
|
||||
// break;
|
||||
case "OpAllTag"://OP所有点
|
||||
tagAdrListTagFormat = ReadPLC_GroupData(opOrIp);
|
||||
break;
|
||||
case "OpMonitorTag"://OP监控点
|
||||
tagAdrListTagFormat = ReadPLC_GroupMonitor(opOrIp);
|
||||
break;
|
||||
case "IpAllTag"://IP所有点
|
||||
tagAdrListTagFormat = ReadPLC_IpTag(opOrIp);
|
||||
break;
|
||||
case "IpMonitorTag"://IP监控点
|
||||
tagAdrListTagFormat = ReadPLC_IpMonitorTag(opOrIp);
|
||||
break;
|
||||
case "RegionRead"://按区域读取(起始地址 + 长度)
|
||||
{
|
||||
string tagStartAdr = "DB411.10";
|
||||
ushort tagAdrListMaxLength = 100;
|
||||
GetDbAndMaxLengthByOpName(opOrIp, out tagStartAdr, out tagAdrListMaxLength);
|
||||
tagAdrListTagFormat = ReadQualityDataList(opOrIp, tagStartAdr, tagAdrListMaxLength);
|
||||
}
|
||||
break;
|
||||
case "ReadBytes"://按区域读取(起始地址 + 长度)
|
||||
{
|
||||
string tagStartAdr = "DB411.10";
|
||||
ushort tagAdrListMaxLength = 100;
|
||||
var bates1 = ReadByteData_Op(opOrIp, tagStartAdr, tagAdrListMaxLength);
|
||||
var bates2 = ReadByteData_Ip(opOrIp, tagStartAdr, tagAdrListMaxLength);
|
||||
}
|
||||
break;
|
||||
case "WriteBytes"://按区域读取(起始地址 + 长度)
|
||||
{
|
||||
string tagStartAdr = "DB411.10";
|
||||
var result1 = WritePLC_Bytes_Op(opOrIp, tagStartAdr, new byte[1024]);
|
||||
var result2 = WritePLC_Bytes_Ip(opOrIp, tagStartAdr, new byte[1024]);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
//ReadByteData_Op(string opName, string startAdrr, ushort length)
|
||||
foreach (System.Collections.Generic.KeyValuePair<string, object> de in tagAdrListTagFormat)//得到工位监控点哈希表
|
||||
{
|
||||
TagFormat TF = (TagFormat)de.Value;
|
||||
string recResult = TF.OpName + " (" + TF.TagTypeCodeID + ")" + TF.TagValue.ToString(); ;
|
||||
}
|
||||
}
|
||||
catch (System.Exception err)
|
||||
{
|
||||
ApplicationLog.WriteLog("listView_ShowQualityData_Init" + err);
|
||||
}
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="args"></param>
|
||||
/// <returns></returns>
|
||||
private string Hello_You_All_Never_Know(string[] args)
|
||||
{
|
||||
return Guid.NewGuid().ToString();
|
||||
}
|
||||
/// <summary>
|
||||
/// 测试按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void Button1_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
var tagTypeCodeIDList = DriverCache[CacheType.Cache_OpTagTypeCodeIDList];
|
||||
}
|
||||
/// <summary>
|
||||
/// 定义列
|
||||
/// </summary>
|
||||
/// <param name="dt_pmc"></param>
|
||||
private void DatatableCol_Simplify(DataTable dt_pmc)
|
||||
{
|
||||
dt_pmc_Simplify = new DataTable();
|
||||
dt_pmc_Simplify.Columns.Add("TagID");
|
||||
dt_pmc_Simplify.Columns.Add("TagName");
|
||||
dt_pmc_Simplify.Columns.Add("TagValue");
|
||||
dt_pmc_Simplify.Columns.Add("工位号");
|
||||
dt_pmc_Simplify.Columns.Add("数据来源");
|
||||
dt_pmc_Simplify.Columns.Add("IP");
|
||||
dt_pmc_Simplify.Columns.Add("TagTypeID");
|
||||
dt_pmc_Simplify.Columns.Add("TagLong");
|
||||
dt_pmc_Simplify.Columns.Add("DbName");
|
||||
dt_pmc_Simplify.Columns.Add("变量类型");
|
||||
dt_pmc_Simplify.Columns.Add("变量地址");
|
||||
dt_pmc_Simplify.Columns.Add("变量其它");
|
||||
dt_pmc_Simplify.Columns.Add("列位置");
|
||||
dt_pmc_Simplify.Columns.Add("变量类型代码");
|
||||
dt_pmc_Simplify.Columns.Add("变量类型名称");
|
||||
dt_pmc_Simplify.Columns.Add("是否启用");
|
||||
dt_pmc_Simplify.Columns.Add("是否监控");
|
||||
|
||||
var dt_pmcT = dt_pmc.Copy();
|
||||
|
||||
for (int i = 0; i < dt_pmcT.Rows.Count; i++)
|
||||
{
|
||||
var TagID = dt_pmcT.Rows[i]["TagID"].ToString();
|
||||
var TagName = dt_pmcT.Rows[i]["TagName"].ToString();
|
||||
var TagValue = "0";
|
||||
var 工位号 = dt_pmcT.Rows[i]["工位号"].ToString();
|
||||
var 数据来源 = dt_pmcT.Rows[i]["数据来源"].ToString();
|
||||
var IP = dt_pmcT.Rows[i]["IP"].ToString();
|
||||
var TagTypeID = dt_pmcT.Rows[i]["TagTypeID"].ToString();
|
||||
var TagLong = dt_pmcT.Rows[i]["TagLong"].ToString();
|
||||
var DbName = dt_pmcT.Rows[i]["DbName"].ToString();
|
||||
var 变量类型 = dt_pmcT.Rows[i]["变量类型"].ToString();
|
||||
var 变量地址 = dt_pmcT.Rows[i]["变量地址"].ToString();
|
||||
var 变量其它 = dt_pmcT.Rows[i]["变量其它"].ToString();
|
||||
var 列位置 = dt_pmcT.Rows[i]["列位置"].ToString();
|
||||
var 变量类型代码 = dt_pmcT.Rows[i]["变量类型代码"].ToString();
|
||||
var 变量类型名称 = dt_pmcT.Rows[i]["变量类型名称"].ToString();
|
||||
var 是否启用 = dt_pmcT.Rows[i]["是否启用"].ToString();
|
||||
var 是否监控 = dt_pmcT.Rows[i]["是否监控"].ToString();
|
||||
|
||||
ht_PLM_Old.Add(TagID, "-101");
|
||||
|
||||
dt_pmc_Simplify.Rows.Add(
|
||||
TagID,
|
||||
TagName,
|
||||
TagValue,
|
||||
工位号 ,
|
||||
数据来源 ,
|
||||
IP ,
|
||||
TagTypeID ,
|
||||
TagLong ,
|
||||
DbName ,
|
||||
变量类型,
|
||||
变量地址 ,
|
||||
变量其它 ,
|
||||
列位置,
|
||||
变量类型代码,
|
||||
变量类型名称,
|
||||
是否启用,
|
||||
是否监控
|
||||
);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 添加到窗体
|
||||
/// </summary>
|
||||
/// <param name="stationName"></param>
|
||||
/// <param name="c"></param>
|
||||
private void SetMember(string stationName, Control c)
|
||||
{
|
||||
panel_Lyout.Controls.Add(c);
|
||||
if (c is Panel)
|
||||
{
|
||||
ht_Station_Content.Add(stationName, c);
|
||||
}
|
||||
if (c is Label)
|
||||
{
|
||||
ht_Station_Label.Add(stationName, c);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 写入信号
|
||||
/// </summary>
|
||||
/// <param name="tagTypeCodeID"></param>
|
||||
/// <param name="ststionName"></param>
|
||||
/// <param name="value"></param>
|
||||
public static void WritePLC_IF(int tagTypeCodeID,string ststionName,object value)
|
||||
{
|
||||
if (IsAllowWrite == 1)
|
||||
{
|
||||
WritePLC(tagTypeCodeID, ststionName, value);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static string CVT_ReadValue(object value)
|
||||
{
|
||||
var result = "";
|
||||
|
||||
if (value == null)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
if (value.ToString ().ToLower () == "true" | value.ToString().ToLower() == "1")
|
||||
{
|
||||
result = "1";
|
||||
}
|
||||
if (value.ToString().ToLower() == "false" | value.ToString().ToLower() == "0")
|
||||
{
|
||||
result = "0";
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 写日志
|
||||
/// 2023.10.30.llx
|
||||
/// </summary>
|
||||
public static void WriteLog_Info(string type, string msg, Exception ex = null)
|
||||
{
|
||||
if (IsWriteLog4 == 1)
|
||||
{
|
||||
MW_Log.LoggerHelper.Info(type, msg, ex);
|
||||
}
|
||||
}
|
||||
|
||||
private void Loop()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
taskSql.TryDequeue(out OpcData.CustomeEvetnArgs e);
|
||||
if (e != null)
|
||||
{
|
||||
MIS_Funtion(e);
|
||||
TagTypeCodeID_TagDataOnChange(e);
|
||||
}
|
||||
if (taskSql.Count < 3)
|
||||
{
|
||||
Thread.Sleep(15);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void UseMisFuntion(Object e)
|
||||
{
|
||||
MIS_Funtion(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
25
SCADA/Core/From_Opera.cs
Normal file
@@ -0,0 +1,25 @@
|
||||
using ExternalDataSync;
|
||||
using MesWork;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public enum From_Opera
|
||||
{
|
||||
/// <summary>
|
||||
/// 增加
|
||||
/// </summary>
|
||||
Insert = 1,
|
||||
/// <summary>
|
||||
/// 修改
|
||||
/// </summary>
|
||||
Update = 2
|
||||
}
|
||||
54
SCADA/Core/FuncOperation.cs
Normal file
@@ -0,0 +1,54 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
/// 功能操作
|
||||
/// </summary>
|
||||
public class FuncOperation
|
||||
{
|
||||
/// <summary>
|
||||
/// 保存布局
|
||||
/// </summary>
|
||||
public static void SaveLyout()
|
||||
{
|
||||
foreach (DictionaryEntry item in MesWorkForm.ht_Station_Content)
|
||||
{
|
||||
var stationName = item.Key.ToString();
|
||||
var control = (Panel)item.Value;
|
||||
var px = control.Location.X;
|
||||
var py = control.Location.Y;
|
||||
ExecuteDB.SaveLyout_P(stationName, px, py);
|
||||
}
|
||||
foreach (DictionaryEntry item in MesWorkForm.ht_Station_Label)
|
||||
{
|
||||
var stationName = item.Key.ToString();
|
||||
var control = (Label)item.Value;
|
||||
var px = control.Location.X;
|
||||
var py = control.Location.Y;
|
||||
ExecuteDB.SaveLyout_PT(stationName, px, py);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
130
SCADA/Core/MyPlcData.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ConverterBytesAndStruct
|
||||
{
|
||||
#region QC_DATA TS
|
||||
/// <summary>
|
||||
/// 质量数据,26个字节
|
||||
/// </summary>
|
||||
public class QC_DATA
|
||||
{
|
||||
/// <summary>
|
||||
/// 工作类型(1=拧紧,2=压装,4=测量,8=试漏)
|
||||
/// </summary>
|
||||
public short Work_Type;
|
||||
/// <summary>
|
||||
/// 工作的程序号
|
||||
/// </summary>
|
||||
public short Progarm_Code;
|
||||
/// <summary>
|
||||
/// 具体的位置号
|
||||
/// </summary>
|
||||
public short Counter_Number;
|
||||
/// <summary>
|
||||
/// 工位被屏蔽
|
||||
/// </summary>
|
||||
public bool Bypass;
|
||||
/// <summary>
|
||||
/// 工位未工作
|
||||
/// </summary>
|
||||
public bool No_op;
|
||||
/// <summary>
|
||||
/// 工位工作完成且合格
|
||||
/// </summary>
|
||||
public bool Accept;
|
||||
/// <summary>
|
||||
/// 工位工作完成但不合格
|
||||
/// </summary>
|
||||
public bool Reject;
|
||||
|
||||
public byte SPARE1;
|
||||
public short SPARE2;
|
||||
/// <summary>
|
||||
/// 质量数据1 (拧紧对应扭矩,压装对应压力,测量对应位移,试漏对应泄露率)
|
||||
/// </summary>
|
||||
public float QC_DATA1;
|
||||
/// <summary>
|
||||
/// 质量数据2 (拧紧对应转角,压装对应位移,测量无,试漏对应压力)
|
||||
/// </summary>
|
||||
public float QC_DATA2;
|
||||
/// <summary>
|
||||
/// 质量数据3
|
||||
/// </summary>
|
||||
public float QC_DATA3;
|
||||
/// <summary>
|
||||
/// 质量数据4
|
||||
/// </summary>
|
||||
public float QC_DATA4;
|
||||
|
||||
}
|
||||
public class QC_DATA_OutSide
|
||||
{
|
||||
/// <summary>
|
||||
/// 工作类型(1=拧紧,2=压装,4=测量,8=试漏)
|
||||
/// </summary>
|
||||
public short Work_Type;
|
||||
/// <summary>
|
||||
/// 工作的程序号
|
||||
/// </summary>
|
||||
public short Progarm_Code;
|
||||
/// <summary>
|
||||
/// 具体的位置号
|
||||
/// </summary>
|
||||
public short Counter_Number;
|
||||
|
||||
public short SPARE1;
|
||||
public short SPARE2;
|
||||
|
||||
/// <summary>
|
||||
/// 质量数据1 (拧紧对应扭矩,压装对应压力,测量对应位移,试漏对应泄露率)
|
||||
/// </summary>
|
||||
public float QC_DATA1;
|
||||
/// <summary>
|
||||
/// 质量数据2 (拧紧对应转角,压装对应位移,测量无,试漏对应压力)
|
||||
/// </summary>
|
||||
public float QC_DATA2;
|
||||
/// <summary>
|
||||
/// 质量数据3
|
||||
/// </summary>
|
||||
public float QC_DATA3;
|
||||
/// <summary>
|
||||
/// 质量数据4
|
||||
/// </summary>
|
||||
public float QC_DATA4;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 时间戳 22
|
||||
/// </summary>
|
||||
public class TS
|
||||
{
|
||||
public byte Max_Len;
|
||||
public byte Act_Len;
|
||||
public char Month_B1;
|
||||
public char Month_B0;
|
||||
public char Slash1;
|
||||
public char Day_B1;
|
||||
public char Day_B0;
|
||||
public char Slash2;
|
||||
public char Fixed_dgt1;
|
||||
public char Fixed_dgt2;
|
||||
public char Year_B1;
|
||||
public char Year_B0;
|
||||
public char Null1;
|
||||
public char Hour_B1;
|
||||
public char Hour_B0;
|
||||
public char Colon1;
|
||||
public char Min_B1;
|
||||
public char Min_B0;
|
||||
public char Colon2;
|
||||
public char Sec_B1;
|
||||
public char Sec_B0;
|
||||
public char Null2;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
517
SCADA/Core/OExcel.cs
Normal file
@@ -0,0 +1,517 @@
|
||||
using NPOI.HPSF;
|
||||
using NPOI.HSSF.UserModel;
|
||||
using NPOI.SS.UserModel;
|
||||
using NPOI.XSSF.UserModel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NPOITest
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Execl工具辅助类
|
||||
/// </summary>
|
||||
public class ExeclHelper
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 读取Execl数据到DataTable中
|
||||
/// </summary>
|
||||
/// <param name="filePath">指定Execl文件路径</param>
|
||||
/// <param name="isColumnName">设置第一行是否是列名</param>
|
||||
/// <returns>返回一个DataTable数据集</returns>
|
||||
public static DataTable ExcelToDataTable(string filePath, string sheetName, bool isColumnName)
|
||||
{
|
||||
DataTable dataTable = null;
|
||||
FileStream fs = null;
|
||||
DataColumn column = null;
|
||||
DataRow dataRow = null;
|
||||
IWorkbook workbook = null;
|
||||
ISheet sheet = null;
|
||||
IRow row = null;
|
||||
ICell cell = null;
|
||||
int startRow = 0;
|
||||
try
|
||||
{
|
||||
using (fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
|
||||
{
|
||||
// 2007版本
|
||||
if (filePath.IndexOf(".xlsx") > 0)
|
||||
workbook = new XSSFWorkbook(fs);
|
||||
// 2003版本
|
||||
else if (filePath.IndexOf(".xls") > 0)
|
||||
workbook = new HSSFWorkbook(fs);
|
||||
if (workbook != null)
|
||||
{
|
||||
sheet = workbook.GetSheet(sheetName);//读取第一个sheet,当然也可以循环读取每个sheet
|
||||
dataTable = new DataTable();
|
||||
if (sheet != null)
|
||||
{
|
||||
int rowCount = sheet.LastRowNum;//总行数
|
||||
if (rowCount > 0)
|
||||
{
|
||||
IRow firstRow = sheet.GetRow(0);//第一行
|
||||
int cellCount = firstRow.LastCellNum;//列数
|
||||
|
||||
//构建datatable的列
|
||||
if (isColumnName)
|
||||
{
|
||||
startRow = 1;//如果第一行是列名,则从第二行开始读取
|
||||
for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
|
||||
{
|
||||
cell = firstRow.GetCell(i);
|
||||
if (cell != null)
|
||||
{
|
||||
if (cell.StringCellValue != null)
|
||||
{
|
||||
column = new DataColumn(cell.StringCellValue);
|
||||
dataTable.Columns.Add(column);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
|
||||
{
|
||||
column = new DataColumn("column" + (i + 1));
|
||||
dataTable.Columns.Add(column);
|
||||
}
|
||||
}
|
||||
|
||||
//填充行
|
||||
for (int i = startRow; i <= rowCount; ++i)
|
||||
{
|
||||
row = sheet.GetRow(i);
|
||||
if (row == null) continue;
|
||||
|
||||
dataRow = dataTable.NewRow();
|
||||
for (int j = row.FirstCellNum; j < cellCount; ++j)
|
||||
{
|
||||
cell = row.GetCell(j);
|
||||
if (cell == null)
|
||||
{
|
||||
dataRow[j] = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
//CellType(Unknown = -1,Numeric = 0,String = 1,Formula = 2,Blank = 3,Boolean = 4,Error = 5,)
|
||||
switch (cell.CellType)
|
||||
{
|
||||
case CellType.Blank:
|
||||
dataRow[j] = "";
|
||||
break;
|
||||
case CellType.Numeric:
|
||||
short format = cell.CellStyle.DataFormat;
|
||||
//对时间格式(2015.12.5、2015/12/5、2015-12-5等)的处理
|
||||
if (format == 14 || format == 31 || format == 57 || format == 58)
|
||||
dataRow[j] = cell.DateCellValue;
|
||||
else
|
||||
dataRow[j] = cell.NumericCellValue;
|
||||
break;
|
||||
case CellType.String:
|
||||
dataRow[j] = cell.StringCellValue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
dataTable.Rows.Add(dataRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return dataTable;
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
if (fs != null)
|
||||
{
|
||||
fs.Close();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public static DataTable ExcelToDataTable(string filePath,int sheetIndex, bool isColumnName)
|
||||
{
|
||||
DataTable dataTable = null;
|
||||
FileStream fs = null;
|
||||
DataColumn column = null;
|
||||
DataRow dataRow = null;
|
||||
IWorkbook workbook = null;
|
||||
ISheet sheet = null;
|
||||
IRow row = null;
|
||||
ICell cell = null;
|
||||
int startRow = 0;
|
||||
try
|
||||
{
|
||||
using (fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
|
||||
{
|
||||
// 2007版本
|
||||
if (filePath.IndexOf(".xlsx") > 0)
|
||||
workbook = new XSSFWorkbook(fs);
|
||||
// 2003版本
|
||||
else if (filePath.IndexOf(".xls") > 0)
|
||||
workbook = new HSSFWorkbook(fs);
|
||||
if (workbook != null)
|
||||
{
|
||||
sheet = workbook.GetSheetAt(sheetIndex);//读取第一个sheet,当然也可以循环读取每个sheet
|
||||
dataTable = new DataTable();
|
||||
if (sheet != null)
|
||||
{
|
||||
int rowCount = sheet.LastRowNum;//总行数
|
||||
if (rowCount > 0)
|
||||
{
|
||||
IRow firstRow = sheet.GetRow(0);//第一行
|
||||
int cellCount = firstRow.LastCellNum;//列数
|
||||
|
||||
//构建datatable的列
|
||||
if (isColumnName)
|
||||
{
|
||||
startRow = 1;//如果第一行是列名,则从第二行开始读取
|
||||
for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
|
||||
{
|
||||
cell = firstRow.GetCell(i);
|
||||
if (cell != null)
|
||||
{
|
||||
if (cell.StringCellValue != null)
|
||||
{
|
||||
column = new DataColumn(cell.StringCellValue);
|
||||
dataTable.Columns.Add(column);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
|
||||
{
|
||||
column = new DataColumn("column" + (i + 1));
|
||||
dataTable.Columns.Add(column);
|
||||
}
|
||||
}
|
||||
|
||||
//填充行
|
||||
for (int i = startRow; i <= rowCount; ++i)
|
||||
{
|
||||
row = sheet.GetRow(i);
|
||||
if (row == null) continue;
|
||||
|
||||
dataRow = dataTable.NewRow();
|
||||
for (int j = row.FirstCellNum; j < cellCount; ++j)
|
||||
{
|
||||
cell = row.GetCell(j);
|
||||
if (cell == null)
|
||||
{
|
||||
dataRow[j] = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
//CellType(Unknown = -1,Numeric = 0,String = 1,Formula = 2,Blank = 3,Boolean = 4,Error = 5,)
|
||||
switch (cell.CellType)
|
||||
{
|
||||
case CellType.Blank:
|
||||
dataRow[j] = "";
|
||||
break;
|
||||
case CellType.Numeric:
|
||||
short format = cell.CellStyle.DataFormat;
|
||||
//对时间格式(2015.12.5、2015/12/5、2015-12-5等)的处理
|
||||
if (format == 14 || format == 31 || format == 57 || format == 58 || format == 22)
|
||||
dataRow[j] = cell.DateCellValue;
|
||||
else
|
||||
dataRow[j] = cell.NumericCellValue;
|
||||
break;
|
||||
case CellType.String:
|
||||
dataRow[j] = cell.StringCellValue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
dataTable.Rows.Add(dataRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return dataTable;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
if (fs != null)
|
||||
{
|
||||
fs.Close();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 将DataTable导出到Execl文档
|
||||
/// </summary>
|
||||
/// <param name="dt">传入一个DataTable数据集</param>
|
||||
/// <returns>返回一个Bool类型的值,表示是否导出成功</returns>
|
||||
/// True表示导出成功,Flase表示导出失败
|
||||
public static bool DataTableToExcel(DataTable dt, string sheetName, string Outpath)
|
||||
{
|
||||
bool result = false;
|
||||
IWorkbook workbook = null;
|
||||
FileStream fs = null;
|
||||
IRow row = null;
|
||||
ISheet sheet = null;
|
||||
ICell cell = null;
|
||||
try
|
||||
{
|
||||
if (dt != null && dt.Rows.Count > 0)
|
||||
{
|
||||
workbook = new HSSFWorkbook();
|
||||
sheet = workbook.CreateSheet(sheetName);//创建一个名称为Sheet0的表
|
||||
int rowCount = dt.Rows.Count;//行数
|
||||
int columnCount = dt.Columns.Count;//列数
|
||||
|
||||
//设置列头
|
||||
row = sheet.CreateRow(0);//excel第一行设为列头
|
||||
for (int c = 0; c < columnCount; c++)
|
||||
{
|
||||
cell = row.CreateCell(c);
|
||||
cell.SetCellValue(dt.Columns[c].ColumnName);
|
||||
}
|
||||
|
||||
//设置每行每列的单元格,
|
||||
for (int i = 0; i < rowCount; i++)
|
||||
{
|
||||
row = sheet.CreateRow(i + 1);
|
||||
for (int j = 0; j < columnCount; j++)
|
||||
{
|
||||
cell = row.CreateCell(j);//excel第二行开始写入数据
|
||||
cell.SetCellValue(dt.Rows[i][j].ToString());
|
||||
}
|
||||
}
|
||||
//向outPath输出数据
|
||||
using (fs = File.OpenWrite(Outpath))
|
||||
{
|
||||
workbook.Write(fs);//向打开的这个xls文件中写入数据
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (fs != null)
|
||||
{
|
||||
fs.Close();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 读取Execl数据到DataTable(DataSet)中
|
||||
/// </summary>
|
||||
/// <param name="filePath">指定Execl文件路径</param>
|
||||
/// <param name="isFirstLineColumnName">设置第一行是否是列名</param>
|
||||
/// <returns>返回一个DataTable数据集</returns>
|
||||
public static DataSet ExcelToDataSet(string filePath, bool isFirstLineColumnName)
|
||||
{
|
||||
DataSet dataSet = new DataSet();
|
||||
int startRow = 0;
|
||||
try
|
||||
{
|
||||
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
|
||||
{
|
||||
IWorkbook workbook = null;
|
||||
// 如果是2007+的Excel版本
|
||||
if (filePath.IndexOf(".xlsx") > 0)
|
||||
{
|
||||
workbook = new XSSFWorkbook(fs);
|
||||
}
|
||||
// 如果是2003-的Excel版本
|
||||
else if (filePath.IndexOf(".xls") > 0)
|
||||
{
|
||||
workbook = new HSSFWorkbook(fs);
|
||||
}
|
||||
if (workbook != null)
|
||||
{
|
||||
//循环读取Excel的每个sheet,每个sheet页都转换为一个DataTable,并放在DataSet中
|
||||
for (int p = 0; p < workbook.NumberOfSheets; p++)
|
||||
{
|
||||
ISheet sheet = workbook.GetSheetAt(p);
|
||||
DataTable dataTable = new DataTable();
|
||||
dataTable.TableName = sheet.SheetName;
|
||||
if (sheet != null)
|
||||
{
|
||||
int rowCount = sheet.LastRowNum;//获取总行数
|
||||
if (rowCount > 0)
|
||||
{
|
||||
IRow firstRow = sheet.GetRow(0);//获取第一行
|
||||
int cellCount = firstRow.LastCellNum;//获取总列数
|
||||
|
||||
//构建datatable的列
|
||||
if (isFirstLineColumnName)
|
||||
{
|
||||
startRow = 1;//如果第一行是列名,则从第二行开始读取
|
||||
for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
|
||||
{
|
||||
ICell cell = firstRow.GetCell(i);
|
||||
if (cell != null)
|
||||
{
|
||||
if (cell.StringCellValue != null)
|
||||
{
|
||||
DataColumn column = new DataColumn(cell.StringCellValue);
|
||||
dataTable.Columns.Add(column);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
|
||||
{
|
||||
DataColumn column = new DataColumn("column" + (i + 1));
|
||||
dataTable.Columns.Add(column);
|
||||
}
|
||||
}
|
||||
|
||||
//填充行
|
||||
for (int i = startRow; i <= rowCount; ++i)
|
||||
{
|
||||
IRow row = sheet.GetRow(i);
|
||||
if (row == null) continue;
|
||||
|
||||
DataRow dataRow = dataTable.NewRow();
|
||||
for (int j = row.FirstCellNum; j < cellCount; ++j)
|
||||
{
|
||||
ICell cell = row.GetCell(j);
|
||||
if (cell == null)
|
||||
{
|
||||
dataRow[j] = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
//CellType(Unknown = -1,Numeric = 0,String = 1,Formula = 2,Blank = 3,Boolean = 4,Error = 5,)
|
||||
switch (cell.CellType)
|
||||
{
|
||||
case CellType.Blank:
|
||||
dataRow[j] = "";
|
||||
break;
|
||||
case CellType.Numeric:
|
||||
short format = cell.CellStyle.DataFormat;
|
||||
//对时间格式(2015.12.5、2015/12/5、2015-12-5等)的处理
|
||||
if (format == 14 || format == 31 || format == 57 || format == 58)
|
||||
dataRow[j] = cell.DateCellValue;
|
||||
else
|
||||
dataRow[j] = cell.NumericCellValue;
|
||||
break;
|
||||
case CellType.String:
|
||||
dataRow[j] = cell.StringCellValue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
dataTable.Rows.Add(dataRow);
|
||||
}
|
||||
}
|
||||
}
|
||||
dataSet.Tables.Add(dataTable);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return dataSet;
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 将DataTable(DataSet)导出到Execl文档
|
||||
/// </summary>
|
||||
/// <param name="dataSet">传入一个DataSet</param>
|
||||
/// <param name="Outpath">导出路径(可以不加扩展名,不加默认为.xls)</param>
|
||||
/// <returns>返回一个Bool类型的值,表示是否导出成功</returns>
|
||||
/// True表示导出成功,Flase表示导出失败
|
||||
public static bool DataSetToExcel(DataSet dataSet, string Outpath)
|
||||
{
|
||||
bool result = false;
|
||||
try
|
||||
{
|
||||
if (dataSet == null || dataSet.Tables == null || dataSet.Tables.Count == 0 || string.IsNullOrEmpty(Outpath))
|
||||
throw new Exception("输入的DataSet或路径异常");
|
||||
int sheetIndex = 0;
|
||||
//根据输出路径的扩展名判断workbook的实例类型
|
||||
IWorkbook workbook = null;
|
||||
string pathExtensionName = Outpath.Trim().Substring(Outpath.Length - 5);
|
||||
if (pathExtensionName.Contains(".xlsx"))
|
||||
{
|
||||
workbook = new XSSFWorkbook();
|
||||
}
|
||||
else if (pathExtensionName.Contains(".xls"))
|
||||
{
|
||||
workbook = new HSSFWorkbook();
|
||||
}
|
||||
else
|
||||
{
|
||||
Outpath = Outpath.Trim() + ".xls";
|
||||
workbook = new HSSFWorkbook();
|
||||
}
|
||||
//将DataSet导出为Excel
|
||||
foreach (DataTable dt in dataSet.Tables)
|
||||
{
|
||||
sheetIndex++;
|
||||
if (dt != null && dt.Rows.Count > 0)
|
||||
{
|
||||
ISheet sheet = workbook.CreateSheet(string.IsNullOrEmpty(dt.TableName) ? ("sheet" + sheetIndex) : dt.TableName);//创建一个名称为Sheet0的表
|
||||
int rowCount = dt.Rows.Count;//行数
|
||||
int columnCount = dt.Columns.Count;//列数
|
||||
|
||||
//设置列头
|
||||
IRow row = sheet.CreateRow(0);//excel第一行设为列头
|
||||
for (int c = 0; c < columnCount; c++)
|
||||
{
|
||||
ICell cell = row.CreateCell(c);
|
||||
cell.SetCellValue(dt.Columns[c].ColumnName);
|
||||
}
|
||||
|
||||
//设置每行每列的单元格,
|
||||
for (int i = 0; i < rowCount; i++)
|
||||
{
|
||||
row = sheet.CreateRow(i + 1);
|
||||
for (int j = 0; j < columnCount; j++)
|
||||
{
|
||||
ICell cell = row.CreateCell(j);//excel第二行开始写入数据
|
||||
cell.SetCellValue(dt.Rows[i][j].ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//向outPath输出数据
|
||||
using (FileStream fs = File.OpenWrite(Outpath))
|
||||
{
|
||||
workbook.Write(fs);//向打开的这个xls文件中写入数据
|
||||
result = true;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
67
SCADA/Core/PLC_R.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using MesWork;
|
||||
using Newtonsoft.Json;
|
||||
using OpcBasic;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
|
||||
namespace DC_A95
|
||||
{
|
||||
public class PLC_R
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="opCode">工位号</param>
|
||||
/// <param name="partCode">上线缸体码</param>
|
||||
/// <param name="palletNo">托盘号</param>
|
||||
/// <returns></returns>
|
||||
public static bool Read_LineSet(string opCode, out string partCode, out int palletNo)
|
||||
{
|
||||
partCode = MesWorkForm.ReadPLC(120, opCode).ToString();
|
||||
palletNo = Convert.ToInt32(MesWorkForm.ReadPLC(80, opCode));
|
||||
return true;
|
||||
}
|
||||
|
||||
public static string GetString_CleanGarbled(string inputStr)
|
||||
{
|
||||
return inputStr.Replace("\0", "").Replace("\n", "").Replace("\r", "").Replace(" ", "");
|
||||
}
|
||||
|
||||
|
||||
public static ConcurrentDictionary<string, TagFormat> ReadPLC_OpName(string opName)
|
||||
{
|
||||
if (MesWorkForm.IsDemoMesServer == 1)
|
||||
{
|
||||
return JsonConvert.DeserializeObject<
|
||||
ConcurrentDictionary<string, TagFormat>
|
||||
>(JsonConvert.SerializeObject(
|
||||
PlcLinkForm.ReadPLC_GroupData(opName)
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
PlcLinkForm.GetDbAndMaxLengthByOpName(opName, out string tagStartAdr, out ushort tagAdrListMaxLength);
|
||||
return JsonConvert.DeserializeObject<
|
||||
ConcurrentDictionary<string, TagFormat>
|
||||
>(JsonConvert.SerializeObject(PlcLinkForm.ReadQualityDataList(
|
||||
opName
|
||||
, tagStartAdr
|
||||
, tagAdrListMaxLength
|
||||
)
|
||||
));
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
65
SCADA/Core/PLC_W.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
using MesWork;
|
||||
using System;
|
||||
|
||||
namespace DC_A95
|
||||
{
|
||||
public class PLC_W
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="opCode"></param>
|
||||
/// <param name="partCode"></param>
|
||||
/// <param name="palletNo"></param>
|
||||
/// <returns></returns>
|
||||
public static void Write_LineSetAlarm(string opCode, int errCode)
|
||||
{
|
||||
//112 发动机上线报警代码
|
||||
//34 发动机上线报警标志
|
||||
MesWorkForm.WritePLC_IF(112, opCode, errCode);
|
||||
MesWorkForm.WritePLC_IF(34, opCode,true);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public enum Type_AlarmOnline
|
||||
{
|
||||
/// <summary>
|
||||
/// 0-无错误
|
||||
/// </summary>
|
||||
Err_Not = 0,
|
||||
/// <summary>
|
||||
/// 1-PLC逻辑错误,未申请上线
|
||||
/// </summary>
|
||||
Err_PLC_Logic = 1,
|
||||
/// <summary>
|
||||
/// 2-没有可用订单
|
||||
/// </summary>
|
||||
Err_NoOrder = 2,
|
||||
/// <summary>
|
||||
/// 3-扫描缸体码为空或格式错误
|
||||
/// </summary>
|
||||
Err_PartCode_Illegal = 3,
|
||||
/// <summary>
|
||||
/// 4-缸体机型与生产机型不匹配
|
||||
/// </summary>
|
||||
Err_Sort = 4,
|
||||
/// <summary>
|
||||
/// 5-AMS写入信息与RFID信息验证不一致
|
||||
/// </summary>
|
||||
Err_RW_Diff = 5,
|
||||
/// <summary>
|
||||
/// 255-未知错误
|
||||
/// </summary>
|
||||
Undefined = 255,
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
70
SCADA/Core/SqlOperation.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
using MesWork;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace SlMesDbIterface
|
||||
{
|
||||
public class SqlOperation
|
||||
{
|
||||
public static bool ExecuteStoredProcedure(string name, SqlParameter[] sqlParameters, out string errorMessage)
|
||||
{
|
||||
return DataLinkMesWork.SQLCommon.ExecuteStoredProcedure(name, MesWorkForm.ConnectionString, ref sqlParameters, out errorMessage);
|
||||
}
|
||||
public static bool ExecuteStoredProcedure(string name, SqlParameter[] sqlParameters, out DataTable dt, out string errorMessage)
|
||||
{
|
||||
return DataLinkMesWork.SQLCommon.ExecuteStoredProcedure(name, MesWorkForm.ConnectionString, ref sqlParameters, out dt, out errorMessage);
|
||||
}
|
||||
public static bool ExecuteStoredProcedure(string name, SqlParameter[] sqlParameters, out DataSet ds, out string errorMessage)
|
||||
{
|
||||
return DataLinkMesWork.SQLCommon.ExecuteStoredProcedure(name, MesWorkForm.ConnectionString, ref sqlParameters, out ds, out errorMessage);
|
||||
}
|
||||
public static bool ExecuteSql(string sql, out DataTable dt, out string errorMessage)
|
||||
{
|
||||
return DataLinkMesWork.SQLCommon.ExecuteSql(sql, MesWorkForm.ConnectionString, out dt, out errorMessage);
|
||||
}
|
||||
|
||||
public static bool ExecuteSql(string sql, out DataSet ds, out string errorMessage)
|
||||
{
|
||||
return DataLinkMesWork.SQLCommon.ExecuteDataset(sql, MesWorkForm.ConnectionString, out ds, out errorMessage);
|
||||
}
|
||||
|
||||
public static bool ExecuteSql(string sql, out string errorMessage)
|
||||
{
|
||||
return DataLinkMesWork.SQLCommon.ExecuteSql(sql, MesWorkForm.ConnectionString, out errorMessage);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 通过SqlBulkCopy复制table数据到数据库
|
||||
/// </summary>
|
||||
/// <param name="dataset"></param>
|
||||
public static bool SqlbulkcopyInsert(DataTable dt)
|
||||
{
|
||||
bool success = false;
|
||||
try
|
||||
{
|
||||
// SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connectString, SqlBulkCopyOptions.KeepIdentity);//删除自增ID插入原始数据
|
||||
SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(MesWorkForm.ConnectionString, SqlBulkCopyOptions.UseInternalTransaction);//批量事务处理
|
||||
sqlbulkcopy.DestinationTableName = dt.TableName;//数据库中的表名
|
||||
for (int i = 0; i < dt.Columns.Count; i++)
|
||||
{
|
||||
var columnName = dt.Columns[i].ColumnName.ToString();
|
||||
sqlbulkcopy.ColumnMappings.Add(columnName, columnName);
|
||||
}
|
||||
sqlbulkcopy.WriteToServer(dt);
|
||||
success = true;
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
}
|
||||
return success;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
466
SCADA/Core/TagTypeCodeID.cs
Normal file
@@ -0,0 +1,466 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
///1 X WorkStart 2 工件到位(PLC) 工件到位。托盘到达工位,并且托盘上有工件。
|
||||
///2 X RepairPartStatusPLC 3 RepairPartStatusPLC 备用
|
||||
///3 STRING RepairPathString 4 RepairPathString "工位返修字符串(121211112222111),前2位是西门子字符串格式,第一位是总长度,第二位是实际长度"
|
||||
///4 X EngineTypeGetOverMES 5 传递机型(MES) MES传递总成信息给PLC(上线工位)
|
||||
///5 X PartPalletGoOver 6 PartPalletGoOver 上线工位。0:正常工作;1:空托盘放行,PLC读取到此标志不走申请上线逻辑。
|
||||
///6 X MaterialVerifyOver 7 MaterialVerifyOver MES保存完质量数据,物料数据等与PLC信号交互完成后通知PLC,所以工步都完成,才可以放行工件,正常工作时工件放行的必要条件。
|
||||
///7 X FalseGo 8 FalseGo 按MES界面[不合格放行]按钮,MES发送此信号。操作者判断工件不合格,通知设备,按不合格方式放行工件,工件流转到返修下线工位后,返修下线。MES工作完成MES0.3=1,MES合格放行MES0.5=0,MES0.4=1
|
||||
///8 INT EngineTypeID 9 EngineTypeID MES发动机机型标志(必须PLC)
|
||||
///9 STRING EngineID 10 EngineID MES发动机编号(必须PLC)
|
||||
///10 STRING EngineType 11 机型(MES) MES发动机机型(必须PLC)
|
||||
///11 X PartPalletStatus 13 PartPalletStatus MES激发变量托盘到位离开(必须PLC)
|
||||
///12 X HeartBeatPLC 14 HeartBeatPLC 心跳处理:PLC收到MES心跳信号后,PLC延时5秒后,数值取反再写回PLC,写回PLC开始计时,如果5秒钟MES无反馈报通讯故障。
|
||||
///13 X HeartBeatMIS 15 HeartBeatMIS 间隔时间5S,心跳处理。收到PLC心跳信号后,MES按原值回写。PLC收到MES信号后延时5秒,取反写入,以此循环。
|
||||
///14 X TargetTimeRead 16 TargetTimeRead MES允许可读工位运行时间
|
||||
///15 Int MachineTargetTime 17 MachineTargetTime 目标运行时间
|
||||
///16 Int MachineActualTime 18 MachineActualTime 实际运行时间
|
||||
///17 X MesRead 19 允许保存(PLC) 质量数据可以读数据
|
||||
///18 X MesReadOver 20 保存完成(MES) MES保存完数据(必须MIS)
|
||||
///19 INT QualityMask 21 合格标志(PLC) 质量数据工位合格标志0:没有工作;1:合格 ;2 :不合格(必须PLC)
|
||||
///20 B PalletInfo 22 PalletInfo 0空托盘,1合格件,2不合格件
|
||||
///21 INT RepairStatusPLC 23 RepairStatusPLC 0正常件,1返修件
|
||||
///22 INT OrderNo 24 订单号(MES) 订单号(MES)
|
||||
///23 X StorageNo 25 库位号(MES) 库位号(MES)
|
||||
///24 X AllowPass 26 允许放行(MES) 允许放行
|
||||
///25 X PartLoadFinish 27 PartLoadFinish PartLoadFinish
|
||||
///26 X Reserved_7 28 Reserved_7 备用
|
||||
///27 X Reserved_8 29 Reserved_8 备用
|
||||
///28 X Reserved_9 30 Reserved_9 备用
|
||||
///29 X Reserved_10 31 Reserved_10 备用
|
||||
///30 X Reserved_11 32 Reserved_11 备用
|
||||
///31 X Reserved_12 33 Reserved_12 备用
|
||||
///32 X Reserved_13 34 Reserved_13 备用
|
||||
///33 X Reserved_14 35 Reserved_14 备用
|
||||
///34 Int PLCSPareint1 36 PLCSPareint1 备用
|
||||
///35 Int PLCSPareint2 37 PLCSPareint2 备用
|
||||
///36 Int PLCSPareint3 38 PLCSPareint3 备用
|
||||
///37 STRING PLCSarestring1 39 PLCSarestring1 备用
|
||||
///38 STRING PLCSarestring2 40 PLCSarestring2 备用
|
||||
///39 STRING MarkID 42 MarkID 机体打标号(MES)前2位是西门子字符串格式,第一位是总长度,第二位是实际长度
|
||||
///40 X PartLoad 43 PartLoad 上线工位,PLC向MES申请总成编号。收到该信号后,MES将机型标志(DBB22 ~23)、总成号(DBB24 ~63)、总成机型DBB64 ~103写入PLC。之后MES通过信号“传递机型(DBX0.1)”通知PLC。
|
||||
///41 X EngineTypeGetOverPLC 44 传递机型(PLC) PLC将机型标志(DBB50…51)、工件编号(DBB52…101)、产品型号(DBB102…187)、托盘编号(DBB188…189)准备完毕后,通知MES。
|
||||
///42 X PartLoadOK 48 PartLoadOK 备用
|
||||
///43 X Reserved_18 49 Reserved_18 备用
|
||||
///44 X PalletDown 50 PalletDown 暂时保留,项目未使用
|
||||
///45 X ConfirmOkGo 51 ConfirmOkGo 按MES界面[合格放行]按钮,MES发送此信号。操作者判断工件合格,通知设备,工件按合格方式放行工件。MES工作完成MES0.3=1,MES合格放行MES0.5=1,MES0.4=0
|
||||
///46 X ResetDevice 52 ResetDevice 针对手动工位,无HMI,需要复位设备在MES页面操作。
|
||||
///47 X UnloadCompleted 53 UnloadCompleted 暂时保留,项目未使用
|
||||
///48 X MachineTime_ReadOver 54 MachineTime_ReadOver 备用
|
||||
///49 X Reserved_19 58 Reserved_19 备用
|
||||
///50 X FixOK 59 FixOK 手动拧紧工位,单工步螺栓拧紧完成,通知PC读取数据。
|
||||
///51 X Reserved_21 61 Reserved_21 备用
|
||||
///52 X Reserved_22 62 Reserved_22 备用
|
||||
///53 X Reserved_23 63 Reserved_23 备用
|
||||
///54 X Reserved_24 64 Reserved_24 备用
|
||||
///55 X Reserved_25 65 Reserved_25 备用
|
||||
///56 X FixAllow 66 FixAllow "设备工作的必须信号,对于有物料验证的工位,MES验证完成给出此信号,对于无物料验证工位,MES直接给出此信号。"
|
||||
///57 X FixOver 67 FixOver 用于手动拧紧且有质量数据工位。通知设备当前工步拧紧螺钉工作结束。
|
||||
///58 X MatchingCompleted 68 MatchingCompleted 分线上总线,匹配成功是1;不成功是0。
|
||||
///59 X Match 69 Match 分线上总线,匹配成功是1;不成功是0。
|
||||
///60 X Reserved_2 70 Reserved_2 备用
|
||||
///61 X IsAutoGetEngineID 71 IsAutoGetEngineID 自动手动申请工件编号。0是自动方式;1:手动方式。暂时保留,生成流水号方式是在数据库中实现的
|
||||
///62 X RepairUplineMES 72 RepairUplineMES 上线清空MOBY(针对上线工位):通知PLC从新开始申请上线流程
|
||||
///63 INT EngineTypeID_MES 73 机型代码(MES) MES发动机机型标志(必须MES)
|
||||
///64 STRING EngineID_MES 74 工件编号(MES) MES发动机编号(必须MES)
|
||||
///65 STRING EngineType_MES 75 EngineType_MES MES发动机机型(必须MES)
|
||||
///66 X Reserved_20 76 Reserved_20 备用
|
||||
///67 INT ProcessCode 77 ProcessCode 手动拧紧工位:由MES通知PLC拧紧序号
|
||||
///68 B OnLineState 79 OnLineState 通过线体工位PC实现下达工位工作状态:工位有三种状态:在线、离线、屏蔽。在线:0正常状态,实现正常功能。1离线:设备脱离MES工作,进入不交互模式。
|
||||
///69 INT PartPalletCode 80 托盘号(MES) 托盘编号(B5A)
|
||||
///70 INT BoltCode 88 BoltCode 手动拧紧工位:指导PLC所用套筒
|
||||
///71 INT RepairStatus 93 RepairStatus "0正常件,1返修件。对于上线工位MES给出是正常上线还是返修上线,返修路径"
|
||||
///72 DInt Reserved_15 110 Reserved_15 备用
|
||||
///73 DInt Reserved_16 111 Reserved_16 备用
|
||||
///74 B Reserved_17 112 Reserved_17 备用
|
||||
///75 INT SPareint1 113 SPareint1 备用int1
|
||||
///76 INT SPareint2 114 SPareint2 备用int2
|
||||
///77 INT SPareint3 115 SPareint3 备用int3
|
||||
///78 STRING Sparestring1 116 Sparestring1 备用字符串1
|
||||
///79 STRING Sparestring2 117 Sparestring2 备用字符串2
|
||||
///80 X MachineStatusPutOn 1000 机床上电(PLC) 机床上电(必须PLC)
|
||||
///81 X MachineStatusWorkOn 1001 循环开始(PLC) 循环开始(必须PLC)
|
||||
///82 X MachineStatusAlarm 1002 设备报警(PLC) 机床故障(必须PLC)
|
||||
///83 X MachineStatusNoPart 1003 MachineStatusNoPart 上料无件(必须PLC)
|
||||
///84 X MachineStatusBlock 1004 MachineStatusBlock 下料堵塞(必须PLC)
|
||||
|
||||
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
/// 这是变量类型代码的配置,几乎是不变的
|
||||
/// 请不要随意修改,为了保证变量版本同一,并且方便维护,请联系发行人修改!
|
||||
/// 请注意,此修改为全局修改!
|
||||
/// </summary>
|
||||
public enum EnumTagTypeCodeID
|
||||
{
|
||||
/// <summary>
|
||||
/// 工件到位(PLC)
|
||||
/// 变量类型:Bool
|
||||
/// 解释:托盘到达工位,并且托盘上有工件。
|
||||
/// </summary>
|
||||
WorkStart = 2,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
RepairPartStatusPLC = 3,
|
||||
/// <summary>
|
||||
/// 工位返修字符串
|
||||
/// 变量类型:String
|
||||
/// 解释:工位返修字符串
|
||||
/// </summary>
|
||||
RepairPathString = 4,
|
||||
/// <summary>
|
||||
/// 传递机型(MES)
|
||||
/// 变量类型:Bool
|
||||
/// 解释:MES传递总成信息给PLC(上线工位)
|
||||
/// </summary>
|
||||
EngineTypeGetOverMES = 5,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
PartPalletGoOver = 6,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
MaterialVerifyOver = 7,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
FalseGo = 8,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
EngineTypeID = 9,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
EngineID = 10,
|
||||
/// <summary>
|
||||
/// 机型(MES)
|
||||
/// 变量类型:String
|
||||
/// </summary>
|
||||
EngineType = 11,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
PartPalletStatus = 13,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
HeartBeatPLC = 14,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
HeartBeatMIS = 15,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
TargetTimeRead = 16,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
MachineTargetTime = 17,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
MachineActualTime = 18,
|
||||
/// <summary>
|
||||
/// 允许保存(PLC)
|
||||
/// 变量类型:Bool
|
||||
/// </summary>
|
||||
MesRead = 19,
|
||||
/// <summary>
|
||||
/// 保存完成(MES)
|
||||
/// 变量类型:Bool
|
||||
/// </summary>
|
||||
MesReadOver = 20,
|
||||
/// <summary>
|
||||
/// 合格标志(PLC)
|
||||
/// 变量类型:Int
|
||||
/// </summary>
|
||||
QualityMask = 21,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
PalletInfo = 22,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
RepairStatusPLC = 23,
|
||||
/// <summary>
|
||||
/// 订单号(MES)
|
||||
/// 变量类型:Int
|
||||
/// </summary>
|
||||
OrderNo = 24,
|
||||
/// <summary>
|
||||
/// 库位号(MES)
|
||||
/// 变量类型:Bool
|
||||
/// </summary>
|
||||
StorageNo = 25,
|
||||
/// <summary>
|
||||
/// 允许放行(MES)
|
||||
/// 变量类型:Bool
|
||||
/// </summary>
|
||||
AllowPass = 26,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
PartLoadFinish = 27,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_7 = 28,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_8 = 29,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_9 = 30,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_10 = 31,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_11 = 32,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_12 = 33,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_13 = 34,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_14 = 35,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
PLCSPareint1 = 36,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
PLCSPareint2 = 37,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
PLCSPareint3 = 38,
|
||||
/// <summary>
|
||||
/// 订单号(PLC)
|
||||
/// </summary>
|
||||
OrderFormPLC = 39,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
PLCSarestring2 = 40,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
MarkID = 42,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
PartLoad = 43,
|
||||
/// <summary>
|
||||
/// 传递机型(PLC)
|
||||
/// 变量类型:Bool
|
||||
/// </summary>
|
||||
EngineTypeGetOverPLC = 44,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
PartLoadOK = 48,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_18 = 49,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
PalletDown = 50,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
ConfirmOkGo = 51,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
ResetDevice = 52,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
UnloadCompleted = 53,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
MachineTime_ReadOver = 54,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_19 = 58,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
FixOK = 59,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_21 = 61,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_22 = 62,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_23 = 63,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_24 = 64,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_25 = 65,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
FixAllow = 66,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
FixOver = 67,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
MatchingCompleted = 68,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Match = 69,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_2 = 70,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
IsAutoGetEngineID = 71,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
RepairUplineMES = 72,
|
||||
/// <summary>
|
||||
/// 机型代码(MES)
|
||||
/// 变量类型:Int
|
||||
/// </summary>
|
||||
EngineTypeID_MES = 73,
|
||||
/// <summary>
|
||||
/// 工件编号(MES)
|
||||
/// 变量类型:String
|
||||
/// </summary>
|
||||
EngineID_MES = 74,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
EngineType_MES = 75,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_20 = 76,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
ProcessCode = 77,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
OnLineState = 79,
|
||||
/// <summary>
|
||||
/// 托盘号(MES)
|
||||
/// 变量类型:Int
|
||||
/// </summary>
|
||||
PartPalletCode = 80,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
BoltCode = 88,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
RepairStatus = 93,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_15 = 110,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_16 = 111,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Reserved_17 = 112,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
SPareint1 = 113,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
SPareint2 = 114,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
SPareint3 = 115,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Sparestring1 = 116,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Sparestring2 = 117,
|
||||
/// <summary>
|
||||
/// 机床上电(PLC)
|
||||
/// 变量类型:Bool
|
||||
/// </summary>
|
||||
MachineStatusPutOn = 1000,
|
||||
/// <summary>
|
||||
/// 循环开始(PLC)
|
||||
/// 变量类型:Bool
|
||||
/// </summary>
|
||||
MachineStatusWorkOn = 1001,
|
||||
/// <summary>
|
||||
/// 设备报警(PLC)
|
||||
/// 变量类型:Bool
|
||||
/// </summary>
|
||||
MachineStatusAlarm = 1002,
|
||||
/// <summary>
|
||||
/// 上料无件(PLC)
|
||||
/// 变量类型:Bool
|
||||
/// </summary>
|
||||
MachineStatusNoPart = 1003,
|
||||
/// <summary>
|
||||
/// 下料堵塞(PLC)
|
||||
/// 变量类型:Bool
|
||||
/// </summary>
|
||||
MachineStatusBlock = 1004,
|
||||
/// <summary>
|
||||
/// 下料堵塞(PLC)
|
||||
/// 变量类型:Bool
|
||||
/// </summary>
|
||||
havePart70 = 10003,
|
||||
}
|
||||
}
|
||||
170
SCADA/Core/Tools.cs
Normal file
@@ -0,0 +1,170 @@
|
||||
using MesWork;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||
|
||||
namespace ConverterBytesAndStruct
|
||||
{
|
||||
/// <summary>
|
||||
/// 数据解析、数据转换
|
||||
/// </summary>
|
||||
public class Tools
|
||||
{
|
||||
#region 内部转换
|
||||
/// <summary>
|
||||
/// 从源数据提取字符数组
|
||||
/// </summary>
|
||||
/// <param name="bytes"></param>
|
||||
/// <param name="start"></param>
|
||||
/// <param name="num"></param>
|
||||
/// <returns></returns>
|
||||
public static char[] convertNumber(byte[] bytes, int start, int num)
|
||||
{
|
||||
// TODO 长度判断
|
||||
char[] res = new char[num];
|
||||
for (int i = 0; i < num; i++)
|
||||
{
|
||||
res[i] = (char)bytes[start + i];
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
/// <summary>
|
||||
/// 从源数据提取字节数组
|
||||
/// </summary>
|
||||
/// <param name="bytes"></param>
|
||||
/// <param name="start"></param>
|
||||
/// <param name="num"></param>
|
||||
/// <returns></returns>
|
||||
public static byte[] slice(byte[] bytes, int start, int num)
|
||||
{
|
||||
// TODO 长度判断
|
||||
byte[] res = new byte[num];
|
||||
for (int i = 0; i < num; i++)
|
||||
{
|
||||
res[i] = bytes[start + i];
|
||||
}
|
||||
return res;
|
||||
}
|
||||
/// <summary>
|
||||
/// 从源数据提取结构体
|
||||
/// </summary>
|
||||
/// <param name="bytes"></param>
|
||||
/// <param name="start"></param>
|
||||
/// <returns></returns>
|
||||
public static TS convetTS(byte[] bytes, int start)
|
||||
{
|
||||
// TODO 长度判断
|
||||
TS ts = null;
|
||||
|
||||
ts = new TS();
|
||||
ts.Max_Len = bytes[start + 0];
|
||||
ts.Act_Len = bytes[start + 1];
|
||||
ts.Month_B1 = (char)bytes[start + 2];
|
||||
ts.Month_B0 = (char)bytes[start + 3];
|
||||
ts.Slash1 = (char)bytes[start + 4];
|
||||
ts.Day_B1 = (char)bytes[start + 5];
|
||||
ts.Day_B0 = (char)bytes[start + 6];
|
||||
ts.Slash2 = (char)bytes[start + 7];
|
||||
ts.Fixed_dgt1 = (char)bytes[start + 8];
|
||||
ts.Fixed_dgt2 = (char)bytes[start + 9];
|
||||
ts.Year_B1 = (char)bytes[start + 10];
|
||||
ts.Year_B0 = (char)bytes[start + 11];
|
||||
ts.Null1 = (char)bytes[start + 12];
|
||||
ts.Hour_B1 = (char)bytes[start + 13];
|
||||
ts.Hour_B0 = (char)bytes[start + 14];
|
||||
ts.Colon1 = (char)bytes[start + 15];
|
||||
ts.Min_B1 = (char)bytes[start + 16];
|
||||
ts.Min_B0 = (char)bytes[start + 17];
|
||||
ts.Colon2 = (char)bytes[start + 18];
|
||||
ts.Sec_B1 = (char)bytes[start + 19];
|
||||
ts.Sec_B0 = (char)bytes[start + 20];
|
||||
ts.Null2 = (char)bytes[start + 21];
|
||||
|
||||
return ts;
|
||||
}
|
||||
/// <summary>
|
||||
/// 结构体转时间
|
||||
/// </summary>
|
||||
/// <param name="ts"></param>
|
||||
/// <returns></returns>
|
||||
public static System.DateTime Convet_ToDateTime(TS ts)
|
||||
{
|
||||
System.DateTime dt = System.DateTime.Parse($"1970-01-01 01:01:01.001");
|
||||
try
|
||||
{
|
||||
var yyyy = $"20{ts.Year_B1}{ts.Year_B0}";
|
||||
var MM = $"{ts.Month_B1}{ts.Month_B0}";
|
||||
var dd = $"{ts.Day_B1}{ts.Day_B0}";
|
||||
|
||||
var HH = $"{ts.Hour_B1}{ts.Hour_B0}";
|
||||
var mm = $"{ts.Min_B1}{ts.Min_B0}";
|
||||
var ss = $"{ts.Sec_B1}{ts.Sec_B0}";
|
||||
|
||||
var dtStr = $"{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}.000";
|
||||
dt = System.DateTime.Parse(dtStr);
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
}
|
||||
|
||||
return dt;
|
||||
}
|
||||
/// <summary>
|
||||
/// 从源数据提取质量数据
|
||||
/// </summary>
|
||||
/// <param name="bytes"></param>
|
||||
/// <param name="start"></param>
|
||||
/// <returns></returns>
|
||||
public static QC_DATA convertQcdata(byte[] bytes, int start)
|
||||
{
|
||||
QC_DATA data = null;
|
||||
data = new QC_DATA();
|
||||
data.Work_Type = S7.Net.Types.Int.FromByteArray(new byte[] { bytes[start + 0], bytes[start + 1] });
|
||||
data.Progarm_Code = S7.Net.Types.Int.FromByteArray(new byte[] { bytes[start + 2], bytes[start + 3] });
|
||||
data.Counter_Number = S7.Net.Types.Int.FromByteArray(new byte[] { bytes[start + 4], bytes[start + 5] });
|
||||
|
||||
var byte1 = bytes[start + 6];
|
||||
data.Bypass = S7.Net.Types.Bit.FromByte(byte1, 0);
|
||||
data.No_op = S7.Net.Types.Bit.FromByte(byte1, 1);
|
||||
data.Accept = S7.Net.Types.Bit.FromByte(byte1, 2);
|
||||
data.Reject = S7.Net.Types.Bit.FromByte(byte1, 3);
|
||||
//data.Spare14 = S7.Net.Types.Bit.FromByte(byte1, 4);
|
||||
//data.Spare15 = S7.Net.Types.Bit.FromByte(byte1, 5);
|
||||
//data.Repair_Off = S7.Net.Types.Bit.FromByte(byte1, 6);
|
||||
//data.Repair_On = S7.Net.Types.Bit.FromByte(byte1, 7);
|
||||
|
||||
data.SPARE1 = S7.Net.Types.Byte.FromByteArray(new byte[] { bytes[start + 7] });
|
||||
data.SPARE2 = S7.Net.Types.Int.FromByteArray(new byte[] { bytes[start + 8], bytes[start + 9] });
|
||||
|
||||
data.QC_DATA1 = S7.Net.Types.Real.FromByteArray(slice(bytes, start + 10, 4));
|
||||
data.QC_DATA2 = S7.Net.Types.Real.FromByteArray(slice(bytes, start + 14, 4));
|
||||
data.QC_DATA3 = S7.Net.Types.Real.FromByteArray(slice(bytes, start + 18, 4));
|
||||
data.QC_DATA4 = S7.Net.Types.Real.FromByteArray(slice(bytes, start + 22, 4));
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 拷贝 bytes1 内容 到 bytes 从start开始,长度由 bytes1决定
|
||||
/// </summary>
|
||||
/// <param name="bytes"></param>
|
||||
/// <param name="bytes1"></param>
|
||||
/// <param name="start"></param>
|
||||
public static byte[] copy(byte[] bytes, int start, byte[] bytes1)
|
||||
{
|
||||
for (int i = 0; i < bytes1.Length; i++)
|
||||
{
|
||||
bytes[start + i] = bytes1[i];
|
||||
}
|
||||
|
||||
return bytes;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
526
SCADA/DC_A95_Page.Designer.cs
generated
Normal file
@@ -0,0 +1,526 @@
|
||||
using System.Windows.Forms;
|
||||
namespace MesWork
|
||||
{
|
||||
partial class MesWorkForm : PlcLinkForm
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
|
||||
}
|
||||
|
||||
#region Windows 窗体设计器生成的代码
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要修改
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MesWorkForm));
|
||||
this.panel_Menu = new System.Windows.Forms.Panel();
|
||||
this.label_ParamConfig = new System.Windows.Forms.Label();
|
||||
this.btn_QueryLog = new System.Windows.Forms.Label();
|
||||
this.label_StationManage = new System.Windows.Forms.Label();
|
||||
this.label_PlanManage = new System.Windows.Forms.Label();
|
||||
this.label_Test_RW = new System.Windows.Forms.Label();
|
||||
this.label_ExitSys = new System.Windows.Forms.Label();
|
||||
this.label_Monitor_PLC = new System.Windows.Forms.Label();
|
||||
this.pb_OnLine_Sql = new System.Windows.Forms.PictureBox();
|
||||
this.timer_OnLine_Show = new System.Windows.Forms.Timer(this.components);
|
||||
this.panel_Lyout = new System.Windows.Forms.Panel();
|
||||
this.label41 = new System.Windows.Forms.Label();
|
||||
this.label_Count = new System.Windows.Forms.Label();
|
||||
this.label_01 = new System.Windows.Forms.Label();
|
||||
this.label_SqlConn = new System.Windows.Forms.Label();
|
||||
this.label18 = new System.Windows.Forms.Label();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.panel9 = new System.Windows.Forms.Panel();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label10 = new System.Windows.Forms.Label();
|
||||
this.panel7 = new System.Windows.Forms.Panel();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.label_RunSort = new System.Windows.Forms.Label();
|
||||
this.panel8 = new System.Windows.Forms.Panel();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.panel_OffLine = new System.Windows.Forms.Panel();
|
||||
this.panel_Alarm = new System.Windows.Forms.Panel();
|
||||
this.panel_Manual = new System.Windows.Forms.Panel();
|
||||
this.panel_Running = new System.Windows.Forms.Panel();
|
||||
this.panel_Auto = new System.Windows.Forms.Panel();
|
||||
this.panel4 = new System.Windows.Forms.Panel();
|
||||
this.panel3 = new System.Windows.Forms.Panel();
|
||||
this.panel5 = new System.Windows.Forms.Panel();
|
||||
this.label15 = new System.Windows.Forms.Label();
|
||||
this.panel2 = new System.Windows.Forms.Panel();
|
||||
this.label16 = new System.Windows.Forms.Label();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.label17 = new System.Windows.Forms.Label();
|
||||
this.label19 = new System.Windows.Forms.Label();
|
||||
this.btn_SaveLyout = new System.Windows.Forms.Button();
|
||||
this.label49 = new System.Windows.Forms.Label();
|
||||
this.timer_ShowStation = new System.Windows.Forms.Timer(this.components);
|
||||
this.timer_ShowAlarm = new System.Windows.Forms.Timer(this.components);
|
||||
this.timer_ThreadPool = new System.Windows.Forms.Timer(this.components);
|
||||
this.timer_ShowCount = new System.Windows.Forms.Timer(this.components);
|
||||
this.panel_Menu.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pb_OnLine_Sql)).BeginInit();
|
||||
this.panel_Lyout.SuspendLayout();
|
||||
this.panel9.SuspendLayout();
|
||||
this.panel7.SuspendLayout();
|
||||
this.panel8.SuspendLayout();
|
||||
this.groupBox1.SuspendLayout();
|
||||
this.panel5.SuspendLayout();
|
||||
this.panel2.SuspendLayout();
|
||||
this.panel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel_Menu
|
||||
//
|
||||
this.panel_Menu.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel_Menu.Controls.Add(this.label_ParamConfig);
|
||||
this.panel_Menu.Controls.Add(this.btn_QueryLog);
|
||||
this.panel_Menu.Controls.Add(this.label_StationManage);
|
||||
this.panel_Menu.Controls.Add(this.label_PlanManage);
|
||||
this.panel_Menu.Controls.Add(this.label_Test_RW);
|
||||
this.panel_Menu.Controls.Add(this.label_ExitSys);
|
||||
this.panel_Menu.Controls.Add(this.label_Monitor_PLC);
|
||||
resources.ApplyResources(this.panel_Menu, "panel_Menu");
|
||||
this.panel_Menu.Name = "panel_Menu";
|
||||
//
|
||||
// label_ParamConfig
|
||||
//
|
||||
resources.ApplyResources(this.label_ParamConfig, "label_ParamConfig");
|
||||
this.label_ParamConfig.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.label_ParamConfig.Name = "label_ParamConfig";
|
||||
this.label_ParamConfig.Click += new System.EventHandler(this.label_ParamConfig_Click);
|
||||
//
|
||||
// btn_QueryLog
|
||||
//
|
||||
resources.ApplyResources(this.btn_QueryLog, "btn_QueryLog");
|
||||
this.btn_QueryLog.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.btn_QueryLog.Name = "btn_QueryLog";
|
||||
this.btn_QueryLog.Click += new System.EventHandler(this.btn_QueryLog_Click);
|
||||
//
|
||||
// label_StationManage
|
||||
//
|
||||
resources.ApplyResources(this.label_StationManage, "label_StationManage");
|
||||
this.label_StationManage.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.label_StationManage.Name = "label_StationManage";
|
||||
this.label_StationManage.Click += new System.EventHandler(this.label_StationManage_Click);
|
||||
//
|
||||
// label_PlanManage
|
||||
//
|
||||
resources.ApplyResources(this.label_PlanManage, "label_PlanManage");
|
||||
this.label_PlanManage.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.label_PlanManage.Name = "label_PlanManage";
|
||||
this.label_PlanManage.Click += new System.EventHandler(this.label_PlanManage_Click);
|
||||
//
|
||||
// label_Test_RW
|
||||
//
|
||||
resources.ApplyResources(this.label_Test_RW, "label_Test_RW");
|
||||
this.label_Test_RW.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.label_Test_RW.Name = "label_Test_RW";
|
||||
this.label_Test_RW.Click += new System.EventHandler(this.label_Test_RW_Click);
|
||||
//
|
||||
// label_ExitSys
|
||||
//
|
||||
resources.ApplyResources(this.label_ExitSys, "label_ExitSys");
|
||||
this.label_ExitSys.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.label_ExitSys.Name = "label_ExitSys";
|
||||
this.label_ExitSys.Click += new System.EventHandler(this.label_ExitSys_Click);
|
||||
//
|
||||
// label_Monitor_PLC
|
||||
//
|
||||
resources.ApplyResources(this.label_Monitor_PLC, "label_Monitor_PLC");
|
||||
this.label_Monitor_PLC.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.label_Monitor_PLC.Name = "label_Monitor_PLC";
|
||||
this.label_Monitor_PLC.Click += new System.EventHandler(this.label_Monitor_PLC_Click);
|
||||
//
|
||||
// pb_OnLine_Sql
|
||||
//
|
||||
this.pb_OnLine_Sql.Image = global::CentralControl.Properties.Resources.断开状态;
|
||||
resources.ApplyResources(this.pb_OnLine_Sql, "pb_OnLine_Sql");
|
||||
this.pb_OnLine_Sql.Name = "pb_OnLine_Sql";
|
||||
this.pb_OnLine_Sql.TabStop = false;
|
||||
//
|
||||
// timer_OnLine_Show
|
||||
//
|
||||
this.timer_OnLine_Show.Interval = 1000;
|
||||
this.timer_OnLine_Show.Tick += new System.EventHandler(this.timer_OnLine_Show_Tick);
|
||||
//
|
||||
// panel_Lyout
|
||||
//
|
||||
resources.ApplyResources(this.panel_Lyout, "panel_Lyout");
|
||||
this.panel_Lyout.Controls.Add(this.label41);
|
||||
this.panel_Lyout.Controls.Add(this.label_Count);
|
||||
this.panel_Lyout.Controls.Add(this.label_01);
|
||||
this.panel_Lyout.Controls.Add(this.label_SqlConn);
|
||||
this.panel_Lyout.Controls.Add(this.label18);
|
||||
this.panel_Lyout.Controls.Add(this.label14);
|
||||
this.panel_Lyout.Controls.Add(this.panel9);
|
||||
this.panel_Lyout.Controls.Add(this.panel7);
|
||||
this.panel_Lyout.Controls.Add(this.panel8);
|
||||
this.panel_Lyout.Controls.Add(this.groupBox1);
|
||||
this.panel_Lyout.Controls.Add(this.panel4);
|
||||
this.panel_Lyout.Controls.Add(this.panel3);
|
||||
this.panel_Lyout.Controls.Add(this.panel5);
|
||||
this.panel_Lyout.Controls.Add(this.panel2);
|
||||
this.panel_Lyout.Controls.Add(this.panel1);
|
||||
this.panel_Lyout.Controls.Add(this.btn_SaveLyout);
|
||||
this.panel_Lyout.Controls.Add(this.label49);
|
||||
this.panel_Lyout.Name = "panel_Lyout";
|
||||
//
|
||||
// label41
|
||||
//
|
||||
resources.ApplyResources(this.label41, "label41");
|
||||
this.label41.Name = "label41";
|
||||
//
|
||||
// label_Count
|
||||
//
|
||||
resources.ApplyResources(this.label_Count, "label_Count");
|
||||
this.label_Count.Name = "label_Count";
|
||||
//
|
||||
// label_01
|
||||
//
|
||||
resources.ApplyResources(this.label_01, "label_01");
|
||||
this.label_01.Name = "label_01";
|
||||
//
|
||||
// label_SqlConn
|
||||
//
|
||||
resources.ApplyResources(this.label_SqlConn, "label_SqlConn");
|
||||
this.label_SqlConn.Name = "label_SqlConn";
|
||||
//
|
||||
// label18
|
||||
//
|
||||
resources.ApplyResources(this.label18, "label18");
|
||||
this.label18.Name = "label18";
|
||||
//
|
||||
// label14
|
||||
//
|
||||
resources.ApplyResources(this.label14, "label14");
|
||||
this.label14.Name = "label14";
|
||||
//
|
||||
// panel9
|
||||
//
|
||||
this.panel9.BackColor = System.Drawing.Color.Gainsboro;
|
||||
this.panel9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel9.Controls.Add(this.label1);
|
||||
this.panel9.Controls.Add(this.label10);
|
||||
resources.ApplyResources(this.panel9, "panel9");
|
||||
this.panel9.Name = "panel9";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
resources.ApplyResources(this.label1, "label1");
|
||||
this.label1.Name = "label1";
|
||||
//
|
||||
// label10
|
||||
//
|
||||
resources.ApplyResources(this.label10, "label10");
|
||||
this.label10.Name = "label10";
|
||||
//
|
||||
// panel7
|
||||
//
|
||||
this.panel7.BackColor = System.Drawing.Color.Gainsboro;
|
||||
this.panel7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel7.Controls.Add(this.label8);
|
||||
this.panel7.Controls.Add(this.label_RunSort);
|
||||
resources.ApplyResources(this.panel7, "panel7");
|
||||
this.panel7.Name = "panel7";
|
||||
//
|
||||
// label8
|
||||
//
|
||||
resources.ApplyResources(this.label8, "label8");
|
||||
this.label8.Name = "label8";
|
||||
//
|
||||
// label_RunSort
|
||||
//
|
||||
resources.ApplyResources(this.label_RunSort, "label_RunSort");
|
||||
this.label_RunSort.Name = "label_RunSort";
|
||||
//
|
||||
// panel8
|
||||
//
|
||||
this.panel8.BackColor = System.Drawing.Color.Gainsboro;
|
||||
this.panel8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.panel8.Controls.Add(this.label9);
|
||||
this.panel8.Controls.Add(this.pb_OnLine_Sql);
|
||||
resources.ApplyResources(this.panel8, "panel8");
|
||||
this.panel8.Name = "panel8";
|
||||
//
|
||||
// label9
|
||||
//
|
||||
resources.ApplyResources(this.label9, "label9");
|
||||
this.label9.Name = "label9";
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Controls.Add(this.label6);
|
||||
this.groupBox1.Controls.Add(this.label5);
|
||||
this.groupBox1.Controls.Add(this.label4);
|
||||
this.groupBox1.Controls.Add(this.label3);
|
||||
this.groupBox1.Controls.Add(this.label2);
|
||||
this.groupBox1.Controls.Add(this.panel_OffLine);
|
||||
this.groupBox1.Controls.Add(this.panel_Alarm);
|
||||
this.groupBox1.Controls.Add(this.panel_Manual);
|
||||
this.groupBox1.Controls.Add(this.panel_Running);
|
||||
this.groupBox1.Controls.Add(this.panel_Auto);
|
||||
resources.ApplyResources(this.groupBox1, "groupBox1");
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.TabStop = false;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
resources.ApplyResources(this.label6, "label6");
|
||||
this.label6.Name = "label6";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
resources.ApplyResources(this.label5, "label5");
|
||||
this.label5.Name = "label5";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
resources.ApplyResources(this.label4, "label4");
|
||||
this.label4.Name = "label4";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
resources.ApplyResources(this.label3, "label3");
|
||||
this.label3.Name = "label3";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
resources.ApplyResources(this.label2, "label2");
|
||||
this.label2.Name = "label2";
|
||||
//
|
||||
// panel_OffLine
|
||||
//
|
||||
this.panel_OffLine.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
resources.ApplyResources(this.panel_OffLine, "panel_OffLine");
|
||||
this.panel_OffLine.Name = "panel_OffLine";
|
||||
//
|
||||
// panel_Alarm
|
||||
//
|
||||
this.panel_Alarm.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
resources.ApplyResources(this.panel_Alarm, "panel_Alarm");
|
||||
this.panel_Alarm.Name = "panel_Alarm";
|
||||
//
|
||||
// panel_Manual
|
||||
//
|
||||
this.panel_Manual.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
resources.ApplyResources(this.panel_Manual, "panel_Manual");
|
||||
this.panel_Manual.Name = "panel_Manual";
|
||||
//
|
||||
// panel_Running
|
||||
//
|
||||
this.panel_Running.BackColor = System.Drawing.Color.SpringGreen;
|
||||
this.panel_Running.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
resources.ApplyResources(this.panel_Running, "panel_Running");
|
||||
this.panel_Running.Name = "panel_Running";
|
||||
//
|
||||
// panel_Auto
|
||||
//
|
||||
this.panel_Auto.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
resources.ApplyResources(this.panel_Auto, "panel_Auto");
|
||||
this.panel_Auto.Name = "panel_Auto";
|
||||
//
|
||||
// panel4
|
||||
//
|
||||
this.panel4.BackColor = System.Drawing.SystemColors.Info;
|
||||
resources.ApplyResources(this.panel4, "panel4");
|
||||
this.panel4.Name = "panel4";
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
this.panel3.BackColor = System.Drawing.SystemColors.Info;
|
||||
resources.ApplyResources(this.panel3, "panel3");
|
||||
this.panel3.Name = "panel3";
|
||||
//
|
||||
// panel5
|
||||
//
|
||||
this.panel5.BackColor = System.Drawing.SystemColors.Info;
|
||||
this.panel5.Controls.Add(this.label15);
|
||||
resources.ApplyResources(this.panel5, "panel5");
|
||||
this.panel5.Name = "panel5";
|
||||
//
|
||||
// label15
|
||||
//
|
||||
resources.ApplyResources(this.label15, "label15");
|
||||
this.label15.Name = "label15";
|
||||
//
|
||||
// panel2
|
||||
//
|
||||
this.panel2.BackColor = System.Drawing.SystemColors.Info;
|
||||
this.panel2.Controls.Add(this.label16);
|
||||
resources.ApplyResources(this.panel2, "panel2");
|
||||
this.panel2.Name = "panel2";
|
||||
//
|
||||
// label16
|
||||
//
|
||||
resources.ApplyResources(this.label16, "label16");
|
||||
this.label16.Name = "label16";
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
this.panel1.BackColor = System.Drawing.SystemColors.Info;
|
||||
this.panel1.Controls.Add(this.label17);
|
||||
this.panel1.Controls.Add(this.label19);
|
||||
resources.ApplyResources(this.panel1, "panel1");
|
||||
this.panel1.Name = "panel1";
|
||||
//
|
||||
// label17
|
||||
//
|
||||
resources.ApplyResources(this.label17, "label17");
|
||||
this.label17.Name = "label17";
|
||||
//
|
||||
// label19
|
||||
//
|
||||
resources.ApplyResources(this.label19, "label19");
|
||||
this.label19.Name = "label19";
|
||||
//
|
||||
// btn_SaveLyout
|
||||
//
|
||||
resources.ApplyResources(this.btn_SaveLyout, "btn_SaveLyout");
|
||||
this.btn_SaveLyout.Name = "btn_SaveLyout";
|
||||
this.btn_SaveLyout.UseVisualStyleBackColor = true;
|
||||
this.btn_SaveLyout.Click += new System.EventHandler(this.btn_SaveLyout_Click);
|
||||
//
|
||||
// label49
|
||||
//
|
||||
resources.ApplyResources(this.label49, "label49");
|
||||
this.label49.Name = "label49";
|
||||
//
|
||||
// timer_ShowStation
|
||||
//
|
||||
this.timer_ShowStation.Interval = 2000;
|
||||
this.timer_ShowStation.Tick += new System.EventHandler(this.timer_ShowStation_Tick);
|
||||
//
|
||||
// timer_ShowAlarm
|
||||
//
|
||||
this.timer_ShowAlarm.Enabled = true;
|
||||
this.timer_ShowAlarm.Interval = 1000;
|
||||
this.timer_ShowAlarm.Tick += new System.EventHandler(this.timer_ShowAlarm_Tick);
|
||||
//
|
||||
// timer_ThreadPool
|
||||
//
|
||||
this.timer_ThreadPool.Enabled = true;
|
||||
this.timer_ThreadPool.Interval = 1000;
|
||||
this.timer_ThreadPool.Tick += new System.EventHandler(this.timer_ThreadPool_Tick);
|
||||
//
|
||||
// timer_ShowCount
|
||||
//
|
||||
this.timer_ShowCount.Enabled = true;
|
||||
this.timer_ShowCount.Interval = 500;
|
||||
this.timer_ShowCount.Tick += new System.EventHandler(this.timer_ShowCount_Tick);
|
||||
//
|
||||
// MesWorkForm
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.panel_Lyout);
|
||||
this.Controls.Add(this.panel_Menu);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "MesWorkForm";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MesWorkForm_FormClosing);
|
||||
this.Load += new System.EventHandler(this.MesWorkForm_Load);
|
||||
this.panel_Menu.ResumeLayout(false);
|
||||
this.panel_Menu.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pb_OnLine_Sql)).EndInit();
|
||||
this.panel_Lyout.ResumeLayout(false);
|
||||
this.panel_Lyout.PerformLayout();
|
||||
this.panel9.ResumeLayout(false);
|
||||
this.panel9.PerformLayout();
|
||||
this.panel7.ResumeLayout(false);
|
||||
this.panel7.PerformLayout();
|
||||
this.panel8.ResumeLayout(false);
|
||||
this.panel8.PerformLayout();
|
||||
this.groupBox1.ResumeLayout(false);
|
||||
this.groupBox1.PerformLayout();
|
||||
this.panel5.ResumeLayout(false);
|
||||
this.panel5.PerformLayout();
|
||||
this.panel2.ResumeLayout(false);
|
||||
this.panel2.PerformLayout();
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private Panel panel_Menu;
|
||||
private Label label_ExitSys;
|
||||
private Label label_Monitor_PLC;
|
||||
private Label label_Test_RW;
|
||||
private PictureBox pb_OnLine_Sql;
|
||||
private Timer timer_OnLine_Show;
|
||||
private Panel panel_Lyout;
|
||||
private Label label_RunSort;
|
||||
private Label btn_QueryLog;
|
||||
private Label label49;
|
||||
private Button btn_SaveLyout;
|
||||
private Panel panel4;
|
||||
private Panel panel3;
|
||||
private Panel panel2;
|
||||
private Panel panel1;
|
||||
private Panel panel5;
|
||||
private Label label_ParamConfig;
|
||||
private GroupBox groupBox1;
|
||||
private Label label6;
|
||||
private Label label5;
|
||||
private Label label4;
|
||||
private Label label3;
|
||||
private Label label2;
|
||||
private Panel panel_OffLine;
|
||||
private Panel panel_Alarm;
|
||||
private Panel panel_Manual;
|
||||
private Panel panel_Running;
|
||||
private Panel panel_Auto;
|
||||
private Panel panel7;
|
||||
private Label label8;
|
||||
private Panel panel8;
|
||||
private Label label9;
|
||||
private Timer timer_ShowStation;
|
||||
private Timer timer_ShowAlarm;
|
||||
private Panel panel9;
|
||||
private Label label1;
|
||||
private Label label10;
|
||||
private Label label15;
|
||||
private Label label16;
|
||||
private Label label17;
|
||||
private Label label19;
|
||||
private Label label18;
|
||||
private Label label14;
|
||||
private Label label_StationManage;
|
||||
private Label label_PlanManage;
|
||||
private Label label_SqlConn;
|
||||
private Label label_01;
|
||||
private Timer timer_ThreadPool;
|
||||
private Label label41;
|
||||
private Label label_Count;
|
||||
private Timer timer_ShowCount;
|
||||
}
|
||||
}
|
||||
|
||||
59
SCADA/DC_A95_Page.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
namespace MesWork
|
||||
{
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
|
||||
public partial class MesWorkForm
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public MesWorkForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
CheckForIllegalCrossThreadCalls = false;
|
||||
//this.WindowState = FormWindowState.Minimized;
|
||||
|
||||
panel_Auto.BackColor = color_Yellow;
|
||||
panel_Running.BackColor = color_Green;
|
||||
panel_Manual.BackColor = color_Faw;
|
||||
panel_Alarm.BackColor = color_Red;
|
||||
panel_OffLine.BackColor = color_Bad;
|
||||
|
||||
if (NotHandlerSignal == "1")
|
||||
{
|
||||
MessageBox.Show("程序不处理信号!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void MesWorkForm_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
|
||||
{
|
||||
e.Cancel = true;
|
||||
}
|
||||
|
||||
private void timer_ThreadPool_Tick(object sender, System.EventArgs e)
|
||||
{
|
||||
timer_ThreadPool.Enabled = false;
|
||||
ThreadPool.GetAvailableThreads(out int WorkThreadCount, out int CompletionThreadcCont);//获取剩余的可用线程
|
||||
label_01.Text = $"Work = {WorkThreadCount} / {workerThreads}\r\nCompl = {CompletionThreadcCont} / {completionPortThreads}";
|
||||
timer_ThreadPool.Enabled = true;
|
||||
}
|
||||
|
||||
private void MesWorkForm_Load(object sender, System.EventArgs e)
|
||||
{
|
||||
string Id_TagCf = "41236";
|
||||
MesWork_QC_upload.SyncTask_UploadMeasureData(Id_TagCf);
|
||||
|
||||
}
|
||||
|
||||
private void timer_ShowCount_Tick(object sender, System.EventArgs e)
|
||||
{
|
||||
timer_ShowCount.Enabled = false;
|
||||
label_Count.Text = MesWorkForm.taskSql.Count.ToString();
|
||||
timer_ShowCount.Enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1552
SCADA/DC_A95_Page.resx
Normal file
139
SCADA/Init/Hanger.cs
Normal file
@@ -0,0 +1,139 @@
|
||||
using MesToMs;
|
||||
using MesWork;
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DC_A95
|
||||
{
|
||||
/// <summary>
|
||||
/// 钩子函数
|
||||
/// </summary>
|
||||
public class Hanger
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 加载界面显示的信号值的初始值
|
||||
/// </summary>
|
||||
public static void Load_Station_PageShowSignal()
|
||||
{
|
||||
foreach (DictionaryEntry item in MesWorkForm.ht_Station_Label)
|
||||
{
|
||||
var stationName = item.Key.ToString();
|
||||
|
||||
MesWorkForm.ht_Signal__Station_Auto.Add(stationName, false);
|
||||
MesWorkForm.ht_Signal__Station_Running.Add(stationName, false);
|
||||
MesWorkForm.ht_Signal__Station_Manual.Add(stationName, false);
|
||||
MesWorkForm.ht_Signal__Station_Alarm.Add(stationName, false);
|
||||
if (!MesWorkForm.ht_Signal__Station_OffLine.ContainsKey(stationName))
|
||||
{
|
||||
MesWorkForm.ht_Signal__Station_OffLine.Add(stationName, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static void Load_Table()
|
||||
{
|
||||
//查询出“全部原始基本数据列表”
|
||||
var drs = MesWork.PlcLinkForm.dt_BasicData.Select($"是否启用 = 1 and 变量类型代码=101 or 变量类型代码 = 102 or 变量类型代码 = 105 and 监控属性代码 = '{DataLinkMesWork.ApplicationConfig.MES_Code.ToString()}'");
|
||||
if (drs.Length > 1)
|
||||
{
|
||||
MesWork_QC.BasicDataTagValue = MesWork.PlcLinkForm.dt_BasicData.Select($"是否启用 = 1 and 变量类型代码=101 or 变量类型代码 = 102 or 变量类型代码 = 105 and 监控属性代码 = '{DataLinkMesWork.ApplicationConfig.MES_Code.ToString()}'").CopyToDataTable<DataRow>();
|
||||
if (MesWork_QC.BasicDataTagValue.Columns.Contains("上限值"))
|
||||
{
|
||||
MesWork_QC.BasicDataTagValue.Columns["上限值"].ColumnName = "值上限";
|
||||
}
|
||||
if (MesWork_QC.BasicDataTagValue.Columns.Contains("下限值"))
|
||||
{
|
||||
MesWork_QC.BasicDataTagValue.Columns["下限值"].ColumnName = "值下限";
|
||||
}
|
||||
}
|
||||
|
||||
// BasicDataTagValue = MesWork.PlcLinkForm.dt_BasicData.Select($"是否启用 = 1 and 监控属性代码 = '{DataLinkMesWork.ApplicationConfig.MES_Code.ToString()}'").CopyToDataTable<DataRow>();
|
||||
//查询出“MES_基本数据_测量范围”
|
||||
MesWork_QC.BasicDataTagValueUpDown = MesWork.PlcLinkForm.dt_BasicData;
|
||||
if (MesWork_QC.BasicDataTagValueUpDown.Columns.Contains("上限值"))
|
||||
{
|
||||
MesWork_QC.BasicDataTagValueUpDown.Columns["上限值"].ColumnName = "值上限";
|
||||
}
|
||||
if (MesWork_QC.BasicDataTagValueUpDown.Columns.Contains("下限值"))
|
||||
{
|
||||
MesWork_QC.BasicDataTagValueUpDown.Columns["下限值"].ColumnName = "值下限";
|
||||
}
|
||||
// 模拟时,写入质量数据
|
||||
InitBasicDataTagValue();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 模拟时,写入质量数据
|
||||
/// </summary>
|
||||
private static void InitBasicDataTagValue()
|
||||
{
|
||||
if (MesWorkForm.IsDemoMesServer != 1) return;
|
||||
string tagID;
|
||||
double tagValue;
|
||||
//写工位总合格标志 变量类型代码=21
|
||||
for (int i = 0; i < MesWork.PlcLinkForm.dt_BasicData.Rows.Count; i++)
|
||||
{
|
||||
if (MesWork.PlcLinkForm.dt_BasicData.Rows[i]["变量类型代码"].ToString() == "21")
|
||||
{
|
||||
tagID = MesWork.PlcLinkForm.dt_BasicData.Rows[i]["TagID"].ToString();
|
||||
MesWorkForm.WritePLC(tagID, 1);
|
||||
}
|
||||
|
||||
}
|
||||
if (MesWork_QC.BasicDataTagValue != null)
|
||||
{
|
||||
for (int i = 0; i < MesWork_QC.BasicDataTagValue.Rows.Count; i++)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
switch (Convert.ToInt32(MesWork_QC.BasicDataTagValue.Rows[i]["变量特点"]))
|
||||
{
|
||||
|
||||
case 7:
|
||||
tagID = MesWork_QC.BasicDataTagValue.Rows[i]["TagID"].ToString();
|
||||
MesWorkForm.WritePLC(tagID, 1);
|
||||
break;
|
||||
case 6:
|
||||
tagID = MesWork_QC.BasicDataTagValue.Rows[i]["TagID"].ToString();
|
||||
tagValue = Convert.ToDouble(MesWork_QC.BasicDataTagValue.Rows[i]["列位置"]) * 100
|
||||
+ Convert.ToDouble(MesWork_QC.BasicDataTagValue.Rows[i]["变量排序"]) / 100;
|
||||
MesWorkForm.WritePLC(tagID, tagValue);
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
70
SCADA/MES_A95/MIS_Device.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
using ConverterBytesAndStruct;
|
||||
using DC_A95;
|
||||
using OpcBasic;
|
||||
using OpcData;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using SystemFramework;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备状态的处理
|
||||
/// </summary>
|
||||
public partial class MesWorkForm
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 设备状态的处理
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
private void MIS_Device(object e)
|
||||
{
|
||||
|
||||
var eState = (OpcData.PlcStateEvetnArgs)e;
|
||||
var ip = eState.IP.ToString();
|
||||
var onLine = eState.OnLine;
|
||||
|
||||
try
|
||||
{
|
||||
if (ht_IP_OnLine.ContainsKey(ip))
|
||||
{
|
||||
ht_IP_OnLine[ip] = onLine;
|
||||
}
|
||||
else
|
||||
{
|
||||
ht_IP_OnLine.Add(ip, onLine);
|
||||
}
|
||||
}
|
||||
catch (Exception err){ }
|
||||
try
|
||||
{
|
||||
if (G_DC_IP_OP.ContainsKey(ip))
|
||||
{
|
||||
var listOp = G_DC_IP_OP[ip];
|
||||
foreach (var op in listOp)
|
||||
{
|
||||
ht_Signal__Station_OffLine[op] = onLine;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception err){ }
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
320
SCADA/MES_A95/MIS_Funtion.cs
Normal file
@@ -0,0 +1,320 @@
|
||||
using DataLinkMesWork;
|
||||
using DC_A95;
|
||||
using SYNC_SAP_MES;
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
/// 处理MIS逻辑
|
||||
/// </summary>
|
||||
public partial class MesWorkForm
|
||||
{
|
||||
/// <summary>
|
||||
/// 处理MIS逻辑
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
private void MIS_Funtion(object e)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (NotHandlerSignal == "1")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var msgEvent = (OpcData.CustomeEvetnArgs)e;
|
||||
if (msgEvent.TagValue == null) return;
|
||||
|
||||
var tagID = msgEvent.TagID.ToString();
|
||||
var opCode = msgEvent.OpName.ToString();//工位号
|
||||
var tagTypeCodeID = (int)msgEvent.TagTypeCodeID;
|
||||
var tagTypeID = (EnumTagTypeID)msgEvent.TagTypeID;
|
||||
var isFirstValue = msgEvent.IsFirstValue.ToString().ToLower();
|
||||
string tagValue;
|
||||
switch (tagTypeID)
|
||||
{
|
||||
case EnumTagTypeID.BOOL:
|
||||
tagValue = (Convert.ToInt32(msgEvent.TagValue)).ToString();
|
||||
break;
|
||||
default:
|
||||
tagValue = msgEvent.TagValue.ToString();
|
||||
break;
|
||||
}
|
||||
|
||||
if (ValueT(isFirstValue))
|
||||
{
|
||||
//不处理第一次变化的值
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
15 系统健康
|
||||
5 传递机型(AMS)
|
||||
66 允许PLC工作(AMS)
|
||||
34 发动机上线报警标志
|
||||
20 AMS保存完数据(AMS)
|
||||
112 发动机上线报警代码
|
||||
73 机型标志(AMS)
|
||||
74 变速箱总成编号(AMS)
|
||||
75 产品型号(AMS)
|
||||
116 缸体打印码
|
||||
117 订单号
|
||||
|
||||
14 系统健康(PLC)
|
||||
2 工件到位(PLC)
|
||||
43 申请零件编号(PLC)
|
||||
44 传递机型(PLC)
|
||||
63 禁用MES(PLC)
|
||||
9 机型标志(PLC)
|
||||
10 变速箱总成编号(PLC)
|
||||
11 产品型号(PLC)
|
||||
80 托盘编号(PLC)
|
||||
22 0空托盘,1合格件,2不合格件(PLC)
|
||||
19 质量数据可以读数据(PLC)
|
||||
21 质量数据工位合格标志(PLC)
|
||||
23 0正常件,1返修件(PLC)
|
||||
39 缸体打印码(PLC)
|
||||
40 订单号(PLC)
|
||||
120 上线缸体码(PLC)
|
||||
*/
|
||||
|
||||
switch (tagTypeCodeID)
|
||||
{
|
||||
case 2://工件到位
|
||||
if (tagValue == "1")
|
||||
{
|
||||
WritePLC_IF(73, opCode, 0);//机型ID
|
||||
WritePLC_IF(74, opCode, "");//发动机流水号(总成编号)
|
||||
WritePLC_IF(75, opCode, "");//产品型号,机型号
|
||||
WritePLC_IF(116, opCode, "");//缸体码
|
||||
WritePLC_IF(117, opCode, "");//订单号
|
||||
WritePLC_IF(118, opCode, 0); // 打印位置
|
||||
MesWorkForm.WritePLC_IF(112, opCode, 0); // 清空报警点位
|
||||
MesWorkForm.WritePLC_IF(34, opCode, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
MesWorkForm.WritePLC_IF(112, opCode, 0); // 清空报警点位
|
||||
MesWorkForm.WritePLC_IF(34, opCode, false);
|
||||
WritePLC_IF(20, opCode, false); // 保存完成
|
||||
}
|
||||
break;
|
||||
case 14://心跳
|
||||
WritePLC_IF(15, opCode, tagValue);
|
||||
break;
|
||||
case 19://允许保存
|
||||
if (tagValue == "1")
|
||||
{
|
||||
var sortNo_PLC = ReadPLC(9, opCode).ToString();
|
||||
var engineNo_PLC = ReadPLC(10, opCode).ToString();
|
||||
var sortName_PLC = ReadPLC(11, opCode).ToString();
|
||||
var partCode_PLC = ReadPLC(39, opCode).ToString();
|
||||
var orderNo_PLC = ReadPLC(40, opCode).ToString();
|
||||
|
||||
var palletNo_PLC = Convert.ToInt32(ReadPLC(80, opCode).ToString());
|
||||
|
||||
MesWork_QC.ProcessData_PartOff(opCode, engineNo_PLC, palletNo_PLC, sortNo_PLC);
|
||||
MesWork_QC.MesRead(opCode, tagValue, tagID);
|
||||
|
||||
|
||||
WritePLC_IF(20, opCode, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
WritePLC_IF(5, opCode, false);
|
||||
WritePLC_IF(66, opCode, false);
|
||||
WritePLC_IF(20, opCode, false);
|
||||
}
|
||||
break;
|
||||
case 43://申请上线
|
||||
if (tagValue == "1")
|
||||
{
|
||||
//1、是否有下发的订单
|
||||
//2、是否申请上线
|
||||
//3、是否满足上线条件
|
||||
//4、缸体码是否符合生产机型
|
||||
|
||||
if (!OPCodes_LineSet.Split(',').Contains(opCode))//非线首
|
||||
{
|
||||
return;
|
||||
}
|
||||
//SyncFunc_From_SAP.SyncDataOperationTask("手动同步");
|
||||
PLC_R.Read_LineSet(opCode, out string partCode, out int palletNo);
|
||||
ExecuteDB.Select_OnLine_Plan_Engine(opCode, partCode, palletNo
|
||||
, out string engineNo, out int sortNo, out string sortName, out string printCode, out string orderNo
|
||||
, out int errCode, out string errMessage, out int printPosition);
|
||||
|
||||
//*******************在此处验证***************************
|
||||
//按规则拆解partCode(缸体二维码),再获取BOM,验证该工位物料中是否存在该型号的缸体
|
||||
//var res_SortType_FromBOM = CALL_Interfalce_WebAPI.Get_BOMs_ByWebAPI(MesWorkForm.LineID_Product, engineNo);
|
||||
|
||||
//**********************************************
|
||||
|
||||
//上线报警代码:errCode
|
||||
//0 - 无错误
|
||||
//1 - PLC逻辑错误,未申请上线
|
||||
//2 - 没有可用订单
|
||||
//3 - 扫描缸体码为空或格式错误
|
||||
//4 - 缸体机型与生产机型不匹配
|
||||
//5 - AMS写入信息与RFID信息验证不一致
|
||||
//255 - 未知错误
|
||||
if (errCode != 0)//获取计划失败
|
||||
{
|
||||
PLC_W.Write_LineSetAlarm(opCode, errCode);
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.OnLine, opCode, $"发动机上线申请错误:({errCode}){errMessage}");
|
||||
}
|
||||
else
|
||||
{
|
||||
// 复位报警变量
|
||||
//112 发动机上线报警代码
|
||||
//34 发动机上线报警标志
|
||||
MesWorkForm.WritePLC_IF(112, opCode, 0);
|
||||
MesWorkForm.WritePLC_IF(34, opCode, false);
|
||||
|
||||
WritePLC_IF(73, opCode, sortNo);//机型ID
|
||||
WritePLC_IF(74, opCode, engineNo);//发动机流水号(总成编号)
|
||||
WritePLC_IF(75, opCode, sortName);//产品型号,机型号
|
||||
WritePLC_IF(116, opCode, printCode);//缸体码
|
||||
WritePLC_IF(117, opCode, orderNo);//订单号
|
||||
WritePLC_IF(118, opCode, printPosition); // 打印位置
|
||||
WritePLC_IF(5, opCode, true);
|
||||
|
||||
//【PLC读取数据到RFID中,测试用】
|
||||
//WritePLC_IF(9, opCode, sortNo);//机型ID
|
||||
//WritePLC_IF(10, opCode, engineNo);//发动机流水号(总成编号)
|
||||
//WritePLC_IF(11, opCode, sortName);//产品型号,机型号
|
||||
//WritePLC_IF(39, opCode, partCode);//缸体码
|
||||
//WritePLC_IF(40, opCode, orderNo);//订单号
|
||||
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.OnLine, opCode, $"上线数据写入成功:engineNo={engineNo};sortNo={sortNo};sortName={sortName};printCode={printCode};orderNo={orderNo}");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
WritePLC_IF(5, opCode, false);
|
||||
}
|
||||
break;
|
||||
case 44://传递机型
|
||||
if (tagValue == "1")
|
||||
{
|
||||
var sortNo_PLC = ReadPLC(9, opCode).ToString();
|
||||
var engineNo_PLC = ReadPLC(10, opCode).ToString();
|
||||
var sortName_PLC = ReadPLC(11, opCode).ToString();
|
||||
var partCode_PLC = ReadPLC(39, opCode).ToString();
|
||||
var orderNo_PLC = ReadPLC(40, opCode).ToString();
|
||||
|
||||
var palletNo_PLC = Convert.ToInt32(ReadPLC(80, opCode).ToString());
|
||||
|
||||
if (OPCodes_LineSet.Split(',').Contains(opCode))//线首
|
||||
{
|
||||
var sortNo = ReadPLC(73, opCode).ToString();
|
||||
var engineNo = ReadPLC(74, opCode).ToString();
|
||||
var sortName = ReadPLC(75, opCode).ToString();
|
||||
var partCode = ReadPLC(116, opCode).ToString();
|
||||
var orderNo = ReadPLC(117, opCode).ToString();
|
||||
|
||||
var str = $"{sortNo}|{engineNo}|{sortName}|{partCode}|{orderNo}";
|
||||
var str_PLC = $"{sortNo_PLC}|{engineNo_PLC}|{sortName_PLC}|{partCode_PLC}|{orderNo_PLC}";
|
||||
|
||||
if (str != str_PLC)
|
||||
{
|
||||
var errCode = (int)Type_AlarmOnline.Err_RW_Diff;
|
||||
PLC_W.Write_LineSetAlarm(opCode, errCode);
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.Alarm, opCode, $"发动机上线信息读写校验不一致:({errCode})W:{str},R:{str_PLC}");
|
||||
return;
|
||||
}
|
||||
//上线验证完成,消耗计划
|
||||
ExecuteDB.Update_ExcutePlan_LineSetOK(opCode, engineNo);
|
||||
WritePLC_IF(66, opCode, true);
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.OnLine, opCode, $"【{tagTypeCodeID}】上线下载数据验证成功,流水号消耗成功!opCode={opCode};engineNo={engineNo}");
|
||||
|
||||
}
|
||||
//保存进站数据
|
||||
MesWork_QC.ProcessData_PartOn(opCode, engineNo_PLC, palletNo_PLC, sortNo_PLC);
|
||||
WritePLC_IF(66, opCode, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
WritePLC_IF(66, opCode, false);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.Alarm, "", $"MIS_Funtion报错!,,{err.Message}+{err.StackTrace}");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 数据库记录信号变化
|
||||
/// </summary>
|
||||
/// <param name="msg"></param>
|
||||
private void TagTypeCodeID_TagDataOnChange(object msgEvent)
|
||||
{
|
||||
try
|
||||
{
|
||||
OpcData.CustomeEvetnArgs e = (OpcData.CustomeEvetnArgs)msgEvent;
|
||||
|
||||
string tagValue;
|
||||
if (e.TagValue == null) return;
|
||||
|
||||
switch (e.TagValue.ToString().ToLower())
|
||||
{
|
||||
case "1":
|
||||
case "true":
|
||||
tagValue = "1";
|
||||
break;
|
||||
default:
|
||||
tagValue = "0";
|
||||
break;
|
||||
}
|
||||
|
||||
string TagTypeCodeID;
|
||||
string opName;
|
||||
string TagID;
|
||||
string TagValue;
|
||||
DateTime arrivedTime;
|
||||
DateTime leavedTime;
|
||||
int TimeDiff;
|
||||
opName = e.OpName.ToString();
|
||||
TagValue = tagValue;
|
||||
TagTypeCodeID = e.TagTypeCodeID.ToString();
|
||||
TagID = e.TagID.ToString();
|
||||
leavedTime = Convert.ToDateTime(e.TimeStamp);
|
||||
arrivedTime = Convert.ToDateTime(e.TimeStampBefore);
|
||||
TimeDiff = Convert.ToInt32(e.TagKeepTime);
|
||||
|
||||
if (TagTypeCodeID != "14" && TagTypeCodeID != "15")
|
||||
{
|
||||
string procedureName;
|
||||
procedureName = "测量数据设备状态日志_增加数据";
|
||||
System.Data.SqlClient.SqlParameter[] thisParms = new System.Data.SqlClient.SqlParameter[7];
|
||||
thisParms[0] = new System.Data.SqlClient.SqlParameter("@工位号", opName);
|
||||
thisParms[1] = new System.Data.SqlClient.SqlParameter("@信号类型代码", TagTypeCodeID);
|
||||
thisParms[2] = new System.Data.SqlClient.SqlParameter("@TagID", TagID);
|
||||
thisParms[3] = new System.Data.SqlClient.SqlParameter("@TagValue", TagValue);
|
||||
thisParms[4] = new System.Data.SqlClient.SqlParameter("@到达时间", arrivedTime);
|
||||
thisParms[5] = new System.Data.SqlClient.SqlParameter("@离开时间", leavedTime);
|
||||
thisParms[6] = new System.Data.SqlClient.SqlParameter("@在线时间", TimeDiff);
|
||||
DataAccess.ExecuteStoredProcedure(procedureName, ref thisParms);
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
132
SCADA/MES_A95/MIS_ImmediateParam.cs
Normal file
@@ -0,0 +1,132 @@
|
||||
using DC_A95;
|
||||
using Opc.Ua;
|
||||
using OpcBasic;
|
||||
using Rhino.DocObjects;
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using SystemFramework;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
/// 即时数据的处理
|
||||
/// </summary>
|
||||
public partial class MesWorkForm
|
||||
{
|
||||
/// <summary>
|
||||
/// 即时数据的处理
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
private void MIS_ImmediateParam(object e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var msgEvent = (OpcData.CustomeEvetnArgs)e;
|
||||
if (msgEvent.TagValue == null) return;
|
||||
|
||||
var tagID = msgEvent.TagID.ToString();
|
||||
var opName = msgEvent.OpName.ToString();
|
||||
var tagTypeCodeID = (int)msgEvent.TagTypeCodeID;
|
||||
var tagTypeID = (EnumTagTypeID)msgEvent.TagTypeID;
|
||||
// var TagTypeCodeID = (EnumTagTypeCodeID)tagTypeCodeID;
|
||||
string tagValue;
|
||||
switch (tagTypeID)
|
||||
{
|
||||
case EnumTagTypeID.BOOL:
|
||||
tagValue = (Convert.ToInt32(msgEvent.TagValue)).ToString();
|
||||
break;
|
||||
default:
|
||||
tagValue = msgEvent.TagValue.ToString();
|
||||
break;
|
||||
}
|
||||
|
||||
switch (tagTypeCodeID)
|
||||
{
|
||||
case 100000://自动模式
|
||||
case 100001://运行中
|
||||
case 100002://手动模式
|
||||
case 100004://故障
|
||||
case 100005://警告
|
||||
case 100006://堵料
|
||||
case 100007://缺料
|
||||
ExecuteDB.Update_ImmediateParam(opName, tagTypeCodeID, tagValue, tagID);
|
||||
|
||||
if (tagTypeCodeID == 100000)
|
||||
{
|
||||
ht_Signal__Station_Auto[opName] = tagValue;
|
||||
}
|
||||
if (tagTypeCodeID == 100001)
|
||||
{
|
||||
ht_Signal__Station_Running[opName] = tagValue;
|
||||
}
|
||||
if (tagTypeCodeID == 100002)
|
||||
{
|
||||
ht_Signal__Station_Manual[opName] = tagValue;
|
||||
}
|
||||
if (tagTypeCodeID == 100004)
|
||||
{
|
||||
ht_Signal__Station_Alarm[opName] = tagValue;
|
||||
}
|
||||
|
||||
break;
|
||||
case 200001://工件离开,这个时候复位信号
|
||||
if (tagValue == "1")
|
||||
{
|
||||
/*
|
||||
//100060 当前循环时间
|
||||
//100080 上一工件的循环时间
|
||||
//100100 平均循环时间
|
||||
//100120 总计数(当前班次)
|
||||
//100160 合格工件计数(总计)
|
||||
//100200 不合格工件计数(总计)
|
||||
*/
|
||||
var list = new List<Int32>() { 100060, 100080, 100100, 100120, 100160, 100200 };
|
||||
foreach (var _TagTypeCodeID in list)
|
||||
{
|
||||
if (int.Parse(opName.Replace("OP", "")) > 4000 && int.Parse(opName.Replace("OP", "")) < 4100)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
var _Value = ReadPLC(_TagTypeCodeID, opName).ToString();
|
||||
ExecuteDB.Update_ImmediateParam(opName, _TagTypeCodeID, _Value, $"{opName}_{_TagTypeCodeID}");
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
catch (Exception err)
|
||||
{ }
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
903
SCADA/MES_A95/MIS_Save_QC.cs
Normal file
@@ -0,0 +1,903 @@
|
||||
using BasicData;
|
||||
using ConverterBytesAndStruct;
|
||||
using DataLinkMesWork;
|
||||
using DC_A95;
|
||||
using DC_A95.MES_A95;
|
||||
using ExternalDataSync;
|
||||
using HslCommunication.WebSocket;
|
||||
using Newtonsoft.Json;
|
||||
using NPOI.HSSF.Record.Chart;
|
||||
using NPOI.OpenXmlFormats.Dml.Diagram;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using NPOI.Util;
|
||||
using Opc.Ua;
|
||||
using OpcBasic;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Reflection.Emit;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web.Script.Serialization;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using SystemFramework;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
/// 质量数据的拆解和存储
|
||||
/// </summary>
|
||||
public class MesWork_QC
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 全部数据列表
|
||||
/// </summary>
|
||||
public static DataTable BasicDataTagValue;
|
||||
/// <summary>
|
||||
/// MES_基本数据_测量范围
|
||||
/// </summary>
|
||||
public static DataTable BasicDataTagValueUpDown;
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// MOM接口:保存过点数据(进站)
|
||||
/// </summary>
|
||||
/// <param name="opCode">工位名称</param>
|
||||
/// <param name="DataFlag">1、进站,2、离站</param>
|
||||
public static void ProcessData_PartOn(string opCode, string engineNo,int palletNo,string sortNo_PLC)
|
||||
{
|
||||
MES_QueryCache.Get_ProductPlan_ByEngineNo(engineNo, out string engineTypeNo, out string orderNum, out int orderNo, out int orderSum, out int if_codetest, out int if_hottest);
|
||||
MES_QueryCache.Get_ProductProcess_ByOP(opCode, out string processCode, out string processName, out string opName, out string AreaName);
|
||||
|
||||
int QualityOk = 0; //合格标志:1-合格;2-不合格
|
||||
int PassStatus = 1; //过站状态:1-正常工作;2-因为前序不合格没工作放行过去;3-工位被屏蔽
|
||||
var Operator = "";
|
||||
|
||||
var optFlag = OptFlag.AddNew;
|
||||
var passAttr = PassAttr.OPStart;
|
||||
|
||||
var upOrDown = -1;
|
||||
|
||||
|
||||
//保存过点数据
|
||||
ExecuteDB.Save_StationPass_Info(engineNo, engineTypeNo, palletNo, orderNum, orderNo, orderSum, processCode, processName,
|
||||
opCode, opName, passAttr, Operator, QualityOk, PassStatus, upOrDown, optFlag, sortNo_PLC);
|
||||
|
||||
}
|
||||
|
||||
public static void ProcessData_PartOff(string opCode, string engineNo, int palletNo,string sortNo_PLC)
|
||||
{
|
||||
|
||||
MES_QueryCache.Get_ProductPlan_ByEngineNo(engineNo, out string engineTypeNo, out string orderNum, out int orderNo, out int orderSum, out int if_codetest, out int if_hottest);
|
||||
MES_QueryCache.Get_ProductProcess_ByOP(opCode, out string processCode, out string processName, out string opName, out string AreaName);
|
||||
|
||||
var Operator = "";
|
||||
var QualityOk = 1;
|
||||
var PassStatus = 1;
|
||||
var optFlag = OptFlag.AddNew;
|
||||
var passAttr = PassAttr.OPEnd;
|
||||
var upOrDown = 3;
|
||||
//离站信息保存
|
||||
ExecuteDB.Save_StationPass_Info(engineNo, engineTypeNo, palletNo, orderNum, orderNo, orderSum, processCode, processName,
|
||||
opCode, opName, passAttr, Operator, QualityOk, PassStatus, upOrDown, optFlag, sortNo_PLC);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 允许保存(针对半自动和手动压装工位)
|
||||
/// </summary>
|
||||
/// <param name="OpName"></param>
|
||||
/// <param name="tagValue"></param>
|
||||
public static int MesRead(string opName, string tagValue, string tagid, bool isCheck = false)
|
||||
{
|
||||
return SaveQualityData(opName, Convert.ToInt32(tagValue), tagid, isCheck);
|
||||
}
|
||||
|
||||
//public static string GetRealTimeQualityData(string opName)
|
||||
//{
|
||||
// string message = "";
|
||||
// DataTable dt1 = new DataTable();
|
||||
// DataTable dt_WWW;
|
||||
// DataTable dt_WWW_Copy1;
|
||||
// DataTable dt_WWW_Copy2;
|
||||
// Hashtable valueList;
|
||||
// try
|
||||
// {
|
||||
// var tagValues = PLC_R.ReadPLC_OpName(opName);
|
||||
// //过滤出来质量数据 //获得带合格标志的质量数据
|
||||
// valueList = ReadPLC_OpName_Qd(tagValues);
|
||||
// //获得带基本信息的质量数据表
|
||||
// GetQualityDataTable(valueList, opName, BasicDataTagValue, BasicDataTagValueUpDown, out dt_WWW);
|
||||
|
||||
// dt_WWW_Copy1 = dt_WWW.Copy().Select("变量排序 = 1").CopyToDataTable();
|
||||
// DataView dv1 = dt_WWW_Copy1.DefaultView;
|
||||
// dv1.Sort = "列位置 DESC";
|
||||
// dt_WWW_Copy1 = dv1.ToTable();
|
||||
|
||||
// dt_WWW_Copy2 = dt_WWW.Copy().Select("变量排序 = 2").CopyToDataTable();
|
||||
// DataView dv2 = dt_WWW_Copy2.DefaultView;
|
||||
// dv2.Sort = "列位置 DESC";
|
||||
// dt_WWW_Copy2 = dv2.ToTable();
|
||||
|
||||
// dt1.Columns.Add("列位置", System.Type.GetType("System.String"));
|
||||
// dt1.Columns.Add("测量项目1", System.Type.GetType("System.String"));
|
||||
// dt1.Columns.Add("测量项目2", System.Type.GetType("System.String"));
|
||||
// dt1.Columns.Add("合格标志", System.Type.GetType("System.String"));
|
||||
// dt1.Columns.Add("名称", System.Type.GetType("System.String"));
|
||||
|
||||
// for (int i = 0; i < dt_WWW_Copy1.Rows.Count; i++)
|
||||
// {
|
||||
// if (dt_WWW_Copy1.Rows[i]["TagValue"].ToString() != "0" || dt_WWW_Copy2.Rows[i]["TagValue"].ToString() != "0")
|
||||
// {
|
||||
// var dr = dt1.NewRow();
|
||||
// dr["列位置"] = dt_WWW_Copy1.Rows[i]["列位置"].ToString();
|
||||
// dr["测量项目1"] = dt_WWW_Copy1.Rows[i]["TagValue"].ToString();
|
||||
// dr["测量项目2"] = dt_WWW_Copy2.Rows[i]["TagValue"].ToString();
|
||||
// dr["合格标志"] = dt_WWW_Copy1.Rows[i]["IsGoodBad"].ToString();
|
||||
// dr["名称"] = dt_WWW_Copy1.Rows[i]["测量项目"].ToString();
|
||||
// dt1.Rows.Add(dr);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// catch (Exception err)
|
||||
// {
|
||||
// }
|
||||
// message = CreateJsonParameters(dt1);
|
||||
|
||||
// return message;
|
||||
//}
|
||||
|
||||
public static string CreateJsonParameters(DataTable dt)
|
||||
{
|
||||
StringBuilder JsonString = new StringBuilder();
|
||||
//Exception Handling
|
||||
|
||||
if (dt != null)
|
||||
{
|
||||
JsonString.Append("{ ");
|
||||
JsonString.Append("\"rows\":[ ");
|
||||
for (int i = 0; i < dt.Rows.Count; i++)
|
||||
{
|
||||
JsonString.Append("{ ");
|
||||
for (int j = 0; j < dt.Columns.Count; j++)
|
||||
{
|
||||
if (j < dt.Columns.Count - 1)
|
||||
{
|
||||
//if (dt.Rows[i][j] == DBNull.Value) continue;
|
||||
if (dt.Columns[j].DataType == typeof(bool))
|
||||
{
|
||||
JsonString.Append("\"" + dt.Columns[j].ColumnName.ToLower() + "\":" +
|
||||
dt.Rows[i][j].ToString().ToLower() + ",");
|
||||
}
|
||||
else if (dt.Columns[j].DataType == typeof(string))
|
||||
{
|
||||
JsonString.Append("\"" + dt.Columns[j].ColumnName.ToLower() + "\":" +
|
||||
ObjectToJson(dt.Rows[i][j]).ToString() + ",");
|
||||
//JsonString.Append("\"" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" +
|
||||
// dt.Rows[i][j].ToString().Replace("\"", "\\\"") + "\",");
|
||||
}
|
||||
else
|
||||
{
|
||||
JsonString.Append("\"" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" + dt.Rows[i][j] + "\",");
|
||||
}
|
||||
}
|
||||
else if (j == dt.Columns.Count - 1)
|
||||
{
|
||||
//if (dt.Rows[i][j] == DBNull.Value) continue;
|
||||
if (dt.Columns[j].DataType == typeof(bool))
|
||||
{
|
||||
JsonString.Append("\"" + dt.Columns[j].ColumnName.ToLower() + "\":" +
|
||||
dt.Rows[i][j].ToString().ToLower());
|
||||
}
|
||||
else if (dt.Columns[j].DataType == typeof(string))
|
||||
{
|
||||
JsonString.Append("\"" + dt.Columns[j].ColumnName.ToLower() + "\":" +
|
||||
ObjectToJson(dt.Rows[i][j]).ToString());
|
||||
//JsonString.Append("\"" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" +
|
||||
// dt.Rows[i][j].ToString().Replace("\"", "\\\"") + "\"");
|
||||
}
|
||||
else
|
||||
{
|
||||
JsonString.Append("\"" + dt.Columns[j].ColumnName.ToLower() + "\":" + "\"" + dt.Rows[i][j] + "\"");
|
||||
}
|
||||
}
|
||||
}
|
||||
/*end Of String*/
|
||||
if (i == dt.Rows.Count - 1)
|
||||
{
|
||||
JsonString.Append("} ");
|
||||
}
|
||||
else
|
||||
{
|
||||
JsonString.Append("}, ");
|
||||
}
|
||||
}
|
||||
JsonString.Append("]");
|
||||
|
||||
JsonString.Append("}");
|
||||
return JsonString.ToString().Replace("\n", "");
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
public static string ObjectToJson(object obj)
|
||||
{
|
||||
JavaScriptSerializer js = new JavaScriptSerializer();
|
||||
js.MaxJsonLength = Int32.MaxValue; // 定义JavaScriptSerializer接受字符串的最大长度 hdk 20180524
|
||||
try
|
||||
{
|
||||
return js.Serialize(obj);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
|
||||
throw new Exception(exception.Message);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 返回合格标志
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
/// <param name="tagValue"></param>
|
||||
/// <param name="tagID"></param>
|
||||
/// <returns></returns>
|
||||
private static int SaveQualityData(string opName, int tagValue, string tagID, bool isCheck = false)
|
||||
{
|
||||
int id_tagCF;
|
||||
int qualityMask = 0;
|
||||
int engineTypeID = 0;
|
||||
string engineID = "";
|
||||
string engineType = "";
|
||||
string partPallet = "";
|
||||
string orderFormPlc = "";
|
||||
DataTable dt_WWW;
|
||||
Hashtable valueList;
|
||||
try
|
||||
{
|
||||
var tagValues = PLC_R.ReadPLC_OpName(opName);
|
||||
//过滤出来质量数据 //获得带合格标志的质量数据
|
||||
valueList = ReadPLC_OpName_Qd(tagValues);
|
||||
|
||||
engineTypeID = Convert.ToInt32(GetValueByTagTypeCodeID(tagValues, Convert.ToInt32(EnumTagTypeCodeID.EngineTypeID)));
|
||||
engineID = GetValueByTagTypeCodeID(tagValues, Convert.ToInt32(EnumTagTypeCodeID.EngineID)).ToString();
|
||||
engineType = GetValueByTagTypeCodeID(tagValues, Convert.ToInt32(EnumTagTypeCodeID.EngineType)).ToString();
|
||||
orderFormPlc = GetValueByTagTypeCodeID(tagValues, Convert.ToInt32(EnumTagTypeCodeID.OrderFormPLC)).ToString();
|
||||
qualityMask = Convert.ToInt32(GetValueByTagTypeCodeID(tagValues, Convert.ToInt32(EnumTagTypeCodeID.QualityMask)));
|
||||
|
||||
//获得带基本信息的质量数据表
|
||||
GetQualityDataTable(valueList, opName, BasicDataTagValue,BasicDataTagValueUpDown, out dt_WWW);
|
||||
|
||||
DateTime lastupdatetime = DateTime.Now;
|
||||
//保存质量数
|
||||
BaseData_tagTable_QualityData_B5A_IndexInsert(engineID, tagID, engineType, engineTypeID, opName, qualityMask, partPallet, out id_tagCF);
|
||||
BaseData_tagTable_QualityData_B5A_Insert(id_tagCF, engineTypeID, engineType, engineID, opName, dt_WWW, isCheck);
|
||||
MesWork_QC_upload.SyncTask_UploadMeasureData(id_tagCF.ToString());
|
||||
|
||||
Material_Insert(opName, 1);
|
||||
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.Alarm, "", $"SaveQualityData 报错!,,{err.Message}+{err.StackTrace }");
|
||||
}
|
||||
return qualityMask;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// AMES_MES_装配数据_零部件追溯_增加
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
/// <param name="m_ConfirmOkGo"></param>
|
||||
/// <returns></returns>
|
||||
public static bool Material_Insert(string opName, int m_ConfirmOkGo)
|
||||
{
|
||||
string produceName = "MES_装配数据_零部件追溯_增加";
|
||||
SqlParameter[] thisParms = new SqlParameter[2];
|
||||
thisParms[0] = new System.Data.SqlClient.SqlParameter("@工位号", opName);
|
||||
thisParms[1] = new System.Data.SqlClient.SqlParameter("@放行方式", m_ConfirmOkGo);
|
||||
return DataAccess.ExecuteStoredProcedure(produceName, ref thisParms);
|
||||
}
|
||||
|
||||
|
||||
static public void GetQualityDataTable(Hashtable valuList, string opName, DataTable BasicDataTagValue, DataTable BasicDataTagValueUpDown, out DataTable dt)
|
||||
{
|
||||
//78 0:屏蔽MES;1:启用MES(必须MIS)
|
||||
//79 通过线体工位PC实现下达工位工作状态:工位有三种状态:在线、离线、屏蔽。在线;0正常状态,实现正常功能。1离线:2屏蔽。(必须MIS)
|
||||
//41 机体流向标志(1 BYTE):0普通工位:1:上线(发动机上线);2:下线(发动机下线);(必须PLC)
|
||||
//51 返修工位,修改后的数据MES将数据写入PLC ,MES通知PLC数据修改完成。(YN)
|
||||
//8 只要返修,必须由mes发送此信号,plc接收此信号后才能放行
|
||||
//(暂时没用)用于有扳手拧紧工位。通知设备螺钉拧紧完成。PC已经将数据保存到数据库中。(B5A)
|
||||
|
||||
QualityDataType qualityData;
|
||||
//是否有数据
|
||||
//bool isUsing;
|
||||
|
||||
DataRow dr;
|
||||
DataRow[] dr_WWW;
|
||||
//MES_基本数据_测量范围
|
||||
DataRow[] dr_WWW_UpDown;
|
||||
|
||||
dt = BuildDataTables_WWW();
|
||||
|
||||
//测量位置
|
||||
string shaftID;
|
||||
//测量项目
|
||||
string item;
|
||||
//测量单位
|
||||
string unit;
|
||||
//机体类型
|
||||
//原始数据中的机型代码
|
||||
int engineTypeID_Source;
|
||||
//上限值
|
||||
string tagValueUp;
|
||||
//下限值
|
||||
string tagValueDown;
|
||||
//理论值
|
||||
string tagValeNormal;
|
||||
//TagValue
|
||||
// 合格标志
|
||||
//string IsGoodBad;
|
||||
|
||||
foreach (DictionaryEntry valueItem in valuList) //ht为一个Hashtable实例
|
||||
{
|
||||
try
|
||||
{
|
||||
qualityData = (QualityDataType)valueItem.Value;
|
||||
|
||||
|
||||
//if ((qualityData.tagProperty != 2) || (qualityData.tagProperty != 6))
|
||||
//{
|
||||
// continue ;
|
||||
//}
|
||||
//if ((qualityData.tagProperty == 2) || (qualityData.tagProperty == 6))
|
||||
{
|
||||
//if (engineTypeID == 0)
|
||||
//{
|
||||
// engineTypeID = 1;
|
||||
//}
|
||||
dr_WWW = BasicDataTagValue.Select("TagID = " + qualityData.tagID);
|
||||
try
|
||||
{
|
||||
dr_WWW_UpDown = BasicDataTagValueUpDown.Select("TagID = " + qualityData.tagID);
|
||||
}
|
||||
catch { dr_WWW_UpDown = null; }
|
||||
|
||||
|
||||
//if (dr_WWW.Length > 0)
|
||||
//{
|
||||
// {
|
||||
// engineTypeID_Source = Convert.ToInt32(dr_WWW[0]["机体类型"]);
|
||||
// int temp;
|
||||
// temp = engineTypeID_Source & engineTypeID;
|
||||
// if (temp == 0)
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// if (qualityData.isGoodBad == -1)
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// continue;
|
||||
|
||||
//}
|
||||
|
||||
try
|
||||
{
|
||||
shaftID = dr_WWW[0]["测量位置"].ToString();
|
||||
}
|
||||
catch
|
||||
{
|
||||
shaftID = "";
|
||||
}
|
||||
try
|
||||
{
|
||||
item = dr_WWW[0]["测量项目"].ToString();
|
||||
}
|
||||
catch
|
||||
{
|
||||
item = "";
|
||||
}
|
||||
try
|
||||
{
|
||||
unit = dr_WWW[0]["测量单位"].ToString();
|
||||
}
|
||||
catch
|
||||
{
|
||||
unit = "";
|
||||
}
|
||||
try
|
||||
{
|
||||
tagValueUp = "";
|
||||
if (dr_WWW_UpDown != null && dr_WWW_UpDown.Length > 0)
|
||||
{
|
||||
tagValueUp = dr_WWW_UpDown[0]["值上限"].ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
tagValueUp = "";
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
tagValueUp = "";
|
||||
}
|
||||
try
|
||||
{
|
||||
tagValueDown = "";
|
||||
if (dr_WWW_UpDown != null && dr_WWW_UpDown.Length > 0)
|
||||
{
|
||||
tagValueDown = dr_WWW_UpDown[0]["值下限"].ToString();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
tagValueDown = "";
|
||||
}
|
||||
try
|
||||
{
|
||||
tagValeNormal = "";
|
||||
if (dr_WWW_UpDown != null && dr_WWW_UpDown.Length > 0)
|
||||
{
|
||||
tagValeNormal = dr_WWW_UpDown[0]["理论值"].ToString();
|
||||
}
|
||||
|
||||
}
|
||||
catch
|
||||
{
|
||||
tagValeNormal = "";
|
||||
}
|
||||
|
||||
dr = dt.NewRow();
|
||||
|
||||
dr["TagID"] = qualityData.tagID;
|
||||
dr["测量位置"] = shaftID;
|
||||
dr["测量项目"] = item;
|
||||
dr["测量单位"] = unit;
|
||||
dr["上限值"] = tagValueUp;
|
||||
dr["下限值"] = tagValueDown;
|
||||
dr["理论值"] = tagValeNormal;
|
||||
dr["工位号"] = opName;
|
||||
dr["列位置"] = qualityData.tagOrderBy;
|
||||
dr["变量排序"] = qualityData.tagItemOrderBy;
|
||||
|
||||
dr["IsGoodBad"] = qualityData.isGoodBad;
|
||||
|
||||
switch (qualityData.tagTypeID)//
|
||||
{
|
||||
//合格标志数组
|
||||
case 8203:
|
||||
dr["TagValue"] = GetQualityData_GoodBad_String((bool[])qualityData.tagValue);
|
||||
break;
|
||||
case 8209:
|
||||
dr["TagValue"] = "";
|
||||
break;
|
||||
//非标准REAL
|
||||
case 8210:
|
||||
dr["TagValue"] = GetNoNormalReal(qualityData.tagValue);
|
||||
dt.Rows.Add(dr);
|
||||
break;
|
||||
default:
|
||||
dr["TagValue"] = Convert.ToString(qualityData.tagValue);
|
||||
dt.Rows.Add(dr);
|
||||
break;
|
||||
}
|
||||
|
||||
//福田对质量数据特殊处理,MA20保留4位小数点,其余保留两位
|
||||
if (opName == "J07MA020")
|
||||
{
|
||||
dr["TagValue"] = Convert.ToDouble(dr["TagValue"]).ToString("0.####");
|
||||
}
|
||||
else
|
||||
{
|
||||
dr["TagValue"] = Convert.ToDouble(dr["TagValue"]).ToString("0.##");
|
||||
}
|
||||
|
||||
if (opName == "J07MA150")
|
||||
{
|
||||
dr["变量排序"] = 1;
|
||||
dr["IsGoodBad"] = 1;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
//ApplicationLog.WriteLog(err, err.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 29 工位具体零件合格标志
|
||||
/// </summary>
|
||||
/// <param name="QualityData_GoodBad"></param>
|
||||
static public string GetQualityData_GoodBad_String(bool[] QualityData_GoodBad)
|
||||
{
|
||||
string str;
|
||||
str = "";
|
||||
if (QualityData_GoodBad != null)
|
||||
{
|
||||
|
||||
for (int i = 0; i < QualityData_GoodBad.Length; i++)
|
||||
{
|
||||
str = str + (Convert.ToInt32(QualityData_GoodBad[i])).ToString() + "|";
|
||||
}
|
||||
|
||||
}
|
||||
return str;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 返回非标准real
|
||||
/// </summary>
|
||||
/// <param name="vDataValue"></param>
|
||||
/// <returns></returns>
|
||||
static public string GetNoNormalReal(object vDataValue)
|
||||
{
|
||||
try
|
||||
{
|
||||
string real_a;
|
||||
string real_b;
|
||||
string groupValueString;
|
||||
int length;
|
||||
|
||||
//int real_b_Int;
|
||||
|
||||
length = ((System.Array)(vDataValue)).Length;
|
||||
groupValueString = "";
|
||||
if (length != 2)
|
||||
return "0.0";
|
||||
|
||||
real_a = Convert.ToUInt16((((System.Array)(vDataValue)).GetValue(0))).ToString();
|
||||
real_b = Convert.ToUInt16((((System.Array)(vDataValue)).GetValue(1))).ToString("00");
|
||||
groupValueString = real_a + "." + real_b;
|
||||
return groupValueString;
|
||||
}
|
||||
catch
|
||||
{
|
||||
////ApplicationLog.WriteLog(err, "GetNoNormalReal");
|
||||
return "0.0";
|
||||
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 数据表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
static public DataTable BuildDataTables_WWW()
|
||||
{
|
||||
DataTable table;
|
||||
DataColumnCollection columns;
|
||||
table = new DataTable();
|
||||
columns = table.Columns;
|
||||
table.Columns.Add("TagID", typeof(System.String));
|
||||
table.Columns.Add("TagValue", typeof(System.String));
|
||||
table.Columns.Add("IsGoodBad", typeof(System.Int32));
|
||||
table.Columns.Add("测量位置", typeof(System.String));
|
||||
table.Columns.Add("测量项目", typeof(System.String));
|
||||
table.Columns.Add("工位号", typeof(System.String));
|
||||
table.Columns.Add("理论值", typeof(System.String));
|
||||
table.Columns.Add("上限值", typeof(System.String));
|
||||
table.Columns.Add("下限值", typeof(System.String));
|
||||
table.Columns.Add("测量单位", typeof(System.String));
|
||||
table.Columns.Add("列位置", typeof(System.Int32));
|
||||
table.Columns.Add("变量排序", typeof(System.Int32));
|
||||
|
||||
return table;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 数据表
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private static object GetValueByTagTypeCodeID(ConcurrentDictionary<string, TagFormat> opTagList, int TagTypeCodeID)
|
||||
{
|
||||
try
|
||||
{
|
||||
return opTagList.Where(x => x.Value.TagTypeCodeID == TagTypeCodeID).ToList()[0].Value.TagValue;
|
||||
}
|
||||
catch (Exception err) { return "-3"; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据工位名称,读取工位对应的质量数据,带合格标志
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
/// <returns></returns>
|
||||
public static Hashtable ReadPLC_OpName_Qd(ConcurrentDictionary<string, TagFormat> tagValues)
|
||||
{
|
||||
//lock (l)
|
||||
{
|
||||
|
||||
//var tagValues = DtWebApi.ReadWritePLC.ReadPLC_OpName(opName); //GetDbAndMaxLengthByOpNameByBytes(opName);
|
||||
|
||||
var keyValues = tagValues.OrderBy(x => x.Key).ToDictionary(k => k.Key, v => v.Value);
|
||||
|
||||
TagFormat tagFormatTemp;
|
||||
int tagIndex = 1;
|
||||
int isOK = 0;
|
||||
|
||||
Hashtable ht = new Hashtable();
|
||||
|
||||
|
||||
foreach (KeyValuePair<string, TagFormat> _cd in keyValues)
|
||||
{
|
||||
if (_cd.Key.ToString()[0].ToString() == "7")
|
||||
{
|
||||
tagFormatTemp = _cd.Value;
|
||||
if (tagIndex % 3 == 1)
|
||||
{
|
||||
isOK = Convert.ToInt32(tagFormatTemp.TagValue);
|
||||
}
|
||||
else if (tagIndex % 3 == 2)
|
||||
{
|
||||
var TF = _cd.Value;
|
||||
|
||||
QualityDataType qualityDataType;
|
||||
qualityDataType = GetQualityDataType(TF);
|
||||
qualityDataType.isGoodBad = isOK;
|
||||
ht.Add(qualityDataType.tagID, qualityDataType);
|
||||
}
|
||||
else if (tagIndex % 3 == 0)
|
||||
{
|
||||
var TF = (TagFormat)_cd.Value;
|
||||
|
||||
QualityDataType qualityDataType;
|
||||
qualityDataType = GetQualityDataType(TF);
|
||||
qualityDataType.isGoodBad = isOK;
|
||||
ht.Add(qualityDataType.tagID, qualityDataType);
|
||||
}
|
||||
|
||||
tagIndex++;
|
||||
}
|
||||
//Console.WriteLine($"key:{kv.Key} value:{kv.Value}");
|
||||
}
|
||||
return ht;
|
||||
}
|
||||
}
|
||||
|
||||
public static QualityDataType GetQualityDataType(TagFormat TF)
|
||||
{
|
||||
QualityDataType qualityDataType;
|
||||
|
||||
qualityDataType = new QualityDataType();
|
||||
|
||||
qualityDataType.tagID = TF.TagID;
|
||||
qualityDataType.tagTypeID = TF.TagTypeID;//变量类型
|
||||
qualityDataType.opName = TF.OpName;
|
||||
// int.TryParse(TF.TagQuality.ToString(), out int TagQuality);
|
||||
var TagQuality = 192;
|
||||
qualityDataType.tagQuality = TagQuality;
|
||||
qualityDataType.tagValueType = TF.TagTypeCodeID;
|
||||
int.TryParse(TF.TagOrderBy, out int TagOrderBy);
|
||||
qualityDataType.tagOrderBy = TagOrderBy;
|
||||
int.TryParse(TF.TagItemOrderBy, out int TagItemOrderBy);
|
||||
qualityDataType.tagItemOrderBy = TagItemOrderBy;
|
||||
qualityDataType.tagProperty = Convert.ToInt32(TF.TagProperty);//变量特点
|
||||
qualityDataType.tagValue = TF.TagValue;//变量值
|
||||
|
||||
return qualityDataType;
|
||||
}
|
||||
|
||||
public static bool BaseData_tagTable_QualityData_B5A_IndexInsert(string EngineID, string tagID, string EngineType, int EngineTypeID, string opName, int isGoodBad, string PartPalletCode, out int Id_tagCF)
|
||||
{
|
||||
string procedureName;
|
||||
procedureName = "测量数据合格索引_增加";
|
||||
Id_tagCF = 0;
|
||||
SqlParameter[] thisParms = new SqlParameter[8];
|
||||
thisParms[0] = new System.Data.SqlClient.SqlParameter("@EngineID", EngineID);
|
||||
thisParms[1] = new System.Data.SqlClient.SqlParameter("@TagID_CF", Convert.ToInt32(tagID));
|
||||
thisParms[2] = new System.Data.SqlClient.SqlParameter("@EngineType", EngineType);
|
||||
thisParms[3] = new System.Data.SqlClient.SqlParameter("@EngineTypeID", EngineTypeID);
|
||||
thisParms[4] = new System.Data.SqlClient.SqlParameter("@工位号", opName);
|
||||
thisParms[5] = new System.Data.SqlClient.SqlParameter("@托盘编号", PartPalletCode);
|
||||
thisParms[6] = new System.Data.SqlClient.SqlParameter("@合格标志", isGoodBad);
|
||||
thisParms[7] = new System.Data.SqlClient.SqlParameter("@Id_tagCF", Id_tagCF)
|
||||
{ Direction = ParameterDirection.Output };
|
||||
|
||||
if (DataAccess.ExecuteStoredProcedure(procedureName, ref thisParms))
|
||||
{
|
||||
Id_tagCF = Convert.ToInt32(thisParms[7].Value.ToString());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public static bool BaseData_tagTable_QualityData_B5A_Insert(int Id_tagCF, int engineTypeID, string engineType, string engineID, string opName, DataTable dt, bool IsCheck = false)
|
||||
{
|
||||
string procedureName;
|
||||
procedureName = "测量数据合格_增加";
|
||||
SqlParameter[] thisParms = new SqlParameter[7];
|
||||
thisParms[0] = new System.Data.SqlClient.SqlParameter("@Id_tagCF", Id_tagCF);
|
||||
thisParms[1] = new System.Data.SqlClient.SqlParameter("@EngineTypeID", engineTypeID);
|
||||
//thisParms[2] = new System.Data.SqlClient.SqlParameter("@EngineType", engineType);
|
||||
thisParms[2] = new System.Data.SqlClient.SqlParameter("@EngineID", engineID);
|
||||
thisParms[3] = new System.Data.SqlClient.SqlParameter("@TagID", SqlDbType.Int, 4, "TagID");
|
||||
thisParms[4] = new System.Data.SqlClient.SqlParameter("@TagValue", SqlDbType.NVarChar, 100, "TagValue");
|
||||
thisParms[5] = new System.Data.SqlClient.SqlParameter("@IsGoodBad", SqlDbType.Int, 4, "IsGoodBad");
|
||||
//是否保存无合格标志数据数据
|
||||
thisParms[6] = new System.Data.SqlClient.SqlParameter("@IsCheck", IsCheck);
|
||||
//thisParms[6] = new System.Data.SqlClient.SqlParameter("@测量位置", SqlDbType.NVarChar, 50, "测量位置");
|
||||
//thisParms[7] = new System.Data.SqlClient.SqlParameter("@测量项目", SqlDbType.NVarChar, 50, "测量项目");
|
||||
//thisParms[8] = new System.Data.SqlClient.SqlParameter("@工位号", opName); //为了给J07MA020 保留四位精度而设置
|
||||
//thisParms[9] = new System.Data.SqlClient.SqlParameter("@理论值", SqlDbType.NVarChar, 50, "理论值");
|
||||
//thisParms[10] = new System.Data.SqlClient.SqlParameter("@上限值", SqlDbType.NVarChar, 50, "上限值");
|
||||
//thisParms[11] = new System.Data.SqlClient.SqlParameter("@下限值", SqlDbType.NVarChar, 50, "下限值");
|
||||
//thisParms[12] = new System.Data.SqlClient.SqlParameter("@测量单位", SqlDbType.NVarChar, 50, "测量单位");
|
||||
//thisParms[13] = new System.Data.SqlClient.SqlParameter("@列位置", SqlDbType.Int, 4, "列位置");
|
||||
//thisParms[14] = new System.Data.SqlClient.SqlParameter("@变量排序", SqlDbType.Int, 4, "变量排序");
|
||||
//table.Columns.Add("TagID", typeof(System.Int32));
|
||||
//table.Columns.Add("TagValue", typeof(System.String));
|
||||
//table.Columns.Add("IsGoodBad", typeof(System.Int32));
|
||||
//table.Columns.Add("测量位置", typeof(System.String));
|
||||
//table.Columns.Add("测量项目", typeof(System.String));
|
||||
//table.Columns.Add("工位号", typeof(System.String));
|
||||
//table.Columns.Add("理论值", typeof(System.String));
|
||||
//table.Columns.Add("上限值", typeof(System.String));
|
||||
//table.Columns.Add("下限值", typeof(System.String));
|
||||
//table.Columns.Add("测量单位", typeof(System.String));
|
||||
//table.Columns.Add("列位置", typeof(System.Int32));
|
||||
//table.Columns.Add("变量排序", typeof(System.Int32));
|
||||
return DataAccess.ExecuteStoredProcedure(procedureName, ref thisParms, dt);
|
||||
}
|
||||
|
||||
|
||||
//public static int MesRead_J07MA150(string opName, string tagValue, string tagid)
|
||||
//{
|
||||
// int qualityMask = 0;
|
||||
|
||||
// if (tagValue == "0")
|
||||
// {
|
||||
// MIS_BASE.Write_TagTypeID(20, opName, false);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// qualityMask = SaveQualityData_J07MA150(opName, Convert.ToInt32(tagValue), tagid);
|
||||
// MIS_BASE.Write_TagTypeID(20, opName, true);
|
||||
// }
|
||||
// return qualityMask;
|
||||
//}
|
||||
/// <summary>
|
||||
/// 返回合格标志, 注油工位 质量数据为字符串,读取备用点 变量类型代码 = 41
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
/// <param name="tagValue"></param>
|
||||
/// <param name="tagID"></param>
|
||||
/// <returns></returns>
|
||||
private static int SaveQualityData_J07MA150(string opName, int tagValue, string tagID)
|
||||
{
|
||||
int id_tagCF;
|
||||
int qualityMask = 0;
|
||||
int engineTypeID = 0;
|
||||
string engineID = "";
|
||||
string engineType = "";
|
||||
string partPallet = "";
|
||||
string orderFormPlc = "";
|
||||
DataTable dt_WWW;
|
||||
Hashtable valueList;
|
||||
try
|
||||
{
|
||||
|
||||
//过滤出来质量数据 //获得带合格标志的质量数据
|
||||
var tagValues = PLC_R.ReadPLC_OpName(opName);
|
||||
valueList = ReadPLC_OpName_Qd_J07MA150(tagValues);
|
||||
//valueList = ReadPLC_OpName_Qd(tagValues);
|
||||
|
||||
engineTypeID = Convert.ToInt32(GetValueByTagTypeCodeID(tagValues, Convert.ToInt32(EnumTagTypeCodeID.EngineTypeID)));
|
||||
engineID = GetValueByTagTypeCodeID(tagValues, Convert.ToInt32(EnumTagTypeCodeID.EngineID)).ToString();
|
||||
engineType = GetValueByTagTypeCodeID(tagValues, Convert.ToInt32(EnumTagTypeCodeID.EngineType)).ToString();
|
||||
orderFormPlc = GetValueByTagTypeCodeID(tagValues, Convert.ToInt32(EnumTagTypeCodeID.OrderFormPLC)).ToString();
|
||||
engineID = GetValueByTagTypeCodeID(tagValues, Convert.ToInt32(EnumTagTypeCodeID.EngineID)).ToString();
|
||||
qualityMask = Convert.ToInt32(GetValueByTagTypeCodeID(tagValues, Convert.ToInt32(EnumTagTypeCodeID.QualityMask)));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//获得带基本信息的质量数据表
|
||||
GetQualityDataTable(valueList, opName, BasicDataTagValue,
|
||||
BasicDataTagValueUpDown, out dt_WWW);
|
||||
|
||||
|
||||
DateTime lastupdatetime = DateTime.Now;
|
||||
//保存质量数
|
||||
BaseData_tagTable_QualityData_B5A_IndexInsert(engineID, tagID, engineType, engineTypeID, opName, qualityMask, partPallet, out id_tagCF);
|
||||
BaseData_tagTable_QualityData_B5A_Insert(id_tagCF, engineTypeID, engineType, engineID, opName, dt_WWW);
|
||||
|
||||
// }
|
||||
Material_Insert(opName, 1);
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
}
|
||||
return qualityMask;
|
||||
}
|
||||
public static Hashtable ReadPLC_OpName_Qd_J07MA150(ConcurrentDictionary<string, TagFormat> tagValues)
|
||||
{
|
||||
//lock (l)
|
||||
{
|
||||
|
||||
//var tagValues = DtWebApi.ReadWritePLC.ReadPLC_OpName(opName); //GetDbAndMaxLengthByOpNameByBytes(opName);
|
||||
|
||||
var keyValues = tagValues.OrderBy(x => x.Key).ToDictionary(k => k.Key, v => v.Value);
|
||||
|
||||
TagFormat tagFormatTemp;
|
||||
int tagIndex = 1;
|
||||
int isOK = 1;
|
||||
|
||||
Hashtable ht = new Hashtable();
|
||||
|
||||
|
||||
//var TF = _cd.Value;
|
||||
////var TF = Read_TagTypeID(39, opName, out OrderForm);
|
||||
|
||||
//QualityDataType qualityDataType;
|
||||
//qualityDataType = GetQualityDataType(TF);
|
||||
//qualityDataType.isGoodBad = isOK;
|
||||
//ht.Add(qualityDataType.tagID, qualityDataType);
|
||||
|
||||
|
||||
foreach (KeyValuePair<string, TagFormat> _cd in keyValues)
|
||||
{
|
||||
|
||||
if (_cd.Value.TagTypeCodeID.ToString() == "41")
|
||||
{
|
||||
tagFormatTemp = _cd.Value;
|
||||
|
||||
var TF = _cd.Value;
|
||||
|
||||
QualityDataType qualityDataType;
|
||||
qualityDataType = GetQualityDataType(TF);
|
||||
qualityDataType.isGoodBad = isOK;
|
||||
qualityDataType.tagItemOrderBy = 1;
|
||||
qualityDataType.tagOrderBy = 1;
|
||||
ht.Add(qualityDataType.tagID, qualityDataType);
|
||||
}
|
||||
//Console.WriteLine($"key:{kv.Key} value:{kv.Value}");
|
||||
}
|
||||
return ht;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
48
SCADA/MES_A95/MIS_Statement.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DC_A95.MES_A95
|
||||
{
|
||||
public class OptFlag
|
||||
{
|
||||
public static int AddNew = 1;
|
||||
public static int Modify = 2;
|
||||
public static int Delete = 3;
|
||||
|
||||
}
|
||||
public class PassAttr
|
||||
{
|
||||
//真的是:4-进站,1-出站,5-上在制
|
||||
public static int OPStart = 4;
|
||||
public static int OPEnd = 1;
|
||||
}
|
||||
public class PlanExec_State
|
||||
{
|
||||
//1-未开始,2-已上线
|
||||
public static int Waiting = 1;
|
||||
public static int HasExec = 2;
|
||||
}
|
||||
public class TaskTypeInfo
|
||||
{
|
||||
public short TaskTypeID;
|
||||
|
||||
public string TaskTypeName;
|
||||
|
||||
public int QCDataCount;
|
||||
|
||||
public string DataName1;
|
||||
public string DataUnit1;
|
||||
|
||||
public string DataName2;
|
||||
public string DataUnit2;
|
||||
|
||||
public string DataName3;
|
||||
public string DataUnit3;
|
||||
|
||||
public string DataName4;
|
||||
public string DataUnit4;
|
||||
}
|
||||
}
|
||||
202
SCADA/MES_A95/MIS_upload_QC.cs
Normal file
@@ -0,0 +1,202 @@
|
||||
|
||||
using CentralControl;
|
||||
using DataLinkMesWork;
|
||||
using Newtonsoft.Json;
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Threading;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
/// 质量数据的拆解和存储
|
||||
/// </summary>
|
||||
public class MesWork_QC_upload
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 同步执行任务
|
||||
/// </summary>
|
||||
public static void SyncTask_UploadMeasureData(string id_tagCF)
|
||||
{
|
||||
new Thread(new ThreadStart(delegate ()
|
||||
{
|
||||
string msg = "";
|
||||
try
|
||||
{
|
||||
// 查询质量数据
|
||||
bool isUploadOk = false;
|
||||
var sql_AMS_Plan = $"SELECT * FROM 质量数据上传_视图" +
|
||||
$" where [接口输出] != 1 and id_tagCF = {id_tagCF} order by [工位号],[TagID] ";
|
||||
bool isOk = SqlOperation.ExecuteSql(sql_AMS_Plan, out DataTable dt_MeasureData, out string err1);
|
||||
if (isOk)
|
||||
{
|
||||
if(dt_MeasureData.Rows.Count > 0)
|
||||
{
|
||||
isUploadOk = upLoadData(dt_MeasureData, out msg);
|
||||
}
|
||||
}
|
||||
if(isUploadOk)
|
||||
{
|
||||
upLoadUpdate(id_tagCF, 1, msg);
|
||||
}
|
||||
else
|
||||
{
|
||||
upLoadUpdate(id_tagCF, 2, msg);
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
msg = err.Message;
|
||||
upLoadUpdate(id_tagCF, 2, msg);
|
||||
}
|
||||
}))
|
||||
{ IsBackground = true }.Start();
|
||||
}
|
||||
|
||||
public static bool upLoadData(DataTable dt, out string msg)
|
||||
{
|
||||
try
|
||||
{
|
||||
List<SapMeasureData> SapMeasureDataList = new List<SapMeasureData>();
|
||||
string dateShort = new DateTime().ToString("yyyyMMdd");
|
||||
for (int i = 0; i < dt.Rows.Count; i++)
|
||||
{
|
||||
SapMeasureData sapMeasureData = new SapMeasureData();
|
||||
sapMeasureData.ID = dt.Rows[i]["Id"].ToString();
|
||||
sapMeasureData.operationCode = dt.Rows[i]["工位代码"].ToString();
|
||||
sapMeasureData.itemCode = dt.Rows[i]["订货号"].ToString();
|
||||
sapMeasureData.productCode = dt.Rows[i]["EngineID"].ToString();
|
||||
sapMeasureData.characterName = dt.Rows[i]["测量位置"].ToString() + dt.Rows[i]["测量项目"].ToString();
|
||||
sapMeasureData.content = "";
|
||||
sapMeasureData.cNumber = "";
|
||||
sapMeasureData.positionNumber = dt.Rows[i]["列位置"].ToString();
|
||||
sapMeasureData.specialCategory = "";
|
||||
sapMeasureData.cImportance = "";
|
||||
sapMeasureData.unit = dt.Rows[i]["测量单位"].ToString();
|
||||
sapMeasureData.normalMin = Convert.ToInt32(dt.Rows[i]["下限值"]);
|
||||
sapMeasureData.normalMax = Convert.ToInt32(dt.Rows[i]["上限值"]);
|
||||
sapMeasureData.checkInput = dt.Rows[i]["TagValue"].ToString();
|
||||
sapMeasureData.isNormal = Convert.ToInt32(dt.Rows[i]["IsGoodBad"]);
|
||||
sapMeasureData.checkToolNumber = "";
|
||||
sapMeasureData.checkToolName = "";
|
||||
sapMeasureData.machineNumber = "";
|
||||
sapMeasureData.machineSpindleNumber = "";
|
||||
sapMeasureData.machineClampingNumber = "";
|
||||
sapMeasureData.inputDate = dt.Rows[i]["操作时间"].ToString();
|
||||
sapMeasureData.reMarks = "";
|
||||
SapMeasureDataList.Add(sapMeasureData);
|
||||
}
|
||||
ResponseBody_WebAPI_Boms res = CALL_Interfalce_WebAPI.RequestPost_UploadMeasureData_To_SAP(JsonConvert.SerializeObject(SapMeasureDataList));
|
||||
|
||||
if (res.code == "200")
|
||||
{
|
||||
msg = res.message;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
msg = res.message;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
msg = err.Message;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static void upLoadUpdate(string id_tagCF, int isOk, string msg)
|
||||
{
|
||||
try
|
||||
{
|
||||
var sql_AMS_Plan = $"UPDATE [dbo].[测量数据合格] SET [接口输出] = {isOk},数据说明 = '{msg}'" +
|
||||
$" where [id_tagCF] = '{id_tagCF}'";
|
||||
DataAccess.ExecuteDataTable(sql_AMS_Plan, out DataTable dt_MeasureData);
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
class SapMeasureData
|
||||
{
|
||||
/*
|
||||
id number(12) id
|
||||
line_id varchar2(10) y 生产线id
|
||||
operation_code varchar2(10) y 工位编码
|
||||
item_code varchar2(255) y 物料编码
|
||||
product_code varchar2(16) y 序列号
|
||||
character_name varchar2(255) y 特性名称
|
||||
content varchar2(255) y 特性内容(产品/过程规格/公差)φ是大写
|
||||
c_number varchar2(40) y 特性编号
|
||||
position_number varchar2(40) y 位置编号
|
||||
special_category varchar2(10) y 特殊特性分类
|
||||
c_importance varchar2(10) y 特性重要度
|
||||
unit varchar2(10) y 单位
|
||||
normal_min number y 合格下限
|
||||
normal_max number y 合格上限
|
||||
check_input varchar2(255) y 质检结果
|
||||
isnormal number(1) y 是否合格(0:否;1:是;)
|
||||
check_tool_number varchar2(30) y 测量设备编号
|
||||
check_tool_name varchar2(80) y 测量设备名称
|
||||
machine_number varchar2(40) y null 加工设备编号
|
||||
machine_spindle_number varchar2(40) y null 加工设备主轴编号
|
||||
machine_clamping_number varchar2(40) y 加工设备工装编号
|
||||
input_date date y 录入时间
|
||||
remarks varchar2(255) y 备注
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
public string ID;
|
||||
public string lineId = MesWorkForm.LineID_Product;
|
||||
public string operationCode;
|
||||
public string itemCode;
|
||||
public string productCode;
|
||||
public string characterName;
|
||||
public string content;
|
||||
public string cNumber;
|
||||
public string positionNumber;
|
||||
public string specialCategory;
|
||||
public string cImportance;
|
||||
public string unit;
|
||||
public int normalMin;
|
||||
public int normalMax;
|
||||
public string checkInput;
|
||||
public int isNormal;
|
||||
public string checkToolNumber;
|
||||
public string checkToolName;
|
||||
public string machineNumber;
|
||||
public string machineSpindleNumber;
|
||||
public string machineClampingNumber;
|
||||
public string inputDate;
|
||||
public string reMarks;
|
||||
|
||||
|
||||
}
|
||||
class SapMeasureDataResult
|
||||
{
|
||||
public List<SapMeasureData> SapMeasureDataList;
|
||||
}
|
||||
}
|
||||
|
||||
187
SCADA/MainGuide/MW.Event.cs
Normal file
@@ -0,0 +1,187 @@
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Drawing;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
using DC_A95;
|
||||
using ExternalDataSync;
|
||||
using MainLineRepair;
|
||||
using NPOITest;
|
||||
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public partial class Temp { }
|
||||
/// <summary>
|
||||
/// 事件处理
|
||||
/// </summary>
|
||||
public partial class MesWorkForm
|
||||
{
|
||||
/// <summary>
|
||||
/// 打开监控界面
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void label_Monitor_PLC_Click(object sender, EventArgs e)
|
||||
{
|
||||
new OpcForm(IsDemoMesServer).Show(this);
|
||||
}
|
||||
/// <summary>
|
||||
/// 关闭按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void label_ExitSys_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (MessageBox.Show("是否确认退出程序?", "退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
|
||||
{
|
||||
timer_OnLine_Show.Enabled = false;
|
||||
timer_ShowStation.Enabled = false;
|
||||
|
||||
CloseDeviceConn();
|
||||
//StopServer();
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.Login, "", "退出MES系统!!!!");
|
||||
System.Diagnostics.Process.GetCurrentProcess().Kill();
|
||||
}
|
||||
}
|
||||
|
||||
private void label_PlanManage_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
var planquery = new PlanExecute_Query.PlanExecute();
|
||||
planquery.ShowDialog();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 鼠标移动
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void C_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
|
||||
{
|
||||
if (allowDrag & isMouseDown)
|
||||
{
|
||||
var control = (Control)sender;
|
||||
int left = control.Left + e.X - mouseOffset.X;
|
||||
int top = control.Top + e.Y - mouseOffset.Y;
|
||||
control.Location = new Point(left, top);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 打开调试界面
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void label_Test_RW_Click(object sender, EventArgs e)
|
||||
{
|
||||
new F_TestPage().Show(this);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 打开监控画面
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void Panel_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (MesWorkForm.allowDrag)
|
||||
{
|
||||
return;
|
||||
}
|
||||
var panel = (Panel)sender;
|
||||
var stationName = panel.Tag.ToString();
|
||||
if (!MesWorkForm.list_OpenForm.Contains(stationName))
|
||||
{
|
||||
var stationShow = new TagDataEngineStatusShowDialog(stationName);
|
||||
stationShow.Show(this);
|
||||
MesWorkForm.list_OpenForm.Add(stationName);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查看消息提示
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void Panel_MouseHover(object sender, EventArgs e)
|
||||
{
|
||||
var panel = (Panel)sender;
|
||||
new ToolTip().SetToolTip(panel, panel.Tag.ToString());
|
||||
}
|
||||
/// <summary>
|
||||
/// 打开日志
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void btn_QueryLog_Click(object sender, EventArgs e)
|
||||
{
|
||||
new LogRecord.LogRecord(this.Width, this.Height).Show(this);
|
||||
}
|
||||
/// <summary>
|
||||
/// 保存布局
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void btn_SaveLyout_Click(object sender, EventArgs e)
|
||||
{
|
||||
FuncOperation.SaveLyout();
|
||||
}
|
||||
/// <summary>
|
||||
/// 打开参数配置
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void label_ParamConfig_Click(object sender, EventArgs e)
|
||||
{
|
||||
new ParamConfigPage().ShowDialog();
|
||||
}
|
||||
/// <summary>
|
||||
/// 按下鼠标
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void C_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
mouseOffset.X = e.X;
|
||||
mouseOffset.Y = e.Y;
|
||||
isMouseDown = true;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 抬起鼠标
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void C_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
isMouseDown = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 工位管理
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void label_StationManage_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
var dlg = new F_StationManage();
|
||||
dlg.ShowDialog();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
92
SCADA/MainGuide/MW.Lyout.cs
Normal file
@@ -0,0 +1,92 @@
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Drawing;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public partial class Temp { }
|
||||
/// <summary>
|
||||
/// 布局
|
||||
/// </summary>
|
||||
public partial class MesWorkForm
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 添加布局
|
||||
/// </summary>
|
||||
public void ReLoadStationIcon()
|
||||
{
|
||||
ht_Station_Content = new Hashtable();
|
||||
ht_Station_Label = new Hashtable();
|
||||
G_DC_IP_OP = new Dictionary<String, List<String>>();
|
||||
|
||||
ExecuteDB.Select_Station(out DataTable dt);
|
||||
|
||||
for (int i = 0; i < dt.Rows.Count; i++)
|
||||
{
|
||||
var 工位号 = dt.Rows[i]["工位号"].ToString();
|
||||
var 工位名称 = dt.Rows[i]["工位名称"].ToString();
|
||||
var PLC = dt.Rows[i]["PLC"].ToString();
|
||||
var PLC代码 = dt.Rows[i]["PLC代码"].ToString();
|
||||
var PX = Convert.ToInt32(dt.Rows[i]["PX"]);
|
||||
var PY = Convert.ToInt32(dt.Rows[i]["PY"]);
|
||||
var PX_T = Convert.ToInt32(dt.Rows[i]["PX_T"]);
|
||||
var PY_T = Convert.ToInt32(dt.Rows[i]["PY_T"]);
|
||||
var 控件启用 = dt.Rows[i]["控件启用"].ToString().ToLower();
|
||||
|
||||
if (控件启用 == "1" | 控件启用 == "true")
|
||||
{
|
||||
SetMember(工位号, Release(new Panel()
|
||||
{
|
||||
Location = new System.Drawing.Point(PX, PY),
|
||||
Size = new Size(30, 30),
|
||||
BackColor = color_Bad,
|
||||
Tag = 工位号,
|
||||
BorderStyle = BorderStyle.Fixed3D
|
||||
}));
|
||||
SetMember(工位号, Release(new Label()
|
||||
{
|
||||
Location = new System.Drawing.Point(PX_T, PY_T),
|
||||
Size = new Size(35, 25),
|
||||
Text = 工位号.Replace("OP", "")
|
||||
}));
|
||||
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (G_DC_IP_OP.ContainsKey(PLC))
|
||||
{
|
||||
G_DC_IP_OP[PLC].Add(工位号);
|
||||
}
|
||||
else
|
||||
{
|
||||
var list = new List<String>();
|
||||
list.Add(工位号);
|
||||
G_DC_IP_OP.Add(PLC, list);
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
197
SCADA/MainGuide/MW.OnStart.cs
Normal file
@@ -0,0 +1,197 @@
|
||||
using DC_A95;
|
||||
using DC_A95.MES_A95;
|
||||
using MesToMs;
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using SystemFramework;
|
||||
using WebApi;
|
||||
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public partial class Temp { }
|
||||
/// <summary>
|
||||
/// 程式启动
|
||||
/// </summary>
|
||||
public partial class MesWorkForm
|
||||
{
|
||||
InitServer initServer = null;
|
||||
/// <summary>
|
||||
/// 从这里启动
|
||||
/// </summary>
|
||||
/// <param name="e"></param>
|
||||
protected override void OnShown(EventArgs e)
|
||||
{
|
||||
//【0】基础信息检查
|
||||
SqlOperation.ExecuteSql("select getdate()", out DataTable dt, out string error);
|
||||
if (error.Length > 0)
|
||||
{
|
||||
MessageBox.Show($"数据库配置错误!请检查数据库连接!!\r\n\r\n{MesWorkForm.ConnectionString}");
|
||||
Process.GetCurrentProcess().Kill();
|
||||
}
|
||||
|
||||
DataLinkMesWork.ApplicationConfig.ConnectionString_MES = MesWorkForm.ConnectionString;
|
||||
label_SqlConn.Text = MesWorkForm.ConnectionString;
|
||||
|
||||
//【1】系统基本参数设定
|
||||
ThreadPool.SetMaxThreads(workerThreads, completionPortThreads);
|
||||
Never_Know.Hello_You_All_Never_Know = Hello_You_All_Never_Know;
|
||||
new ApplicationLog();
|
||||
|
||||
//【2】初始化
|
||||
ReLoadStationIcon();
|
||||
Visible_SaveLyoutBtn(false);
|
||||
Hanger.Load_Station_PageShowSignal();
|
||||
|
||||
//【3】创建通讯
|
||||
LoadOpcData();
|
||||
Hanger.Load_Table();
|
||||
// LoadOPCData(BasicDataTableFile, IsDemoMesServer, IsWriteMonitorLog, true);
|
||||
Thread.Sleep(200);
|
||||
StartServer();
|
||||
Thread.Sleep(200);
|
||||
First_TagMonitor();
|
||||
//var onList = CheckDeviceOnLine();
|
||||
|
||||
//【4】检查在线状态
|
||||
CommunicationCheckOnLine();
|
||||
|
||||
//【5】通讯成功的初始化设备数据
|
||||
timer_OnLine_Show.Interval = 1000;
|
||||
timer_OnLine_Show.Enabled = true;
|
||||
timer_ShowStation.Interval = 1000;
|
||||
timer_ShowStation.Enabled = true;
|
||||
|
||||
//【7】HashTable 加载TaskType
|
||||
Upload_TaskTypeInfo();
|
||||
|
||||
var task1 = new Thread(new ThreadStart(Loop));
|
||||
task1.IsBackground = true;
|
||||
task1.Start();
|
||||
|
||||
Text = Text + $"【{MesWorkForm.ProgramPartial}】";
|
||||
|
||||
// 【8】 WebApi 相关
|
||||
initServer = new WebApi.InitServer(MesWorkForm.WebSvrPort);
|
||||
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.Login,"", $"MES系统启动成功!");
|
||||
}
|
||||
|
||||
|
||||
private void Upload_TaskTypeInfo()
|
||||
{
|
||||
ht_TaskTypeInfo=new System.Collections.Hashtable();
|
||||
DataTable dt = ExecuteDB.Get_TaskTypeInfo();
|
||||
foreach (DataRow itemRow in dt.Rows)
|
||||
{
|
||||
TaskTypeInfo taskTypeInfo = new TaskTypeInfo();
|
||||
taskTypeInfo.TaskTypeID = short.Parse(itemRow["任务类型"].ToString());
|
||||
taskTypeInfo.TaskTypeName = itemRow["任务类型名称"].ToString();
|
||||
taskTypeInfo.QCDataCount = int.Parse(itemRow["质量数据数量"].ToString());
|
||||
taskTypeInfo.DataName1 = itemRow["数据名称1"].ToString();
|
||||
taskTypeInfo.DataUnit1 = itemRow["数据单位1"].ToString();
|
||||
taskTypeInfo.DataName2 = itemRow["数据名称2"].ToString();
|
||||
taskTypeInfo.DataUnit2 = itemRow["数据单位2"].ToString();
|
||||
taskTypeInfo.DataName3 = itemRow["数据名称3"].ToString();
|
||||
taskTypeInfo.DataUnit3 = itemRow["数据单位3"].ToString();
|
||||
taskTypeInfo.DataName4 = itemRow["数据名称4"].ToString();
|
||||
taskTypeInfo.DataUnit4 = itemRow["数据单位4"].ToString();
|
||||
ht_TaskTypeInfo.Add(taskTypeInfo.TaskTypeID,taskTypeInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void LoadOpcData()
|
||||
{
|
||||
DataTable dt_Tag = null;
|
||||
|
||||
ExecuteDB.Select_Station(out DataTable dt_Station);
|
||||
dt_OPNameInfo = dt_Station.Copy();
|
||||
int tableLength = NPOITest.ExeclHelper.ExcelToDataTable(BasicDataTableFile, "MES_基本变量原始数据", true).Select($"是否启用='1'").Length;
|
||||
var dt_Tag_Mes = new DataTable();
|
||||
if (tableLength > 0)
|
||||
{
|
||||
dt_Tag_Mes = NPOITest.ExeclHelper.ExcelToDataTable(BasicDataTableFile, "MES_基本变量原始数据", true).Select($"是否启用='1'").CopyToDataTable();
|
||||
}
|
||||
var dt_Tag_Model = NPOITest.ExeclHelper.ExcelToDataTable(BasicDataTableFile, "MES_信号表模板", true).Select($"是否启用='1'").CopyToDataTable();
|
||||
var dt_Device = NPOITest.ExeclHelper.ExcelToDataTable(BasicDataTableFile, "设备类型对应表", true).Select($"是否启用='1'").CopyToDataTable();
|
||||
dt_Tag = dt_Tag_Model.Clone();
|
||||
|
||||
for (int i = 0; i < dt_Station.Rows.Count; i++)
|
||||
{
|
||||
//[工位号],[工位名称],[PLC],[PLC代码],[PX],[PY],[PX_T],[PY_T],[控件启用]
|
||||
var 工位名称 = dt_Station.Rows[i]["工位名称"].ToString();
|
||||
var PLC = dt_Station.Rows[i]["PLC"].ToString();
|
||||
var stationName = dt_Station.Rows[i]["工位号"].ToString();
|
||||
var DB_NAME = dt_Station.Rows[i]["PLC代码"].ToString();
|
||||
var zoneCode = dt_Station.Rows[i]["区域代码"].ToString();
|
||||
|
||||
|
||||
var dt_Op_QC_DATA = dt_Tag_Model.Copy().Select($"DbName='DB_NAME'").CopyToDataTable();
|
||||
UpdateOpTable(dt_Op_QC_DATA, stationName, 工位名称, PLC, DB_NAME);
|
||||
dt_Tag.Merge(dt_Op_QC_DATA);
|
||||
|
||||
}
|
||||
|
||||
dt_Tag.Merge(dt_Tag_Mes);
|
||||
|
||||
LoadOPCData(dt_Tag, dt_Device, IsDemoMesServer, IsWriteMonitorLog, true, false, out string error);
|
||||
if (error.Length > 0)
|
||||
{
|
||||
MessageBox.Show($"加载信号产生错误,程序不能启动!!错误:{error}");
|
||||
Process.GetCurrentProcess().Kill();
|
||||
}
|
||||
|
||||
|
||||
var dt_Tag1 = dt_Tag.Copy();
|
||||
dt_Tag1.TableName = "MES_基本变量_原始数据";
|
||||
SqlOperation.ExecuteSql($" truncate table {dt_Tag1.TableName}", out string error1);
|
||||
SqlOperation.SqlbulkcopyInsert(dt_Tag1);
|
||||
|
||||
var dt_Device1 = dt_Device.Copy();
|
||||
dt_Device1.TableName = "MES_基本变量设备类型对应表";
|
||||
SqlOperation.ExecuteSql($" truncate table {dt_Device1.TableName}", out string error2);
|
||||
SqlOperation.SqlbulkcopyInsert(dt_Device1);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void UpdateOpTable(DataTable dt,string opName,string opNameName,string ip, string dbName)
|
||||
{
|
||||
|
||||
foreach (DataRow row in dt.Rows)
|
||||
{
|
||||
//TagID TagName 工位号 数据来源 IP DbName 变量特点 变量类型代码
|
||||
|
||||
var TagName = row["TagName"].ToString();
|
||||
var 变量类型代码 = row["变量类型代码"].ToString();
|
||||
var 变量特点 = row["变量特点"].ToString();
|
||||
var 变量排序 = row["变量排序"].ToString();
|
||||
|
||||
row["TagID"] = $"8{opName.Substring(opName.Length - 4, 4)}{变量排序.PadLeft(3,'0')}";
|
||||
//row["TagID"] = Guid.NewGuid().ToString ().ToUpper ();
|
||||
row["工位号"] = opName;
|
||||
row["数据来源"] = opNameName;
|
||||
row["IP"] = ip;
|
||||
row["DbName"] = dbName;
|
||||
|
||||
row["监控组"] = $"{row["监控组"].ToString()}_{opName}";
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
209
SCADA/MainGuide/MW.PageDelayRefresh.cs
Normal file
@@ -0,0 +1,209 @@
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public partial class Temp { }
|
||||
/// <summary>
|
||||
/// 延时刷新
|
||||
/// </summary>
|
||||
public partial class MesWorkForm
|
||||
{
|
||||
/// <summary>
|
||||
/// 刷新
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void timer_OnLine_Show_Tick(object sender, EventArgs e)
|
||||
{
|
||||
timer_OnLine_Show.Enabled = false;
|
||||
|
||||
Show_OnLineState();
|
||||
label_RunSort.Text = $"{RunSort}";
|
||||
|
||||
timer_OnLine_Show.Enabled = true;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取数据库连接状态
|
||||
/// </summary>
|
||||
private void CommunicationCheckOnLine()
|
||||
{
|
||||
//源数据库
|
||||
new Thread(new ThreadStart(delegate ()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
try
|
||||
{
|
||||
MesWorkForm.OnLine_Sql = SqlOperation.ExecuteSql("select getdate()", out DataTable dt,out string error);
|
||||
}
|
||||
catch (Exception) { }
|
||||
Thread.Sleep(5000);
|
||||
}
|
||||
}))
|
||||
{ IsBackground = true }.Start();
|
||||
}
|
||||
/// <summary>
|
||||
/// 显示通讯状态
|
||||
/// </summary>
|
||||
/// <param name="pb"></param>
|
||||
/// <param name="onLine"></param>
|
||||
private void OnLineState_C(PictureBox pb, bool onLine)
|
||||
{
|
||||
pb.Image = onLine ? global::CentralControl.Properties.Resources.连接状态
|
||||
: global::CentralControl.Properties.Resources.断开状态;
|
||||
}
|
||||
/// <summary>
|
||||
/// 显示通讯状态
|
||||
/// </summary>
|
||||
private void Show_OnLineState()
|
||||
{
|
||||
//状态显示
|
||||
OnLineState_C(pb_OnLine_Sql, MesWorkForm.OnLine_Sql);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 刷新
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void timer_ShowStation_Tick(object sender, EventArgs e)
|
||||
{
|
||||
timer_ShowStation.Enabled = false;
|
||||
|
||||
RefreshShowStation();
|
||||
|
||||
timer_ShowStation.Enabled = true;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 显示工位状态
|
||||
/// </summary>
|
||||
public static void RefreshShowStation()
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (DictionaryEntry item in ht_Station_Content)
|
||||
{
|
||||
var stationName = item.Key.ToString();
|
||||
var control = (Panel)item.Value;
|
||||
|
||||
var auto = ht_Signal__Station_Auto[stationName].ToString().ToLower();
|
||||
var running = ht_Signal__Station_Running[stationName].ToString().ToLower();
|
||||
var manual = ht_Signal__Station_Manual[stationName].ToString().ToLower();
|
||||
var alarm = ht_Signal__Station_Alarm[stationName].ToString().ToLower();
|
||||
var offLine = ht_Signal__Station_OffLine[stationName].ToString().ToLower();
|
||||
|
||||
if (ValueT(offLine))
|
||||
{
|
||||
if (ValueT(auto))
|
||||
{
|
||||
control.BackColor = color_Yellow;
|
||||
}
|
||||
if (ValueT(running))
|
||||
{
|
||||
control.BackColor = color_Green;
|
||||
}
|
||||
if (ValueT(manual))
|
||||
{
|
||||
control.BackColor = color_Faw;
|
||||
}
|
||||
if (ValueT(alarm))
|
||||
{
|
||||
control.BackColor = color_Red;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
control.BackColor = color_Bad;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 值处理函数
|
||||
/// </summary>
|
||||
/// <param name="value"></param>
|
||||
/// <returns></returns>
|
||||
public static bool ValueT(string value)
|
||||
{
|
||||
bool success = false;
|
||||
if (value == "true" | value == "1")
|
||||
{
|
||||
success = true;
|
||||
}
|
||||
return success;
|
||||
}
|
||||
/// <summary>
|
||||
/// 显示报警信息
|
||||
/// 临时!!!!
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void timer_ShowAlarm_Tick(object sender, EventArgs e)
|
||||
{
|
||||
timer_ShowAlarm.Enabled = false;
|
||||
//try
|
||||
//{
|
||||
// var sql =
|
||||
// $" SELECT [StationName],[AlarmCode],[AlarmTime],[SureTime] FROM [SP_Curr_Alarm]" +
|
||||
// $" ORDER BY [ID] DESC";
|
||||
// SqlOperation.ExecuteSql(sql, out DataTable dt_Alarm, out string error);
|
||||
// dgv_Alarm.DataSource = dt_Alarm;
|
||||
//}
|
||||
//catch (Exception err) { }
|
||||
//try
|
||||
//{
|
||||
// var sql =
|
||||
// $" SELECT [StationName],[AlarmCode],[AlarmTime],[SureTime] FROM [SP_Curr_Alarm_Andon]" +
|
||||
// $" ORDER BY [ID] DESC";
|
||||
// SqlOperation.ExecuteSql(sql, out DataTable dt_Alarm_Andon, out string error);
|
||||
// dgv_Alarm_Andon.DataSource = dt_Alarm_Andon;
|
||||
//}
|
||||
//catch (Exception err) { }
|
||||
|
||||
timer_ShowAlarm.Enabled = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 布局按钮显示
|
||||
/// </summary>
|
||||
/// <param name="visible"></param>
|
||||
public void Visible_SaveLyoutBtn(bool visible)
|
||||
{
|
||||
btn_SaveLyout.Visible = visible;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
62
SCADA/MainGuide/MW.Register.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Drawing;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public partial class Temp { }
|
||||
/// <summary>
|
||||
/// 注册事件
|
||||
/// </summary>
|
||||
public partial class MesWorkForm
|
||||
{
|
||||
/// <summary>
|
||||
/// 注册事件
|
||||
/// </summary>
|
||||
/// <param name="panel"></param>
|
||||
private Control Release(Panel panel)
|
||||
{
|
||||
panel.MouseDown -= C_MouseDown;
|
||||
panel.MouseDown += C_MouseDown;
|
||||
panel.MouseMove -= C_MouseMove;
|
||||
panel.MouseMove += C_MouseMove;
|
||||
panel.MouseUp -= C_MouseUp;
|
||||
panel.MouseUp += C_MouseUp;
|
||||
panel.MouseHover -= Panel_MouseHover;
|
||||
panel.MouseHover += Panel_MouseHover;
|
||||
panel.Click -= Panel_Click;
|
||||
panel.Click += Panel_Click;
|
||||
return panel;
|
||||
}
|
||||
/// <summary>
|
||||
/// 注册事件
|
||||
/// </summary>
|
||||
/// <param name="label"></param>
|
||||
private Control Release(Label label)
|
||||
{
|
||||
label.MouseDown -= C_MouseDown;
|
||||
label.MouseDown += C_MouseDown;
|
||||
label.MouseMove -= C_MouseMove;
|
||||
label.MouseMove += C_MouseMove;
|
||||
label.MouseUp -= C_MouseUp;
|
||||
label.MouseUp += C_MouseUp;
|
||||
return label;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
95
SCADA/Page_Manager/Manager_Config/ParamConfigPage.Designer.cs
generated
Normal file
@@ -0,0 +1,95 @@
|
||||
|
||||
namespace MainLineRepair
|
||||
{
|
||||
partial class ParamConfigPage
|
||||
{
|
||||
/// <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()
|
||||
{
|
||||
this.btn_Sure = new System.Windows.Forms.Button();
|
||||
this.btn_Cancel = new System.Windows.Forms.Button();
|
||||
this.cb_IsAllowUpdateLyout = new System.Windows.Forms.CheckBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btn_Sure
|
||||
//
|
||||
this.btn_Sure.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btn_Sure.Location = new System.Drawing.Point(388, 379);
|
||||
this.btn_Sure.Name = "btn_Sure";
|
||||
this.btn_Sure.Size = new System.Drawing.Size(129, 38);
|
||||
this.btn_Sure.TabIndex = 0;
|
||||
this.btn_Sure.Text = "确定";
|
||||
this.btn_Sure.UseVisualStyleBackColor = true;
|
||||
this.btn_Sure.Click += new System.EventHandler(this.btn_Sure_Click);
|
||||
//
|
||||
// btn_Cancel
|
||||
//
|
||||
this.btn_Cancel.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btn_Cancel.Location = new System.Drawing.Point(253, 379);
|
||||
this.btn_Cancel.Name = "btn_Cancel";
|
||||
this.btn_Cancel.Size = new System.Drawing.Size(129, 38);
|
||||
this.btn_Cancel.TabIndex = 0;
|
||||
this.btn_Cancel.Text = "取消";
|
||||
this.btn_Cancel.UseVisualStyleBackColor = true;
|
||||
this.btn_Cancel.Click += new System.EventHandler(this.btn_Cancel_Click);
|
||||
//
|
||||
// cb_IsAllowUpdateLyout
|
||||
//
|
||||
this.cb_IsAllowUpdateLyout.AutoSize = true;
|
||||
this.cb_IsAllowUpdateLyout.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.cb_IsAllowUpdateLyout.Location = new System.Drawing.Point(103, 341);
|
||||
this.cb_IsAllowUpdateLyout.Name = "cb_IsAllowUpdateLyout";
|
||||
this.cb_IsAllowUpdateLyout.Size = new System.Drawing.Size(128, 20);
|
||||
this.cb_IsAllowUpdateLyout.TabIndex = 23;
|
||||
this.cb_IsAllowUpdateLyout.Text = "允许修改布局";
|
||||
this.cb_IsAllowUpdateLyout.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// ParamConfigPage
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(608, 432);
|
||||
this.Controls.Add(this.cb_IsAllowUpdateLyout);
|
||||
this.Controls.Add(this.btn_Cancel);
|
||||
this.Controls.Add(this.btn_Sure);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.Name = "ParamConfigPage";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "参数配置";
|
||||
this.Load += new System.EventHandler(this.ParamConfig_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button btn_Sure;
|
||||
private System.Windows.Forms.Button btn_Cancel;
|
||||
private System.Windows.Forms.CheckBox cb_IsAllowUpdateLyout;
|
||||
}
|
||||
}
|
||||
66
SCADA/Page_Manager/Manager_Config/ParamConfigPage.cs
Normal file
@@ -0,0 +1,66 @@
|
||||
using MesWork;
|
||||
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;
|
||||
|
||||
namespace MainLineRepair
|
||||
{
|
||||
/// <summary>
|
||||
/// 参数配置
|
||||
/// </summary>
|
||||
public partial class ParamConfigPage : Form
|
||||
{
|
||||
/// <summary>
|
||||
/// 构造
|
||||
/// </summary>
|
||||
public ParamConfigPage()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void ParamConfig_Load(object sender, EventArgs e)
|
||||
{
|
||||
}
|
||||
/// <summary>
|
||||
/// 取消按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void btn_Cancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
DialogResult = DialogResult.Cancel;
|
||||
}
|
||||
/// <summary>
|
||||
/// 确认按钮
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void btn_Sure_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (MessageBox.Show("确认修改配置吗?", "修改确认", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
Temp.mesWorkForm.Visible_SaveLyoutBtn(MesWorkForm.allowDrag = cb_IsAllowUpdateLyout.Checked);
|
||||
DialogResult = DialogResult.OK;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
120
SCADA/Page_Manager/Manager_Config/ParamConfigPage.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
798
SCADA/Page_Manager/Manager_Log/LogRecord.Designer.cs
generated
Normal file
@@ -0,0 +1,798 @@
|
||||
|
||||
namespace LogRecord
|
||||
{
|
||||
partial class LogRecord
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows 窗体设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要修改
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = 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 dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
this.tabControl_LogQuery = new System.Windows.Forms.TabControl();
|
||||
this.tabPage1 = new System.Windows.Forms.TabPage();
|
||||
this.dtp_End = new System.Windows.Forms.DateTimePicker();
|
||||
this.dtp_Start = new System.Windows.Forms.DateTimePicker();
|
||||
this.cb_StationName = new System.Windows.Forms.ComboBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.cb_Type = new System.Windows.Forms.ComboBox();
|
||||
this.btn_Refresh = new System.Windows.Forms.Button();
|
||||
this.dgv_Log = new System.Windows.Forms.DataGridView();
|
||||
this.时间 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.工位号 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.类型 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.内容 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tabPage2 = new System.Windows.Forms.TabPage();
|
||||
this.cmb_StationNames_WebAPI = new System.Windows.Forms.ComboBox();
|
||||
this.label10 = new System.Windows.Forms.Label();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
this.txt_ResponseContext = new System.Windows.Forms.TextBox();
|
||||
this.txt_RequestContext = new System.Windows.Forms.TextBox();
|
||||
this.dtpicker_end = new System.Windows.Forms.DateTimePicker();
|
||||
this.dtpicker_start = new System.Windows.Forms.DateTimePicker();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.cmb_RequestCMD = new System.Windows.Forms.ComboBox();
|
||||
this.btn_WebAPILog_Query = new System.Windows.Forms.Button();
|
||||
this.dgv_WebApiLog = new System.Windows.Forms.DataGridView();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.tabPage3 = new System.Windows.Forms.TabPage();
|
||||
this.label16 = new System.Windows.Forms.Label();
|
||||
this.txt_Key_TaskCodeOrOPName = new System.Windows.Forms.TextBox();
|
||||
this.label11 = new System.Windows.Forms.Label();
|
||||
this.label12 = new System.Windows.Forms.Label();
|
||||
this.txt_ResponseContext_3 = new System.Windows.Forms.TextBox();
|
||||
this.txt_RequestContext_3 = new System.Windows.Forms.TextBox();
|
||||
this.dt_End = new System.Windows.Forms.DateTimePicker();
|
||||
this.dt_Start = new System.Windows.Forms.DateTimePicker();
|
||||
this.label13 = new System.Windows.Forms.Label();
|
||||
this.btn_QueryALL = new System.Windows.Forms.Button();
|
||||
this.dg_WebAPI_And_RunLog = new System.Windows.Forms.DataGridView();
|
||||
this.StationName = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.TaskCode = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.日志类型 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.请求FROM = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.请求CMD = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.发生时间 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.请求内容 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.响应内容 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.label15 = new System.Windows.Forms.Label();
|
||||
this.tabControl_LogQuery.SuspendLayout();
|
||||
this.tabPage1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgv_Log)).BeginInit();
|
||||
this.tabPage2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgv_WebApiLog)).BeginInit();
|
||||
this.tabPage3.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dg_WebAPI_And_RunLog)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// tabControl_LogQuery
|
||||
//
|
||||
this.tabControl_LogQuery.Controls.Add(this.tabPage1);
|
||||
this.tabControl_LogQuery.Controls.Add(this.tabPage2);
|
||||
this.tabControl_LogQuery.Controls.Add(this.tabPage3);
|
||||
this.tabControl_LogQuery.Location = new System.Drawing.Point(0, 2);
|
||||
this.tabControl_LogQuery.Name = "tabControl_LogQuery";
|
||||
this.tabControl_LogQuery.SelectedIndex = 0;
|
||||
this.tabControl_LogQuery.Size = new System.Drawing.Size(1549, 829);
|
||||
this.tabControl_LogQuery.TabIndex = 0;
|
||||
//
|
||||
// tabPage1
|
||||
//
|
||||
this.tabPage1.Controls.Add(this.dtp_End);
|
||||
this.tabPage1.Controls.Add(this.dtp_Start);
|
||||
this.tabPage1.Controls.Add(this.cb_StationName);
|
||||
this.tabPage1.Controls.Add(this.label2);
|
||||
this.tabPage1.Controls.Add(this.cb_Type);
|
||||
this.tabPage1.Controls.Add(this.btn_Refresh);
|
||||
this.tabPage1.Controls.Add(this.dgv_Log);
|
||||
this.tabPage1.Controls.Add(this.label4);
|
||||
this.tabPage1.Controls.Add(this.label3);
|
||||
this.tabPage1.Controls.Add(this.label1);
|
||||
this.tabPage1.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPage1.Name = "tabPage1";
|
||||
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage1.Size = new System.Drawing.Size(1541, 803);
|
||||
this.tabPage1.TabIndex = 0;
|
||||
this.tabPage1.Text = "运行日志查询";
|
||||
this.tabPage1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// dtp_End
|
||||
//
|
||||
this.dtp_End.CustomFormat = "yyyy-MM-dd HH:mm:ss";
|
||||
this.dtp_End.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtp_End.Location = new System.Drawing.Point(240, 10);
|
||||
this.dtp_End.Name = "dtp_End";
|
||||
this.dtp_End.Size = new System.Drawing.Size(163, 21);
|
||||
this.dtp_End.TabIndex = 87;
|
||||
//
|
||||
// dtp_Start
|
||||
//
|
||||
this.dtp_Start.CustomFormat = "yyyy-MM-dd HH:mm:ss";
|
||||
this.dtp_Start.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtp_Start.Location = new System.Drawing.Point(35, 10);
|
||||
this.dtp_Start.Name = "dtp_Start";
|
||||
this.dtp_Start.Size = new System.Drawing.Size(165, 21);
|
||||
this.dtp_Start.TabIndex = 88;
|
||||
//
|
||||
// cb_StationName
|
||||
//
|
||||
this.cb_StationName.FormattingEnabled = true;
|
||||
this.cb_StationName.Location = new System.Drawing.Point(707, 10);
|
||||
this.cb_StationName.Name = "cb_StationName";
|
||||
this.cb_StationName.Size = new System.Drawing.Size(138, 20);
|
||||
this.cb_StationName.TabIndex = 86;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label2.Location = new System.Drawing.Point(640, 14);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(67, 14);
|
||||
this.label2.TabIndex = 82;
|
||||
this.label2.Text = "工位号:";
|
||||
//
|
||||
// cb_Type
|
||||
//
|
||||
this.cb_Type.FormattingEnabled = true;
|
||||
this.cb_Type.Location = new System.Drawing.Point(472, 10);
|
||||
this.cb_Type.Name = "cb_Type";
|
||||
this.cb_Type.Size = new System.Drawing.Size(150, 20);
|
||||
this.cb_Type.TabIndex = 81;
|
||||
//
|
||||
// btn_Refresh
|
||||
//
|
||||
this.btn_Refresh.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btn_Refresh.Location = new System.Drawing.Point(860, 7);
|
||||
this.btn_Refresh.Name = "btn_Refresh";
|
||||
this.btn_Refresh.Size = new System.Drawing.Size(83, 26);
|
||||
this.btn_Refresh.TabIndex = 80;
|
||||
this.btn_Refresh.Text = "查询";
|
||||
this.btn_Refresh.UseVisualStyleBackColor = true;
|
||||
this.btn_Refresh.Click += new System.EventHandler(this.btn_Refresh_Click);
|
||||
//
|
||||
// dgv_Log
|
||||
//
|
||||
this.dgv_Log.AllowUserToAddRows = false;
|
||||
this.dgv_Log.AllowUserToDeleteRows = false;
|
||||
this.dgv_Log.AllowUserToResizeRows = false;
|
||||
this.dgv_Log.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.dgv_Log.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
|
||||
dataGridViewCellStyle1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dgv_Log.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
|
||||
this.dgv_Log.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dgv_Log.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.时间,
|
||||
this.工位号,
|
||||
this.类型,
|
||||
this.内容});
|
||||
this.dgv_Log.Location = new System.Drawing.Point(8, 43);
|
||||
this.dgv_Log.MultiSelect = false;
|
||||
this.dgv_Log.Name = "dgv_Log";
|
||||
this.dgv_Log.ReadOnly = true;
|
||||
this.dgv_Log.RowHeadersVisible = false;
|
||||
this.dgv_Log.RowTemplate.Height = 26;
|
||||
this.dgv_Log.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.dgv_Log.Size = new System.Drawing.Size(1527, 757);
|
||||
this.dgv_Log.TabIndex = 79;
|
||||
this.dgv_Log.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgv_Log_CellClick);
|
||||
//
|
||||
// 时间
|
||||
//
|
||||
this.时间.DataPropertyName = "时间";
|
||||
dataGridViewCellStyle2.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold);
|
||||
dataGridViewCellStyle2.Format = "G";
|
||||
this.时间.DefaultCellStyle = dataGridViewCellStyle2;
|
||||
this.时间.HeaderText = "时间";
|
||||
this.时间.Name = "时间";
|
||||
this.时间.ReadOnly = true;
|
||||
this.时间.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
this.时间.Width = 190;
|
||||
//
|
||||
// 工位号
|
||||
//
|
||||
this.工位号.DataPropertyName = "工位号";
|
||||
dataGridViewCellStyle3.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold);
|
||||
this.工位号.DefaultCellStyle = dataGridViewCellStyle3;
|
||||
this.工位号.HeaderText = "工位号";
|
||||
this.工位号.Name = "工位号";
|
||||
this.工位号.ReadOnly = true;
|
||||
this.工位号.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
this.工位号.Width = 150;
|
||||
//
|
||||
// 类型
|
||||
//
|
||||
this.类型.DataPropertyName = "类型";
|
||||
dataGridViewCellStyle4.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold);
|
||||
this.类型.DefaultCellStyle = dataGridViewCellStyle4;
|
||||
this.类型.HeaderText = "类型";
|
||||
this.类型.Name = "类型";
|
||||
this.类型.ReadOnly = true;
|
||||
this.类型.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
this.类型.Width = 90;
|
||||
//
|
||||
// 内容
|
||||
//
|
||||
this.内容.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
||||
this.内容.DataPropertyName = "内容";
|
||||
dataGridViewCellStyle5.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold);
|
||||
this.内容.DefaultCellStyle = dataGridViewCellStyle5;
|
||||
this.内容.HeaderText = "内容";
|
||||
this.内容.Name = "内容";
|
||||
this.内容.ReadOnly = true;
|
||||
this.内容.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label4.Location = new System.Drawing.Point(212, 13);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(22, 14);
|
||||
this.label4.TabIndex = 83;
|
||||
this.label4.Text = "到";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label3.Location = new System.Drawing.Point(6, 14);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(22, 14);
|
||||
this.label3.TabIndex = 84;
|
||||
this.label3.Text = "从";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label1.Location = new System.Drawing.Point(421, 14);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(52, 14);
|
||||
this.label1.TabIndex = 85;
|
||||
this.label1.Text = "分类:";
|
||||
//
|
||||
// tabPage2
|
||||
//
|
||||
this.tabPage2.Controls.Add(this.cmb_StationNames_WebAPI);
|
||||
this.tabPage2.Controls.Add(this.label10);
|
||||
this.tabPage2.Controls.Add(this.label9);
|
||||
this.tabPage2.Controls.Add(this.txt_ResponseContext);
|
||||
this.tabPage2.Controls.Add(this.txt_RequestContext);
|
||||
this.tabPage2.Controls.Add(this.dtpicker_end);
|
||||
this.tabPage2.Controls.Add(this.dtpicker_start);
|
||||
this.tabPage2.Controls.Add(this.label5);
|
||||
this.tabPage2.Controls.Add(this.cmb_RequestCMD);
|
||||
this.tabPage2.Controls.Add(this.btn_WebAPILog_Query);
|
||||
this.tabPage2.Controls.Add(this.dgv_WebApiLog);
|
||||
this.tabPage2.Controls.Add(this.label6);
|
||||
this.tabPage2.Controls.Add(this.label7);
|
||||
this.tabPage2.Controls.Add(this.label8);
|
||||
this.tabPage2.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPage2.Name = "tabPage2";
|
||||
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
|
||||
this.tabPage2.Size = new System.Drawing.Size(1541, 803);
|
||||
this.tabPage2.TabIndex = 1;
|
||||
this.tabPage2.Text = "WebApi接口传递数据日志";
|
||||
this.tabPage2.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// cmb_StationNames_WebAPI
|
||||
//
|
||||
this.cmb_StationNames_WebAPI.FormattingEnabled = true;
|
||||
this.cmb_StationNames_WebAPI.Location = new System.Drawing.Point(759, 9);
|
||||
this.cmb_StationNames_WebAPI.Name = "cmb_StationNames_WebAPI";
|
||||
this.cmb_StationNames_WebAPI.Size = new System.Drawing.Size(138, 20);
|
||||
this.cmb_StationNames_WebAPI.TabIndex = 102;
|
||||
//
|
||||
// label10
|
||||
//
|
||||
this.label10.AutoSize = true;
|
||||
this.label10.Location = new System.Drawing.Point(1088, 522);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(53, 12);
|
||||
this.label10.TabIndex = 101;
|
||||
this.label10.Text = "响应内容";
|
||||
//
|
||||
// label9
|
||||
//
|
||||
this.label9.AutoSize = true;
|
||||
this.label9.Location = new System.Drawing.Point(1088, 37);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(53, 12);
|
||||
this.label9.TabIndex = 101;
|
||||
this.label9.Text = "请求内容";
|
||||
//
|
||||
// txt_ResponseContext
|
||||
//
|
||||
this.txt_ResponseContext.Location = new System.Drawing.Point(1090, 537);
|
||||
this.txt_ResponseContext.Multiline = true;
|
||||
this.txt_ResponseContext.Name = "txt_ResponseContext";
|
||||
this.txt_ResponseContext.ReadOnly = true;
|
||||
this.txt_ResponseContext.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.txt_ResponseContext.Size = new System.Drawing.Size(440, 260);
|
||||
this.txt_ResponseContext.TabIndex = 100;
|
||||
//
|
||||
// txt_RequestContext
|
||||
//
|
||||
this.txt_RequestContext.Location = new System.Drawing.Point(1090, 52);
|
||||
this.txt_RequestContext.Multiline = true;
|
||||
this.txt_RequestContext.Name = "txt_RequestContext";
|
||||
this.txt_RequestContext.ReadOnly = true;
|
||||
this.txt_RequestContext.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.txt_RequestContext.Size = new System.Drawing.Size(440, 452);
|
||||
this.txt_RequestContext.TabIndex = 100;
|
||||
//
|
||||
// dtpicker_end
|
||||
//
|
||||
this.dtpicker_end.CustomFormat = "yyyy-MM-dd HH:mm:ss";
|
||||
this.dtpicker_end.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpicker_end.Location = new System.Drawing.Point(261, 9);
|
||||
this.dtpicker_end.Name = "dtpicker_end";
|
||||
this.dtpicker_end.Size = new System.Drawing.Size(154, 21);
|
||||
this.dtpicker_end.TabIndex = 97;
|
||||
//
|
||||
// dtpicker_start
|
||||
//
|
||||
this.dtpicker_start.CustomFormat = "yyyy-MM-dd HH:mm:ss";
|
||||
this.dtpicker_start.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpicker_start.Location = new System.Drawing.Point(79, 9);
|
||||
this.dtpicker_start.Name = "dtpicker_start";
|
||||
this.dtpicker_start.Size = new System.Drawing.Size(155, 21);
|
||||
this.dtpicker_start.TabIndex = 98;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label5.Location = new System.Drawing.Point(681, 12);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(82, 14);
|
||||
this.label5.TabIndex = 92;
|
||||
this.label5.Text = "请求关键字";
|
||||
//
|
||||
// cmb_RequestCMD
|
||||
//
|
||||
this.cmb_RequestCMD.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cmb_RequestCMD.FormattingEnabled = true;
|
||||
this.cmb_RequestCMD.Location = new System.Drawing.Point(488, 9);
|
||||
this.cmb_RequestCMD.Name = "cmb_RequestCMD";
|
||||
this.cmb_RequestCMD.Size = new System.Drawing.Size(187, 20);
|
||||
this.cmb_RequestCMD.TabIndex = 91;
|
||||
//
|
||||
// btn_WebAPILog_Query
|
||||
//
|
||||
this.btn_WebAPILog_Query.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btn_WebAPILog_Query.Location = new System.Drawing.Point(903, 5);
|
||||
this.btn_WebAPILog_Query.Name = "btn_WebAPILog_Query";
|
||||
this.btn_WebAPILog_Query.Size = new System.Drawing.Size(83, 26);
|
||||
this.btn_WebAPILog_Query.TabIndex = 90;
|
||||
this.btn_WebAPILog_Query.Text = "查询";
|
||||
this.btn_WebAPILog_Query.UseVisualStyleBackColor = true;
|
||||
this.btn_WebAPILog_Query.Click += new System.EventHandler(this.btn_WebAPILog_Query_Click);
|
||||
//
|
||||
// dgv_WebApiLog
|
||||
//
|
||||
this.dgv_WebApiLog.AllowUserToAddRows = false;
|
||||
this.dgv_WebApiLog.AllowUserToDeleteRows = false;
|
||||
this.dgv_WebApiLog.AllowUserToResizeRows = false;
|
||||
this.dgv_WebApiLog.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.dgv_WebApiLog.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
|
||||
this.dgv_WebApiLog.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control;
|
||||
dataGridViewCellStyle6.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||
dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dgv_WebApiLog.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle6;
|
||||
this.dgv_WebApiLog.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dgv_WebApiLog.Location = new System.Drawing.Point(8, 41);
|
||||
this.dgv_WebApiLog.MultiSelect = false;
|
||||
this.dgv_WebApiLog.Name = "dgv_WebApiLog";
|
||||
this.dgv_WebApiLog.ReadOnly = true;
|
||||
this.dgv_WebApiLog.RowHeadersVisible = false;
|
||||
this.dgv_WebApiLog.RowTemplate.Height = 26;
|
||||
this.dgv_WebApiLog.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.dgv_WebApiLog.Size = new System.Drawing.Size(1065, 757);
|
||||
this.dgv_WebApiLog.TabIndex = 89;
|
||||
this.dgv_WebApiLog.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgv_WebApiLog_CellClick);
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label6.Location = new System.Drawing.Point(240, 12);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(15, 14);
|
||||
this.label6.TabIndex = 93;
|
||||
this.label6.Text = "-";
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.AutoSize = true;
|
||||
this.label7.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label7.Location = new System.Drawing.Point(6, 12);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(67, 14);
|
||||
this.label7.TabIndex = 94;
|
||||
this.label7.Text = "请求时间";
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.AutoSize = true;
|
||||
this.label8.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label8.Location = new System.Drawing.Point(427, 12);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(61, 14);
|
||||
this.label8.TabIndex = 95;
|
||||
this.label8.Text = "请求CMD";
|
||||
//
|
||||
// tabPage3
|
||||
//
|
||||
this.tabPage3.Controls.Add(this.label16);
|
||||
this.tabPage3.Controls.Add(this.txt_Key_TaskCodeOrOPName);
|
||||
this.tabPage3.Controls.Add(this.label11);
|
||||
this.tabPage3.Controls.Add(this.label12);
|
||||
this.tabPage3.Controls.Add(this.txt_ResponseContext_3);
|
||||
this.tabPage3.Controls.Add(this.txt_RequestContext_3);
|
||||
this.tabPage3.Controls.Add(this.dt_End);
|
||||
this.tabPage3.Controls.Add(this.dt_Start);
|
||||
this.tabPage3.Controls.Add(this.label13);
|
||||
this.tabPage3.Controls.Add(this.btn_QueryALL);
|
||||
this.tabPage3.Controls.Add(this.dg_WebAPI_And_RunLog);
|
||||
this.tabPage3.Controls.Add(this.label14);
|
||||
this.tabPage3.Controls.Add(this.label15);
|
||||
this.tabPage3.Location = new System.Drawing.Point(4, 22);
|
||||
this.tabPage3.Name = "tabPage3";
|
||||
this.tabPage3.Size = new System.Drawing.Size(1541, 803);
|
||||
this.tabPage3.TabIndex = 2;
|
||||
this.tabPage3.Text = "日志_整合查询";
|
||||
this.tabPage3.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label16
|
||||
//
|
||||
this.label16.AutoSize = true;
|
||||
this.label16.Font = new System.Drawing.Font("宋体", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label16.ForeColor = System.Drawing.Color.Green;
|
||||
this.label16.Location = new System.Drawing.Point(751, 13);
|
||||
this.label16.Name = "label16";
|
||||
this.label16.Size = new System.Drawing.Size(763, 14);
|
||||
this.label16.TabIndex = 117;
|
||||
this.label16.Text = "提示:关键字为【WebAPI日志中请求内容】与【运行日志中LogContent】的共同关键字,最好为【TaskCode】或【工位号】";
|
||||
//
|
||||
// txt_Key_TaskCodeOrOPName
|
||||
//
|
||||
this.txt_Key_TaskCodeOrOPName.Location = new System.Drawing.Point(489, 9);
|
||||
this.txt_Key_TaskCodeOrOPName.Name = "txt_Key_TaskCodeOrOPName";
|
||||
this.txt_Key_TaskCodeOrOPName.Size = new System.Drawing.Size(167, 21);
|
||||
this.txt_Key_TaskCodeOrOPName.TabIndex = 116;
|
||||
//
|
||||
// label11
|
||||
//
|
||||
this.label11.AutoSize = true;
|
||||
this.label11.Location = new System.Drawing.Point(1090, 522);
|
||||
this.label11.Name = "label11";
|
||||
this.label11.Size = new System.Drawing.Size(53, 12);
|
||||
this.label11.TabIndex = 114;
|
||||
this.label11.Text = "响应内容";
|
||||
//
|
||||
// label12
|
||||
//
|
||||
this.label12.AutoSize = true;
|
||||
this.label12.Location = new System.Drawing.Point(1090, 37);
|
||||
this.label12.Name = "label12";
|
||||
this.label12.Size = new System.Drawing.Size(53, 12);
|
||||
this.label12.TabIndex = 115;
|
||||
this.label12.Text = "请求内容";
|
||||
//
|
||||
// txt_ResponseContext_3
|
||||
//
|
||||
this.txt_ResponseContext_3.Location = new System.Drawing.Point(1092, 537);
|
||||
this.txt_ResponseContext_3.Multiline = true;
|
||||
this.txt_ResponseContext_3.Name = "txt_ResponseContext_3";
|
||||
this.txt_ResponseContext_3.ReadOnly = true;
|
||||
this.txt_ResponseContext_3.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.txt_ResponseContext_3.Size = new System.Drawing.Size(440, 260);
|
||||
this.txt_ResponseContext_3.TabIndex = 112;
|
||||
//
|
||||
// txt_RequestContext_3
|
||||
//
|
||||
this.txt_RequestContext_3.Location = new System.Drawing.Point(1092, 52);
|
||||
this.txt_RequestContext_3.Multiline = true;
|
||||
this.txt_RequestContext_3.Name = "txt_RequestContext_3";
|
||||
this.txt_RequestContext_3.ReadOnly = true;
|
||||
this.txt_RequestContext_3.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.txt_RequestContext_3.Size = new System.Drawing.Size(440, 452);
|
||||
this.txt_RequestContext_3.TabIndex = 113;
|
||||
//
|
||||
// dt_End
|
||||
//
|
||||
this.dt_End.CustomFormat = "yyyy-MM-dd HH:mm:ss";
|
||||
this.dt_End.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dt_End.Location = new System.Drawing.Point(263, 9);
|
||||
this.dt_End.Name = "dt_End";
|
||||
this.dt_End.Size = new System.Drawing.Size(154, 21);
|
||||
this.dt_End.TabIndex = 110;
|
||||
//
|
||||
// dt_Start
|
||||
//
|
||||
this.dt_Start.CustomFormat = "yyyy-MM-dd HH:mm:ss";
|
||||
this.dt_Start.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dt_Start.Location = new System.Drawing.Point(81, 9);
|
||||
this.dt_Start.Name = "dt_Start";
|
||||
this.dt_Start.Size = new System.Drawing.Size(155, 21);
|
||||
this.dt_Start.TabIndex = 111;
|
||||
//
|
||||
// label13
|
||||
//
|
||||
this.label13.AutoSize = true;
|
||||
this.label13.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label13.Location = new System.Drawing.Point(431, 12);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(52, 14);
|
||||
this.label13.TabIndex = 106;
|
||||
this.label13.Text = "关键字";
|
||||
//
|
||||
// btn_QueryALL
|
||||
//
|
||||
this.btn_QueryALL.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btn_QueryALL.Location = new System.Drawing.Point(662, 6);
|
||||
this.btn_QueryALL.Name = "btn_QueryALL";
|
||||
this.btn_QueryALL.Size = new System.Drawing.Size(83, 26);
|
||||
this.btn_QueryALL.TabIndex = 104;
|
||||
this.btn_QueryALL.Text = "查询";
|
||||
this.btn_QueryALL.UseVisualStyleBackColor = true;
|
||||
this.btn_QueryALL.Click += new System.EventHandler(this.btn_QueryALL_Click);
|
||||
//
|
||||
// dg_WebAPI_And_RunLog
|
||||
//
|
||||
this.dg_WebAPI_And_RunLog.AllowUserToAddRows = false;
|
||||
this.dg_WebAPI_And_RunLog.AllowUserToDeleteRows = false;
|
||||
this.dg_WebAPI_And_RunLog.AllowUserToResizeRows = false;
|
||||
this.dg_WebAPI_And_RunLog.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.dg_WebAPI_And_RunLog.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
|
||||
this.dg_WebAPI_And_RunLog.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle7.BackColor = System.Drawing.SystemColors.Control;
|
||||
dataGridViewCellStyle7.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
dataGridViewCellStyle7.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||
dataGridViewCellStyle7.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle7.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle7.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dg_WebAPI_And_RunLog.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle7;
|
||||
this.dg_WebAPI_And_RunLog.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dg_WebAPI_And_RunLog.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.StationName,
|
||||
this.TaskCode,
|
||||
this.日志类型,
|
||||
this.请求FROM,
|
||||
this.请求CMD,
|
||||
this.发生时间,
|
||||
this.请求内容,
|
||||
this.响应内容});
|
||||
this.dg_WebAPI_And_RunLog.Location = new System.Drawing.Point(10, 41);
|
||||
this.dg_WebAPI_And_RunLog.MultiSelect = false;
|
||||
this.dg_WebAPI_And_RunLog.Name = "dg_WebAPI_And_RunLog";
|
||||
this.dg_WebAPI_And_RunLog.ReadOnly = true;
|
||||
this.dg_WebAPI_And_RunLog.RowHeadersVisible = false;
|
||||
this.dg_WebAPI_And_RunLog.RowTemplate.Height = 26;
|
||||
this.dg_WebAPI_And_RunLog.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.dg_WebAPI_And_RunLog.Size = new System.Drawing.Size(1065, 757);
|
||||
this.dg_WebAPI_And_RunLog.TabIndex = 103;
|
||||
this.dg_WebAPI_And_RunLog.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dg_WebAPI_And_RunLog_CellClick);
|
||||
//
|
||||
// StationName
|
||||
//
|
||||
this.StationName.DataPropertyName = "StationName";
|
||||
this.StationName.FillWeight = 85.85372F;
|
||||
this.StationName.HeaderText = "StationName";
|
||||
this.StationName.Name = "StationName";
|
||||
this.StationName.ReadOnly = true;
|
||||
//
|
||||
// TaskCode
|
||||
//
|
||||
this.TaskCode.DataPropertyName = "TaskCode";
|
||||
this.TaskCode.FillWeight = 89.0835F;
|
||||
this.TaskCode.HeaderText = "TaskCode";
|
||||
this.TaskCode.Name = "TaskCode";
|
||||
this.TaskCode.ReadOnly = true;
|
||||
//
|
||||
// 日志类型
|
||||
//
|
||||
this.日志类型.DataPropertyName = "日志类型";
|
||||
this.日志类型.FillWeight = 71.00318F;
|
||||
this.日志类型.HeaderText = "日志类型";
|
||||
this.日志类型.Name = "日志类型";
|
||||
this.日志类型.ReadOnly = true;
|
||||
//
|
||||
// 请求FROM
|
||||
//
|
||||
this.请求FROM.DataPropertyName = "请求FROM";
|
||||
this.请求FROM.FillWeight = 81.21832F;
|
||||
this.请求FROM.HeaderText = "请求FROM";
|
||||
this.请求FROM.Name = "请求FROM";
|
||||
this.请求FROM.ReadOnly = true;
|
||||
//
|
||||
// 请求CMD
|
||||
//
|
||||
this.请求CMD.DataPropertyName = "请求CMD/Log_Type";
|
||||
this.请求CMD.FillWeight = 118.3387F;
|
||||
this.请求CMD.HeaderText = "请求CMD";
|
||||
this.请求CMD.Name = "请求CMD";
|
||||
this.请求CMD.ReadOnly = true;
|
||||
//
|
||||
// 发生时间
|
||||
//
|
||||
this.发生时间.DataPropertyName = "发生时间";
|
||||
this.发生时间.FillWeight = 94.84125F;
|
||||
this.发生时间.HeaderText = "发生时间";
|
||||
this.发生时间.Name = "发生时间";
|
||||
this.发生时间.ReadOnly = true;
|
||||
//
|
||||
// 请求内容
|
||||
//
|
||||
this.请求内容.DataPropertyName = "请求内容/日志内容";
|
||||
this.请求内容.FillWeight = 140.5793F;
|
||||
this.请求内容.HeaderText = "请求内容";
|
||||
this.请求内容.Name = "请求内容";
|
||||
this.请求内容.ReadOnly = true;
|
||||
//
|
||||
// 响应内容
|
||||
//
|
||||
this.响应内容.DataPropertyName = "响应内容";
|
||||
this.响应内容.FillWeight = 119.0824F;
|
||||
this.响应内容.HeaderText = "响应内容";
|
||||
this.响应内容.Name = "响应内容";
|
||||
this.响应内容.ReadOnly = true;
|
||||
//
|
||||
// label14
|
||||
//
|
||||
this.label14.AutoSize = true;
|
||||
this.label14.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label14.Location = new System.Drawing.Point(242, 12);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(15, 14);
|
||||
this.label14.TabIndex = 107;
|
||||
this.label14.Text = "-";
|
||||
//
|
||||
// label15
|
||||
//
|
||||
this.label15.AutoSize = true;
|
||||
this.label15.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label15.Location = new System.Drawing.Point(8, 12);
|
||||
this.label15.Name = "label15";
|
||||
this.label15.Size = new System.Drawing.Size(67, 14);
|
||||
this.label15.TabIndex = 108;
|
||||
this.label15.Text = "请求时间";
|
||||
//
|
||||
// LogRecord
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1550, 834);
|
||||
this.Controls.Add(this.tabControl_LogQuery);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.Name = "LogRecord";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "日志";
|
||||
this.Load += new System.EventHandler(this.LogRecord_Load);
|
||||
this.Resize += new System.EventHandler(this.LogRecord_Resize);
|
||||
this.tabControl_LogQuery.ResumeLayout(false);
|
||||
this.tabPage1.ResumeLayout(false);
|
||||
this.tabPage1.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgv_Log)).EndInit();
|
||||
this.tabPage2.ResumeLayout(false);
|
||||
this.tabPage2.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgv_WebApiLog)).EndInit();
|
||||
this.tabPage3.ResumeLayout(false);
|
||||
this.tabPage3.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dg_WebAPI_And_RunLog)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TabControl tabControl_LogQuery;
|
||||
private System.Windows.Forms.TabPage tabPage1;
|
||||
private System.Windows.Forms.DateTimePicker dtp_End;
|
||||
private System.Windows.Forms.DateTimePicker dtp_Start;
|
||||
private System.Windows.Forms.ComboBox cb_StationName;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.ComboBox cb_Type;
|
||||
private System.Windows.Forms.Button btn_Refresh;
|
||||
private System.Windows.Forms.DataGridView dgv_Log;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.TabPage tabPage2;
|
||||
private System.Windows.Forms.DateTimePicker dtpicker_end;
|
||||
private System.Windows.Forms.DateTimePicker dtpicker_start;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.ComboBox cmb_RequestCMD;
|
||||
private System.Windows.Forms.Button btn_WebAPILog_Query;
|
||||
private System.Windows.Forms.DataGridView dgv_WebApiLog;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private System.Windows.Forms.Label label10;
|
||||
private System.Windows.Forms.Label label9;
|
||||
private System.Windows.Forms.TextBox txt_ResponseContext;
|
||||
private System.Windows.Forms.TextBox txt_RequestContext;
|
||||
private System.Windows.Forms.ComboBox cmb_StationNames_WebAPI;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 时间;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 工位号;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 类型;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 内容;
|
||||
private System.Windows.Forms.TabPage tabPage3;
|
||||
private System.Windows.Forms.TextBox txt_Key_TaskCodeOrOPName;
|
||||
private System.Windows.Forms.Label label11;
|
||||
private System.Windows.Forms.Label label12;
|
||||
private System.Windows.Forms.TextBox txt_ResponseContext_3;
|
||||
private System.Windows.Forms.TextBox txt_RequestContext_3;
|
||||
private System.Windows.Forms.DateTimePicker dt_End;
|
||||
private System.Windows.Forms.DateTimePicker dt_Start;
|
||||
private System.Windows.Forms.Label label13;
|
||||
private System.Windows.Forms.Button btn_QueryALL;
|
||||
private System.Windows.Forms.Label label14;
|
||||
private System.Windows.Forms.Label label15;
|
||||
private System.Windows.Forms.Label label16;
|
||||
private System.Windows.Forms.DataGridView dg_WebAPI_And_RunLog;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn StationName;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn TaskCode;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 日志类型;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 请求FROM;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 请求CMD;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 发生时间;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 请求内容;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 响应内容;
|
||||
}
|
||||
}
|
||||
|
||||
359
SCADA/Page_Manager/Manager_Log/LogRecord.cs
Normal file
@@ -0,0 +1,359 @@
|
||||
using ExternalDataSync;
|
||||
using MesWork;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Reflection.Emit;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using static System.Configuration.ConfigurationManager;
|
||||
/// <summary>
|
||||
/// 报警类型
|
||||
/// </summary>
|
||||
public enum Type_Log
|
||||
{
|
||||
/// <summary>
|
||||
/// 报警
|
||||
/// </summary>
|
||||
Alarm = 1,
|
||||
/// <summary>
|
||||
/// 登录
|
||||
/// </summary>
|
||||
Login = 2,
|
||||
/// <summary>
|
||||
/// 提示
|
||||
/// </summary>
|
||||
Tip = 3,
|
||||
/// <summary>
|
||||
/// 操作(生产计划、点按钮操作)
|
||||
/// </summary>
|
||||
Operation = 4,
|
||||
/// <summary>
|
||||
/// MES处理信号
|
||||
/// </summary>
|
||||
MesHandler = 5,
|
||||
/// <summary>
|
||||
/// 配方下载
|
||||
/// </summary>
|
||||
RecipesDownload = 6,
|
||||
/// <summary>
|
||||
/// 发动机上线
|
||||
/// </summary>
|
||||
OnLine = 7,
|
||||
/// <summary>
|
||||
/// 发动机下线
|
||||
/// </summary>
|
||||
OffLine = 8,
|
||||
/// <summary>
|
||||
/// MES请求接口的日志
|
||||
/// </summary>
|
||||
Interface_MesReq = 9,
|
||||
/// <summary>
|
||||
/// MES请求接口的日志
|
||||
/// </summary>
|
||||
RecipesDownload_ColdTest = 10,
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
Undefined = 1000
|
||||
|
||||
}
|
||||
namespace LogRecord
|
||||
{
|
||||
/// <summary>
|
||||
/// 日志处理
|
||||
/// </summary>
|
||||
public partial class LogRecord : Form
|
||||
{
|
||||
/// <summary>
|
||||
/// 构造
|
||||
/// </summary>
|
||||
public LogRecord()
|
||||
{
|
||||
InitializeComponent();
|
||||
//this.WindowState = FormWindowState.Maximized;
|
||||
}
|
||||
/// <summary>
|
||||
/// 构造
|
||||
/// </summary>
|
||||
/// <param name="_Width"></param>
|
||||
/// <param name="_Height"></param>
|
||||
public LogRecord(int _Width,int _Height)
|
||||
{
|
||||
InitializeComponent();
|
||||
//this.Width = _Width;
|
||||
//this.Height = _Height;
|
||||
cb_Type.DataSource = Enum.GetNames(typeof(Type_Log));
|
||||
cb_Type.Text = Type_Log.Undefined.ToString ();
|
||||
cb_StationName.Items.Add("");
|
||||
cmb_StationNames_WebAPI.Items.Add("");
|
||||
foreach (var stationName in MesWorkForm.opNameList)
|
||||
{
|
||||
cb_StationName.Items.Add(stationName);
|
||||
cmb_StationNames_WebAPI.Items.Add(stationName);
|
||||
}
|
||||
cb_StationName.SelectedIndex = 0;
|
||||
cmb_StationNames_WebAPI.SelectedIndex = 0;
|
||||
|
||||
var end = DateTime.Now.AddDays(1);
|
||||
var start = end.AddDays(-8);
|
||||
dtp_Start.Value = start;
|
||||
dtp_End.Value = end;
|
||||
|
||||
dtpicker_end.Value = DateTime.Now.AddDays(1);
|
||||
dtpicker_start.Value = DateTime.Now.AddDays(-3);
|
||||
dt_End.Value = DateTime.Now.AddDays(1);
|
||||
dt_Start.Value = DateTime.Now.AddDays(-1);
|
||||
WebAPI_LogType_Binding();
|
||||
}
|
||||
private void WebAPI_LogType_Binding()
|
||||
{
|
||||
var sql = "SELECT [请求CMD] FROM [历史_WebApi接口传递数据日志] group by [请求CMD] order by [请求CMD]";
|
||||
SqlOperation.ExecuteSql(sql, out DataTable dt, out string error);
|
||||
DataRow irow = dt.NewRow();
|
||||
irow[0] = "";
|
||||
dt.Rows.InsertAt(irow, 0);
|
||||
cmb_RequestCMD.ValueMember = "请求CMD";
|
||||
cmb_RequestCMD.DisplayMember= "请求CMD";
|
||||
cmb_RequestCMD.DataSource = dt;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 钩子
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void LogRecord_Load(object sender, EventArgs e)
|
||||
{
|
||||
var start = dtp_Start.Value;
|
||||
var end = dtp_End.Value;
|
||||
|
||||
Refresh_Log(Type_Log.Undefined,"", start, end);
|
||||
}
|
||||
/// <summary>
|
||||
/// 刷新日志的显示
|
||||
/// </summary>
|
||||
private void Refresh_Log(Type_Log type, string stationName, DateTime start, DateTime end)
|
||||
{
|
||||
var dt = Select_Log(type, stationName, start, end);
|
||||
dgv_Log.DataSource = dt;
|
||||
|
||||
for (int i = 0; i < dt.Rows.Count; i++)
|
||||
{
|
||||
var 类型 = (Type_Log)Enum.Parse(typeof(Type_Log),dt.Rows[i]["类型"].ToString());
|
||||
switch (类型)
|
||||
{
|
||||
case Type_Log.Alarm:
|
||||
RowsColor(i, MesWorkForm.color_Red, dgv_Log);
|
||||
break;
|
||||
case Type_Log.Login:
|
||||
RowsColor(i, MesWorkForm.color_Green, dgv_Log);
|
||||
break;
|
||||
case Type_Log.Tip:
|
||||
RowsColor(i, MesWorkForm.color_Yellow, dgv_Log);
|
||||
break;
|
||||
default:
|
||||
RowsColor(i, MesWorkForm.color_Grey, dgv_Log);
|
||||
break;
|
||||
}
|
||||
}
|
||||
dgv_Log.ClearSelection();
|
||||
//dgv_Log.CurrentCell = null;
|
||||
//dgv_Log.Rows[0].Selected = false;
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="row"></param>
|
||||
/// <param name="color"></param>
|
||||
/// <param name="dgv"></param>
|
||||
private void RowsColor(int row, Color color, DataGridView dgv)
|
||||
{
|
||||
var dt = (System.Data.DataTable)dgv.DataSource;
|
||||
for (int i = 0; i < dt.Columns.Count; i++)
|
||||
{
|
||||
dgv.Rows[row].Cells[i].Style.BackColor = color;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 增加日志
|
||||
/// </summary>
|
||||
/// <param name="LogType"></param>
|
||||
/// <param name="Log_Content"></param>
|
||||
/// <returns></returns>
|
||||
public static bool Insert_Log(Type_Log LogType,string stationName, string Log_Content)
|
||||
{
|
||||
bool success = false;
|
||||
var sql =
|
||||
$" INSERT INTO [记录_日志_运行日志]([Log_Station],[Log_Type],[Log_Time],[Log_Content])" +
|
||||
$" VALUES('{stationName}','{LogType.ToString()}',getdate(),'{Log_Content}')";
|
||||
success = DataLinkMesWork.SQLCommon.ExecuteSql(sql, MesWorkForm.ConnectionString, out string err2);
|
||||
|
||||
return success;
|
||||
|
||||
}
|
||||
public static bool Insert_ScanLog_EleCraft(Type_Log LogType,string stationName, string Log_Content)
|
||||
{
|
||||
bool success = false;
|
||||
var sql =
|
||||
$" INSERT INTO [记录_日志_扫码发送电子工艺]([Log_Station],[Log_Type],[Log_Time],[Log_Content])" +
|
||||
$" VALUES('{stationName}','{LogType.ToString()}',getdate(),'{Log_Content}')";
|
||||
success = DataLinkMesWork.SQLCommon.ExecuteSql(sql, MesWorkForm.ConnectionString, out string err2);
|
||||
|
||||
return success;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 查询日志
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static DataTable Select_Log(Type_Log type,string stationName,DateTime start,DateTime end)
|
||||
{
|
||||
var whereStr = "";
|
||||
if (type != Type_Log.Undefined)
|
||||
{
|
||||
whereStr = whereStr + $" AND [Log_Type] = '{type.ToString()}'";
|
||||
}
|
||||
if (stationName != "")
|
||||
{
|
||||
whereStr = whereStr + $" AND [Log_Station] = '{stationName}'";
|
||||
}
|
||||
if (start != null & end != null)
|
||||
{
|
||||
whereStr = whereStr + $" AND [Log_Time] >= '{start.ToString("G")}' AND [Log_Time] < '{end.ToString("G")}'";
|
||||
}
|
||||
var sql =
|
||||
$" SELECT " +
|
||||
$" [Log_Time] AS 时间" +
|
||||
$" ,[Log_Station] AS 工位号" +
|
||||
$" ,[Log_Type] AS 类型" +
|
||||
$" ,[Log_Content] AS 内容" +
|
||||
|
||||
$" FROM [记录_日志_运行日志]" +
|
||||
$" WHERE 1=1 {whereStr}" +
|
||||
$" ORDER BY [Log_Time] DESC";
|
||||
DataLinkMesWork.SQLCommon.ExecuteDataTable(sql, MesWorkForm.ConnectionString,out DataTable dt, out string err2);
|
||||
return dt;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 手动刷新
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void btn_Refresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
var type = (Type_Log)Enum.Parse(typeof(Type_Log), cb_Type.Text);
|
||||
var start = dtp_Start.Value;
|
||||
var end = dtp_End.Value;
|
||||
var stationName = cb_StationName.Text;
|
||||
|
||||
Refresh_Log(type, stationName, start,end);
|
||||
}
|
||||
|
||||
private void btn_WebAPILog_Query_Click(object sender, EventArgs e)
|
||||
{
|
||||
var wherestr = $"WHERE [请求时间]>='{dtpicker_start.Value}' AND [请求时间]<='{dtpicker_end.Value}'";
|
||||
if (cmb_RequestCMD.Text.Trim() != "") wherestr += $" AND [请求CMD]='{cmb_RequestCMD.Text.Trim()}'";
|
||||
if(cmb_StationNames_WebAPI.Text.Trim()!="") wherestr += $" AND [请求内容] LIKE '%{cmb_StationNames_WebAPI.Text.Trim()}%'";
|
||||
|
||||
var sql = $"SELECT Top(500) [TaskID],[请求CMD],[请求FROM],[请求时间],[请求内容],[响应时间],[响应内容] FROM [历史_WebApi接口传递数据日志] {wherestr}";
|
||||
sql += " ORDER BY [请求时间] DESC";
|
||||
SqlOperation.ExecuteSql(sql, out DataTable dt, out string error);
|
||||
dgv_WebApiLog.DataSource = dt;
|
||||
dgv_WebApiLog.Columns["请求时间"].ValueType = typeof(DateTime);
|
||||
dgv_WebApiLog.Columns["请求时间"].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
|
||||
dgv_WebApiLog.Columns["响应时间"].ValueType = typeof(DateTime);
|
||||
dgv_WebApiLog.Columns["响应时间"].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
|
||||
}
|
||||
|
||||
private void dgv_WebApiLog_CellClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
txt_RequestContext.Text = dgv_WebApiLog.CurrentRow.Cells["请求内容"].Value.ToString();
|
||||
txt_ResponseContext.Text = dgv_WebApiLog.CurrentRow.Cells["响应内容"].Value.ToString();
|
||||
try
|
||||
{
|
||||
var _msgRequest = JsonConvert.DeserializeObject<JObject>(txt_RequestContext.Text);
|
||||
if (_msgRequest["content"] != null) txt_Key_TaskCodeOrOPName.Text = _msgRequest["content"]["taskCode"].ToString();
|
||||
else if (_msgRequest["WorkCellCode"] != null) txt_Key_TaskCodeOrOPName.Text = _msgRequest["WorkCellCode"].ToString();
|
||||
else txt_Key_TaskCodeOrOPName.Text = "";
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
private void LogRecord_Resize(object sender, EventArgs e)
|
||||
{
|
||||
tabControl_LogQuery.Width = this.Width-20;
|
||||
tabControl_LogQuery.Height= this.Height-45;
|
||||
|
||||
dgv_Log.Width= tabControl_LogQuery.Width - 44;
|
||||
dgv_Log.Height = tabControl_LogQuery.Height - 117;
|
||||
|
||||
dgv_WebApiLog.Width = tabControl_LogQuery.Width - 501;
|
||||
dgv_WebApiLog.Height = tabControl_LogQuery.Height - 116;
|
||||
txt_RequestContext.Left = txt_ResponseContext.Left= label10.Left = label9.Left = tabControl_LogQuery.Width-459;
|
||||
|
||||
dg_WebAPI_And_RunLog.Width = tabControl_LogQuery.Width - 501;
|
||||
dg_WebAPI_And_RunLog.Height = tabControl_LogQuery.Height - 116;
|
||||
txt_RequestContext_3.Left = txt_ResponseContext_3.Left= label11.Left = label12.Left = tabControl_LogQuery.Width-459;
|
||||
}
|
||||
|
||||
private void btn_QueryALL_Click(object sender, EventArgs e)
|
||||
{
|
||||
var name = "大柴_日志查询_TaskCode";
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@TaskCode", this.txt_Key_TaskCodeOrOPName.Text.Trim()),
|
||||
new SqlParameter("@StartTime",dt_Start.Value),
|
||||
new SqlParameter("@EndTime",dt_End.Value),
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameters,out DataTable dt, out string error);
|
||||
dg_WebAPI_And_RunLog.DataSource = dt;
|
||||
dg_WebAPI_And_RunLog.Columns["发生时间"].ValueType = typeof(DateTime);
|
||||
dg_WebAPI_And_RunLog.Columns["发生时间"].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
|
||||
|
||||
}
|
||||
|
||||
private void dg_WebAPI_And_RunLog_CellClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
txt_RequestContext_3.Text = dg_WebAPI_And_RunLog.CurrentRow.Cells["请求内容"].Value.ToString();
|
||||
txt_ResponseContext_3.Text = dg_WebAPI_And_RunLog.CurrentRow.Cells["响应内容"].Value.ToString();
|
||||
|
||||
}
|
||||
|
||||
private void dgv_Log_CellClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var workcell = dgv_Log.CurrentRow.Cells["工位号"].Value.ToString().Trim();
|
||||
txt_Key_TaskCodeOrOPName.Text= workcell;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
throw;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
156
SCADA/Page_Manager/Manager_Log/LogRecord.resx
Normal file
@@ -0,0 +1,156 @@
|
||||
<?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="时间.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="工位号.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="类型.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="内容.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="StationName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="TaskCode.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="日志类型.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="请求FROM.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="请求CMD.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="发生时间.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="请求内容.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="响应内容.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
</root>
|
||||
447
SCADA/Page_Manager/Manager_Monitor/TagDataEngineStatusShowDialog.Designer.cs
generated
Normal file
@@ -0,0 +1,447 @@
|
||||
namespace MesWork
|
||||
{
|
||||
partial class TagDataEngineStatusShowDialog
|
||||
{
|
||||
/// <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()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TagDataEngineStatusShowDialog));
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.txt_OpName = new System.Windows.Forms.TextBox();
|
||||
this.txt_EngineNo = new System.Windows.Forms.TextBox();
|
||||
this.pictureBox_OpName = new System.Windows.Forms.PictureBox();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.txt_SortNo = new System.Windows.Forms.TextBox();
|
||||
this.txt_Order = new System.Windows.Forms.TextBox();
|
||||
this.txt_CylinderBlockNo = new System.Windows.Forms.TextBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.txt_Pollet = new System.Windows.Forms.TextBox();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.txt_Duration_Curr = new System.Windows.Forms.TextBox();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.txt_Duration_Front = new System.Windows.Forms.TextBox();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
this.txt_Duration_Avg = new System.Windows.Forms.TextBox();
|
||||
this.label10 = new System.Windows.Forms.Label();
|
||||
this.txt_Count_Group = new System.Windows.Forms.TextBox();
|
||||
this.label11 = new System.Windows.Forms.Label();
|
||||
this.txt_Count_OK = new System.Windows.Forms.TextBox();
|
||||
this.label12 = new System.Windows.Forms.Label();
|
||||
this.txt_Count_NOK = new System.Windows.Forms.TextBox();
|
||||
this.label13 = new System.Windows.Forms.Label();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.label15 = new System.Windows.Forms.Label();
|
||||
this.txt_Time_PartOn = new System.Windows.Forms.TextBox();
|
||||
this.txt_Time_PartOff = new System.Windows.Forms.TextBox();
|
||||
this.txt_Time_PartComplete = new System.Windows.Forms.TextBox();
|
||||
this.label16 = new System.Windows.Forms.Label();
|
||||
this.txt_Time_PartComplete_Front = new System.Windows.Forms.TextBox();
|
||||
this.timer_ReadPLC = new System.Windows.Forms.Timer(this.components);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox_OpName)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(343, 25);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(53, 12);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "工位号:";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(343, 102);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(65, 12);
|
||||
this.label2.TabIndex = 0;
|
||||
this.label2.Text = "发动机号:";
|
||||
//
|
||||
// txt_OpName
|
||||
//
|
||||
this.txt_OpName.Location = new System.Drawing.Point(405, 20);
|
||||
this.txt_OpName.Name = "txt_OpName";
|
||||
this.txt_OpName.ReadOnly = true;
|
||||
this.txt_OpName.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_OpName.TabIndex = 1;
|
||||
//
|
||||
// txt_EngineNo
|
||||
//
|
||||
this.txt_EngineNo.Location = new System.Drawing.Point(405, 97);
|
||||
this.txt_EngineNo.Name = "txt_EngineNo";
|
||||
this.txt_EngineNo.ReadOnly = true;
|
||||
this.txt_EngineNo.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_EngineNo.TabIndex = 1;
|
||||
//
|
||||
// pictureBox_OpName
|
||||
//
|
||||
this.pictureBox_OpName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.pictureBox_OpName.InitialImage = ((System.Drawing.Image)(resources.GetObject("pictureBox_OpName.InitialImage")));
|
||||
this.pictureBox_OpName.Location = new System.Drawing.Point(12, 12);
|
||||
this.pictureBox_OpName.Name = "pictureBox_OpName";
|
||||
this.pictureBox_OpName.Size = new System.Drawing.Size(315, 259);
|
||||
this.pictureBox_OpName.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
this.pictureBox_OpName.TabIndex = 2;
|
||||
this.pictureBox_OpName.TabStop = false;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(343, 77);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(53, 12);
|
||||
this.label3.TabIndex = 0;
|
||||
this.label3.Text = "机型号:";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(343, 51);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(53, 12);
|
||||
this.label4.TabIndex = 0;
|
||||
this.label4.Text = "订单号:";
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.AutoSize = true;
|
||||
this.label7.Location = new System.Drawing.Point(343, 156);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(53, 12);
|
||||
this.label7.TabIndex = 0;
|
||||
this.label7.Text = "缸体号:";
|
||||
//
|
||||
// txt_SortNo
|
||||
//
|
||||
this.txt_SortNo.Location = new System.Drawing.Point(405, 70);
|
||||
this.txt_SortNo.Name = "txt_SortNo";
|
||||
this.txt_SortNo.ReadOnly = true;
|
||||
this.txt_SortNo.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_SortNo.TabIndex = 3;
|
||||
//
|
||||
// txt_Order
|
||||
//
|
||||
this.txt_Order.Location = new System.Drawing.Point(405, 44);
|
||||
this.txt_Order.Name = "txt_Order";
|
||||
this.txt_Order.ReadOnly = true;
|
||||
this.txt_Order.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_Order.TabIndex = 3;
|
||||
//
|
||||
// txt_CylinderBlockNo
|
||||
//
|
||||
this.txt_CylinderBlockNo.Location = new System.Drawing.Point(405, 152);
|
||||
this.txt_CylinderBlockNo.Name = "txt_CylinderBlockNo";
|
||||
this.txt_CylinderBlockNo.ReadOnly = true;
|
||||
this.txt_CylinderBlockNo.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_CylinderBlockNo.TabIndex = 3;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(343, 128);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(53, 12);
|
||||
this.label6.TabIndex = 0;
|
||||
this.label6.Text = "托盘号:";
|
||||
//
|
||||
// txt_Pollet
|
||||
//
|
||||
this.txt_Pollet.Location = new System.Drawing.Point(405, 124);
|
||||
this.txt_Pollet.Name = "txt_Pollet";
|
||||
this.txt_Pollet.ReadOnly = true;
|
||||
this.txt_Pollet.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_Pollet.TabIndex = 1;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(343, 203);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(65, 12);
|
||||
this.label5.TabIndex = 0;
|
||||
this.label5.Text = "当前节拍:";
|
||||
//
|
||||
// txt_Duration_Curr
|
||||
//
|
||||
this.txt_Duration_Curr.Location = new System.Drawing.Point(405, 199);
|
||||
this.txt_Duration_Curr.Name = "txt_Duration_Curr";
|
||||
this.txt_Duration_Curr.ReadOnly = true;
|
||||
this.txt_Duration_Curr.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_Duration_Curr.TabIndex = 3;
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.AutoSize = true;
|
||||
this.label8.Location = new System.Drawing.Point(343, 230);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(65, 12);
|
||||
this.label8.TabIndex = 0;
|
||||
this.label8.Text = "上一节拍:";
|
||||
//
|
||||
// txt_Duration_Front
|
||||
//
|
||||
this.txt_Duration_Front.Location = new System.Drawing.Point(405, 226);
|
||||
this.txt_Duration_Front.Name = "txt_Duration_Front";
|
||||
this.txt_Duration_Front.ReadOnly = true;
|
||||
this.txt_Duration_Front.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_Duration_Front.TabIndex = 3;
|
||||
//
|
||||
// label9
|
||||
//
|
||||
this.label9.AutoSize = true;
|
||||
this.label9.Location = new System.Drawing.Point(343, 258);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(65, 12);
|
||||
this.label9.TabIndex = 0;
|
||||
this.label9.Text = "平均节拍:";
|
||||
//
|
||||
// txt_Duration_Avg
|
||||
//
|
||||
this.txt_Duration_Avg.Location = new System.Drawing.Point(405, 254);
|
||||
this.txt_Duration_Avg.Name = "txt_Duration_Avg";
|
||||
this.txt_Duration_Avg.ReadOnly = true;
|
||||
this.txt_Duration_Avg.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_Duration_Avg.TabIndex = 3;
|
||||
//
|
||||
// label10
|
||||
//
|
||||
this.label10.AutoSize = true;
|
||||
this.label10.Location = new System.Drawing.Point(343, 312);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(53, 12);
|
||||
this.label10.TabIndex = 0;
|
||||
this.label10.Text = "班计数:";
|
||||
//
|
||||
// txt_Count_Group
|
||||
//
|
||||
this.txt_Count_Group.Location = new System.Drawing.Point(405, 308);
|
||||
this.txt_Count_Group.Name = "txt_Count_Group";
|
||||
this.txt_Count_Group.ReadOnly = true;
|
||||
this.txt_Count_Group.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_Count_Group.TabIndex = 3;
|
||||
//
|
||||
// label11
|
||||
//
|
||||
this.label11.AutoSize = true;
|
||||
this.label11.Location = new System.Drawing.Point(343, 339);
|
||||
this.label11.Name = "label11";
|
||||
this.label11.Size = new System.Drawing.Size(65, 12);
|
||||
this.label11.TabIndex = 0;
|
||||
this.label11.Text = "总合格数:";
|
||||
//
|
||||
// txt_Count_OK
|
||||
//
|
||||
this.txt_Count_OK.Location = new System.Drawing.Point(405, 335);
|
||||
this.txt_Count_OK.Name = "txt_Count_OK";
|
||||
this.txt_Count_OK.ReadOnly = true;
|
||||
this.txt_Count_OK.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_Count_OK.TabIndex = 3;
|
||||
//
|
||||
// label12
|
||||
//
|
||||
this.label12.AutoSize = true;
|
||||
this.label12.Location = new System.Drawing.Point(334, 366);
|
||||
this.label12.Name = "label12";
|
||||
this.label12.Size = new System.Drawing.Size(77, 12);
|
||||
this.label12.TabIndex = 0;
|
||||
this.label12.Text = "总不合格数:";
|
||||
//
|
||||
// txt_Count_NOK
|
||||
//
|
||||
this.txt_Count_NOK.Location = new System.Drawing.Point(405, 362);
|
||||
this.txt_Count_NOK.Name = "txt_Count_NOK";
|
||||
this.txt_Count_NOK.ReadOnly = true;
|
||||
this.txt_Count_NOK.Size = new System.Drawing.Size(159, 21);
|
||||
this.txt_Count_NOK.TabIndex = 3;
|
||||
//
|
||||
// label13
|
||||
//
|
||||
this.label13.AutoSize = true;
|
||||
this.label13.Location = new System.Drawing.Point(31, 286);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(65, 12);
|
||||
this.label13.TabIndex = 0;
|
||||
this.label13.Text = "到达时间:";
|
||||
//
|
||||
// label14
|
||||
//
|
||||
this.label14.AutoSize = true;
|
||||
this.label14.Location = new System.Drawing.Point(31, 313);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(65, 12);
|
||||
this.label14.TabIndex = 0;
|
||||
this.label14.Text = "离开时间:";
|
||||
//
|
||||
// label15
|
||||
//
|
||||
this.label15.AutoSize = true;
|
||||
this.label15.Location = new System.Drawing.Point(30, 340);
|
||||
this.label15.Name = "label15";
|
||||
this.label15.Size = new System.Drawing.Size(65, 12);
|
||||
this.label15.TabIndex = 0;
|
||||
this.label15.Text = "完成时间:";
|
||||
//
|
||||
// txt_Time_PartOn
|
||||
//
|
||||
this.txt_Time_PartOn.Location = new System.Drawing.Point(97, 282);
|
||||
this.txt_Time_PartOn.Name = "txt_Time_PartOn";
|
||||
this.txt_Time_PartOn.ReadOnly = true;
|
||||
this.txt_Time_PartOn.Size = new System.Drawing.Size(213, 21);
|
||||
this.txt_Time_PartOn.TabIndex = 3;
|
||||
//
|
||||
// txt_Time_PartOff
|
||||
//
|
||||
this.txt_Time_PartOff.Location = new System.Drawing.Point(97, 309);
|
||||
this.txt_Time_PartOff.Name = "txt_Time_PartOff";
|
||||
this.txt_Time_PartOff.ReadOnly = true;
|
||||
this.txt_Time_PartOff.Size = new System.Drawing.Size(213, 21);
|
||||
this.txt_Time_PartOff.TabIndex = 3;
|
||||
//
|
||||
// txt_Time_PartComplete
|
||||
//
|
||||
this.txt_Time_PartComplete.Location = new System.Drawing.Point(97, 336);
|
||||
this.txt_Time_PartComplete.Name = "txt_Time_PartComplete";
|
||||
this.txt_Time_PartComplete.ReadOnly = true;
|
||||
this.txt_Time_PartComplete.Size = new System.Drawing.Size(213, 21);
|
||||
this.txt_Time_PartComplete.TabIndex = 3;
|
||||
//
|
||||
// label16
|
||||
//
|
||||
this.label16.AutoSize = true;
|
||||
this.label16.Location = new System.Drawing.Point(6, 367);
|
||||
this.label16.Name = "label16";
|
||||
this.label16.Size = new System.Drawing.Size(89, 12);
|
||||
this.label16.TabIndex = 0;
|
||||
this.label16.Text = "上一完成时间:";
|
||||
//
|
||||
// txt_Time_PartComplete_Front
|
||||
//
|
||||
this.txt_Time_PartComplete_Front.Location = new System.Drawing.Point(97, 363);
|
||||
this.txt_Time_PartComplete_Front.Name = "txt_Time_PartComplete_Front";
|
||||
this.txt_Time_PartComplete_Front.ReadOnly = true;
|
||||
this.txt_Time_PartComplete_Front.Size = new System.Drawing.Size(213, 21);
|
||||
this.txt_Time_PartComplete_Front.TabIndex = 3;
|
||||
//
|
||||
// timer_ReadPLC
|
||||
//
|
||||
this.timer_ReadPLC.Interval = 5000;
|
||||
this.timer_ReadPLC.Tick += new System.EventHandler(this.timer_ReadPLC_Tick);
|
||||
//
|
||||
// TagDataEngineStatusShowDialog
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(584, 396);
|
||||
this.Controls.Add(this.txt_Time_PartComplete_Front);
|
||||
this.Controls.Add(this.txt_Time_PartComplete);
|
||||
this.Controls.Add(this.txt_Count_NOK);
|
||||
this.Controls.Add(this.txt_Time_PartOff);
|
||||
this.Controls.Add(this.txt_Count_OK);
|
||||
this.Controls.Add(this.txt_Time_PartOn);
|
||||
this.Controls.Add(this.txt_Count_Group);
|
||||
this.Controls.Add(this.txt_Duration_Avg);
|
||||
this.Controls.Add(this.txt_Duration_Front);
|
||||
this.Controls.Add(this.txt_Duration_Curr);
|
||||
this.Controls.Add(this.txt_CylinderBlockNo);
|
||||
this.Controls.Add(this.txt_Order);
|
||||
this.Controls.Add(this.txt_SortNo);
|
||||
this.Controls.Add(this.label16);
|
||||
this.Controls.Add(this.pictureBox_OpName);
|
||||
this.Controls.Add(this.label15);
|
||||
this.Controls.Add(this.txt_Pollet);
|
||||
this.Controls.Add(this.label12);
|
||||
this.Controls.Add(this.label14);
|
||||
this.Controls.Add(this.txt_EngineNo);
|
||||
this.Controls.Add(this.label11);
|
||||
this.Controls.Add(this.label13);
|
||||
this.Controls.Add(this.label6);
|
||||
this.Controls.Add(this.label10);
|
||||
this.Controls.Add(this.txt_OpName);
|
||||
this.Controls.Add(this.label9);
|
||||
this.Controls.Add(this.label8);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.label7);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.label1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "TagDataEngineStatusShowDialog";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "工位详细信息";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.TagDataEngineStatusShowDialog_FormClosing);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox_OpName)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.TextBox txt_OpName;
|
||||
private System.Windows.Forms.TextBox txt_EngineNo;
|
||||
private System.Windows.Forms.PictureBox pictureBox_OpName;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.TextBox txt_SortNo;
|
||||
private System.Windows.Forms.TextBox txt_Order;
|
||||
private System.Windows.Forms.TextBox txt_CylinderBlockNo;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.TextBox txt_Pollet;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TextBox txt_Duration_Curr;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private System.Windows.Forms.TextBox txt_Duration_Front;
|
||||
private System.Windows.Forms.Label label9;
|
||||
private System.Windows.Forms.TextBox txt_Duration_Avg;
|
||||
private System.Windows.Forms.Label label10;
|
||||
private System.Windows.Forms.TextBox txt_Count_Group;
|
||||
private System.Windows.Forms.Label label11;
|
||||
private System.Windows.Forms.TextBox txt_Count_OK;
|
||||
private System.Windows.Forms.Label label12;
|
||||
private System.Windows.Forms.TextBox txt_Count_NOK;
|
||||
private System.Windows.Forms.Label label13;
|
||||
private System.Windows.Forms.Label label14;
|
||||
private System.Windows.Forms.Label label15;
|
||||
private System.Windows.Forms.TextBox txt_Time_PartOn;
|
||||
private System.Windows.Forms.TextBox txt_Time_PartOff;
|
||||
private System.Windows.Forms.TextBox txt_Time_PartComplete;
|
||||
private System.Windows.Forms.Label label16;
|
||||
private System.Windows.Forms.TextBox txt_Time_PartComplete_Front;
|
||||
private System.Windows.Forms.Timer timer_ReadPLC;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
/// 显示当前工位信息
|
||||
/// </summary>
|
||||
public partial class TagDataEngineStatusShowDialog : Form
|
||||
{
|
||||
/// <summary>
|
||||
/// 当前的工位号
|
||||
/// </summary>
|
||||
public string opName;
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public TagDataEngineStatusShowDialog()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
public TagDataEngineStatusShowDialog(string opName)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
timer_ReadPLC.Interval = 5000;
|
||||
timer_ReadPLC.Enabled = true;
|
||||
|
||||
txt_OpName.Text = this.opName = opName;
|
||||
|
||||
ShowOpNamePic();
|
||||
SelectOpToInfoFromSQL();
|
||||
FromPLCRead();
|
||||
}
|
||||
/// <summary>
|
||||
/// 显示图片
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
private void ShowOpNamePic()
|
||||
{
|
||||
string file = "OpNamePic\\"+ opName+ ".jpg";
|
||||
if (File.Exists(file))
|
||||
{
|
||||
pictureBox_OpName.Image = Image.FromFile(file);
|
||||
}
|
||||
else
|
||||
{
|
||||
pictureBox_OpName.Image = Image.FromFile("OpNamePic\\404.png");
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 根据工位号查询详细信息
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
private void SelectOpToInfoFromSQL()
|
||||
{
|
||||
//获取工位上前信息
|
||||
var sql = $"SELECT [Last_工单号],[Last_发动机号],[Last_机型号],[Last_进站时间],[Last_离站时间],[Last_托盘号] FROM [MES_计划BOM_工位与名称] where 工位号 = '{opName}'";
|
||||
SqlOperation.ExecuteSql(sql, out DataTable dt_StationInfo, out string error);
|
||||
if(dt_StationInfo.Rows.Count>0)
|
||||
{
|
||||
var Last_工单号=dt_StationInfo.Rows[0]["Last_工单号"].ToString();
|
||||
var Last_机型号 = dt_StationInfo.Rows[0]["Last_机型号"].ToString();
|
||||
var Last_发动机号 = dt_StationInfo.Rows[0]["Last_发动机号"].ToString();
|
||||
var Last_托盘号 = dt_StationInfo.Rows[0]["Last_托盘号"].ToString();
|
||||
var Last_进站时间 = dt_StationInfo.Rows[0]["Last_进站时间"].ToString();
|
||||
var Last_离站时间 = dt_StationInfo.Rows[0]["Last_离站时间"].ToString();
|
||||
|
||||
var Front_发动机号 = "";
|
||||
var Duration_Curr = "";
|
||||
var Duration_Front = "";
|
||||
if (!string.IsNullOrEmpty(Last_进站时间) && !string.IsNullOrEmpty(Last_离站时间))
|
||||
{
|
||||
if(DateTime.Parse(Last_离站时间)> DateTime.Parse(Last_进站时间))
|
||||
Duration_Curr = (DateTime.Parse(Last_离站时间) - DateTime.Parse(Last_进站时间)).TotalSeconds.ToString();
|
||||
}
|
||||
|
||||
var sql_Front = $"SELECT top 1 [发动机流水号] FROM [大柴_过点信息] " +
|
||||
$"where 工序编码='{opName}' and [发动机流水号]<>'{Last_发动机号}' and [发动机流水号]<>'' and 过点属性=1 " +
|
||||
$"order by 采集时间 desc";
|
||||
SqlOperation.ExecuteSql(sql_Front, out DataTable dt_front, out string err);
|
||||
if(dt_front.Rows.Count>0) Front_发动机号=dt_front.Rows[0][0].ToString().Trim();
|
||||
if(Front_发动机号!="")
|
||||
{
|
||||
var sql_frontInfo = $"SELECT top 2 发动机流水号,[工位编码],max([采集时间]) as [采集时间],[过点属性] " +
|
||||
$"FROM [大柴_过点信息] where [工位编码]='{opName}' and 发动机流水号='{Front_发动机号}' "+
|
||||
$"group by [工位编码],发动机流水号,[过点属性] order by [采集时间] desc";
|
||||
SqlOperation.ExecuteSql(sql_frontInfo, out DataTable dt_frontEngine, out string err1);
|
||||
if(dt_frontEngine.Rows.Count>0)
|
||||
{
|
||||
var Front_进站时间 = dt_frontEngine.Rows[1]["采集时间"].ToString();
|
||||
var Front_离站时间 = dt_frontEngine.Rows[0]["采集时间"].ToString();
|
||||
if (!string.IsNullOrEmpty(Front_进站时间) && !string.IsNullOrEmpty(Front_离站时间))
|
||||
{
|
||||
if (DateTime.Parse(Front_离站时间) > DateTime.Parse(Front_进站时间))
|
||||
Duration_Front = (DateTime.Parse(Front_离站时间) - DateTime.Parse(Front_进站时间)).TotalSeconds.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
txt_Order.Text = Last_工单号;
|
||||
txt_SortNo.Text = Last_机型号;
|
||||
txt_EngineNo.Text = Last_发动机号;
|
||||
txt_Pollet.Text = Last_托盘号;
|
||||
txt_CylinderBlockNo.Text = "";//从扫码结果中读取
|
||||
txt_Duration_Curr.Text = "";
|
||||
txt_Duration_Front.Text = "";
|
||||
txt_Duration_Avg.Text = "";
|
||||
txt_Time_PartOn.Text = Last_进站时间;
|
||||
txt_Time_PartOff.Text = Last_离站时间;
|
||||
txt_Time_PartComplete.Text = Duration_Curr;
|
||||
txt_Time_PartComplete_Front.Text = Duration_Front;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 关闭窗体
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void TagDataEngineStatusShowDialog_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
timer_ReadPLC.Enabled = false;
|
||||
MesWorkForm.list_OpenForm.Remove(opName);
|
||||
}
|
||||
/// <summary>
|
||||
/// 刷新 设备数据
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void timer_ReadPLC_Tick(object sender, EventArgs e)
|
||||
{
|
||||
timer_ReadPLC.Enabled = false;
|
||||
FromPLCRead();
|
||||
timer_ReadPLC.Enabled = true;
|
||||
}
|
||||
/// <summary>
|
||||
/// 刷新 设备数据
|
||||
/// </summary>
|
||||
private void FromPLCRead()
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
txt_Order.Text = MesWorkForm.ReadPLC(40, opName).ToString();
|
||||
txt_SortNo.Text = MesWorkForm.ReadPLC(11, opName).ToString();
|
||||
txt_EngineNo.Text = MesWorkForm.ReadPLC(10, opName).ToString();
|
||||
txt_Pollet.Text = MesWorkForm.ReadPLC(80, opName).ToString();
|
||||
|
||||
|
||||
//txt_Duration_Curr.Text = 当前循环时间;
|
||||
//txt_Duration_Front.Text = 上一工件的循环时间;
|
||||
//txt_Duration_Avg.Text = 平均循环时间;
|
||||
//txt_Count_Group.Text = 班计数;
|
||||
//txt_Count_OK.Text = 总合格工件计数;
|
||||
//txt_Count_NOK.Text = 总不合格工件计数;
|
||||
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,618 @@
|
||||
<?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="pictureBox_OpName.InitialImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
gg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="timer_ReadPLC.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
237
SCADA/Page_Manager/Manager_Plan/PlanExecute.Designer.cs
generated
Normal file
@@ -0,0 +1,237 @@
|
||||
|
||||
namespace PlanExecute_Query
|
||||
{
|
||||
partial class PlanExecute
|
||||
{
|
||||
/// <summary>
|
||||
/// 必需的设计器变量。
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// 清理所有正在使用的资源。
|
||||
/// </summary>
|
||||
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows 窗体设计器生成的代码
|
||||
|
||||
/// <summary>
|
||||
/// 设计器支持所需的方法 - 不要修改
|
||||
/// 使用代码编辑器修改此方法的内容。
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
|
||||
this.dgv_PlanDetail = new System.Windows.Forms.DataGridView();
|
||||
this.btn_Refresh = new System.Windows.Forms.Button();
|
||||
this.cb_Area = new System.Windows.Forms.ComboBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.dtp_Start = new System.Windows.Forms.DateTimePicker();
|
||||
this.dtp_End = new System.Windows.Forms.DateTimePicker();
|
||||
this.cmb_State = new System.Windows.Forms.ComboBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.txt_OrderNum = new System.Windows.Forms.TextBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgv_PlanDetail)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// dgv_PlanDetail
|
||||
//
|
||||
this.dgv_PlanDetail.AllowUserToAddRows = false;
|
||||
this.dgv_PlanDetail.AllowUserToDeleteRows = false;
|
||||
this.dgv_PlanDetail.AllowUserToResizeRows = false;
|
||||
this.dgv_PlanDetail.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.dgv_PlanDetail.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
|
||||
this.dgv_PlanDetail.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight;
|
||||
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
||||
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
|
||||
dataGridViewCellStyle1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
|
||||
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
||||
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
||||
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
||||
this.dgv_PlanDetail.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
|
||||
this.dgv_PlanDetail.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dgv_PlanDetail.Location = new System.Drawing.Point(12, 42);
|
||||
this.dgv_PlanDetail.MultiSelect = false;
|
||||
this.dgv_PlanDetail.Name = "dgv_PlanDetail";
|
||||
this.dgv_PlanDetail.ReadOnly = true;
|
||||
this.dgv_PlanDetail.RowHeadersVisible = false;
|
||||
this.dgv_PlanDetail.RowTemplate.Height = 26;
|
||||
this.dgv_PlanDetail.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.dgv_PlanDetail.Size = new System.Drawing.Size(1425, 754);
|
||||
this.dgv_PlanDetail.TabIndex = 72;
|
||||
//
|
||||
// btn_Refresh
|
||||
//
|
||||
this.btn_Refresh.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.btn_Refresh.Location = new System.Drawing.Point(719, 6);
|
||||
this.btn_Refresh.Name = "btn_Refresh";
|
||||
this.btn_Refresh.Size = new System.Drawing.Size(83, 26);
|
||||
this.btn_Refresh.TabIndex = 74;
|
||||
this.btn_Refresh.Text = "查询";
|
||||
this.btn_Refresh.UseVisualStyleBackColor = true;
|
||||
this.btn_Refresh.Click += new System.EventHandler(this.btn_Refresh_Click);
|
||||
//
|
||||
// cb_Area
|
||||
//
|
||||
this.cb_Area.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cb_Area.FormattingEnabled = true;
|
||||
this.cb_Area.Items.AddRange(new object[] {
|
||||
"内装线",
|
||||
"活塞连杆分线",
|
||||
"缸盖线"});
|
||||
this.cb_Area.Location = new System.Drawing.Point(1139, 10);
|
||||
this.cb_Area.Name = "cb_Area";
|
||||
this.cb_Area.Size = new System.Drawing.Size(128, 20);
|
||||
this.cb_Area.TabIndex = 75;
|
||||
this.cb_Area.Visible = false;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label1.Location = new System.Drawing.Point(1070, 13);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(67, 14);
|
||||
this.label1.TabIndex = 76;
|
||||
this.label1.Text = "所属分线";
|
||||
this.label1.Visible = false;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label3.Location = new System.Drawing.Point(9, 13);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(67, 14);
|
||||
this.label3.TabIndex = 76;
|
||||
this.label3.Text = "生产日期";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label4.Location = new System.Drawing.Point(188, 13);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(22, 14);
|
||||
this.label4.TabIndex = 76;
|
||||
this.label4.Text = "到";
|
||||
//
|
||||
// dtp_Start
|
||||
//
|
||||
this.dtp_Start.CustomFormat = "yyyy-MM-dd";
|
||||
this.dtp_Start.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtp_Start.Location = new System.Drawing.Point(80, 9);
|
||||
this.dtp_Start.Name = "dtp_Start";
|
||||
this.dtp_Start.Size = new System.Drawing.Size(101, 21);
|
||||
this.dtp_Start.TabIndex = 78;
|
||||
//
|
||||
// dtp_End
|
||||
//
|
||||
this.dtp_End.CustomFormat = "yyyy-MM-dd";
|
||||
this.dtp_End.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtp_End.Location = new System.Drawing.Point(216, 9);
|
||||
this.dtp_End.Name = "dtp_End";
|
||||
this.dtp_End.Size = new System.Drawing.Size(101, 21);
|
||||
this.dtp_End.TabIndex = 78;
|
||||
//
|
||||
// cmb_State
|
||||
//
|
||||
this.cmb_State.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cmb_State.FormattingEnabled = true;
|
||||
this.cmb_State.Items.AddRange(new object[] {
|
||||
"未上线",
|
||||
"已上线"});
|
||||
this.cmb_State.Location = new System.Drawing.Point(406, 10);
|
||||
this.cmb_State.Name = "cmb_State";
|
||||
this.cmb_State.Size = new System.Drawing.Size(95, 20);
|
||||
this.cmb_State.TabIndex = 75;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label2.Location = new System.Drawing.Point(339, 13);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(67, 14);
|
||||
this.label2.TabIndex = 76;
|
||||
this.label2.Text = "执行状态";
|
||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label5.Location = new System.Drawing.Point(522, 13);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(52, 14);
|
||||
this.label5.TabIndex = 76;
|
||||
this.label5.Text = "订单号";
|
||||
this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// txt_OrderNum
|
||||
//
|
||||
this.txt_OrderNum.Location = new System.Drawing.Point(574, 9);
|
||||
this.txt_OrderNum.Name = "txt_OrderNum";
|
||||
this.txt_OrderNum.Size = new System.Drawing.Size(126, 21);
|
||||
this.txt_OrderNum.TabIndex = 79;
|
||||
//
|
||||
// PlanExecute
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1446, 808);
|
||||
this.Controls.Add(this.txt_OrderNum);
|
||||
this.Controls.Add(this.dtp_End);
|
||||
this.Controls.Add(this.dtp_Start);
|
||||
this.Controls.Add(this.cmb_State);
|
||||
this.Controls.Add(this.cb_Area);
|
||||
this.Controls.Add(this.btn_Refresh);
|
||||
this.Controls.Add(this.dgv_PlanDetail);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.Name = "PlanExecute";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "计划执行情况";
|
||||
this.Load += new System.EventHandler(this.PlanExecute_Query_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgv_PlanDetail)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.DataGridView dgv_PlanDetail;
|
||||
private System.Windows.Forms.Button btn_Refresh;
|
||||
private System.Windows.Forms.ComboBox cb_Area;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.DateTimePicker dtp_Start;
|
||||
private System.Windows.Forms.DateTimePicker dtp_End;
|
||||
private System.Windows.Forms.ComboBox cmb_State;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.TextBox txt_OrderNum;
|
||||
}
|
||||
}
|
||||
|
||||
112
SCADA/Page_Manager/Manager_Plan/PlanExecute.cs
Normal file
@@ -0,0 +1,112 @@
|
||||
using DC_A95.MES_A95;
|
||||
using MesWork;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using static System.Configuration.ConfigurationManager;
|
||||
|
||||
namespace PlanExecute_Query
|
||||
{
|
||||
/// <summary>
|
||||
/// 计划执行情况查询
|
||||
/// </summary>
|
||||
public partial class PlanExecute : Form
|
||||
{
|
||||
/// <summary>
|
||||
/// 构造
|
||||
/// </summary>
|
||||
public PlanExecute()
|
||||
{
|
||||
InitializeComponent();
|
||||
//this.WindowState = FormWindowState.Maximized;
|
||||
|
||||
var end = DateTime.Now.AddDays(5);
|
||||
var start = end.AddDays(-8);
|
||||
dtp_Start.Value = start;
|
||||
dtp_End.Value = end;
|
||||
|
||||
cb_Area.SelectedItem = "内装线";
|
||||
}
|
||||
/// <summary>
|
||||
/// 钩子
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void PlanExecute_Query_Load(object sender, EventArgs e)
|
||||
{
|
||||
Refresh_PlanInfo();
|
||||
}
|
||||
/// <summary>
|
||||
/// 刷新日志的显示
|
||||
/// </summary>
|
||||
private void Refresh_PlanInfo()
|
||||
{
|
||||
var dt = Select_PlanInfo();
|
||||
dgv_PlanDetail.DataSource = dt;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查询日志
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private DataTable Select_PlanInfo()
|
||||
{
|
||||
//var area= cb_Area.Text;
|
||||
var start = dtp_Start.Value;
|
||||
var end = dtp_End.Value;
|
||||
var tblName = "";
|
||||
//内装线
|
||||
//活塞连杆分线
|
||||
//缸盖线
|
||||
//if (area == "内装线") tblName = "大柴_接口_SAP生产计划_执行计划";
|
||||
//else if (area == "缸盖线") tblName = "大柴_接口_SAP生产计划_执行计划_缸盖";
|
||||
//else if (area == "活塞连杆分线") tblName = "大柴_接口_SAP生产计划_执行计划_活塞连杆";
|
||||
var whereStr = "";
|
||||
whereStr = $" WHERE 计划开始时间>='{start.Date}' and 计划开始时间<='{end.Date}'";
|
||||
if(cmb_State.Text.Trim()=="未上线")
|
||||
{
|
||||
whereStr += $" AND [执行状态] = {PlanExec_State.Waiting}";
|
||||
}
|
||||
else if (cmb_State.Text.Trim() == "已上线")
|
||||
{
|
||||
whereStr += $" AND [执行状态] = {PlanExec_State.HasExec}";
|
||||
}
|
||||
|
||||
if (txt_OrderNum.Text != "")
|
||||
{
|
||||
whereStr += $" AND [订单号] = '{txt_OrderNum.Text}'";
|
||||
}
|
||||
//var sql = $"SELECT Top(200) a.[订单类型],a.[生产日期],a.[上线序号],a.[上线总排序],a.[发动机流水号] as 发动机号,a.[机型号],a.[订单号],a.[订单数量],a.[创建时间],a.[执行状态],a.[是否冷试],a.[是否热试],b.当前工位"
|
||||
// + $" FROM [大柴_接口_SAP生产计划_执行计划] a LEFT JOIN [大柴_上线记录_内装线] b ON a.发动机流水号=b.发动机流水号 {whereStr}"
|
||||
// + " order by a.[上线总排序]";
|
||||
var sql = $"SELECT TOP (1000) [AID] ,[发动机编号],[订货号],[订货号ID] ,[机型号] ,[工单ID] ,[工单号] ,[BOM头ID] ,[MES计划顺序] ,[计划开始时间] ,[总装上线扫描时间] ,[计划同步时间] ,[计划状态] ,[执行状态] ,[执行时间] ,[LineID]" +
|
||||
$" FROM[WC_WP12T_13L].[dbo].[潍柴_接口_生产计划_执行计划] { whereStr}"
|
||||
+ " order by [MES计划顺序]";
|
||||
DataLinkMesWork.SQLCommon.ExecuteDataTable(sql, MesWorkForm.ConnectionString,out DataTable dt, out string err2);
|
||||
return dt;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 手动刷新
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void btn_Refresh_Click(object sender, EventArgs e)
|
||||
{
|
||||
var area = cb_Area.Text;
|
||||
var start = dtp_Start.Value;
|
||||
var end = dtp_End.Value;
|
||||
|
||||
var dt = Select_PlanInfo();
|
||||
dgv_PlanDetail.DataSource = dt;
|
||||
}
|
||||
}
|
||||
}
|
||||
120
SCADA/Page_Manager/Manager_Plan/PlanExecute.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
257
SCADA/Page_Manager/Manager_Station/F_StationManage.Designer.cs
generated
Normal file
@@ -0,0 +1,257 @@
|
||||
namespace ExternalDataSync
|
||||
{
|
||||
partial class F_StationManage
|
||||
{
|
||||
/// <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.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(F_StationManage));
|
||||
this.btn_Station_Add = new System.Windows.Forms.Button();
|
||||
this.btn_Station_Update = new System.Windows.Forms.Button();
|
||||
this.btn_Station_Delete = new System.Windows.Forms.Button();
|
||||
this.dgv_Station = new System.Windows.Forms.DataGridView();
|
||||
this.cmb_Area = new System.Windows.Forms.ComboBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.ID = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.工位代码 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.工位号 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.工位名称 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.是否启用MES = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.工序号 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.工序名称 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.PLC = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.区域代码 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
this.机床类型 = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgv_Station)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btn_Station_Add
|
||||
//
|
||||
this.btn_Station_Add.Font = new System.Drawing.Font("宋体", 10F);
|
||||
this.btn_Station_Add.Location = new System.Drawing.Point(239, 6);
|
||||
this.btn_Station_Add.Name = "btn_Station_Add";
|
||||
this.btn_Station_Add.Size = new System.Drawing.Size(53, 28);
|
||||
this.btn_Station_Add.TabIndex = 47;
|
||||
this.btn_Station_Add.Text = "增加";
|
||||
this.btn_Station_Add.UseVisualStyleBackColor = true;
|
||||
this.btn_Station_Add.Click += new System.EventHandler(this.btn_Station_Add_Click);
|
||||
//
|
||||
// btn_Station_Update
|
||||
//
|
||||
this.btn_Station_Update.Font = new System.Drawing.Font("宋体", 10F);
|
||||
this.btn_Station_Update.Location = new System.Drawing.Point(298, 6);
|
||||
this.btn_Station_Update.Name = "btn_Station_Update";
|
||||
this.btn_Station_Update.Size = new System.Drawing.Size(53, 28);
|
||||
this.btn_Station_Update.TabIndex = 47;
|
||||
this.btn_Station_Update.Text = "修改";
|
||||
this.btn_Station_Update.UseVisualStyleBackColor = true;
|
||||
this.btn_Station_Update.Click += new System.EventHandler(this.btn_Station_Update_Click);
|
||||
//
|
||||
// btn_Station_Delete
|
||||
//
|
||||
this.btn_Station_Delete.Font = new System.Drawing.Font("宋体", 10F);
|
||||
this.btn_Station_Delete.Location = new System.Drawing.Point(357, 7);
|
||||
this.btn_Station_Delete.Name = "btn_Station_Delete";
|
||||
this.btn_Station_Delete.Size = new System.Drawing.Size(53, 28);
|
||||
this.btn_Station_Delete.TabIndex = 47;
|
||||
this.btn_Station_Delete.Text = "删除";
|
||||
this.btn_Station_Delete.UseVisualStyleBackColor = true;
|
||||
this.btn_Station_Delete.Click += new System.EventHandler(this.btn_Station_Delete_Click);
|
||||
//
|
||||
// dgv_Station
|
||||
//
|
||||
this.dgv_Station.AllowUserToAddRows = false;
|
||||
this.dgv_Station.AllowUserToDeleteRows = false;
|
||||
this.dgv_Station.AllowUserToResizeColumns = false;
|
||||
this.dgv_Station.AllowUserToResizeRows = false;
|
||||
this.dgv_Station.BackgroundColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.dgv_Station.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.dgv_Station.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
||||
this.ID,
|
||||
this.工位代码,
|
||||
this.工位号,
|
||||
this.工位名称,
|
||||
this.是否启用MES,
|
||||
this.工序号,
|
||||
this.工序名称,
|
||||
this.PLC,
|
||||
this.区域代码,
|
||||
this.机床类型});
|
||||
this.dgv_Station.Location = new System.Drawing.Point(8, 41);
|
||||
this.dgv_Station.Name = "dgv_Station";
|
||||
this.dgv_Station.ReadOnly = true;
|
||||
this.dgv_Station.RowHeadersVisible = false;
|
||||
this.dgv_Station.RowTemplate.Height = 23;
|
||||
this.dgv_Station.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.dgv_Station.Size = new System.Drawing.Size(1076, 572);
|
||||
this.dgv_Station.TabIndex = 52;
|
||||
this.dgv_Station.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgv_Station_CellClick);
|
||||
//
|
||||
// cmb_Area
|
||||
//
|
||||
this.cmb_Area.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cmb_Area.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.cmb_Area.FormattingEnabled = true;
|
||||
this.cmb_Area.Location = new System.Drawing.Point(85, 8);
|
||||
this.cmb_Area.Name = "cmb_Area";
|
||||
this.cmb_Area.Size = new System.Drawing.Size(125, 24);
|
||||
this.cmb_Area.TabIndex = 56;
|
||||
this.cmb_Area.SelectedIndexChanged += new System.EventHandler(this.cmb_Area_SelectedIndexChanged);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
||||
this.label1.Location = new System.Drawing.Point(12, 12);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(75, 16);
|
||||
this.label1.TabIndex = 55;
|
||||
this.label1.Text = "区域代码";
|
||||
//
|
||||
// ID
|
||||
//
|
||||
this.ID.DataPropertyName = "ID";
|
||||
this.ID.HeaderText = "ID";
|
||||
this.ID.Name = "ID";
|
||||
this.ID.ReadOnly = true;
|
||||
this.ID.Visible = false;
|
||||
//
|
||||
// 工位代码
|
||||
//
|
||||
this.工位代码.DataPropertyName = "工位代码";
|
||||
this.工位代码.HeaderText = "工位代码";
|
||||
this.工位代码.Name = "工位代码";
|
||||
this.工位代码.ReadOnly = true;
|
||||
this.工位代码.Visible = false;
|
||||
this.工位代码.Width = 80;
|
||||
//
|
||||
// 工位号
|
||||
//
|
||||
this.工位号.DataPropertyName = "工位号";
|
||||
this.工位号.HeaderText = "工位号";
|
||||
this.工位号.Name = "工位号";
|
||||
this.工位号.ReadOnly = true;
|
||||
this.工位号.Width = 80;
|
||||
//
|
||||
// 工位名称
|
||||
//
|
||||
this.工位名称.DataPropertyName = "工位名称";
|
||||
this.工位名称.HeaderText = "工位名称";
|
||||
this.工位名称.Name = "工位名称";
|
||||
this.工位名称.ReadOnly = true;
|
||||
this.工位名称.Width = 200;
|
||||
//
|
||||
// 是否启用MES
|
||||
//
|
||||
this.是否启用MES.DataPropertyName = "是否启用MES";
|
||||
this.是否启用MES.HeaderText = "是否启用MES";
|
||||
this.是否启用MES.Name = "是否启用MES";
|
||||
this.是否启用MES.ReadOnly = true;
|
||||
//
|
||||
// 工序号
|
||||
//
|
||||
this.工序号.DataPropertyName = "工序号";
|
||||
this.工序号.HeaderText = "工序号";
|
||||
this.工序号.Name = "工序号";
|
||||
this.工序号.ReadOnly = true;
|
||||
this.工序号.Width = 80;
|
||||
//
|
||||
// 工序名称
|
||||
//
|
||||
this.工序名称.DataPropertyName = "工序名称";
|
||||
this.工序名称.HeaderText = "工序名称";
|
||||
this.工序名称.Name = "工序名称";
|
||||
this.工序名称.ReadOnly = true;
|
||||
this.工序名称.Width = 200;
|
||||
//
|
||||
// PLC
|
||||
//
|
||||
this.PLC.DataPropertyName = "PLC";
|
||||
this.PLC.HeaderText = "PLC";
|
||||
this.PLC.Name = "PLC";
|
||||
this.PLC.ReadOnly = true;
|
||||
//
|
||||
// 区域代码
|
||||
//
|
||||
this.区域代码.DataPropertyName = "区域代码";
|
||||
this.区域代码.HeaderText = "区域代码";
|
||||
this.区域代码.Name = "区域代码";
|
||||
this.区域代码.ReadOnly = true;
|
||||
this.区域代码.Width = 150;
|
||||
//
|
||||
// 机床类型
|
||||
//
|
||||
this.机床类型.DataPropertyName = "机床类型";
|
||||
this.机床类型.HeaderText = "机床类型";
|
||||
this.机床类型.Name = "机床类型";
|
||||
this.机床类型.ReadOnly = true;
|
||||
//
|
||||
// F_StationManage
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1091, 621);
|
||||
this.Controls.Add(this.cmb_Area);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.btn_Station_Add);
|
||||
this.Controls.Add(this.dgv_Station);
|
||||
this.Controls.Add(this.btn_Station_Update);
|
||||
this.Controls.Add(this.btn_Station_Delete);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "F_StationManage";
|
||||
this.ShowIcon = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "工位管理";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FormMain_FormClosing);
|
||||
this.Load += new System.EventHandler(this.Form_MoveSqlTable_Load);
|
||||
((System.ComponentModel.ISupportInitialize)(this.dgv_Station)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private System.Windows.Forms.Button btn_Station_Add;
|
||||
private System.Windows.Forms.Button btn_Station_Update;
|
||||
private System.Windows.Forms.Button btn_Station_Delete;
|
||||
private System.Windows.Forms.DataGridView dgv_Station;
|
||||
private System.Windows.Forms.ComboBox cmb_Area;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn ID;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 工位代码;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 工位号;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 工位名称;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 是否启用MES;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 工序号;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 工序名称;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn PLC;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 区域代码;
|
||||
private System.Windows.Forms.DataGridViewTextBoxColumn 机床类型;
|
||||
}
|
||||
}
|
||||
247
SCADA/Page_Manager/Manager_Station/F_StationManage.cs
Normal file
@@ -0,0 +1,247 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using static DataLinkMesWork.SQLCommon;
|
||||
using System.Windows.Forms;
|
||||
using SlMesDbIterface;
|
||||
using MesToMs;
|
||||
using System.Reflection;
|
||||
using ConverterBytesAndStruct;
|
||||
using MesWork;
|
||||
using DC_A95;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
namespace ExternalDataSync
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public partial class F_StationManage : Form
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private static string Curr_Station_AID = "";
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private static string Curr_工位代码 = "";
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private static string Curr_StationName = "";
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private static string Curr_工位名称 = "";
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private static string Curr_工序号 = "";
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private static string Curr_工序名称 = "";
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private static string Curr_PLC = "";
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private static string Curr_区域代码 = "";
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private static string Curr_机床类型 = "";
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private static string Curr_是否启用MES = "";
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public F_StationManage()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
var sql_area = $" SELECT [区域代码] FROM [MES_计划BOM_工位与名称] group by [区域代码]";
|
||||
SqlOperation.ExecuteSql(sql_area, out DataTable dt_area, out string error);
|
||||
DataRow emptyRow = dt_area.NewRow();
|
||||
emptyRow[0] = "";
|
||||
dt_area.Rows.InsertAt(emptyRow, 0);
|
||||
this.cmb_Area.ValueMember = "区域代码";
|
||||
this.cmb_Area.DisplayMember = "区域代码";
|
||||
this.cmb_Area.DataSource = dt_area;
|
||||
|
||||
Refresh_Station();
|
||||
}
|
||||
|
||||
private void Form_MoveSqlTable_Load(object sender, EventArgs e)
|
||||
{
|
||||
}
|
||||
private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
//if (MessageBox.Show("确认要退出吗?", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
//{
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// e.Cancel = true;
|
||||
//}
|
||||
}
|
||||
|
||||
#region 工位管理
|
||||
|
||||
private void btn_Station_Add_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
var dlg = new D_Station(From_Opera.Insert, Curr_StationName, Curr_工位名称, Curr_工序号, Curr_工序名称, Curr_PLC
|
||||
, Curr_区域代码, Curr_机床类型, Curr_是否启用MES
|
||||
);
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
var D_StationName = dlg.D_StationName;
|
||||
var D_工位名称 = dlg.D_工位名称;
|
||||
var D_工序号 = dlg.D_工序号;
|
||||
var D_工序名称 = dlg.D_工序名称;
|
||||
var D_PLC = dlg.D_PLC;
|
||||
var D_区域代码 = dlg.D_区域代码;
|
||||
var D_机床类型 = dlg.D_机床类型;
|
||||
var D_是否启用MES = dlg.D_是否启用MES;
|
||||
|
||||
var name = "Event_工位_增加";
|
||||
var sqlParameter = new SqlParameter[] {
|
||||
new SqlParameter("@工位号", D_StationName),
|
||||
new SqlParameter("@工位名称", D_工位名称),
|
||||
new SqlParameter("@工序号", D_工序号),
|
||||
new SqlParameter("@工序名称", D_工序名称),
|
||||
new SqlParameter("@PLC", D_PLC),
|
||||
new SqlParameter("@区域代码", D_区域代码),
|
||||
new SqlParameter("@机床类型", D_机床类型),
|
||||
new SqlParameter("@是否启用MES", D_是否启用MES)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameter, out string error);
|
||||
|
||||
Refresh_Station();
|
||||
}
|
||||
}
|
||||
|
||||
private void btn_Station_Update_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Curr_StationName))
|
||||
{
|
||||
MessageBox.Show("请选择一个工位!");
|
||||
return;
|
||||
}
|
||||
var dlg = new D_Station(From_Opera.Update, Curr_StationName, Curr_工位名称, Curr_工序号, Curr_工序名称, Curr_PLC
|
||||
, Curr_区域代码, Curr_机床类型, Curr_是否启用MES);
|
||||
if (dlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
var D_StationName = dlg.D_StationName;
|
||||
var D_工位名称 = dlg.D_工位名称;
|
||||
var D_工序号 = dlg.D_工序号;
|
||||
var D_工序名称 = dlg.D_工序名称;
|
||||
var D_PLC = dlg.D_PLC;
|
||||
var D_区域代码 = dlg.D_区域代码;
|
||||
var D_机床类型 = dlg.D_机床类型;
|
||||
var D_是否启用MES = dlg.D_是否启用MES;
|
||||
|
||||
var name = "Event_工位_修改";
|
||||
var sqlParameter = new SqlParameter[] {
|
||||
new SqlParameter("@工位号", D_StationName),
|
||||
new SqlParameter("@工位名称", D_工位名称),
|
||||
new SqlParameter("@工序号", D_工序号),
|
||||
new SqlParameter("@工序名称", D_工序名称),
|
||||
new SqlParameter("@PLC", D_PLC),
|
||||
new SqlParameter("@区域代码", D_区域代码),
|
||||
new SqlParameter("@机床类型", D_机床类型),
|
||||
new SqlParameter("@是否启用MES", D_是否启用MES)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameter, out string error);
|
||||
|
||||
Refresh_Station();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void btn_Station_Delete_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Curr_StationName))
|
||||
{
|
||||
MessageBox.Show("请选择一个工位!");
|
||||
return;
|
||||
}
|
||||
if (MessageBox.Show($"确认删除工位?工位号:{Curr_StationName}", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
if (MessageBox.Show($"再次 确认删除工位?工位号:{Curr_StationName}", "", MessageBoxButtons.YesNo) == DialogResult.Yes)
|
||||
{
|
||||
//SELECT[AID],[产品名称],[机型号],[机型名称],[操作时间],[备注] FROM[配方_大柴_机型]
|
||||
//SELECT[AID],[机型号],[区域代码],[工位号],[配方号],[操作时间],[备注] FROM[配方_大柴_机型配方]
|
||||
var name = "Event_工位_删除";
|
||||
var sqlParameter = new SqlParameter[] {
|
||||
new SqlParameter("@工位号", Curr_StationName)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameter, out string error);
|
||||
Refresh_Station();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
private void Refresh_Station()
|
||||
{
|
||||
var sql = $@" SELECT [ID],[工位代码],[工位号],[工位名称],[工序号],[工序名称],[是否启用MES],[PLC],[区域代码],[机床类型] ";
|
||||
sql += "FROM [MES_计划BOM_工位与名称] ";
|
||||
sql += cmb_Area.Text!=""? $"Where 区域代码='{cmb_Area.Text}' ":"";
|
||||
sql += " ORDER BY [工位号]";
|
||||
SqlOperation.ExecuteSql(sql, out DataTable dt, out string error);
|
||||
dgv_Station.DataSource = dt;
|
||||
}
|
||||
|
||||
|
||||
private void dgv_Station_CellClick(object sender, DataGridViewCellEventArgs e)
|
||||
{
|
||||
if (e.RowIndex > -1)
|
||||
{
|
||||
Curr_Station_AID = dgv_Station.CurrentRow.Cells["ID"].Value.ToString();
|
||||
Curr_工位代码 = dgv_Station.CurrentRow.Cells["工位代码"].Value.ToString();
|
||||
Curr_StationName = dgv_Station.CurrentRow.Cells["工位号"].Value.ToString();
|
||||
Curr_工位名称 = dgv_Station.CurrentRow.Cells["工位名称"].Value.ToString();
|
||||
Curr_工序号 = dgv_Station.CurrentRow.Cells["工序号"].Value.ToString();
|
||||
Curr_工序名称 = dgv_Station.CurrentRow.Cells["工序名称"].Value.ToString();
|
||||
Curr_PLC = dgv_Station.CurrentRow.Cells["PLC"].Value.ToString();
|
||||
Curr_区域代码 = dgv_Station.CurrentRow.Cells["区域代码"].Value.ToString();
|
||||
Curr_机床类型 = dgv_Station.CurrentRow.Cells["机床类型"].Value.ToString();
|
||||
Curr_是否启用MES = dgv_Station.CurrentRow.Cells["是否启用MES"].Value.ToString();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void cmb_Area_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
StationList_Binding(cmb_Area.SelectedValue.ToString());
|
||||
|
||||
}
|
||||
private void StationList_Binding(string areaname)
|
||||
{
|
||||
Refresh_Station();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
230
SCADA/Page_Manager/Manager_Station/F_StationManage.resx
Normal file
@@ -0,0 +1,230 @@
|
||||
<?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="ID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="工位代码.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="工位号.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="工位名称.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="是否启用MES.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="工序号.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="工序名称.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="PLC.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="区域代码.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="机床类型.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>25</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
AAAAAAAuAAAAZwAAAF8AAABWAAAASQAAACwAAAEOAAAAAQAAAAEAAAACAAAABBEUNKEsNIn1ExY7oQAA
|
||||
AAQAAAAAAAAAOAAAAFIAAAAbAAAAcAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAATQAAAEUAAAAlAAAAYQAA
|
||||
AAAAAAAAAAAAAAAAAAsAAAAhAAAALAAAADYAAABFAAAAYwAAAHQAAABoAAAAQgAAAAsAAAAAAAAAHwAA
|
||||
ADMAAAAgAgIFAAAAAAAAAAA4AAAAUgAAABsAAABwAAAAAgAAAAAAAAAAAAAAAAAAAAAAAABNAAAARQAA
|
||||
ACUAAABhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAACsAAABeAAAAeAAA
|
||||
ADMBAQQAAQEEAAEBAwAAAAAAAAAAAAAAADgAAABSAAAAGwAAAHAAAAACAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AE0AAABFAAAAJQAAAGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAjAAAAbQAAAGQAAAAZAAAAAAAAAAAAAAAAAAAAOAAAAFIAAAAbAAAAcAAAAAIAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAATQAAAEUAAAAlAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAADAAAAPQAAAEYAAAABAAAAAAAAAAAAAAA3AAAAUgAAABsAAABwAAAAAgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAABNAAAARQAAACQAAABmAAAAAwAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA
|
||||
AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAACAAAABAAAAAQAAAAEAAAAAQAAAD8AAABSAAAAGwAA
|
||||
AHAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAE0AAABGAAAACgAAAG0AAABuAAAAbAAAAG0AAABtAAAAbQAA
|
||||
AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABsAAAAbQAAAG0AAABsAAAAeQAA
|
||||
ACoAAAAcAAAAcQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAARAAAAF8AAAAAAAAABgAAABMAAAATAAAAEwAA
|
||||
ABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAAABMAAAATAAAAEwAA
|
||||
ABQAAAAMAAAAAAAAADAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAcQAAAGwAAABgAAAAYAAA
|
||||
AGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAAA
|
||||
AGAAAABgAAAAYAAAAGAAAABkAAAAegAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAJAAA
|
||||
ACkAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAAoAAAAKAAA
|
||||
ACgAAAAoAAAAKAAAACgAAAAoAAAAKAAAACgAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA///AAf4AAAD+AAAA/gAAAP4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAHAAAABwAAAAcAAAAHAAAABwPAAAcAAAAHAAAABwAA
|
||||
AAcAAAAHAAAABwAAAAcAAAAH//////////8=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
36
SCADA/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("MesWork")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("MesWork")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2019")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("a8d0b4ef-e223-4b9a-b2d9-0156b7b8b073")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
953
SCADA/Properties/Resources.Designer.cs
generated
Normal file
@@ -0,0 +1,953 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace CentralControl.Properties {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 一个强类型的资源类,用于查找本地化的字符串等。
|
||||
/// </summary>
|
||||
// 此类是由 StronglyTypedResourceBuilder
|
||||
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
|
||||
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
|
||||
// (以 /str 作为命令选项),或重新生成 VS 项目。
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.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("CentralControl.Properties.Resources", typeof(Resources).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重写当前线程的 CurrentUICulture 属性,对
|
||||
/// 使用此强类型资源类的所有资源查找执行重写。
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap _002_列表 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("_002_列表", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap _0780fca3def52d8a02649c7aa2f8093a {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("_0780fca3def52d8a02649c7aa2f8093a", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap action_Cancel_16xLG {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("action_Cancel_16xLG", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon bitbug_favicon {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("bitbug_favicon", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon BOSS_数据管理 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("BOSS_数据管理", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap BOSS_数据管理1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("BOSS_数据管理1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon excelICON {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("excelICON", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap HMI {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("HMI", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap JD {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("JD", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon jk {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("jk", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap MBE风格多色图标_密码 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("MBE风格多色图标_密码", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap panlClose {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("panlClose", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap ssbj {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("ssbj", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap staticjd {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("staticjd", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 上传 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("上传", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 上载 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("上载", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 下载 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("下载", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 业务 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("业务", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 任务监控和查询 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("任务监控和查询", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 保存 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("保存", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 信息_记录 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("信息_记录", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 关闭 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("关闭", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 关闭系统 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("关闭系统", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 写入托盘 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("写入托盘", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon 分布图 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("分布图", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 分布图1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("分布图1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 列表 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("列表", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 列表2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("列表2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 删除 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("删除", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 刷新 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("刷新", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 动态数据查询 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("动态数据查询", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 合作 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("合作", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 图表_柱 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("图表_柱", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 图表_线_通用_统计 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("图表_线_通用_统计", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 图表_饼 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("图表_饼", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 增加 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("增加", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 备份_复制 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("备份_复制", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 审核_盖章 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("审核_盖章", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 密码 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("密码", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 导入 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("导入", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 导出 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("导出", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 工作台 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("工作台", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 工具 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("工具", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 布局图 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("布局图", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 帮助 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("帮助", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 异常_危险 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("异常_危险", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 手动打印 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("手动打印", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 打印机 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("打印机", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 按键分割线 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("按键分割线", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 按键分割线浅 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("按键分割线浅", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 搜索 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("搜索", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 操作管理 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("操作管理", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 文档 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("文档", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 断开 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("断开", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 断开状态 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("断开状态", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 断开连接 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("断开连接", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 新增_添加 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("新增_添加", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon 日志 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("日志", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 日志1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("日志1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 更多 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("更多", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 权限角色管理 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("权限角色管理", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 正确_成功 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("正确_成功", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 添加 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("添加", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 用户_账号_我的 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("用户_账号_我的", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 用户_账号_我的_未登录 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("用户_账号_我的_未登录", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 登出2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("登出2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 登录 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("登录", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 筛选 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("筛选", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 系统管理 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("系统管理", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 系统管理和监控服务 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("系统管理和监控服务", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 组群_角色 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("组群_角色", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 编辑_修改 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("编辑_修改", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 解锁 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("解锁", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 记录2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("记录2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 质控管理 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("质控管理", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 辅助_协助 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("辅助_协助", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 返回2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("返回2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 进度_沙漏 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("进度_沙漏", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 连接 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("连接", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 连接状态 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("连接状态", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 退出 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("退出", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon 配置 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("配置", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 配置1 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("配置1", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找类似于 (图标) 的 System.Drawing.Icon 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Icon 配置2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("配置2", resourceCulture);
|
||||
return ((System.Drawing.Icon)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 配置21 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("配置21", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 重新加载数据 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("重新加载数据", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 锁定 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("锁定", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 错误_失败 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("错误_失败", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap 零件管理 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("零件管理", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
388
SCADA/Properties/Resources.resx
Normal file
@@ -0,0 +1,388 @@
|
||||
<?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.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="返回2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\返回2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="HMI" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\HMI.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="列表2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\列表2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="信息_记录" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\信息_记录.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="辅助_协助" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\辅助_协助.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="更多" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\更多.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="帮助" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\帮助.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="JD" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\JD.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="配置2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\配置2.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="BOSS_数据管理1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\BOSS-数据管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="重新加载数据" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\重新加载数据.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="导出" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\导出.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="MBE风格多色图标_密码" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\MBE风格多色图标-密码.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="断开" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\断开.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="excelICON" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\excelICON.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="系统管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\系统管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="关闭系统" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\关闭系统.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="登录" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\登录.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="刷新" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\刷新.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="导入" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\导入.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="零件管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\零件管理.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="连接状态" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\连接状态.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="操作管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\操作管理.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="断开连接" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\断开连接.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="按键分割线" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\按键分割线.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="任务监控和查询" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\任务监控和查询.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="分布图1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\分布图.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="系统管理和监控服务" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\系统管理和监控服务.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="ssbj" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\ssbj.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="解锁" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\解锁.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="配置1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\配置.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="_002_列表" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\002_列表.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="panlClose" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\panlClose.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="文档" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\文档.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="正确_成功" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\正确_成功.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="按键分割线浅" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\按键分割线浅.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="异常_危险" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\异常_危险.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="bitbug_favicon" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\bitbug_favicon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="连接" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\连接.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="图表_线_通用_统计" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\图表_线_通用_统计.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="下载" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\下载.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="搜索" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\搜索.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="上传" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\上传.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="图表_柱" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\图表_柱.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="用户_账号_我的_未登录" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\用户_账号_我的_未登录.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="工作台" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\工作台.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="新增_添加" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\新增_添加.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="分布图" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\分布图.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="动态数据查询" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\动态数据查询.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="筛选" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\筛选.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="图表_饼" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\图表_饼.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="action_Cancel_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\action_Cancel_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="权限角色管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\权限角色管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="_0780fca3def52d8a02649c7aa2f8093a" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\0780fca3def52d8a02649c7aa2f8093a.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="编辑_修改" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\编辑_修改.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="关闭" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\关闭.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="手动打印" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\手动打印.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="上载" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\上载.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="BOSS_数据管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\BOSS-数据管理.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="保存" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\保存.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="列表" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\列表.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="合作" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\合作.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="断开状态" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\断开状态.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="配置21" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\配置2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="日志" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\日志.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="错误_失败" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\错误_失败.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="用户_账号_我的" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\用户_账号_我的.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="业务" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\业务.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="工具" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\工具.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="jk" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\jk.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="进度_沙漏" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\进度_沙漏.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="记录2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\记录2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="质控管理" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\质控管理.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="登出2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\登出2.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="删除" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\删除.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="添加" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\添加.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="备份_复制" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\备份_复制.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="写入托盘" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\写入托盘.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="配置" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\配置.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="日志1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\日志.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="密码" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\密码.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="锁定" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\锁定.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="staticjd" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\staticjd.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="组群_角色" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\组群_角色.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="增加" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\增加.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="打印机" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\打印机.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="审核_盖章" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\审核_盖章.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="退出" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\退出.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="布局图" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\icon\布局图.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
26
SCADA/Properties/Settings.Designer.cs
generated
Normal file
@@ -0,0 +1,26 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// 此代码由工具生成。
|
||||
// 运行时版本:4.0.30319.42000
|
||||
//
|
||||
// 对此文件的更改可能会导致不正确的行为,并且如果
|
||||
// 重新生成代码,这些更改将会丢失。
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace CentralControl.Properties {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.10.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
7
SCADA/Properties/Settings.settings
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
|
||||
<Profiles>
|
||||
<Profile Name="(Default)" />
|
||||
</Profiles>
|
||||
<Settings />
|
||||
</SettingsFile>
|
||||
492
SCADA/Sql_Biz/MES_ExecuteDB.cs
Normal file
@@ -0,0 +1,492 @@
|
||||
using DC_A95.MES_A95;
|
||||
using NPOI.OpenXmlFormats.Dml;
|
||||
using NPOI.SS.Formula.Eval;
|
||||
using NPOI.SS.Formula.Functions;
|
||||
using NPOI.Util;
|
||||
using Opc.Ua;
|
||||
using OpcBasic;
|
||||
using Rhino.DocObjects;
|
||||
using Rhino.Geometry;
|
||||
using SlMesDbIterface;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Linq;
|
||||
using System.Reflection.Emit;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using SystemFramework;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
namespace MesWork
|
||||
{
|
||||
/// <summary>
|
||||
/// 操作数据库
|
||||
/// </summary>
|
||||
public class ExecuteDB
|
||||
{
|
||||
/// <summary>
|
||||
/// 报警开始
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
/// <param name="alarming"></param>
|
||||
public static void Alarm_Start(string opName,int[] alarming)
|
||||
{
|
||||
var ChangeTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
var name = "Event_Alarm_Start";
|
||||
|
||||
for (int i = 0; i < alarming.Length ; i++)
|
||||
{
|
||||
var alarmCode = alarming[i];
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@StationName", opName),
|
||||
new SqlParameter("@AlarmCode", alarmCode),
|
||||
new SqlParameter("@ChangeTime", ChangeTime)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameters, out DataSet ds, out string error);
|
||||
}
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 报警结束
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
public static void Alarm_End(string opName)
|
||||
{
|
||||
var ChangeTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
var name = "Event_Alarm_End";
|
||||
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@StationName", opName),
|
||||
new SqlParameter("@ChangeTime", ChangeTime)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameters, out DataSet ds, out string error);
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 安东开始
|
||||
/// </summary>
|
||||
/// <param name="opCode"></param>
|
||||
/// <param name="alarmCode">变量类型代码</param>
|
||||
public static void Alarm_Andon_Start(string opCode, int alarmCode)
|
||||
{
|
||||
var ChangeTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
var name = "Event_Alarm_Andon_Start";
|
||||
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@StationName", opCode),
|
||||
new SqlParameter("@AlarmCode", alarmCode),
|
||||
new SqlParameter("@ChangeTime", ChangeTime)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameters, out DataSet ds, out string error);
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 安东结束
|
||||
/// </summary>
|
||||
/// <param name="opCode"></param>
|
||||
/// <param name="alarmCode"></param>
|
||||
public static void Alarm_Andon_End(string opCode, int alarmCode)
|
||||
{
|
||||
var ChangeTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
var name = "Event_Alarm_Andon_End";
|
||||
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@StationName", opCode),
|
||||
new SqlParameter("@AlarmCode", alarmCode),
|
||||
new SqlParameter("@ChangeTime", ChangeTime)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameters, out DataSet ds, out string error);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 安东确认
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
/// <param name="alarmCode"></param>
|
||||
public static void Alarm_Andon_Sure(string opName, int alarmCode)
|
||||
{
|
||||
var ChangeTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
var name = "Event_Alarm_Andon_Sure";
|
||||
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@StationName", opName),
|
||||
new SqlParameter("@AlarmCode", alarmCode),
|
||||
new SqlParameter("@ChangeTime", ChangeTime)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameters, out DataSet ds, out string error);
|
||||
|
||||
}
|
||||
public static DataTable Get_TaskTypeInfo()
|
||||
{
|
||||
var sql = $" SELECT [任务类型],[任务类型名称],[质量数据数量]" +
|
||||
$" ,[数据名称1],[数据单位1],[数据名称2],[数据单位2],[数据名称3],[数据单位3],[数据名称4],[数据单位4]" +
|
||||
$" FROM [配方_大柴_任务类型]";
|
||||
SqlOperation.ExecuteSql(sql, out DataTable dt, out string err);
|
||||
return dt;
|
||||
}
|
||||
|
||||
public static void Save_StationPass_Info(string engineNo, string engineTypeNo, int palletNo, string orderNum, int orderNo,int orderSum,string processCode, string processName,
|
||||
string opCode, string opName, int passAttr, string opter, int QualityOk,int PassStatus, int upOrDown, int optFlag,string sortNo_PLC)
|
||||
{
|
||||
var weight = -1;
|
||||
|
||||
var P_name = "Event_MOM_过点数据";
|
||||
var ChangeTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
|
||||
SqlParameter[] Parameters ={
|
||||
new SqlParameter("@发动机流水号",engineNo),
|
||||
new SqlParameter("@机型号",engineTypeNo),
|
||||
new SqlParameter("@托盘号",palletNo),
|
||||
new SqlParameter("@订单号",orderNum),
|
||||
new SqlParameter("@订单序号",orderNo),
|
||||
new SqlParameter("@订单数量",orderSum),
|
||||
new SqlParameter("@工序编码",processCode),
|
||||
new SqlParameter("@工序名称", processName),
|
||||
new SqlParameter("@工位编码",opCode),
|
||||
new SqlParameter("@工位名称",opName),
|
||||
new SqlParameter("@过点属性",passAttr),
|
||||
new SqlParameter("@采集时间",ChangeTime),
|
||||
new SqlParameter("@操作者",opter),
|
||||
new SqlParameter("@合格标志",QualityOk),
|
||||
new SqlParameter("@过站状态",PassStatus),
|
||||
new SqlParameter("@岔道上下件",upOrDown),
|
||||
new SqlParameter("@重量",weight),
|
||||
new SqlParameter("@操作标记",optFlag),
|
||||
new SqlParameter("@机型标志",sortNo_PLC)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(P_name, Parameters, out string err);
|
||||
if (err.Length > 0)
|
||||
{
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.Alarm, "", $"Save_StationPass_Info 报错!,,{err}");
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 增加:测量数据索引
|
||||
/// </summary>
|
||||
/// <param name="tagTypeCodeID"></param>
|
||||
/// <param name="engineTypeNo"></param>
|
||||
/// <param name="engineNo"></param>
|
||||
/// <param name="opCode"></param>
|
||||
/// <param name="orderNum"></param>
|
||||
/// <param name="palletNo"></param>
|
||||
/// <param name="QCDataCount"></param>
|
||||
/// <param name="Operator"></param>
|
||||
/// <param name="QuaulityFlag"></param>
|
||||
/// <param name="Id_tagCF"></param>
|
||||
public static void Save_MeasureData_Index(int tagTypeCodeID, string engineTypeNo, string engineNo,string opCode,string orderNum, int palletNo,int QCDataCount, string Operator, int QuaulityFlag, out int Id_tagCF)
|
||||
{
|
||||
var P_name = "测量数据合格索引_增加";
|
||||
Id_tagCF = 0;
|
||||
SqlParameter[] thisParms = new SqlParameter[10];
|
||||
thisParms[0] = new SqlParameter("@TagID_CF", tagTypeCodeID);
|
||||
thisParms[1] = new SqlParameter("@EngineType", engineTypeNo);
|
||||
thisParms[2] = new SqlParameter("@EngineID", engineNo);
|
||||
thisParms[3] = new SqlParameter("@工位号", opCode);
|
||||
thisParms[4] = new SqlParameter("@订单号", orderNum);
|
||||
thisParms[5] = new SqlParameter("@托盘编号", palletNo);
|
||||
thisParms[6] = new SqlParameter("@质量数据数量", QCDataCount);
|
||||
thisParms[7] = new SqlParameter("@操作者工号", Operator);
|
||||
thisParms[8] = new SqlParameter("@合格标志", QuaulityFlag);
|
||||
thisParms[9] = new SqlParameter("@Id_tagCF", Id_tagCF);
|
||||
thisParms[9].Direction = ParameterDirection.Output;
|
||||
|
||||
if(SqlOperation.ExecuteStoredProcedure(P_name, thisParms, out string err))
|
||||
{
|
||||
Id_tagCF=Convert.ToInt32(thisParms[9].Value.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
Id_tagCF = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 即时参数存储
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
/// <param name="tagTypeCodeID"></param>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="tagID"></param>
|
||||
public static void Update_ImmediateParam(string opName, int tagTypeCodeID, string value, string tagID)
|
||||
{
|
||||
var ChangeTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
var name = "Event_MES_工位_即时参数_变化";
|
||||
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@工位号", opName),
|
||||
new SqlParameter("@变量类型代码",tagTypeCodeID ),
|
||||
new SqlParameter("@值",value),
|
||||
new SqlParameter("@更新时间", ChangeTime),
|
||||
new SqlParameter("@TagID", tagID),
|
||||
new SqlParameter("@开始时间", ChangeTime),
|
||||
new SqlParameter("@结束时间", ChangeTime),
|
||||
new SqlParameter("@持续时间", 0)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameters, out DataSet ds, out string error);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 设备状态变化
|
||||
/// </summary>
|
||||
/// <param name="opName"></param>
|
||||
/// <param name="tagTypeCodeID"></param>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="tagID"></param>
|
||||
/// <param name="deviceMode"></param>
|
||||
public static void Event_StationStatus_Changed(string opName, string manual, string running, string alarm, string onLine = "1")
|
||||
{
|
||||
var ChangeTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
|
||||
var name = "Event_StationStatus_Changed";
|
||||
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@工位号", opName),
|
||||
new SqlParameter("@手动模式", manual),
|
||||
new SqlParameter("@运行中",running ),
|
||||
new SqlParameter("@报警",alarm),
|
||||
new SqlParameter("@在线",onLine),
|
||||
new SqlParameter("@更新时间", ChangeTime)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameters, out DataSet ds, out string error);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 保存布局
|
||||
/// </summary>
|
||||
/// <param name="stationName"></param>
|
||||
/// <param name="px"></param>
|
||||
/// <param name="py"></param>
|
||||
public static void SaveLyout_P(string stationName, int px, int py)
|
||||
{
|
||||
var sql =
|
||||
$" UPDATE [MES_计划BOM_工位与名称] SET [PX] = {px},[PY] = {py}" +
|
||||
$" WHERE [工位号] = '{stationName}'";
|
||||
SqlOperation.ExecuteSql(sql, out string error);
|
||||
}
|
||||
/// <summary>
|
||||
/// 保存布局
|
||||
/// </summary>
|
||||
/// <param name="stationName"></param>
|
||||
/// <param name="pxt"></param>
|
||||
/// <param name="pyt"></param>
|
||||
public static void SaveLyout_PT(string stationName, int pxt, int pyt)
|
||||
{
|
||||
var sql =
|
||||
$" UPDATE [MES_计划BOM_工位与名称] SET [PX_T] = {pxt},[PY_T] = {pyt}" +
|
||||
$" WHERE [工位号] = '{stationName}'";
|
||||
SqlOperation.ExecuteSql(sql, out string error);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 查询工位信息
|
||||
/// </summary>
|
||||
/// <param name="dt"></param>
|
||||
public static void Select_Station(out DataTable dt)
|
||||
{
|
||||
var sql =
|
||||
$" SELECT [工位号],[工位名称],[PLC],[PLC代码]," +
|
||||
$"ISNULL([PX],0) AS PX,ISNULL([PY],0) AS PY,ISNULL([PX_T],0) AS PX_T,ISNULL([PY_T],0) AS PY_T,[控件启用]" +
|
||||
$" ,[区域代码]" +
|
||||
$" FROM [MES_计划BOM_工位与名称] WHERE [是否启用MES] = 1" + // AND [ProgramPartial] = {MesWorkForm.ProgramPartial}
|
||||
$" ORDER BY [工位号]";
|
||||
SqlOperation.ExecuteSql(sql, out dt, out string error);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 检查上线的发动机流水号是否重复
|
||||
/// </summary>
|
||||
/// <param name="dt"></param>
|
||||
public static void Check_Repeat_LineSet(string opcode, string engineNo, out bool ifrepeat)
|
||||
{
|
||||
ifrepeat = false;
|
||||
var sql = $" SELECT count(AID) FROM [大柴_过点信息] where 工位编码='{opcode}' and 发动机流水号='{engineNo}'";
|
||||
SqlOperation.ExecuteSql(sql, out DataTable dt, out string error);
|
||||
if (int.Parse(dt.Rows[0][0].ToString()) > 0) ifrepeat = true;
|
||||
}
|
||||
public static void Save_ScanRecord_outLineSet(string opCode, string engineNo, string ActualNumber,string Decode_Result)
|
||||
{
|
||||
//保存扫码记录
|
||||
string sql = $@"INSERT INTO[MES_装配数据_零部件扫码记录]([工位号],[发动机流水号],[ActualNumber],[Decode_Result],[MaterialCode], Scanner_No,[操作时间])
|
||||
VALUES('{opCode}', {engineNo}, '{ActualNumber}', '{Decode_Result}', '{engineNo}', 1, getdate())";
|
||||
SqlOperation.ExecuteSql(sql,out string error);
|
||||
}
|
||||
public static void Get_EngineInfo_OutSide(int AGVCode,out string EngineNo,out int EngineTypeID,out string EngineType,out string OrderNum)
|
||||
{
|
||||
//根据agvcode获取发动机信息
|
||||
string sql = $@"SELECT TOP (1)[发动机流水号],[大机型ID],[机型号],[工单号] FROM [大柴_上线记录_外装线]
|
||||
where AGV号={AGVCode} and 外装线绑定状态=1 and [发动机流水号]<>'' order by 操作时间 desc";
|
||||
SqlOperation.ExecuteSql(sql,out DataTable dt,out string error);
|
||||
if(dt.Rows.Count==1)
|
||||
{
|
||||
EngineNo = dt.Rows[0]["发动机流水号"].ToString();
|
||||
EngineTypeID = int.Parse(dt.Rows[0]["大机型ID"].ToString());
|
||||
EngineType = dt.Rows[0]["机型号"].ToString();
|
||||
OrderNum = dt.Rows[0]["工单号"].ToString();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
EngineNo = "";
|
||||
EngineTypeID = 0;
|
||||
EngineType = "";
|
||||
OrderNum = "";
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 内装线上线工位:请求下载
|
||||
/// </summary>
|
||||
/// <param name="opCode"></param>
|
||||
/// <param name="partCode"></param>
|
||||
/// <param name="palletNo"></param>
|
||||
/// <param name="engineNo"></param>
|
||||
/// <param name="sortNo"></param>
|
||||
/// <param name="sortName"></param>
|
||||
/// <param name="printCode"></param>
|
||||
/// <param name="orderNo"></param>
|
||||
public static void Select_OnLine_Plan_Engine(string opCode,string partCode, int palletNo
|
||||
, out string engineNo
|
||||
, out int sortNo
|
||||
, out string sortName
|
||||
, out string printCode
|
||||
, out string orderNo
|
||||
, out int errCode
|
||||
, out string errMessage
|
||||
, out int printPosition
|
||||
|
||||
)
|
||||
{
|
||||
engineNo = "";
|
||||
sortNo = 0;
|
||||
sortName = "";
|
||||
printCode = "";
|
||||
orderNo = "";
|
||||
errCode = 0;
|
||||
errMessage = "";
|
||||
printPosition = 0;
|
||||
|
||||
var name = "Event_Query_上线发动机数据";
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@StationName", opCode),
|
||||
new SqlParameter("@PartCode",partCode ),
|
||||
new SqlParameter("@PalletNo",palletNo )
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameters, out DataTable dt, out string error);
|
||||
if (dt.Rows.Count > 0)
|
||||
{
|
||||
engineNo = dt.Rows[0]["发动机编号"].ToString();
|
||||
sortNo = int.Parse(dt.Rows[0]["机型ID"].ToString());
|
||||
sortName = dt.Rows[0]["机型号"].ToString();
|
||||
printCode = dt.Rows[0]["缸体打印码"].ToString();
|
||||
orderNo = dt.Rows[0]["工单号"].ToString();
|
||||
|
||||
errCode = Convert.ToInt32(dt.Rows[0]["Code"]);
|
||||
errMessage = dt.Rows[0]["Message"].ToString();
|
||||
printPosition = Convert.ToInt32(dt.Rows[0]["PrintPosition"]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 执行计划:成功上线的发动机,更新执行计划为2
|
||||
/// </summary>
|
||||
/// <param name="opCode"></param>
|
||||
/// <param name="engineNo"></param>
|
||||
public static void Update_ExcutePlan_LineSetOK(string opCode,string engineNo)
|
||||
{
|
||||
var name = "Event_执行计划_验证完成";
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@StationName", opCode),
|
||||
new SqlParameter("@EngineNo", engineNo)
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameters,out DataTable dt,out string err);
|
||||
if (err.Length > 0)
|
||||
{
|
||||
LogRecord.LogRecord.Insert_Log(Type_Log.Alarm, "", $"Update_ExcutePlan_LineSetOK 报错!,,{err}");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static void Event_OutSide_OnLine(string opCode, string engineNo, int engineTypeID, int orderNo, string engineTypeCode, int agvCode)
|
||||
{
|
||||
var name = "Event_OutSide_OnLine";
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@StationName", opCode),
|
||||
new SqlParameter("@EngineNo", engineNo),
|
||||
new SqlParameter("@EngineTypeNo",engineTypeID),
|
||||
new SqlParameter("@OrderNo",orderNo ),
|
||||
new SqlParameter("@EngineTypeCode",engineTypeCode),
|
||||
new SqlParameter("@AgvCode",agvCode),
|
||||
};
|
||||
SqlOperation.ExecuteStoredProcedure(name, sqlParameters, out string error);
|
||||
}
|
||||
|
||||
|
||||
public static bool Event_QueryRecipes_ColdTest(string opCode, string sortNo, out DataTable dt)
|
||||
{
|
||||
var name = "Event_QueryRecipes_ColdTest";
|
||||
var sqlParameters = new SqlParameter[] {
|
||||
new SqlParameter("@StationName", opCode),
|
||||
new SqlParameter("@SortNo",sortNo),
|
||||
};
|
||||
return SqlOperation.ExecuteStoredProcedure(name, sqlParameters, out dt, out string error);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
208
SCADA/WebAPI/AnalysisMsg.cs
Normal file
@@ -0,0 +1,208 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.SqlClient;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SlMesDbIterface;
|
||||
using System.Net.Mail;
|
||||
using PLMTEST;
|
||||
using System.Collections;
|
||||
using System.Drawing.Imaging;
|
||||
using DataLinkMesWork;
|
||||
using MesWork;
|
||||
|
||||
|
||||
namespace WebApi
|
||||
{
|
||||
|
||||
public class msgResHeader
|
||||
{
|
||||
/// <summary>
|
||||
/// 任务ID
|
||||
/// </summary>
|
||||
public string taskId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
/// <summary>
|
||||
/// 返回结果
|
||||
/// </summary>
|
||||
public string code
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
/// <summary>
|
||||
/// 返回消息
|
||||
/// </summary>
|
||||
public string msg
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
/// <summary>
|
||||
/// 返回消息2
|
||||
/// </summary>
|
||||
public string message
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
/// <summary>
|
||||
/// 返回结果集
|
||||
/// </summary>
|
||||
public string returnData
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
public class syncOrderReq
|
||||
{
|
||||
/// <summary>
|
||||
/// 指令类型
|
||||
/// </summary>
|
||||
public string type
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
/// <summary>
|
||||
/// 工位号
|
||||
/// </summary>
|
||||
public string opName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
/// <summary>
|
||||
/// 数值
|
||||
/// </summary>
|
||||
public string value
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
public class AnalysisMsg
|
||||
{
|
||||
/// <summary>
|
||||
/// UUID生成
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static string UuidUtil()
|
||||
{
|
||||
string result = Guid.NewGuid().ToString();
|
||||
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// 重新判断是否申请上线
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="str"></param>
|
||||
/// <returns></returns>
|
||||
public static string MisFunction(string url, string str)
|
||||
{
|
||||
var result = new msgResHeader();
|
||||
result.taskId = UuidUtil();
|
||||
result.code = "0";
|
||||
result.msg = "";
|
||||
result.returnData = "";
|
||||
|
||||
string errorMessage = "";
|
||||
try
|
||||
{
|
||||
/*
|
||||
15 系统健康
|
||||
5 传递机型(AMS)
|
||||
66 允许PLC工作(AMS)
|
||||
34 发动机上线报警标志
|
||||
20 AMS保存完数据(AMS)
|
||||
112 发动机上线报警代码
|
||||
73 机型标志(AMS)
|
||||
74 变速箱总成编号(AMS)
|
||||
75 产品型号(AMS)
|
||||
116 缸体打印码
|
||||
117 订单号
|
||||
|
||||
14 系统健康(PLC)
|
||||
2 工件到位(PLC)
|
||||
43 申请零件编号(PLC)
|
||||
44 传递机型(PLC)
|
||||
63 禁用MES(PLC)
|
||||
9 机型标志(PLC)
|
||||
10 变速箱总成编号(PLC)
|
||||
11 产品型号(PLC)
|
||||
80 托盘编号(PLC)
|
||||
22 0空托盘,1合格件,2不合格件(PLC)
|
||||
19 质量数据可以读数据(PLC)
|
||||
21 质量数据工位合格标志(PLC)
|
||||
23 0正常件,1返修件(PLC)
|
||||
39 缸体打印码(PLC)
|
||||
40 订单号(PLC)
|
||||
120 上线缸体码(PLC)
|
||||
*/
|
||||
// 解析订单内容,存储数据库,根据实际业务来写
|
||||
syncOrderReq BaseData = JsonHelper.JsonDeserialize<syncOrderReq>(str);
|
||||
string OpName = BaseData.opName;
|
||||
switch (BaseData.type)
|
||||
{
|
||||
case "1": // 重新申请上线
|
||||
// 判断是否有工件到位与申请上线 与 没有MES传递机型
|
||||
int workStart = Convert.ToInt32(MesWorkForm.ReadPLC(2, OpName));
|
||||
int partLoad = Convert.ToInt32(MesWorkForm.ReadPLC(43, OpName));
|
||||
int MESEngineType = Convert.ToInt32(MesWorkForm.ReadPLC(5, OpName));
|
||||
if (workStart == 1 && partLoad == 1 && MESEngineType == 0)
|
||||
{
|
||||
// 符合条件写入 e 重新调用 申请上线
|
||||
OpcData.CustomeEvetnArgs e = new OpcData.CustomeEvetnArgs();
|
||||
//MesWorkForm.UseMisFuntion(e);
|
||||
e.TagID = 111;
|
||||
e.OpName = OpName;
|
||||
e.TagTypeID = 11;
|
||||
e.IsFirstValue = "0";
|
||||
e.TagTypeCodeID = 43;
|
||||
e.TagValue = "1";
|
||||
MesWorkForm mewForm = new MesWorkForm();
|
||||
mewForm.UseMisFuntion(e);
|
||||
|
||||
result.message = "写入数据成功";
|
||||
result.code = "200";
|
||||
result.returnData = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
result.message = "当前不满足触发条件 workStart:" + workStart + " partLoad:" + partLoad + " MESEngineType:" + MESEngineType;
|
||||
result.code = "201";
|
||||
result.returnData = "";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (errorMessage != "")
|
||||
{
|
||||
result.message = errorMessage;
|
||||
result.code = "501";
|
||||
result.returnData = "ERROR";
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
result.message = "501";
|
||||
result.msg = err.Message;
|
||||
result.returnData = "ERROR";
|
||||
}
|
||||
return JsonConvert.SerializeObject(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
39
SCADA/WebAPI/CALL_Interfalce_WebAPI.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.IO;
|
||||
using MesWork;
|
||||
|
||||
namespace CentralControl
|
||||
{
|
||||
internal class CALL_Interfalce_WebAPI
|
||||
{
|
||||
public static ResponseBody_WebAPI_Boms Get_BOMs_ByWebAPI(string lineid, string productcode)
|
||||
{
|
||||
var m_msgRequest = new RequestBody_WebAPI_Boms
|
||||
{
|
||||
lineId = lineid,
|
||||
productCode = productcode
|
||||
};
|
||||
|
||||
return RequestPost_Boms_AMS_To_SAP(m_msgRequest);
|
||||
}
|
||||
public static ResponseBody_WebAPI_Boms RequestPost_Boms_AMS_To_SAP(RequestBody_WebAPI_Boms m_msg)
|
||||
{
|
||||
var demoData = JsonConvert.SerializeObject(m_msg);
|
||||
return JsonConvert.DeserializeObject<ResponseBody_WebAPI_Boms>(HttpCli.Post(MesWorkForm.WebAPI_Url_Boms, demoData));
|
||||
|
||||
//var Gen_ProductPlan = File.ReadAllText("C:\\项目\\AMS计划下达.json");
|
||||
//return JsonConvert.DeserializeObject<ResponseBody_WebAPI_Boms>(Gen_ProductPlan);
|
||||
}
|
||||
|
||||
public static ResponseBody_WebAPI_Boms RequestPost_UploadMeasureData_To_SAP(string demoData)
|
||||
{
|
||||
return JsonConvert.DeserializeObject<ResponseBody_WebAPI_Boms>(HttpCli.Post(MesWorkForm.WebAPI_Url_Quality, demoData));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
350
SCADA/WebAPI/HttpCli.cs
Normal file
@@ -0,0 +1,350 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace CentralControl
|
||||
{
|
||||
public class HttpCli
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 指定Url地址使用Get 方式获取全部字符串
|
||||
/// </summary>
|
||||
/// <param name="url">请求链接地址</param>
|
||||
/// <returns></returns>
|
||||
public static string Get(string url)
|
||||
{
|
||||
string result = "";
|
||||
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
|
||||
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
|
||||
Stream stream = resp.GetResponseStream();
|
||||
try
|
||||
{
|
||||
//获取内容
|
||||
using (StreamReader reader = new StreamReader(stream))
|
||||
{
|
||||
result = reader.ReadToEnd();
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
stream.Close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void GetFile(string url,string path)
|
||||
{
|
||||
WebRequest request = WebRequest.Create(url);
|
||||
WebResponse response = request.GetResponse();
|
||||
if (response.ContentType.ToLower().Length > 0)
|
||||
{
|
||||
using (Stream reader = response.GetResponseStream())
|
||||
{
|
||||
using (FileStream writer = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))
|
||||
{
|
||||
byte[] buffer = new byte[1024];
|
||||
int c = 0;
|
||||
while ((c = reader.Read(buffer, 0, buffer.Length)) > 0)
|
||||
{
|
||||
writer.Write(buffer, 0, c);
|
||||
}
|
||||
}
|
||||
}
|
||||
//HttpContext
|
||||
}
|
||||
}
|
||||
|
||||
public static byte[] GetFile_Bytes(string url)
|
||||
{
|
||||
byte[] bytesAll = null;
|
||||
WebRequest request = WebRequest.Create(url);
|
||||
WebResponse response = request.GetResponse();
|
||||
if (response.ContentType.ToLower().Length > 0)
|
||||
{
|
||||
using (Stream reader = response.GetResponseStream())
|
||||
{
|
||||
MemoryStream ms = new MemoryStream();
|
||||
byte[] buffer = new byte[1024];
|
||||
while (true)
|
||||
{
|
||||
int sz = reader.Read(buffer, 0, 1024);
|
||||
if (sz == 0) break;
|
||||
ms.Write(buffer, 0, sz);
|
||||
}
|
||||
bytesAll = ms.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
//如是图片
|
||||
//System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
|
||||
|
||||
return bytesAll;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public void FGHJ()
|
||||
{
|
||||
|
||||
// Create a 'WebRequest' object with the specified url.
|
||||
WebRequest myWebRequest = WebRequest.Create("http://www.contoso.com");
|
||||
|
||||
// Send the 'WebRequest' and wait for response.
|
||||
WebResponse myWebResponse = myWebRequest.GetResponse();
|
||||
|
||||
// Obtain a 'Stream' object associated with the response object.
|
||||
Stream ReceiveStream = myWebResponse.GetResponseStream();
|
||||
|
||||
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
|
||||
|
||||
// Pipe the stream to a higher level stream reader with the required encoding format.
|
||||
StreamReader readStream = new StreamReader(ReceiveStream, encode);
|
||||
Console.WriteLine("\nResponse stream received");
|
||||
Char[] read = new Char[256];
|
||||
|
||||
// Read 256 charcters at a time.
|
||||
int count = readStream.Read(read, 0, 256);
|
||||
Console.WriteLine("HTML...\r\n");
|
||||
|
||||
while (count > 0)
|
||||
{
|
||||
// Dump the 256 characters on a string and display the string onto the console.
|
||||
String str = new String(read, 0, count);
|
||||
Console.Write(str);
|
||||
count = readStream.Read(read, 0, 256);
|
||||
}
|
||||
|
||||
Console.WriteLine("");
|
||||
// Release the resources of stream object.
|
||||
readStream.Close();
|
||||
|
||||
// Release the resources of response object.
|
||||
myWebResponse.Close();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发送Get请求
|
||||
/// </summary>
|
||||
/// <param name="url">地址</param>
|
||||
/// <param name="dic">请求参数定义</param>
|
||||
/// <returns></returns>
|
||||
public static string Get(string url, Dictionary<string, string> dic)
|
||||
{
|
||||
string result = "";
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.Append(url);
|
||||
if (dic.Count > 0)
|
||||
{
|
||||
builder.Append("?");
|
||||
int i = 0;
|
||||
foreach (var item in dic)
|
||||
{
|
||||
if (i > 0)
|
||||
builder.Append("&");
|
||||
builder.AppendFormat("{0}={1}", item.Key, item.Value);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(builder.ToString());
|
||||
//添加参数
|
||||
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
|
||||
Stream stream = resp.GetResponseStream();
|
||||
try
|
||||
{
|
||||
//获取内容
|
||||
using (StreamReader reader = new StreamReader(stream))
|
||||
{
|
||||
result = reader.ReadToEnd();
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
stream.Close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 指定Post地址使用Get 方式获取全部字符串
|
||||
/// </summary>
|
||||
/// <param name="url">请求后台地址</param>
|
||||
/// <returns></returns>
|
||||
public static string Post(string url)
|
||||
{
|
||||
string result = "";
|
||||
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
|
||||
req.Method = "POST";
|
||||
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
|
||||
Stream stream = resp.GetResponseStream();
|
||||
//获取内容
|
||||
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
|
||||
{
|
||||
result = reader.ReadToEnd();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 指定Post地址使用Get 方式获取全部字符串
|
||||
/// </summary>
|
||||
/// <param name="url">请求后台地址</param>
|
||||
/// <returns></returns>
|
||||
public static string Post(string url, Dictionary<string, string> dic)
|
||||
{
|
||||
string result = "";
|
||||
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
|
||||
req.Method = "POST";
|
||||
req.ContentType = "application/x-www-form-urlencoded";
|
||||
#region 添加Post 参数
|
||||
StringBuilder builder = new StringBuilder();
|
||||
int i = 0;
|
||||
foreach (var item in dic)
|
||||
{
|
||||
if (i > 0)
|
||||
builder.Append("&");
|
||||
builder.AppendFormat("{0}={1}", item.Key, item.Value);
|
||||
i++;
|
||||
}
|
||||
byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
|
||||
req.ContentLength = data.Length;
|
||||
using (Stream reqStream = req.GetRequestStream())
|
||||
{
|
||||
reqStream.Write(data, 0, data.Length);
|
||||
reqStream.Close();
|
||||
}
|
||||
#endregion
|
||||
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
|
||||
Stream stream = resp.GetResponseStream();
|
||||
//获取响应内容
|
||||
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
|
||||
{
|
||||
result = reader.ReadToEnd();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 指定Post地址使用Get 方式获取全部字符串
|
||||
/// </summary>
|
||||
/// <param name="url">请求后台地址</param>
|
||||
/// <param name="content">Post提交数据内容(utf-8编码的)</param>
|
||||
/// <returns></returns>
|
||||
public static string Post(string url, string content)
|
||||
{
|
||||
string result = "";
|
||||
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
|
||||
req.Headers.Add("token", "factory2"); //如果接口需要鉴权, 把"token"换成自己需要的
|
||||
req.Method = "POST";
|
||||
req.ContentType = "application/json";
|
||||
|
||||
#region 添加Post 参数
|
||||
byte[] data = Encoding.UTF8.GetBytes(content);
|
||||
req.ContentLength = data.Length;
|
||||
using (Stream reqStream = req.GetRequestStream())
|
||||
{
|
||||
reqStream.Write(data, 0, data.Length);
|
||||
reqStream.Close();
|
||||
}
|
||||
#endregion
|
||||
|
||||
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
|
||||
Stream stream = resp.GetResponseStream();
|
||||
//获取响应内容
|
||||
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
|
||||
{
|
||||
result = reader.ReadToEnd();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Http下载文件
|
||||
/// </summary>
|
||||
/// <param name="uri">下载地址</param>
|
||||
/// <param name="filefullpath">存放完整路径(含文件名)</param>
|
||||
/// <param name="size">每次多的大小</param>
|
||||
/// <returns>下载操作是否成功</returns>
|
||||
|
||||
public static bool DownLoadFiles(string uri, string filefullpath, int size = 1000000)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (File.Exists(filefullpath))
|
||||
{
|
||||
try
|
||||
{
|
||||
File.Delete(filefullpath);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
string fileDirectory = System.IO.Path.GetDirectoryName(filefullpath);
|
||||
|
||||
if (!Directory.Exists(fileDirectory))
|
||||
{
|
||||
Directory.CreateDirectory(fileDirectory);
|
||||
}
|
||||
|
||||
FileStream fs = new FileStream(filefullpath, FileMode.Create);
|
||||
|
||||
byte[] buffer = new byte[size];
|
||||
|
||||
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
|
||||
|
||||
request.Timeout = 100000;
|
||||
|
||||
request.AddRange((int)fs.Length);
|
||||
|
||||
Stream ns = request.GetResponse().GetResponseStream();
|
||||
|
||||
long contentLength = request.GetResponse().ContentLength;
|
||||
|
||||
int length = ns.Read(buffer, 0, buffer.Length);
|
||||
|
||||
while (length > 0)
|
||||
{
|
||||
fs.Write(buffer,0 , length);
|
||||
buffer = new byte[size];
|
||||
length = ns.Read(buffer, 0, buffer.Length);
|
||||
}
|
||||
|
||||
fs.Close();
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
52
SCADA/WebAPI/IOrderController.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Net.Http;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.Http;
|
||||
using System.Collections.Concurrent;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Threading;
|
||||
using SlMesDbIterface;
|
||||
using PLMTEST;
|
||||
using System.Net;
|
||||
using System.Net.Http.Headers;
|
||||
using System.IO;
|
||||
using ExternalDataSync;
|
||||
|
||||
|
||||
/////http://127.0.0.1:9981/api/IOrder/InsertOrder
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
namespace WebApi
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[RoutePrefix("api/IOrder")]
|
||||
public class IOrderController : ApiController
|
||||
{
|
||||
readonly string headUrl = "IOrder/";
|
||||
|
||||
/// <summary>
|
||||
/// 生产工单下发
|
||||
/// </summary>
|
||||
/// <param name="jobj"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public HttpResponseMessage MisFunction([FromBody] JObject jobj)
|
||||
{
|
||||
return new HttpResponseMessage
|
||||
{
|
||||
Content = new StringContent(AnalysisMsg.MisFunction(headUrl + System.Reflection.MethodBase.GetCurrentMethod().Name, jobj.ToString()), Encoding.GetEncoding("UTF-8"), "application/json")
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
151
SCADA/WebAPI/InitServer.cs
Normal file
@@ -0,0 +1,151 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Formatting;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Text;
|
||||
using System.Web.Http;
|
||||
using System.Web.Http.Cors;
|
||||
using System.Web.Http.SelfHost;
|
||||
|
||||
namespace WebApi
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class InitServer
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
HttpSelfHostConfiguration config = null;
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
HttpSelfHostServer server = null;
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="port"></param>
|
||||
public InitServer(int port)
|
||||
{
|
||||
config = new HttpSelfHostConfiguration($"http://0.0.0.0:{port}");
|
||||
|
||||
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));
|
||||
|
||||
config.MapHttpAttributeRoutes();
|
||||
|
||||
//config.Routes.MapHttpRoute(
|
||||
// name: "DefaultApi",
|
||||
// routeTemplate: "api/{controller}/{id}",
|
||||
// defaults: new { id = RouteParameter.Optional }
|
||||
//);
|
||||
|
||||
// 自定义路由匹配到action
|
||||
config.Routes.MapHttpRoute(
|
||||
name: "API Default",
|
||||
routeTemplate: "api/{controller}/{action}/{id}",
|
||||
defaults: new { id = RouteParameter.Optional }
|
||||
);
|
||||
|
||||
server = new HttpSelfHostServer(config);
|
||||
|
||||
server.OpenAsync().Wait();
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="port"></param>
|
||||
public void Init(int port)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
public void Close()
|
||||
{
|
||||
server.CloseAsync();
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public class JsonContentNegotiator : IContentNegotiator
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
private readonly JsonMediaTypeFormatter _jsonFormatter;
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="formatter"></param>
|
||||
public JsonContentNegotiator(JsonMediaTypeFormatter formatter)
|
||||
{
|
||||
_jsonFormatter = formatter;
|
||||
}
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="type"></param>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="formatters"></param>
|
||||
/// <returns></returns>
|
||||
public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable<MediaTypeFormatter> formatters)
|
||||
{
|
||||
var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json"));
|
||||
return result;
|
||||
}
|
||||
|
||||
public static string Postring1(string url, string token, Dictionary<string, string> dic)
|
||||
{
|
||||
string results = "";
|
||||
//url = "http://172.16.22.15:8000/" + url;
|
||||
|
||||
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
|
||||
req.Method = "POST";
|
||||
req.ContentType = "application/x-www-form-urlencoded";
|
||||
req.Headers.Add("Authorization", "Bearer " + token);
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
int i = 0;
|
||||
foreach (var item in dic)
|
||||
{
|
||||
if (i > 0)
|
||||
builder.Append("&");
|
||||
builder.AppendFormat("{0}={1}", item.Key, item.Value);
|
||||
i++;
|
||||
}
|
||||
byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
|
||||
req.ContentLength = data.Length;
|
||||
try
|
||||
{
|
||||
using (Stream reqStream = req.GetRequestStream())
|
||||
{
|
||||
reqStream.Write(data, 0, data.Length);
|
||||
reqStream.Close();
|
||||
}
|
||||
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
|
||||
Stream stream = resp.GetResponseStream();
|
||||
//获取响应内容
|
||||
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
|
||||
{
|
||||
results = reader.ReadToEnd();
|
||||
}
|
||||
return results;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.Message);
|
||||
return e.Message;
|
||||
throw;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
111
SCADA/WebAPI/PP.cs
Normal file
@@ -0,0 +1,111 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace CentralControl
|
||||
{
|
||||
|
||||
public class RequestBody_WebAPI_Boms
|
||||
{
|
||||
public string lineId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string productCode
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
public class ResponseBody_WebAPI_Boms
|
||||
{
|
||||
public string code
|
||||
{
|
||||
get;
|
||||
set;
|
||||
} = "";
|
||||
public string message
|
||||
{
|
||||
get;
|
||||
set;
|
||||
} = "";
|
||||
public List<DataBody_WebAPI_Boms> Data
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
}
|
||||
public class DataBody_WebAPI_Boms
|
||||
{
|
||||
/*
|
||||
(name="bomHeaderId",value="bom头id")
|
||||
(name ="materialId",value ="物料id")
|
||||
(name="materialCode".value="物料编码")
|
||||
(name="materialName" value="物料名称"
|
||||
(name="quanity",value="量”
|
||||
(name="keyFlag",value="是否关键件,1是,0否")
|
||||
(name ="operationId",value="工位id")
|
||||
(name=operationCode,value="工位编码")
|
||||
(name="assginedSupplierId",value="指定供应商id")
|
||||
(name="assginedSupplierCode".value="指定供应商code")
|
||||
*/
|
||||
public string bomHeaderId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string materialId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string materialCode
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string materialName
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string quanity
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string keyFlag
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string operationId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string operationCode
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string assginedSupplierId
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
public string assginedSupplierCode
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
79
SCADA/app.manifest
Normal file
@@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||
<security>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<!-- UAC 清单选项
|
||||
如果想要更改 Windows 用户帐户控制级别,请使用
|
||||
以下节点之一替换 requestedExecutionLevel 节点。
|
||||
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||
|
||||
指定 requestedExecutionLevel 元素将禁用文件和注册表虚拟化。
|
||||
如果你的应用程序需要此虚拟化来实现向后兼容性,则移除此
|
||||
元素。
|
||||
-->
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- 设计此应用程序与其一起工作且已针对此应用程序进行测试的
|
||||
Windows 版本的列表。取消评论适当的元素,
|
||||
Windows 将自动选择最兼容的环境。 -->
|
||||
|
||||
<!-- Windows Vista -->
|
||||
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
||||
|
||||
<!-- Windows 7 -->
|
||||
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
|
||||
|
||||
<!-- Windows 8 -->
|
||||
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
|
||||
|
||||
<!-- Windows 8.1 -->
|
||||
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
|
||||
|
||||
<!-- Windows 10 -->
|
||||
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
|
||||
|
||||
</application>
|
||||
</compatibility>
|
||||
|
||||
<!-- 指示该应用程序可感知 DPI 且 Windows 在 DPI 较高时将不会对其进行
|
||||
自动缩放。Windows Presentation Foundation (WPF)应用程序自动感知 DPI,无需
|
||||
选择加入。选择加入此设置的 Windows 窗体应用程序(面向 .NET Framework 4.6)还应
|
||||
在其 app.config 中将 "EnableWindowsFormsHighDpiAutoResizing" 设置设置为 "true"。
|
||||
|
||||
将应用程序设为感知长路径。请参阅 https://docs.microsoft.com/windows/win32/fileio/maximum-file-path-limitation -->
|
||||
<!--
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
||||
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
-->
|
||||
|
||||
<!-- 启用 Windows 公共控件和对话框的主题(Windows XP 和更高版本) -->
|
||||
<!--
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="*"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
</assembly>
|
||||
BIN
SCADA/bin/WC_AssembleControl_Exe/AMS_CentralControl.exe
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="NotHandlerSignal" value="0" />
|
||||
<add key="IsDemoMesServer" value="1" />
|
||||
<add key="IsAllowWrite" value="1" />
|
||||
<add key="BasicDataTableFile" value="WC_CONTROL.xlsx" />
|
||||
<!--是启用写监控报错日志-->
|
||||
<add key="IsWriteMonitorLog" value="0" />
|
||||
<add key="IsWriteLog4" value="1" />
|
||||
<!--数据库连接-->
|
||||
<!--<add key="ConnectionString" value="server=.\V2019;database=WC_WP12T_13L;uid=sa;pwd=126.com;Connection Reset=FALSE;Max Pool Size = 1000" />-->
|
||||
<add key="ConnectionString" value="server=.;database=WC_WP12T_13L;uid=sa;pwd=hl@123;Connection Reset=FALSE;Max Pool Size = 1000" />
|
||||
<!--上线工位名称-->
|
||||
<add key="OPCodes_LineSet" value="OP1010" />
|
||||
</appSettings>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||
</startup>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
</configuration>
|
||||
BIN
SCADA/bin/WC_AssembleControl_Exe/BasicData.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/BouncyCastle.Crypto.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/ConLink.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/DataLinkMesWork.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/ICSharpCode.SharpZipLib.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/MQTTnet.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/MW_Log.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/MesWork.DeviceDriver.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/MesWork.MQTT.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/NPOI.OOXML.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/NPOI.OpenXml4Net.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/NPOI.OpenXmlFormats.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/NPOI.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/Newtonsoft.Json.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/Opc.Ua.Client.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/Opc.Ua.Configuration.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/Opc.Ua.Core.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/OpcUaHelper.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/Rhino3dm.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/S7.Net.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/System.Buffers.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/System.Memory.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/System.Net.Http.Formatting.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/System.Numerics.Vectors.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/System.Web.Cors.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/System.Web.Http.Cors.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/System.Web.Http.SelfHost.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/System.Web.Http.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/Ubiety.Dns.Core.dll
Normal file
BIN
SCADA/bin/WC_AssembleControl_Exe/WC_CONTROL.xlsx
Normal file
35
SCADA/bin/WC_AssembleControl_Exe/log4net.config
Normal file
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
|
||||
</configSections>
|
||||
<log4net>
|
||||
<!--Info日志-->
|
||||
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
|
||||
<!--日志文件存放位置,可以为绝对路径也可以为相对路径 -->
|
||||
<param name="File" value="C:\MWLOG" />
|
||||
<!--是否支持分割文件-->
|
||||
<param name="AppendToFile" value="true" />
|
||||
<param name="MaxFileSize" value="10240" />
|
||||
<!--当日志文件达到MaxFileSize大小,就自动创建备份文件。-->
|
||||
<param name="MaxSizeRollBackups" value="100" />
|
||||
<!-- 当将日期作为日志文件的名字时,必须将staticLogFileName的值设置为false -->
|
||||
<param name="StaticLogFileName" value="false" />
|
||||
<!-- 日志文件的命名规则 -->
|
||||
<param name="DatePattern" value="\\yyyy_MM\\yyyy_MM_dd'.log'" />
|
||||
<!--日志文件的记录形式-->
|
||||
<param name="RollingStyle" value="Date" />
|
||||
<!--日志文件的布局格式:%newline【%date】【级别:%-5level】【线程ID:%thread】%n【内容】:%message%newline %n%n-->
|
||||
<layout type="log4net.Layout.PatternLayout">
|
||||
<conversionPattern value="【%date】【线程ID:%thread】%message%newline %n%n" />
|
||||
</layout>
|
||||
</appender>
|
||||
|
||||
<!--Info日志-->
|
||||
<logger name="LogInfo">
|
||||
<level value="INFO" />
|
||||
<appender-ref ref="InfoAppender" />
|
||||
</logger>
|
||||
|
||||
</log4net>
|
||||
</configuration>
|
||||
BIN
SCADA/bin/WC_AssembleControl_Exe/log4net.dll
Normal file
BIN
SCADA/icon/002_列表.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
SCADA/icon/0780fca3def52d8a02649c7aa2f8093a.gif
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
SCADA/icon/BOSS-数据管理.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
SCADA/icon/BOSS-数据管理.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
SCADA/icon/HMI.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
SCADA/icon/JD.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
SCADA/icon/MBE风格多色图标-密码.png
Normal file
|
After Width: | Height: | Size: 6.4 KiB |