压缩机PTC 功能

参数控制,由跟随速度到单个大参数控制
This commit is contained in:
2025-08-14 17:28:15 +08:00
parent c4be5e0929
commit 06ac590208
16 changed files with 3545 additions and 862 deletions

View File

@@ -797,7 +797,7 @@ namespace CapMachine.Wpf.Services
EnName = "PTCPw",
Group = "程序",
MinValue = 0,
MaxValue = 150,
MaxValue = 5000,
IsMeter = true,
DecimalPoint = 1,
Precision = 1,
@@ -819,36 +819,100 @@ namespace CapMachine.Wpf.Services
RWInfo = RWInfo.Control,
});
//PTC功率2 控制但非仪表控制 -北厂未启用此功能,南厂有此功能
//TagManger.AddTag(new ShortControlTag()
//{
// Id = 201,
// Name = "PTC功率2[W]",
// NameNoUnit = "PTC功率2",
// EnName = "PTCPw2",
// Group = "程序",
// MinValue = 0,
// MaxValue = 10000,
// IsMeter = true,
// DecimalPoint = 1,
// Precision = 1,
// Unit = "W",
// DataType = TagDataType.Short,
// PVModel = new MeterValueAttrCell() { Address = "VW434", EngValue = 0, EngValueStr = "", Block = "PV", BlockIndex = 334},
// 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 },
// MVAutoHandModel = new MvAmAttrCell() { Address = "", EngValueStr = "", Block = "MVAM", BlockIndex = 1, Enable = false },
//PTC功率2 控制但非仪表控制
TagManger.AddTag(new ShortControlTag()
{
Id = 201,
Name = "PTC功率2[W]",
NameNoUnit = "PTC功率2",
EnName = "PTCPw2",
Group = "程序",
MinValue = 0,
MaxValue = 10000,
IsMeter = true,
DecimalPoint = 1,
Precision = 1,
Unit = "W",
DataType = TagDataType.Short,
PVModel = new MeterValueAttrCell() { Address = "VW14022", EngValue = 0, EngValueStr = "", Block = "PV", BlockIndex = 334 },
SVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "SV", BlockIndex = 34 },
MVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "MV", BlockIndex = 1, Enable = false },
MVAutoHandModel = new MvAmAttrCell() { Address = "", EngValueStr = "", Block = "MVAM", BlockIndex = 1, Enable = false },
// Pid_PModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
// Pid_IModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
// Pid_DModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
// Limit_UpModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
// Limit_DownModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
// AlarmModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
// AutoHandState = false,
Pid_PModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Pid_IModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Pid_DModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Limit_UpModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Limit_DownModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
AlarmModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
AutoHandState = false,
RWInfo = RWInfo.Control,
});
//PTC目标水温 控制但非仪表控制
TagManger.AddTag(new ShortControlTag()
{
Id = 202,
Name = "PTC目标水温[℃]",
NameNoUnit = "PTC目标水温",
EnName = "PTCWaterTemp",
Group = "程序",
MinValue = 0,
MaxValue = 150,
IsMeter = true,
DecimalPoint = 1,
Precision = 1,
Unit = "W",
DataType = TagDataType.Short,
PVModel = new MeterValueAttrCell() { Address = "VW14026", EngValue = 0, EngValueStr = "", Block = "PV", BlockIndex = 334 },
SVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "SV", BlockIndex = 34 },
MVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "MV", BlockIndex = 1, Enable = false },
MVAutoHandModel = new MvAmAttrCell() { Address = "", EngValueStr = "", Block = "MVAM", BlockIndex = 1, Enable = false },
Pid_PModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Pid_IModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Pid_DModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Limit_UpModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Limit_DownModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
AlarmModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
AutoHandState = false,
RWInfo = RWInfo.Control,
});
//PTC水流量 控制但非仪表控制
TagManger.AddTag(new ShortControlTag()
{
Id = 203,
Name = "PTC水流量[L/Min]",
NameNoUnit = "PTC水流量",
EnName = "PTCWaterFlow",
Group = "程序",
MinValue = 0,
MaxValue = 500,
IsMeter = true,
DecimalPoint = 2,
Precision = 1,
Unit = "W",
DataType = TagDataType.Short,
PVModel = new MeterValueAttrCell() { Address = "VW14024", EngValue = 0, EngValueStr = "", Block = "PV", BlockIndex = 334 },
SVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "SV", BlockIndex = 34 },
MVModel = new MeterValueAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Block = "MV", BlockIndex = 1, Enable = false },
MVAutoHandModel = new MvAmAttrCell() { Address = "", EngValueStr = "", Block = "MVAM", BlockIndex = 1, Enable = false },
Pid_PModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Pid_IModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Pid_DModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Limit_UpModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
Limit_DownModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
AlarmModel = new MeterExdAttrCell() { Address = "", EngValue = 0, EngValueStr = "", Enable = false },
AutoHandState = false,
RWInfo = RWInfo.Control,
});
// RWInfo = RWInfo.Control,
//});
//PTC流量 控制但非仪表控制
@@ -2939,6 +3003,31 @@ namespace CapMachine.Wpf.Services
{
while (ProRunChannel.Reader.TryRead(out var ProRunChannelData))
{
if (ProRunChannelData.ProExFlag != ProExFlag.None)
{
switch (ProRunChannelData.ProExFlag)
{
case ProExFlag.CapSpeed:
SendSpeedSvToCap(ProRunChannelData.SV);
break;
case ProExFlag.CapPTCPw:
SendPTCPwSvToCap(ProRunChannelData.SV);
break;
case ProExFlag.CapPTCPw2:
SendPTCPwSv2ToCap(ProRunChannelData.SV);
break;
case ProExFlag.CapPTCWaterTemp:
SendPTCWaterTempToCap(ProRunChannelData.SV);
break;
case ProExFlag.CapPTCWaterFlow:
SendPTCWaterFlowToCap(ProRunChannelData.SV);
break;
default:
break;
}
continue;
}
////第一次计时
//stopwatch.Start(); //启动Stopwatch
switch (ProRunChannelData.RunStepType)
@@ -3149,89 +3238,89 @@ namespace CapMachine.Wpf.Services
continue;
}
//压缩机PTC功率1的参数直接给压缩机触发
if (itemStepExd.Name!.Contains("PTC功率1"))
{
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
{
case CanLinEnum.Can:
CanDriveService.UpdateCapPTCPwCmdData((double)itemStepExd.Value!);
break;
case CanLinEnum.CANFD:
CanFdDriveService.UpdateCapPTCPwCmdData((double)itemStepExd.Value!);
break;
case CanLinEnum.Lin:
LinDriveService.UpdateCapEnableCmdData((bool)itemStepExd.Value!);
break;
default:
break;
}
continue;
}
////压缩机PTC功率1的参数直接给压缩机触发
//if (itemStepExd.Name!.Contains("PTC功率1"))
//{
// switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
// {
// case CanLinEnum.Can:
// CanDriveService.UpdateCapPTCPwCmdData((double)itemStepExd.Value!);
// break;
// case CanLinEnum.CANFD:
// CanFdDriveService.UpdateCapPTCPwCmdData((double)itemStepExd.Value!);
// break;
// case CanLinEnum.Lin:
// LinDriveService.UpdateCapEnableCmdData((bool)itemStepExd.Value!);
// break;
// default:
// break;
// }
// continue;
//}
//压缩机PTC功率2的参数直接给压缩机触发
if (itemStepExd.Name!.Contains("PTC功率2"))
{
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
{
case CanLinEnum.Can:
CanDriveService.UpdateCapPTCPwCmdData((double)itemStepExd.Value!);
break;
case CanLinEnum.CANFD:
CanFdDriveService.UpdateCapPTCPwCmdData((double)itemStepExd.Value!);
break;
case CanLinEnum.Lin:
//LinDriveService.UpdateCapEnableCmdData((bool)itemStepExd.Value!);
break;
default:
break;
}
continue;
}
////压缩机PTC功率2的参数直接给压缩机触发
//if (itemStepExd.Name!.Contains("PTC功率2"))
//{
// switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
// {
// case CanLinEnum.Can:
// CanDriveService.UpdateCapPTCPwCmdData((double)itemStepExd.Value!);
// break;
// case CanLinEnum.CANFD:
// CanFdDriveService.UpdateCapPTCPwCmdData((double)itemStepExd.Value!);
// break;
// case CanLinEnum.Lin:
// //LinDriveService.UpdateCapEnableCmdData((bool)itemStepExd.Value!);
// break;
// default:
// break;
// }
// continue;
//}
//压缩机PTC水流量的参数直接给压缩机触发
if (itemStepExd.Name!.Contains("PTC水流量"))
{
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
{
case CanLinEnum.Can:
CanDriveService.UpdateCapPTCFlowCmdData((double)itemStepExd.Value!);
break;
case CanLinEnum.CANFD:
CanFdDriveService.UpdateCapPTCFlowCmdData((double)itemStepExd.Value!);
break;
case CanLinEnum.Lin:
//LinDriveService.UpdateCapEnableCmdData((bool)itemStepExd.Value!);
break;
default:
break;
}
continue;
}
////压缩机PTC水流量的参数直接给压缩机触发
//if (itemStepExd.Name!.Contains("PTC水流量"))
//{
// switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
// {
// case CanLinEnum.Can:
// CanDriveService.UpdateCapPTCFlowCmdData((double)itemStepExd.Value!);
// break;
// case CanLinEnum.CANFD:
// CanFdDriveService.UpdateCapPTCFlowCmdData((double)itemStepExd.Value!);
// break;
// case CanLinEnum.Lin:
// //LinDriveService.UpdateCapEnableCmdData((bool)itemStepExd.Value!);
// break;
// default:
// break;
// }
// continue;
//}
//压缩机PTC水温的参数直接给压缩机触发
if (itemStepExd.Name!.Contains("PTC水温"))
{
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
{
case CanLinEnum.Can:
CanDriveService.UpdateCapPTCWaterTempCmdData((double)itemStepExd.Value!);
break;
case CanLinEnum.CANFD:
CanFdDriveService.UpdateCapPTCWaterTempCmdData((double)itemStepExd.Value!);
break;
case CanLinEnum.Lin:
//LinDriveService.UpdateCapEnableCmdData((bool)itemStepExd.Value!);
break;
default:
break;
}
continue;
////压缩机PTC水温的参数直接给压缩机触发
//if (itemStepExd.Name!.Contains("PTC水温"))
//{
// switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
// {
// case CanLinEnum.Can:
// CanDriveService.UpdateCapPTCWaterTempCmdData((double)itemStepExd.Value!);
// break;
// case CanLinEnum.CANFD:
// CanFdDriveService.UpdateCapPTCWaterTempCmdData((double)itemStepExd.Value!);
// break;
// case CanLinEnum.Lin:
// //LinDriveService.UpdateCapEnableCmdData((bool)itemStepExd.Value!);
// break;
// default:
// break;
// }
// continue;
//Console.WriteLine($"{ProRunChannelData.MeterName}拓展参数------------:{itemStepExd.Name}:{itemStepExd.Value}");
//continue;
}
// //Console.WriteLine($"{ProRunChannelData.MeterName}拓展参数------------:{itemStepExd.Name}:{itemStepExd.Value}");
// //continue;
//}
var DataAdrees = ListPlcExdConfigCell.FirstOrDefault(a => a.Name == itemStepExd.Name);
if (DataAdrees != null)
@@ -3292,6 +3381,7 @@ namespace CapMachine.Wpf.Services
}
}
/// <summary>
/// 发送速度SV到压缩机
/// 自动步骤数据发送
@@ -3329,6 +3419,98 @@ namespace CapMachine.Wpf.Services
}
}
/// <summary>
/// 发送PTCPw SV到压缩机
/// 自动步骤数据发送
/// </summary>
private void SendPTCPwSvToCap(double Valuve)
{
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
{
case CanLinEnum.Can:
CanDriveService.UpdateCapPTCPwCmdData(Valuve!);
break;
case CanLinEnum.CANFD:
CanFdDriveService.UpdateCapPTCPwCmdData(Valuve!);
break;
case CanLinEnum.Lin:
//LinDriveService.UpdateCapPTCPwCmdData((bool)ProRunChannelData.SV!);
break;
default:
break;
}
}
/// <summary>
/// 发送PTCPw2 SV到压缩机
/// 自动步骤数据发送
/// </summary>
private void SendPTCPwSv2ToCap(double Valuve)
{
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
{
case CanLinEnum.Can:
CanDriveService.UpdateCapPTCPwCmdData(Valuve!);
break;
case CanLinEnum.CANFD:
CanFdDriveService.UpdateCapPTCPwCmdData(Valuve!);
break;
case CanLinEnum.Lin:
//LinDriveService.UpdateCapPTCPwCmdData((bool)ProRunChannelData.SV!);
break;
default:
break;
}
}
/// <summary>
/// 发送PTCPw2 SV到压缩机
/// 自动步骤数据发送
/// </summary>
private void SendPTCWaterTempToCap(double Valuve)
{
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
{
case CanLinEnum.Can:
CanDriveService.UpdateCapPTCWaterTempCmdData(Valuve!);
break;
case CanLinEnum.CANFD:
CanFdDriveService.UpdateCapPTCWaterTempCmdData(Valuve!);
break;
case CanLinEnum.Lin:
//LinDriveService.UpdateCapPTCPwCmdData((bool)ProRunChannelData.SV!);
break;
default:
break;
}
}
/// <summary>
/// 发送PTCPw2 SV到压缩机
/// 自动步骤数据发送
/// </summary>
private void SendPTCWaterFlowToCap(double Valuve)
{
switch (ConfigService.CanLinRunStateModel.CurSysSelectedCanLin)
{
case CanLinEnum.Can:
CanDriveService.UpdateCapPTCFlowCmdData(Valuve!);
break;
case CanLinEnum.CANFD:
CanFdDriveService.UpdateCapPTCFlowCmdData(Valuve!);
break;
case CanLinEnum.Lin:
//LinDriveService.UpdateCapPTCPwCmdData((bool)ProRunChannelData.SV!);
break;
default:
break;
}
}
#endregion
}
}