This commit is contained in:
2025-08-15 14:48:15 +08:00
parent 06ac590208
commit f4a4078660
4 changed files with 48 additions and 15 deletions

View File

@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<OutputType>WinExe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework> <TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>

View File

@@ -14,6 +14,7 @@ using HslCommunication.Profinet.Siemens;
using MathNet.Numerics; using MathNet.Numerics;
using Prism.Events; using Prism.Events;
using Prism.Mvvm; using Prism.Mvvm;
using SharpDX;
using System; using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
@@ -834,8 +835,8 @@ namespace CapMachine.Wpf.Services
Precision = 1, Precision = 1,
Unit = "W", Unit = "W",
DataType = TagDataType.Short, DataType = TagDataType.Short,
PVModel = new MeterValueAttrCell() { Address = "VW14022", EngValue = 0, EngValueStr = "", Block = "PV", BlockIndex = 334 }, PVModel = new MeterValueAttrCell() { Address = "VW434", EngValue = 0, EngValueStr = "", Block = "PV", BlockIndex = 334 },
SVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "SV", BlockIndex = 34 }, SVModel = new MeterValueAttrCell() { Address = "VW434", EngValue = 0, EngValueStr = "", Block = "SV", BlockIndex = 34 },
MVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "MV", BlockIndex = 1, Enable = false }, MVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "MV", BlockIndex = 1, Enable = false },
MVAutoHandModel = new MvAmAttrCell() { Address = "", EngValueStr = "", Block = "MVAM", BlockIndex = 1, Enable = false }, MVAutoHandModel = new MvAmAttrCell() { Address = "", EngValueStr = "", Block = "MVAM", BlockIndex = 1, Enable = false },
@@ -866,8 +867,8 @@ namespace CapMachine.Wpf.Services
Precision = 1, Precision = 1,
Unit = "W", Unit = "W",
DataType = TagDataType.Short, DataType = TagDataType.Short,
PVModel = new MeterValueAttrCell() { Address = "VW14026", EngValue = 0, EngValueStr = "", Block = "PV", BlockIndex = 334 }, PVModel = new MeterValueAttrCell() { Address = "VW148", EngValue = 0, EngValueStr = "", Block = "PV", BlockIndex = 48 },
SVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "SV", BlockIndex = 34 }, SVModel = new MeterValueAttrCell() { Address = "VW446", EngValue = 0, EngValueStr = "", Block = "SV", BlockIndex = 46 },
MVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "MV", BlockIndex = 1, Enable = false }, MVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "MV", BlockIndex = 1, Enable = false },
MVAutoHandModel = new MvAmAttrCell() { Address = "", EngValueStr = "", Block = "MVAM", BlockIndex = 1, Enable = false }, MVAutoHandModel = new MvAmAttrCell() { Address = "", EngValueStr = "", Block = "MVAM", BlockIndex = 1, Enable = false },
@@ -897,8 +898,8 @@ namespace CapMachine.Wpf.Services
Precision = 1, Precision = 1,
Unit = "W", Unit = "W",
DataType = TagDataType.Short, DataType = TagDataType.Short,
PVModel = new MeterValueAttrCell() { Address = "VW14024", EngValue = 0, EngValueStr = "", Block = "PV", BlockIndex = 334 }, PVModel = new MeterValueAttrCell() { Address = "VW150", EngValue = 0, EngValueStr = "", Block = "PV", BlockIndex = 50 },
SVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "SV", BlockIndex = 34 }, SVModel = new MeterValueAttrCell() { Address = "VW448", EngValue = 0, EngValueStr = "", Block = "SV", BlockIndex = 48 },
MVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "MV", BlockIndex = 1, Enable = false }, MVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "MV", BlockIndex = 1, Enable = false },
MVAutoHandModel = new MvAmAttrCell() { Address = "", EngValueStr = "", Block = "MVAM", BlockIndex = 1, Enable = false }, MVAutoHandModel = new MvAmAttrCell() { Address = "", EngValueStr = "", Block = "MVAM", BlockIndex = 1, Enable = false },
@@ -3003,29 +3004,52 @@ namespace CapMachine.Wpf.Services
{ {
while (ProRunChannel.Reader.TryRead(out var ProRunChannelData)) while (ProRunChannel.Reader.TryRead(out var ProRunChannelData))
{ {
//特殊的标记,特别的执行-这些步骤是直接发送给压缩机不需要经过PLC和仪表控制
if (ProRunChannelData.ProExFlag != ProExFlag.None) if (ProRunChannelData.ProExFlag != ProExFlag.None)
{ {
switch (ProRunChannelData.ProExFlag) switch (ProRunChannelData.ProExFlag)
{ {
case ProExFlag.CapSpeed: case ProExFlag.CapSpeed:
SendSpeedSvToCap(ProRunChannelData.SV); SendSpeedSvToCap(ProRunChannelData.SV);
Console.WriteLine($"{ProRunChannelData.MeterName} 转速的值------------:{ProRunChannelData.SV}");
break; break;
case ProExFlag.CapPTCPw: case ProExFlag.CapPTCPw:
SendPTCPwSvToCap(ProRunChannelData.SV); SendPTCPwSvToCap(ProRunChannelData.SV);
break; var CurMeterCapPTCPwInfo = ListPlcLoadConfigCell.FirstOrDefault(a => a.Name!.Contains(ProRunChannelData.MeterName!));
//Sv
var SvCapPTCPwResult = SiemensDrive.Write(CurMeterCapPTCPwInfo!.SvAddress, (short)ProRunChannelData.SV!);
if (!SvCapPTCPwResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:SV写入失败");
Console.WriteLine($"{ProRunChannelData.MeterName} PTC的值------------:{ProRunChannelData.SV}");
continue;//确认是压缩机PTC 控制变量的话,直接给压缩机后就不需要执行后面的步骤了
case ProExFlag.CapPTCPw2: case ProExFlag.CapPTCPw2:
SendPTCPwSv2ToCap(ProRunChannelData.SV); SendPTCPwSv2ToCap(ProRunChannelData.SV);
break; var CurMeterCapPTCPw2Info = ListPlcLoadConfigCell.FirstOrDefault(a => a.Name!.Contains(ProRunChannelData.MeterName!));
//Sv
var SvCapPTCPw2Result = SiemensDrive.Write(CurMeterCapPTCPw2Info!.SvAddress, (short)ProRunChannelData.SV!);
if (!SvCapPTCPw2Result.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:SV写入失败");
Console.WriteLine($"{ProRunChannelData.MeterName} PTC的值------------:{ProRunChannelData.SV}");
continue;//确认是压缩机PTC 控制变量的话,直接给压缩机后就不需要执行后面的步骤了
case ProExFlag.CapPTCWaterTemp: case ProExFlag.CapPTCWaterTemp:
SendPTCWaterTempToCap(ProRunChannelData.SV); SendPTCWaterTempToCap(ProRunChannelData.SV);
break; var CurMeterCapPTCWaterTempInfo = ListPlcLoadConfigCell.FirstOrDefault(a => a.Name!.Contains(ProRunChannelData.MeterName!));
//Sv
var SvCapPTCWaterTempResult = SiemensDrive.Write(CurMeterCapPTCWaterTempInfo!.SvAddress, (short)ProRunChannelData.SV!);
if (!SvCapPTCWaterTempResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:SV写入失败");
Console.WriteLine($"{ProRunChannelData.MeterName} PTC的值------------:{ProRunChannelData.SV}");
continue;//确认是压缩机PTC 控制变量的话,直接给压缩机后就不需要执行后面的步骤了
case ProExFlag.CapPTCWaterFlow: case ProExFlag.CapPTCWaterFlow:
SendPTCWaterFlowToCap(ProRunChannelData.SV); SendPTCWaterFlowToCap(ProRunChannelData.SV);
break; var CurMeterCapPTCWaterFlowInfo = ListPlcLoadConfigCell.FirstOrDefault(a => a.Name!.Contains(ProRunChannelData.MeterName!));
//Sv
var SvCapPTCWaterFlowResult = SiemensDrive.Write(CurMeterCapPTCWaterFlowInfo!.SvAddress, (short)ProRunChannelData.SV!);
if (!SvCapPTCWaterFlowResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:SV写入失败");
Console.WriteLine($"{ProRunChannelData.MeterName} PTC的值------------:{ProRunChannelData.SV}");
continue;//确认是压缩机PTC 控制变量的话,直接给压缩机后就不需要执行后面的步骤了
default: default:
break; break;
} }
continue;
//continue;
} }
////第一次计时 ////第一次计时
@@ -3221,16 +3245,18 @@ namespace CapMachine.Wpf.Services
//压缩机PTC使能的参数直接给压缩机触发 //压缩机PTC使能的参数直接给压缩机触发
if (itemStepExd.Name!.Contains("PTC使能")) if (itemStepExd.Name!.Contains("PTC使能"))
{ {
Console.WriteLine($"{ProRunChannelData.MeterName} PTC使能的值------------:{ProRunChannelData.SV}");
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin) switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
{ {
case CanLinEnum.Can: case CanLinEnum.Can:
CanDriveService.UpdateCapEnableCmdData((bool)itemStepExd.Value!); CanDriveService.UpdateCapPTCEnableCmdData((bool)itemStepExd.Value!);
break; break;
case CanLinEnum.CANFD: case CanLinEnum.CANFD:
CanFdDriveService.UpdateCapEnableCmdData((bool)itemStepExd.Value!); CanFdDriveService.UpdateCapPTCEnableCmdData((bool)itemStepExd.Value!);
break; break;
case CanLinEnum.Lin: case CanLinEnum.Lin:
LinDriveService.UpdateCapEnableCmdData((bool)itemStepExd.Value!); //LinDriveService.UpdateCapPTCEnableCmdData((bool)itemStepExd.Value!);
break; break;
default: default:
break; break;
@@ -3238,6 +3264,8 @@ namespace CapMachine.Wpf.Services
continue; continue;
} }
#region PTC 使
////压缩机PTC功率1的参数直接给压缩机触发 ////压缩机PTC功率1的参数直接给压缩机触发
//if (itemStepExd.Name!.Contains("PTC功率1")) //if (itemStepExd.Name!.Contains("PTC功率1"))
//{ //{
@@ -3322,6 +3350,9 @@ namespace CapMachine.Wpf.Services
// //continue; // //continue;
//} //}
#endregion
var DataAdrees = ListPlcExdConfigCell.FirstOrDefault(a => a.Name == itemStepExd.Name); var DataAdrees = ListPlcExdConfigCell.FirstOrDefault(a => a.Name == itemStepExd.Name);
if (DataAdrees != null) if (DataAdrees != null)
{ {

View File

@@ -69,6 +69,7 @@ namespace CapMachine.Wpf.ViewModels
new CbxItems(){ Key="PTC使能",Text="PTC使能"}, new CbxItems(){ Key="PTC使能",Text="PTC使能"},
new CbxItems(){ Key="PTC功率",Text="PTC功率"}, new CbxItems(){ Key="PTC功率",Text="PTC功率"},
new CbxItems(){ Key="PTC功率2",Text="PTC功率2"},
new CbxItems(){ Key="PTC水流量",Text="PTC水流量"}, new CbxItems(){ Key="PTC水流量",Text="PTC水流量"},
new CbxItems(){ Key="PTC水温",Text="PTC水温"}, new CbxItems(){ Key="PTC水温",Text="PTC水温"},
}; };

View File

@@ -107,6 +107,7 @@ namespace CapMachine.Wpf.ViewModels
new CbxItems(){ Key="PTC使能",Text="PTC使能"}, new CbxItems(){ Key="PTC使能",Text="PTC使能"},
new CbxItems(){ Key="PTC功率",Text="PTC功率"}, new CbxItems(){ Key="PTC功率",Text="PTC功率"},
new CbxItems(){ Key="PTC功率2",Text="PTC功率2"},
new CbxItems(){ Key="PTC水流量",Text="PTC水流量"}, new CbxItems(){ Key="PTC水流量",Text="PTC水流量"},
new CbxItems(){ Key="PTC水温",Text="PTC水温"}, new CbxItems(){ Key="PTC水温",Text="PTC水温"},
}; };