速度的拓展参数对应
This commit is contained in:
@@ -53,5 +53,11 @@ namespace CapMachine.Wpf.ChannelModel
|
||||
/// </summary>
|
||||
public Limit? CurLoadLimit { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 拓展参数集合
|
||||
/// 比如:速度参数拓展的输出锁定、吸排气阀,压缩机使能等这些拓展参数
|
||||
/// 也可以是其他参数附带的拓展信息
|
||||
/// </summary>
|
||||
public List<StepExd>? ListStepExd { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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(); }
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
30
CapMachine.Wpf/Models/PlcExdConfigCell.cs
Normal file
30
CapMachine.Wpf/Models/PlcExdConfigCell.cs
Normal 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; }
|
||||
}
|
||||
}
|
||||
@@ -41,7 +41,7 @@ namespace CapMachine.Wpf.Models.ProModelPars
|
||||
/// <summary>
|
||||
/// 是否是速度仪表参数
|
||||
/// </summary>
|
||||
public bool IsSpeed { get; set; }=false;
|
||||
public bool IsSpeed { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 程序执行管道
|
||||
@@ -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>
|
||||
|
||||
@@ -135,5 +135,12 @@ namespace CapMachine.Wpf.Models.ProModelPars
|
||||
/// AlarmNo的配置信息
|
||||
/// </summary>
|
||||
public ConfigAlarmDto? CurConfigAlarmDto { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 拓展参数集合
|
||||
/// 比如:速度参数拓展的输出锁定、吸排气阀,压缩机使能等这些拓展参数
|
||||
/// 也可以是其他参数附带的拓展信息
|
||||
/// </summary>
|
||||
public List<StepExd>? ListStepExd { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
50
CapMachine.Wpf/Models/ProModelPars/StepExd.cs
Normal file
50
CapMachine.Wpf/Models/ProModelPars/StepExd.cs
Normal 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,
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
@@ -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);
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace CapMachine.Wpf.Services
|
||||
/// 实例化函数
|
||||
/// </summary>
|
||||
public ProRuntimeService(IFreeSql freeSql, IMapper mapper, IEventAggregator eventAggregator,
|
||||
MachineRtDataService machineRtDataService,ConfigService configService, CanDriveService canDriveService, LinDriveService linDriveService,
|
||||
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,
|
||||
});
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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="" />
|
||||
<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>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user