速度的拓展参数对应

This commit is contained in:
2025-04-14 10:33:49 +08:00
parent 4a07d45b25
commit 43e0ff62e7
10 changed files with 470 additions and 52 deletions

View File

@@ -53,5 +53,11 @@ namespace CapMachine.Wpf.ChannelModel
/// </summary>
public Limit? CurLoadLimit { get; set; }
/// <summary>
/// 拓展参数集合
/// 比如:速度参数拓展的输出锁定、吸排气阀,压缩机使能等这些拓展参数
/// 也可以是其他参数附带的拓展信息
/// </summary>
public List<StepExd>? ListStepExd { get; set; }
}
}

View File

@@ -61,5 +61,36 @@ namespace CapMachine.Wpf.Dtos
get { return _IsTimeOk; }
set { _IsTimeOk = value; RaisePropertyChanged(); }
}
private int _DefaultPIDNo;
/// <summary>
/// DefaultPIDNo
/// </summary>
public int DefaultPIDNo
{
get { return _DefaultPIDNo; }
set { _DefaultPIDNo = value; RaisePropertyChanged(); }
}
private int _DefaultLimitNo;
/// <summary>
/// DefaultLimitNo
/// </summary>
public int DefaultLimitNo
{
get { return _DefaultLimitNo; }
set { _DefaultLimitNo = value; RaisePropertyChanged(); }
}
private int _DefaultAlarmNo;
/// <summary>
/// DefaultAlarmNo
/// </summary>
public int DefaultAlarmNo
{
get { return _DefaultAlarmNo; }
set { _DefaultAlarmNo = value; RaisePropertyChanged(); }
}
}
}

View File

@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.Models
{
/// <summary>
/// PLC加载配置拓展单元-包括 压缩机使能、吸排气阀、输出锁定等
/// 下载PLC数据用整型的数据下载但是我们这边可能是浮点数需要格式的转换精度的转换
/// </summary>
public class PlcExdConfigCell
{
/// <summary>
/// 配置字段 名称
/// </summary>
public string? Name { get; set; }
/// <summary>
/// 地址
/// </summary>
public string? Address { get; set; }
/// <summary>
/// 精度 1,10,100,1000
/// </summary>
public int Precision { get; set; }
}
}

View File

@@ -41,7 +41,7 @@ namespace CapMachine.Wpf.Models.ProModelPars
/// <summary>
/// 是否是速度仪表参数
/// </summary>
public bool IsSpeed { get; set; }=false;
public bool IsSpeed { get; set; } = false;
/// <summary>
/// 程序执行管道
@@ -155,7 +155,7 @@ namespace CapMachine.Wpf.Models.ProModelPars
//RunEnable = false;
//时间到了触发下载下一步步骤
//不为空的数据
if (NextProStepExe == null)
@@ -210,6 +210,9 @@ namespace CapMachine.Wpf.Models.ProModelPars
CurLoadLimit = LimitResult == true ? new Limit() { Up = (short)NextProStepExe.CurConfigLimitDto.Up, Down = (short)NextProStepExe.CurConfigLimitDto.Down } : new Limit(),
CurLoadPID = PidResult == true ? new PID() { P = (short)NextProStepExe.CurConfigPIDDto.P, I = (short)NextProStepExe.CurConfigPIDDto.I, D = (short)NextProStepExe.CurConfigPIDDto.D } : new PID(),
RunStepType = GetRunStepType(PidResult, LimitResult, false),
ListStepExd = GetStepExds(NextProStepExe),//拓展参数
});
//存在坡度数据
@@ -247,6 +250,8 @@ namespace CapMachine.Wpf.Models.ProModelPars
CurLoadLimit = LimitResult == true ? new Limit() { Up = (short)NextProStepExe.CurConfigLimitDto.Up, Down = (short)NextProStepExe.CurConfigLimitDto.Down } : new Limit(),
CurLoadPID = PidResult == true ? new PID() { P = (short)NextProStepExe.CurConfigPIDDto.P, I = (short)NextProStepExe.CurConfigPIDDto.I, D = (short)NextProStepExe.CurConfigPIDDto.D } : new PID(),
RunStepType = GetRunStepType(PidResult, LimitResult, true),
ListStepExd = GetStepExds(NextProStepExe),//拓展参数
});
Console.WriteLine($"【时间】{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff")} 【参数名称】:{MeterName} " +
$"【程序Seg】{CurProStepExe.ProSegName} " +
@@ -309,6 +314,21 @@ namespace CapMachine.Wpf.Models.ProModelPars
}
}
/// <summary>
/// 获取拓展信息
/// 一般是速度有这些参数
/// </summary>
/// <returns></returns>
private List<StepExd> GetStepExds(ProStepExe proStepExe)
{
if (proStepExe.ListStepExd != null && proStepExe.ListStepExd.Count() > 0)
{
return proStepExe.ListStepExd;
}
return null;
}
/// <summary>
/// 当前步骤已经运行时长-秒
/// </summary>

View File

@@ -135,5 +135,12 @@ namespace CapMachine.Wpf.Models.ProModelPars
/// AlarmNo的配置信息
/// </summary>
public ConfigAlarmDto? CurConfigAlarmDto { get; set; }
/// <summary>
/// 拓展参数集合
/// 比如:速度参数拓展的输出锁定、吸排气阀,压缩机使能等这些拓展参数
/// 也可以是其他参数附带的拓展信息
/// </summary>
public List<StepExd>? ListStepExd { get; set; }
}
}

View File

@@ -0,0 +1,50 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CapMachine.Wpf.Models.ProModelPars
{
/// <summary>
/// ProStepExe 参数执行的拓展参数
/// 比如:速度参数拓展的输出锁定、吸排气阀,压缩机使能等这些拓展参数
/// </summary>
public class StepExd
{
/// <summary>
/// 参数名称
/// </summary>
public string? Name { get; set; }
/// <summary>
/// 值信息
/// </summary>
public object? Value { get; set; }
/// <summary>
/// 值类型
/// </summary>
public ExdValueType ValueType { get; set; }
}
/// <summary>
/// 值类型
/// </summary>
public enum ExdValueType
{
/// <summary>
/// 布尔
/// </summary>
Bool=1,
/// <summary>
/// 整型数据
/// </summary>
Short=2,
/// <summary>
/// 浮点数
/// </summary>
Double=3,
}
}

View File

@@ -104,6 +104,11 @@ namespace CapMachine.Wpf.Services
/// </summary>
public List<PlcLoadConfigCell> ListPlcLoadConfigCell { get; set; }
/// <summary>
/// PLC加载配置拓展数据集合
/// </summary>
public List<PlcExdConfigCell> ListPlcExdConfigCell { get; set; }
/// <summary>
/// 标签管理中心
/// </summary>
@@ -2225,6 +2230,14 @@ namespace CapMachine.Wpf.Services
new HandSwitchData(){Name="使能",ActionAddress="M2.7",StateAddress="V15.1" },
};
ListPlcExdConfigCell = new List<PlcExdConfigCell>()
{
new PlcExdConfigCell(){ Name="输出锁定",Address="VW482",Precision=1},
new PlcExdConfigCell(){ Name="吸排气阀",Address="VW490",Precision=1},
new PlcExdConfigCell(){ Name="EV",Address="VW492",Precision=1},
new PlcExdConfigCell(){ Name="压缩机使能",Address="VW484",Precision=1},
new PlcExdConfigCell(){ Name="PTC使能",Address="VW486",Precision=1},
};
//TagManger.ListTag[0].Name = "new TestType() { byteValue=12}";
@@ -2434,7 +2447,6 @@ namespace CapMachine.Wpf.Services
{
var IPInfo = ConfigHelper.GetValue("PLCIP");
SiemensDrive = new SiemensS7Net(SiemensPLCS.S200Smart, IPInfo);
// 连接对象
OperateResult connect = SiemensDrive.ConnectServer();
@@ -2543,7 +2555,7 @@ namespace CapMachine.Wpf.Services
await Task.Delay(20);
try
@@ -2674,7 +2686,7 @@ namespace CapMachine.Wpf.Services
//地址为空的话则下一个
if (string.IsNullOrEmpty(mVModel!.Address)) continue;
//给MvModel的原始属性赋值 MV是0-100 % 有标准的转换格式
mVModel!.EngValue = SiemensDrive.ByteTransform.TransInt16(OperateResultBlockMVRead.Content, mVModel.BlockIndex)*1.0/10;
mVModel!.EngValue = SiemensDrive.ByteTransform.TransInt16(OperateResultBlockMVRead.Content, mVModel.BlockIndex) * 1.0 / 10;
}
//MV 手自动切换 只有控制才有MVAM控制
@@ -2879,17 +2891,24 @@ namespace CapMachine.Wpf.Services
SendSpeedSvToCap(ProRunChannelData.SV);
//Pid
var Pid_PResult = SiemensDrive.Write(CurMeterInfo.Pid_PAddress, (short)ProRunChannelData.CurLoadPID!.P);
if (!Pid_PResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-P写入失败");
var Pid_IResult = SiemensDrive.Write(CurMeterInfo.Pid_IAddress, (short)ProRunChannelData.CurLoadPID!.I);
if (!Pid_IResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-I写入失败");
var Pid_DResult = SiemensDrive.Write(CurMeterInfo.Pid_DAddress, (short)ProRunChannelData.CurLoadPID!.D);
if (!Pid_DResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-D写入失败");
if (!string.IsNullOrEmpty(CurMeterInfo.Pid_PAddress))
{
var Pid_PResult = SiemensDrive.Write(CurMeterInfo.Pid_PAddress, (short)ProRunChannelData.CurLoadPID!.P);
if (!Pid_PResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-P写入失败");
var Pid_IResult = SiemensDrive.Write(CurMeterInfo.Pid_IAddress, (short)ProRunChannelData.CurLoadPID!.I);
if (!Pid_IResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-I写入失败");
var Pid_DResult = SiemensDrive.Write(CurMeterInfo.Pid_DAddress, (short)ProRunChannelData.CurLoadPID!.D);
if (!Pid_DResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-D写入失败");
}
//Limit
var Limit_UpResult = SiemensDrive.Write(CurMeterInfo.Limit_UpAddress, (short)ProRunChannelData.CurLoadLimit!.Up);
if (!Limit_UpResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Up写入失败");
var Limit_DownResult = SiemensDrive.Write(CurMeterInfo.Limit_DownAddress, (short)ProRunChannelData.CurLoadLimit!.Down);
if (!Limit_DownResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Down写入失败");
if (!string.IsNullOrEmpty(CurMeterInfo.Limit_UpAddress))
{
var Limit_UpResult = SiemensDrive.Write(CurMeterInfo.Limit_UpAddress, (short)ProRunChannelData.CurLoadLimit!.Up);
if (!Limit_UpResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Up写入失败");
var Limit_DownResult = SiemensDrive.Write(CurMeterInfo.Limit_DownAddress, (short)ProRunChannelData.CurLoadLimit!.Down);
if (!Limit_DownResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Down写入失败");
}
}
break;
case RunStepType.StepPID:
@@ -2900,13 +2919,17 @@ namespace CapMachine.Wpf.Services
if (!SvResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:SV写入失败");
//速度SV到压缩机
SendSpeedSvToCap(ProRunChannelData.SV);
//Pid
var Pid_PResult = SiemensDrive.Write(CurMeterInfo.Pid_PAddress, (short)ProRunChannelData.CurLoadPID!.P);
if (!Pid_PResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-P写入失败");
var Pid_IResult = SiemensDrive.Write(CurMeterInfo.Pid_IAddress, (short)ProRunChannelData.CurLoadPID!.I);
if (!Pid_IResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-I写入失败");
var Pid_DResult = SiemensDrive.Write(CurMeterInfo.Pid_DAddress, (short)ProRunChannelData.CurLoadPID!.D);
if (!Pid_DResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-D写入失败");
if (!string.IsNullOrEmpty(CurMeterInfo.Pid_PAddress))
{
var Pid_PResult = SiemensDrive.Write(CurMeterInfo.Pid_PAddress, (short)ProRunChannelData.CurLoadPID!.P);
if (!Pid_PResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-P写入失败");
var Pid_IResult = SiemensDrive.Write(CurMeterInfo.Pid_IAddress, (short)ProRunChannelData.CurLoadPID!.I);
if (!Pid_IResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-I写入失败");
var Pid_DResult = SiemensDrive.Write(CurMeterInfo.Pid_DAddress, (short)ProRunChannelData.CurLoadPID!.D);
if (!Pid_DResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-D写入失败");
}
}
break;
case RunStepType.StepLimit:
@@ -2919,10 +2942,14 @@ namespace CapMachine.Wpf.Services
SendSpeedSvToCap(ProRunChannelData.SV);
//Limit
var Limit_UpResult = SiemensDrive.Write(CurMeterInfo.Limit_UpAddress, (short)ProRunChannelData.CurLoadLimit!.Up);
if (!Limit_UpResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Up写入失败");
var Limit_DownResult = SiemensDrive.Write(CurMeterInfo.Limit_DownAddress, (short)ProRunChannelData.CurLoadLimit!.Down);
if (!Limit_DownResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Down写入失败");
if (!string.IsNullOrEmpty(CurMeterInfo.Limit_UpAddress))
{
var Limit_UpResult = SiemensDrive.Write(CurMeterInfo.Limit_UpAddress, (short)ProRunChannelData.CurLoadLimit!.Up);
if (!Limit_UpResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Up写入失败");
var Limit_DownResult = SiemensDrive.Write(CurMeterInfo.Limit_DownAddress, (short)ProRunChannelData.CurLoadLimit!.Down);
if (!Limit_DownResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Down写入失败");
}
}
break;
case RunStepType.StepSV:
@@ -2939,40 +2966,57 @@ namespace CapMachine.Wpf.Services
case RunStepType.LimitPid:
{
var CurMeterInfo = ListPlcLoadConfigCell.FirstOrDefault(a => a.Name!.Contains(ProRunChannelData.MeterName!));
//Pid
var Pid_PResult = SiemensDrive.Write(CurMeterInfo.Pid_PAddress, (short)ProRunChannelData.CurLoadPID!.P);
if (!Pid_PResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-P写入失败");
var Pid_IResult = SiemensDrive.Write(CurMeterInfo.Pid_IAddress, (short)ProRunChannelData.CurLoadPID!.I);
if (!Pid_IResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-I写入失败");
var Pid_DResult = SiemensDrive.Write(CurMeterInfo.Pid_DAddress, (short)ProRunChannelData.CurLoadPID!.D);
if (!Pid_DResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-D写入失败");
if (!string.IsNullOrEmpty(CurMeterInfo.Pid_PAddress))
{
var Pid_PResult = SiemensDrive.Write(CurMeterInfo.Pid_PAddress, (short)ProRunChannelData.CurLoadPID!.P);
if (!Pid_PResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-P写入失败");
var Pid_IResult = SiemensDrive.Write(CurMeterInfo.Pid_IAddress, (short)ProRunChannelData.CurLoadPID!.I);
if (!Pid_IResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-I写入失败");
var Pid_DResult = SiemensDrive.Write(CurMeterInfo.Pid_DAddress, (short)ProRunChannelData.CurLoadPID!.D);
if (!Pid_DResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-D写入失败");
}
//Limit
var Limit_UpResult = SiemensDrive.Write(CurMeterInfo.Limit_UpAddress, (short)ProRunChannelData.CurLoadLimit!.Up);
if (!Limit_UpResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Up写入失败");
var Limit_DownResult = SiemensDrive.Write(CurMeterInfo.Limit_DownAddress, (short)ProRunChannelData.CurLoadLimit!.Down);
if (!Limit_DownResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Down写入失败");
if (!string.IsNullOrEmpty(CurMeterInfo.Limit_UpAddress))
{
var Limit_UpResult = SiemensDrive.Write(CurMeterInfo.Limit_UpAddress, (short)ProRunChannelData.CurLoadLimit!.Up);
if (!Limit_UpResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Up写入失败");
var Limit_DownResult = SiemensDrive.Write(CurMeterInfo.Limit_DownAddress, (short)ProRunChannelData.CurLoadLimit!.Down);
if (!Limit_DownResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Down写入失败");
}
}
break;
case RunStepType.Pid:
{
var CurMeterInfo = ListPlcLoadConfigCell.FirstOrDefault(a => a.Name!.Contains(ProRunChannelData.MeterName!));
//Pid
var Pid_PResult = SiemensDrive.Write(CurMeterInfo.Pid_PAddress, (short)ProRunChannelData.CurLoadPID!.P);
if (!Pid_PResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-P写入失败");
var Pid_IResult = SiemensDrive.Write(CurMeterInfo.Pid_IAddress, (short)ProRunChannelData.CurLoadPID!.I);
if (!Pid_IResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-I写入失败");
var Pid_DResult = SiemensDrive.Write(CurMeterInfo.Pid_DAddress, (short)ProRunChannelData.CurLoadPID!.D);
if (!Pid_DResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-D写入失败");
if (!string.IsNullOrEmpty(CurMeterInfo.Pid_PAddress))
{
var Pid_PResult = SiemensDrive.Write(CurMeterInfo.Pid_PAddress, (short)ProRunChannelData.CurLoadPID!.P);
if (!Pid_PResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-P写入失败");
var Pid_IResult = SiemensDrive.Write(CurMeterInfo.Pid_IAddress, (short)ProRunChannelData.CurLoadPID!.I);
if (!Pid_IResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-I写入失败");
var Pid_DResult = SiemensDrive.Write(CurMeterInfo.Pid_DAddress, (short)ProRunChannelData.CurLoadPID!.D);
if (!Pid_DResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:PID-D写入失败");
}
}
break;
case RunStepType.Limit:
{
var CurMeterInfo = ListPlcLoadConfigCell.FirstOrDefault(a => a.Name!.Contains(ProRunChannelData.MeterName!));
//Limit
var Limit_UpResult = SiemensDrive.Write(CurMeterInfo.Limit_UpAddress, (short)ProRunChannelData.CurLoadLimit!.Up);
if (!Limit_UpResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Up写入失败");
var Limit_DownResult = SiemensDrive.Write(CurMeterInfo.Limit_DownAddress, (short)ProRunChannelData.CurLoadLimit!.Down);
if (!Limit_DownResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Down写入失败");
if (!string.IsNullOrEmpty(CurMeterInfo.Limit_UpAddress))
{
var Limit_UpResult = SiemensDrive.Write(CurMeterInfo.Limit_UpAddress, (short)ProRunChannelData.CurLoadLimit!.Up);
if (!Limit_UpResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Up写入失败");
var Limit_DownResult = SiemensDrive.Write(CurMeterInfo.Limit_DownAddress, (short)ProRunChannelData.CurLoadLimit!.Down);
if (!Limit_DownResult.IsSuccess) Console.WriteLine($"{ProRunChannelData.MeterName}:Limit_Down写入失败");
}
}
break;
case RunStepType.SlopCell:
@@ -2990,6 +3034,33 @@ namespace CapMachine.Wpf.Services
break;
}
//拓展参数
if (ProRunChannelData.ListStepExd != null && ProRunChannelData.ListStepExd.Count() > 0)
{
foreach (var itemStepExd in ProRunChannelData.ListStepExd)
{
var DataAdrees = ListPlcExdConfigCell.FirstOrDefault(a => a.Name == itemStepExd.Name);
if (DataAdrees != null)
{
switch (itemStepExd.ValueType)
{
case ExdValueType.Bool:
SiemensDrive.Write(DataAdrees.Address, (bool)itemStepExd.Value == true ? 1 : 0);
break;
case ExdValueType.Short:
SiemensDrive.Write(DataAdrees.Address, (short)itemStepExd.Value);
break;
case ExdValueType.Double:
break;
default:
break;
}
}
}
}
if (ProRunChannelData.RunStepType == RunStepType.SlopCell)
{
//SiemensDrive.Write("D1", (short)ProRunChannelData.SV);

View File

@@ -38,8 +38,8 @@ namespace CapMachine.Wpf.Services
/// <summary>
/// 实例化函数
/// </summary>
public ProRuntimeService(IFreeSql freeSql, IMapper mapper, IEventAggregator eventAggregator,
MachineRtDataService machineRtDataService,ConfigService configService, CanDriveService canDriveService, LinDriveService linDriveService,
public ProRuntimeService(IFreeSql freeSql, IMapper mapper, IEventAggregator eventAggregator,
MachineRtDataService machineRtDataService, ConfigService configService, CanDriveService canDriveService, LinDriveService linDriveService,
ILogService logService)
{
FreeSql = freeSql;
@@ -165,7 +165,7 @@ namespace CapMachine.Wpf.Services
ListPlcLoadConfigCell.Add(new PlcLoadConfigCell()
{
Name = itemKeyValue.Key,
SvAddress = MachineRtDataService.TagManger.TryGetSVModel(itemKeyValue.Value.Name,out MeterValueAttrCell? controlAttrCell)==true? controlAttrCell!.Address:"",
SvAddress = MachineRtDataService.TagManger.TryGetSVModel(itemKeyValue.Value.Name, out MeterValueAttrCell? controlAttrCell) == true ? controlAttrCell!.Address : "",
Limit_UpAddress = MachineRtDataService.TagManger.TryGetLimitUpModel(itemKeyValue.Value.Name, out MeterExdAttrCell? controlAttrCell2) == true ? controlAttrCell2!.Address : "",
Limit_DownAddress = MachineRtDataService.TagManger.TryGetLimitDownModel(itemKeyValue.Value.Name, out MeterExdAttrCell? controlAttrCell3) == true ? controlAttrCell3!.Address : "",
Pid_PAddress = MachineRtDataService.TagManger.TryGetPidPModel(itemKeyValue.Value.Name, out MeterExdAttrCell? controlAttrCell4) == true ? controlAttrCell4!.Address : "",
@@ -359,6 +359,14 @@ namespace CapMachine.Wpf.Services
CurConfigLimitDto = Mapper.Map<ConfigLimitDto>(Limit),
CurConfigAlarmDto = Mapper.Map<ConfigAlarmDto>(Alarm),
ListStepExd = new List<StepExd>()
{
new StepExd(){ Name="输出锁定",Value=itemMeterValueCell.OutLock,ValueType=ExdValueType.Bool},
new StepExd(){ Name="吸排气阀",Value=itemMeterValueCell.InhExhValve,ValueType=ExdValueType.Bool},
new StepExd(){ Name="EV",Value=(short)itemMeterValueCell.Ev,ValueType=ExdValueType.Short},
new StepExd(){ Name="压缩机使能",Value=itemMeterValueCell.CapEnable,ValueType=ExdValueType.Bool},
},
ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}",
});
@@ -416,6 +424,14 @@ namespace CapMachine.Wpf.Services
CurConfigLimitDto = Mapper.Map<ConfigLimitDto>(Limit),
CurConfigAlarmDto = Mapper.Map<ConfigAlarmDto>(Alarm),
ListStepExd = new List<StepExd>()
{
new StepExd(){ Name="输出锁定",Value=itemMeterValueCell.OutLock,ValueType=ExdValueType.Bool},
new StepExd(){ Name="吸排气阀",Value=itemMeterValueCell.InhExhValve,ValueType=ExdValueType.Bool},
new StepExd(){ Name="EV",Value=(short)itemMeterValueCell.Ev,ValueType=ExdValueType.Short},
new StepExd(){ Name="压缩机使能",Value=itemMeterValueCell.CapEnable,ValueType=ExdValueType.Bool},
},
ProStepInfo = $"{itemStep.StepNo}-{itemMeterValueCell.StepNo}",
MeterName = CurMeterName,
});
@@ -3220,7 +3236,7 @@ namespace CapMachine.Wpf.Services
{
Console.WriteLine($"【时间】{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff")} 【Msg】程序运行结束 《《《《-------------------");
//EndProRun();
EventAggregator.GetEvent<ProRunEvent>().Publish(new ProRunEventMsg() { Machine = "M1", Msg = "执行完毕" });
MachineRunState1.RunStateMsg = "执行完毕";

View File

@@ -2658,6 +2658,7 @@ namespace CapMachine.Wpf.ViewModels
return _SpeedConstSaveCmd;
}
}
/// <summary>
/// 常值保存命令 速度
/// </summary>
@@ -3250,6 +3251,74 @@ namespace CapMachine.Wpf.ViewModels
}
private DelegateCommand<string> _SpeedExdDefaultCmd;
/// <summary>
/// 速度的默认参数 PID LIMIT ALARM NO 配置弹窗
/// </summary>
public DelegateCommand<string> SpeedExdDefaultCmd
{
set
{
_SpeedExdDefaultCmd = value;
}
get
{
if (_SpeedExdDefaultCmd == null)
{
_SpeedExdDefaultCmd = new DelegateCommand<string>((str) => SpeedExdDefaultCmdMethod(str));
}
return _SpeedExdDefaultCmd;
}
}
/// <summary>
/// 速度的默认参数 PID LIMIT ALARM NO 配置弹窗
/// </summary>
/// <param name="str"></param>
/// <exception cref="NotImplementedException"></exception>
private void SpeedExdDefaultCmdMethod(string Par)
{
switch (Par)
{
case "PID":
//弹窗
DialogService.ShowDialog("DialogPIDConfigView", new DialogParameters() { { "Name", "转速" } }, (par) =>
{
if (par.Result == ButtonResult.OK)
{
//程序名称
var ReturnValue = par.Parameters.GetValue<string>("Name");
}
else if (par.Result == ButtonResult.Cancel)
{
//取消
}
});
break;
case "Limit":
//弹窗
DialogService.ShowDialog("DialogLimitConfigView", new DialogParameters() { { "Name", "转速" } }, (par) =>
{
if (par.Result == ButtonResult.OK)
{
//程序名称
var ReturnValue = par.Parameters.GetValue<string>("Name");
}
else if (par.Result == ButtonResult.Cancel)
{
//取消
}
});
break;
default:
break;
}
}
#endregion
/// <summary>

View File

@@ -935,7 +935,7 @@
Margin="3,0"
FontSize="20"
Foreground="White"
Text="速设置" />
Text="速设置" />
</StackPanel>
</Border>
@@ -965,7 +965,10 @@
<i:InvokeCommandAction Command="{Binding SpeedConstSlopSelectChangedCmd}" CommandParameter="{Binding ElementName=SpeedTabControl, Path=SelectedIndex}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<TabItem IsEnabled="{Binding IsChecked, Converter={StaticResource BoolNgConverter}}">
<!-- 常值 -->
<!-- IsEnabled="{Binding IsChecked, Converter={StaticResource BoolNgConverter}}" -->
<TabItem>
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock
@@ -1020,7 +1023,10 @@
</StackPanel>
</Grid>
</TabItem>
<TabItem IsEnabled="{Binding IsChecked}">
<!-- 斜率 -->
<!-- IsEnabled="{Binding IsChecked}" -->
<TabItem>
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock
@@ -1244,6 +1250,118 @@
</Grid>
</TabItem>
<!-- 其他 -->
<TabItem>
<TabItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock
Margin="5,0,0,0"
VerticalAlignment="Center"
FontFamily="/Assets/Fonts/#iconfont"
FontSize="20"
Foreground="White"
Text="&#xe9c1;" />
<TextBlock
Margin="2,0"
VerticalAlignment="Center"
FontSize="20"
Foreground="White"
Text="其他" />
</StackPanel>
</TabItem.Header>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
<TextBlock
Margin="5"
VerticalAlignment="Center"
FontSize="22"
Text="默认参数设置" />
</StackPanel>
<StackPanel
Grid.Row="1"
HorizontalAlignment="Center"
Orientation="Horizontal">
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
<TextBlock
Margin="5"
VerticalAlignment="Center"
FontSize="14"
Text="PIDNo:" />
<TextBox
Width="40"
VerticalAlignment="Center"
FontSize="16"
Text="{Binding MeterSpeedExDto.DefaultPIDNo}" />
</StackPanel>
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
<TextBlock
Margin="5"
VerticalAlignment="Center"
FontSize="14"
Text="限幅No:" />
<TextBox
Width="40"
VerticalAlignment="Center"
FontSize="16"
Text="{Binding MeterSpeedExDto.DefaultLimitNo}" />
</StackPanel>
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal">
<TextBlock
Margin="0,5"
VerticalAlignment="Center"
FontSize="14"
Text="报警限幅No:" />
<TextBox
Width="40"
VerticalAlignment="Center"
FontSize="16"
Text="{Binding MeterSpeedExDto.DefaultAlarmNo}" />
</StackPanel>
</StackPanel>
<StackPanel Grid.Row="2" VerticalAlignment="Center">
<TextBlock
Margin="5"
HorizontalAlignment="Center"
FontSize="14"
Foreground="Gray"
Text="默认数据将为常值配置使用"
TextWrapping="WrapWithOverflow" />
</StackPanel>
<StackPanel
Grid.Row="4"
HorizontalAlignment="Center"
Cursor=""
Orientation="Horizontal">
<Button
Margin="10,0"
Command="{Binding SpeedExdDefaultCmd}"
CommandParameter="PID"
Content="PID参数"
Foreground="White" />
<Button
Margin="10,0"
Command="{Binding SpeedExdDefaultCmd}"
CommandParameter="Limit"
Content="限幅参数"
Foreground="White" />
</StackPanel>
</Grid>
</TabItem>
</TabControl>