V1版本
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
using CapMachine.Model;
|
||||
using CapMachine.Model.MeterConfig;
|
||||
using CapMachine.Model.PLCParsModel;
|
||||
using HslCommunication.Profinet.Siemens;
|
||||
using Masuit.Tools;
|
||||
using SharpDX;
|
||||
using System.Windows.Controls;
|
||||
|
||||
@@ -8,9 +10,67 @@ namespace CapMachine.Wpf.ProPars
|
||||
{
|
||||
/// <summary>
|
||||
/// 程序解析方法
|
||||
/// 每个参数的配置是独立的
|
||||
/// </summary>
|
||||
public class ProParsHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// 静态的集合信息
|
||||
/// </summary>
|
||||
public static List<PlcParsData> ListPlcParsData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// //当前的程序开始标记
|
||||
/// 把地址信息给规范好
|
||||
/// </summary>
|
||||
public static void Start()
|
||||
{
|
||||
//取得的PLC步骤数据,提前预设好
|
||||
ListPlcParsData = new List<PlcParsData>()
|
||||
{
|
||||
new PlcParsData(){ Name="速度",EnName="Speed",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="",ValueStartAddress=1006,MinStartAddress=1000,SecStartAddress=1002,CycleStartAddress=1004 },
|
||||
new PlcParsData(){ Name="COND1温度 ",EnName="Cond1Temp",Step=100,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="",ValueStartAddress=1014,MinStartAddress=1068,SecStartAddress=1070,CycleStartAddress=1098 },
|
||||
new PlcParsData(){ Name="COND2温度",EnName="Cond2Temp",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle, Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1034,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="COND2压力",EnName="Cond2Press",Step=100,Steps=new List<PlcMeterStepCell>(),Ratio=100,Unit="" ,ValueStartAddress=1018,MinStartAddress=1076,SecStartAddress=1078,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="EVAP出口温度",EnName="EVAPExpTemp",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1036,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="排气压力",EnName="ExPress",Step=100,Steps=new List<PlcMeterStepCell>(),Ratio=100,Unit="" ,ValueStartAddress=1008,MinStartAddress=1056,SecStartAddress=1058,CycleStartAddress=1090 },
|
||||
|
||||
new PlcParsData(){ Name="HV电压",EnName="HVVol",Step=100,SetAddressInfo=AddressInfo.NoCycle,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1022,MinStartAddress=1080,SecStartAddress=1082,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="吸气压力",EnName="InhPress",Step=100,Steps=new List<PlcMeterStepCell>(),Ratio=100,Unit="" ,ValueStartAddress=1010,MinStartAddress=1060,SecStartAddress=1062,CycleStartAddress=1094 },
|
||||
|
||||
new PlcParsData(){ Name="吸气温度",EnName="InhTemp",Step=100,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1012,MinStartAddress=1064,SecStartAddress=1066,CycleStartAddress=1096 },
|
||||
|
||||
new PlcParsData(){ Name="润滑油压力",EnName="LubePress",Step=100,SetAddressInfo=AddressInfo.NoCycle,Steps=new List<PlcMeterStepCell>(),Ratio=100,Unit="" ,ValueStartAddress=1016,MinStartAddress=1072,SecStartAddress=1074,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="LV电压",EnName="LVVol",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1024,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="OCR",EnName="OCR",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1020,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="OS1温度",EnName="OS1Temp",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1030,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="OS2温度",EnName="OS2Temp",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1032,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="PTC入口温度",EnName="PTCEntTemp",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1054,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="PTC流量",EnName="PTCFlow",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1052,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="PTC功率",EnName="PTCPw",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1050,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="压缩机环境湿度",EnName="EnvRH",Step=100,SetAddressInfo=AddressInfo.NoCycle,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1028,MinStartAddress=1088,SecStartAddress=1090,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="压缩机环境温度",EnName="EnvTemp",Step=100,SetAddressInfo=AddressInfo.NoCycle,Steps=new List<PlcMeterStepCell>(),Ratio=10,Unit="" ,ValueStartAddress=1026,MinStartAddress=1084,SecStartAddress=1086,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="输出锁定",EnName="OutLock",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1038,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="参数编号",EnName="ParNo",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1040,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="EV",EnName="EV",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1042,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="压缩机使能",EnName="CapEnable",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1044,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="吸排气阀",EnName="InhExhValve",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1046,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="PTC使能",EnName="PTCEnable",Step=100,SetAddressInfo=AddressInfo.NoTimeAndCycle,Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1048,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
|
||||
//new PlcParsData(){ Name="时间分钟",EnName="TimeMin",Step=100,Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1000,MinStartAddress=XXX,SecStartAddress=XXX,CycleStartAddress=XXX },
|
||||
//new PlcParsData(){ Name="时间秒",EnName="TimeSec",Step=100,Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1002,MinStartAddress=XXX,SecStartAddress=XXX,CycleStartAddress=XXX },
|
||||
//new PlcParsData(){ Name="次数",EnName="Cycle",Step=100,Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1004,MinStartAddress=XXX,SecStartAddress=XXX,CycleStartAddress=XXX },
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取PLC步骤信息
|
||||
@@ -19,55 +79,12 @@ namespace CapMachine.Wpf.ProPars
|
||||
/// <returns></returns>
|
||||
public static List<PlcParsData> GetPlcParsData(List<ProStep> proSteps, int Cycle)
|
||||
{
|
||||
//取得的PLC步骤数据,提前预设好
|
||||
List<PlcParsData> ListPlcParsData = new List<PlcParsData>()
|
||||
//装载ListPlcParsData的结构数据
|
||||
for (int i = 0; i < Cycle; i++)//Proge 大循环
|
||||
{
|
||||
new PlcParsData(){ Name="速度",EnName="Speed",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="",ValueStartAddress=1006,MinStartAddress=1000,SecStartAddress=1002,CycleStartAddress=1004 },
|
||||
new PlcParsData(){ Name="COND1温度 ",EnName="Cond1Temp",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="",ValueStartAddress=1014,MinStartAddress=1068,SecStartAddress=1070,CycleStartAddress=1098 },
|
||||
new PlcParsData(){ Name="COND2温度",EnName="Cond2Temp",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1034,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="COND2压力",EnName="Cond2Press",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1018,MinStartAddress=1076,SecStartAddress=1078,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="EVAP出口温度",EnName="EVAPExpTemp",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1036,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="排气压力",EnName="ExPress",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1008,MinStartAddress=1058,SecStartAddress=1058,CycleStartAddress=1092 },
|
||||
|
||||
new PlcParsData(){ Name="HV电压",EnName="HVVol",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1022,MinStartAddress=1080,SecStartAddress=1082,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="吸气压力",EnName="InhPress",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1010,MinStartAddress=1060,SecStartAddress=1062,CycleStartAddress=1094 },
|
||||
|
||||
new PlcParsData(){ Name="吸气温度",EnName="InhTemp",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1012,MinStartAddress=1064,SecStartAddress=1066,CycleStartAddress=1096 },
|
||||
|
||||
new PlcParsData(){ Name="润滑油压力",EnName="LubePress",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1016,MinStartAddress=1072,SecStartAddress=1074,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="LV电压",EnName="LVVol",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1024,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="OCR",EnName="OCR",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1020,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="OS1温度",EnName="OS1Temp",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1030,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="OS2温度",EnName="OS2Temp",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1032,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="PTC入口温度",EnName="PTCEntTemp",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1054,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="PTC流量",EnName="PTCFlow",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1052,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="PTC功率",EnName="PTCPw",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1050,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="压缩机环境湿度",EnName="EnvRH",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1028,MinStartAddress=1088,SecStartAddress=1090,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="压缩机环境温度",EnName="EnvTemp",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=1026,MinStartAddress=1084,SecStartAddress=1086,CycleStartAddress=0 },
|
||||
|
||||
new PlcParsData(){ Name="输出锁定",EnName="OutLock",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=0,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="参数编号",EnName="ParNo",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=0,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="EV",EnName="Ev",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=0,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="压缩机使能",EnName="CapEnable",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=0,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="吸排气阀",EnName="InhExhValve",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=0,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
new PlcParsData(){ Name="加热器使能",EnName="HeatEnable",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" ,ValueStartAddress=0,MinStartAddress=0,SecStartAddress=0,CycleStartAddress=0 },
|
||||
|
||||
//new PlcParsData(){ Name="加热器功率",EnName="HeatPw",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" },
|
||||
//new PlcParsData(){ Name="加热器流量",EnName="HeatFlow",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" },
|
||||
//new PlcParsData(){ Name="加热器入口水温",EnName="HeatInWatTemp",Steps=new List<PlcMeterStepCell>(),Ratio=1,Unit="" },
|
||||
};
|
||||
|
||||
for (int i = 0; i < Cycle; i++)//大循环
|
||||
{
|
||||
foreach (ProStep proStep in proSteps)//小循环
|
||||
foreach (ProStep proStep in proSteps)//ProStep 小循环
|
||||
{
|
||||
//每个步骤里面包含多个参数的设置
|
||||
//每个ProStep步骤里面包含多个参数的设置
|
||||
ListPlcParsData = LoadPlcParsData(proStep, ListPlcParsData);//内部循环
|
||||
}
|
||||
}
|
||||
@@ -87,11 +104,12 @@ namespace CapMachine.Wpf.ProPars
|
||||
{
|
||||
foreach (var item in plcParsDatas)
|
||||
{
|
||||
|
||||
foreach (var itemStep in item.Steps)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(itemStep.ValueAddress))
|
||||
{
|
||||
var Result = siemensS7NetStance.Write(itemStep.ValueAddress, (short)itemStep.Value);
|
||||
var Result = siemensS7NetStance.Write(itemStep.ValueAddress, (short)(itemStep.Value * item.Ratio));
|
||||
if (!Result.IsSuccess)
|
||||
{
|
||||
var data1 = 1;
|
||||
@@ -124,7 +142,6 @@ namespace CapMachine.Wpf.ProPars
|
||||
}
|
||||
}
|
||||
|
||||
var data = 1;
|
||||
//siemensS7NetStance.Write();
|
||||
}
|
||||
|
||||
@@ -132,16 +149,18 @@ namespace CapMachine.Wpf.ProPars
|
||||
/// 单步骤程序解析
|
||||
/// 单步骤里面包括多个仪表参数的配置信息
|
||||
/// </summary>
|
||||
/// <param name="proStep"></param>
|
||||
/// <param name="plcParsDatas"></param>
|
||||
/// <param name="proStep">配置信息</param>
|
||||
/// <param name="plcParsDatas">输出的结构信息</param>
|
||||
/// <returns></returns>
|
||||
private static List<PlcParsData> LoadPlcParsData(ProStep proStep, List<PlcParsData> plcParsDatas)
|
||||
{
|
||||
if (proStep != null && proStep.MeterSpeeds != null)
|
||||
{
|
||||
//速度
|
||||
GetStepsByMeterSpeeds(proStep.MeterSpeeds, plcParsDatas.Find(a => a.EnName == "Speed")!, proStep.SpeedCycle);
|
||||
//跟速度绑定的数据
|
||||
GetStepsByMeterSpeeds(proStep.MeterSpeeds, plcParsDatas.Find(a => a.EnName == "Speed")!, proStep.SpeedCycle, plcParsDatas);
|
||||
|
||||
|
||||
|
||||
|
||||
GetStepsByMeterCond1Temps(proStep.MeterCond1Temps, plcParsDatas.Find(a => a.EnName == "Cond1Temp")!,
|
||||
GetCycleBySpeed(proStep.MeterSpeeds, proStep.SpeedCycle, proStep.MeterCond1Temps!.Select(p => new MeterCom { Constant = p.Constant, EndValue = p.EndValue, KeepTime = p.KeepTime, StartValue = p.StartValue, StepNo = p.StepNo, ValueType = p.ValueType }).ToList()));
|
||||
@@ -261,7 +280,7 @@ namespace CapMachine.Wpf.ProPars
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
private static PlcParsData GetStepsByMeterSpeeds(ICollection<MeterSpeed>? MeterDatas, PlcParsData PLCParsData, int Cycle)
|
||||
private static PlcParsData GetStepsByMeterSpeeds(ICollection<MeterSpeed>? MeterDatas, PlcParsData PLCParsData, int Cycle, List<PlcParsData> ListPlcParsData)
|
||||
{
|
||||
if (MeterDatas != null && MeterDatas.Count > 0)
|
||||
{
|
||||
@@ -285,9 +304,41 @@ namespace CapMachine.Wpf.ProPars
|
||||
//增加步骤信息
|
||||
PLCParsData.Steps.Add(plcMeterStepCell);
|
||||
|
||||
//跟速度绑定的数据 装载 输出锁定、参数编号、EV、压缩机使能、吸排气阀、PTC使能
|
||||
var FindOutLock = ListPlcParsData.Find(a => a.Name.Equals("输出锁定"));
|
||||
var OutLockData = plcMeterStepCell.DeepClone();
|
||||
OutLockData.Value = Convert.ToDouble(item.OutLock);
|
||||
FindOutLock.Steps.Add(OutLockData);
|
||||
|
||||
var FindParNo = ListPlcParsData.Find(a => a.Name.Equals("参数编号"));
|
||||
var ParNoData = plcMeterStepCell.DeepClone();
|
||||
ParNoData.Value = Convert.ToDouble(item.ParNo);
|
||||
FindParNo.Steps.Add(ParNoData);
|
||||
|
||||
var FindEV = ListPlcParsData.Find(a => a.Name.Equals("EV"));
|
||||
var EVData = plcMeterStepCell.DeepClone();
|
||||
EVData.Value = Convert.ToDouble(item.Ev);
|
||||
FindEV.Steps.Add(EVData);
|
||||
|
||||
var FindCapEnable = ListPlcParsData.Find(a => a.Name.Equals("压缩机使能"));
|
||||
var CapEnableData = plcMeterStepCell.DeepClone();
|
||||
CapEnableData.Value = Convert.ToDouble(item.CapEnable);
|
||||
FindCapEnable.Steps.Add(CapEnableData);
|
||||
|
||||
var FindInhExhValve = ListPlcParsData.Find(a => a.Name.Equals("吸排气阀"));
|
||||
var InhExhValveData = plcMeterStepCell.DeepClone();
|
||||
InhExhValveData.Value = Convert.ToDouble(item.InhExhValve);
|
||||
FindInhExhValve.Steps.Add(InhExhValveData);
|
||||
|
||||
var FindPTCEnable = ListPlcParsData.Find(a => a.Name.Equals("PTC使能"));
|
||||
var PTCEnableData = plcMeterStepCell.DeepClone();
|
||||
PTCEnableData.Value = Convert.ToDouble(item.PTCEnable);
|
||||
FindPTCEnable.Steps.Add(PTCEnableData);
|
||||
|
||||
Index++;
|
||||
}
|
||||
|
||||
|
||||
return PLCParsData;
|
||||
}
|
||||
else//常值
|
||||
@@ -306,6 +357,37 @@ namespace CapMachine.Wpf.ProPars
|
||||
//增加步骤信息
|
||||
PLCParsData.Steps.Add(plcMeterStepCell);
|
||||
|
||||
//跟速度绑定的数据 装载 输出锁定、参数编号、EV、压缩机使能、吸排气阀、PTC使能
|
||||
var FindOutLock = ListPlcParsData.Find(a => a.Name.Equals("输出锁定"));
|
||||
var OutLockData = plcMeterStepCell.DeepClone();
|
||||
OutLockData.Value = Convert.ToDouble(Data.OutLock);
|
||||
FindOutLock.Steps.Add(OutLockData);
|
||||
|
||||
var FindParNo = ListPlcParsData.Find(a => a.Name.Equals("参数编号"));
|
||||
var ParNoData = plcMeterStepCell.DeepClone();
|
||||
ParNoData.Value = Convert.ToDouble(Data.ParNo);
|
||||
FindParNo.Steps.Add(ParNoData);
|
||||
|
||||
var FindEV = ListPlcParsData.Find(a => a.Name.Equals("EV"));
|
||||
var EVData = plcMeterStepCell.DeepClone();
|
||||
EVData.Value = Convert.ToDouble(Data.Ev);
|
||||
FindEV.Steps.Add(EVData);
|
||||
|
||||
var FindCapEnable = ListPlcParsData.Find(a => a.Name.Equals("压缩机使能"));
|
||||
var CapEnableData = plcMeterStepCell.DeepClone();
|
||||
CapEnableData.Value = Convert.ToDouble(Data.CapEnable);
|
||||
FindCapEnable.Steps.Add(CapEnableData);
|
||||
|
||||
var FindInhExhValve = ListPlcParsData.Find(a => a.Name.Equals("吸排气阀"));
|
||||
var InhExhValveData = plcMeterStepCell.DeepClone();
|
||||
InhExhValveData.Value = Convert.ToDouble(Data.InhExhValve);
|
||||
FindInhExhValve.Steps.Add(InhExhValveData);
|
||||
|
||||
var FindPTCEnable = ListPlcParsData.Find(a => a.Name.Equals("PTC使能"));
|
||||
var PTCEnableData = plcMeterStepCell.DeepClone();
|
||||
PTCEnableData.Value = Convert.ToDouble(Data.PTCEnable);
|
||||
FindPTCEnable.Steps.Add(PTCEnableData);
|
||||
|
||||
return PLCParsData;
|
||||
}
|
||||
|
||||
@@ -316,7 +398,6 @@ namespace CapMachine.Wpf.ProPars
|
||||
{
|
||||
return PLCParsData;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1554,14 +1635,31 @@ namespace CapMachine.Wpf.ProPars
|
||||
//单步长度
|
||||
int StepLengh = 100;
|
||||
|
||||
//展开每个参数的具体配置
|
||||
foreach (var itemMeter in plcParsDatas)
|
||||
{
|
||||
//var Stepaddress = StartAddress + Index * StepLengh;
|
||||
|
||||
|
||||
|
||||
//switch (itemMeter.SetAddressInfo)
|
||||
//{
|
||||
// case AddressInfo.OK:
|
||||
|
||||
// break;
|
||||
// case AddressInfo.NoCycle:
|
||||
|
||||
// break;
|
||||
// case AddressInfo.NoTimeAndCycle:
|
||||
|
||||
// break;
|
||||
// default:
|
||||
// break;
|
||||
//}
|
||||
|
||||
//循环Index
|
||||
int Index = 0;
|
||||
|
||||
//循环内部的步骤信息
|
||||
//每个参数循环内部的步骤信息,每个参数都是独立的时间和循环次数,数据上面已经铺开了,但是地址没有
|
||||
foreach (var itemStep in itemMeter.Steps.OrderBy(a => a.Step))
|
||||
{
|
||||
if (itemMeter.ValueStartAddress != 0)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using CapMachine.Model;
|
||||
using CapMachine.Model.MeterConfig;
|
||||
using CapMachine.Model.PLCParsModel;
|
||||
using CapMachine.Wpf.Dtos;
|
||||
using HslCommunication.Profinet.Siemens;
|
||||
@@ -23,41 +22,41 @@ namespace CapMachine.Wpf.ProPars
|
||||
List<PlcParsDataQuick> ListPlcParsDataQuick = new List<PlcParsDataQuick>()
|
||||
{
|
||||
new PlcParsDataQuick(){ Name="速度",EnName="Speed",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="",ValueStartAddress=1006, },
|
||||
new PlcParsDataQuick(){ Name="COND1温度 ",EnName="Cond1Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="",ValueStartAddress=1014, },
|
||||
new PlcParsDataQuick(){ Name="COND2温度",EnName="Cond2Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1034, },
|
||||
new PlcParsDataQuick(){ Name="COND2压力",EnName="Cond2Press",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1018, },
|
||||
new PlcParsDataQuick(){ Name="EVAP出口温度",EnName="EVAPExpTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1036, },
|
||||
new PlcParsDataQuick(){ Name="排气压力",EnName="ExPress",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1008, },
|
||||
new PlcParsDataQuick(){ Name="COND1温度 ",EnName="Cond1Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="",ValueStartAddress=1014, },
|
||||
new PlcParsDataQuick(){ Name="COND2温度",EnName="Cond2Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1034, },
|
||||
new PlcParsDataQuick(){ Name="COND2压力",EnName="Cond2Press",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=100,Unit="" ,ValueStartAddress=1018, },
|
||||
new PlcParsDataQuick(){ Name="EVAP出口温度",EnName="EVAPExpTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1036, },
|
||||
new PlcParsDataQuick(){ Name="排气压力",EnName="ExPress",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=100,Unit="" ,ValueStartAddress=1008, },
|
||||
|
||||
new PlcParsDataQuick(){ Name="HV电压",EnName="HVVol",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1022, },
|
||||
new PlcParsDataQuick(){ Name="HV电压",EnName="HVVol",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1022, },
|
||||
|
||||
new PlcParsDataQuick(){ Name="吸气压力",EnName="InhPress",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1010,},
|
||||
new PlcParsDataQuick(){ Name="吸气压力",EnName="InhPress",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=100,Unit="" ,ValueStartAddress=1010,},
|
||||
|
||||
new PlcParsDataQuick(){ Name="吸气温度",EnName="InhTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1012, },
|
||||
new PlcParsDataQuick(){ Name="吸气温度",EnName="InhTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1012, },
|
||||
|
||||
new PlcParsDataQuick(){ Name="润滑油压力",EnName="LubePress",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1016, },
|
||||
new PlcParsDataQuick(){ Name="润滑油压力",EnName="LubePress",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=100,Unit="" ,ValueStartAddress=1016, },
|
||||
|
||||
new PlcParsDataQuick(){ Name="LV电压",EnName="LVVol",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1024, },
|
||||
new PlcParsDataQuick(){ Name="LV电压",EnName="LVVol",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1024, },
|
||||
|
||||
new PlcParsDataQuick(){ Name="OCR",EnName="OCR",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1020, },
|
||||
new PlcParsDataQuick(){ Name="OCR",EnName="OCR",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1020, },
|
||||
|
||||
new PlcParsDataQuick(){ Name="OS1温度",EnName="OS1Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1030, },
|
||||
new PlcParsDataQuick(){ Name="OS2温度",EnName="OS2Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1032, },
|
||||
new PlcParsDataQuick(){ Name="OS1温度",EnName="OS1Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1030, },
|
||||
new PlcParsDataQuick(){ Name="OS2温度",EnName="OS2Temp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1032, },
|
||||
|
||||
new PlcParsDataQuick(){ Name="PTC入口温度",EnName="PTCEntTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1054, },
|
||||
new PlcParsDataQuick(){ Name="PTC流量",EnName="PTCFlow",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1052, },
|
||||
new PlcParsDataQuick(){ Name="PTC入口温度",EnName="PTCEntTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1054, },
|
||||
new PlcParsDataQuick(){ Name="PTC流量",EnName="PTCFlow",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1052, },
|
||||
new PlcParsDataQuick(){ Name="PTC功率",EnName="PTCPw",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1050, },
|
||||
|
||||
new PlcParsDataQuick(){ Name="压缩机环境湿度",EnName="EnvRH",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1028, },
|
||||
new PlcParsDataQuick(){ Name="压缩机环境温度",EnName="EnvTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1026, },
|
||||
new PlcParsDataQuick(){ Name="压缩机环境温度",EnName="EnvTemp",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=10,Unit="" ,ValueStartAddress=1026, },
|
||||
|
||||
new PlcParsDataQuick(){ Name="输出锁定",EnName="OutLock",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1038, },
|
||||
new PlcParsDataQuick(){ Name="参数编号",EnName="ParNo",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1040, },
|
||||
new PlcParsDataQuick(){ Name="EV",EnName="EV",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1042, },
|
||||
new PlcParsDataQuick(){ Name="压缩机使能",EnName="CapEnable",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1044, },
|
||||
new PlcParsDataQuick(){ Name="吸排气阀",EnName="InhExhValve",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1046, },
|
||||
new PlcParsDataQuick(){ Name="加热器使能",EnName="HeatEnable",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1048, },
|
||||
|
||||
new PlcParsDataQuick(){ Name="PTC使能",EnName="PTCEnable",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1048, },
|
||||
|
||||
new PlcParsDataQuick(){ Name="时间分钟",EnName="TimeMin",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1000, },
|
||||
new PlcParsDataQuick(){ Name="时间秒",EnName="TimeSec",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1002, },
|
||||
new PlcParsDataQuick(){ Name="次数",EnName="Cycle",Step=100,Steps=new List<PlcMeterStepCellQuick>(),Ratio=1,Unit="" ,ValueStartAddress=1004, },
|
||||
@@ -96,11 +95,50 @@ namespace CapMachine.Wpf.ProPars
|
||||
{
|
||||
if (!string.IsNullOrEmpty(itemStep.Address))
|
||||
{
|
||||
var Result = siemensS7NetStance.Write(itemStep.Address, (short)itemStep.Value);
|
||||
if (!Result.IsSuccess)
|
||||
{
|
||||
var data1 = 1;
|
||||
}
|
||||
var Result = siemensS7NetStance.Write(itemStep.Address, (short)(itemStep.Value * item.Ratio));
|
||||
|
||||
//if (item.Name.Contains("压力"))
|
||||
//{
|
||||
// var Result = siemensS7NetStance.Write(itemStep.Address, (short)itemStep.Value * 100);
|
||||
// if (!Result.IsSuccess)
|
||||
// {
|
||||
|
||||
// }
|
||||
//}
|
||||
//else if (item.Name.Contains("温度"))
|
||||
//{
|
||||
// var Result = siemensS7NetStance.Write(itemStep.Address, (short)itemStep.Value * 10);
|
||||
// if (!Result.IsSuccess)
|
||||
// {
|
||||
|
||||
// }
|
||||
//}
|
||||
//else if (item.Name.Contains("电压"))
|
||||
//{
|
||||
// var Result = siemensS7NetStance.Write(itemStep.Address, (short)itemStep.Value * 10);
|
||||
// if (!Result.IsSuccess)
|
||||
// {
|
||||
|
||||
// }
|
||||
//}
|
||||
//else if (item.Name.Contains("湿度"))
|
||||
//{
|
||||
// var Result = siemensS7NetStance.Write(itemStep.Address, (short)itemStep.Value * 10);
|
||||
// if (!Result.IsSuccess)
|
||||
// {
|
||||
|
||||
// }
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// var Result = siemensS7NetStance.Write(itemStep.Address, (short)itemStep.Value);
|
||||
// if (!Result.IsSuccess)
|
||||
// {
|
||||
|
||||
// }
|
||||
|
||||
//}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -116,7 +154,7 @@ namespace CapMachine.Wpf.ProPars
|
||||
/// <param name="proStep"></param>
|
||||
/// <param name="plcParsDatas"></param>
|
||||
/// <returns></returns>
|
||||
private static List<PlcParsDataQuick> LoadPlcParsData(QuickMeterStepDto proStep, List<PlcParsDataQuick> plcParsDatas,int CurStep)
|
||||
private static List<PlcParsDataQuick> LoadPlcParsData(QuickMeterStepDto proStep, List<PlcParsDataQuick> plcParsDatas, int CurStep)
|
||||
{
|
||||
if (proStep != null)
|
||||
{
|
||||
@@ -196,8 +234,8 @@ namespace CapMachine.Wpf.ProPars
|
||||
case "InhExhValve":
|
||||
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.InhExhValve == true ? 1 : 0, Address = GetAddress(item.ValueStartAddress, CurStep, item.Step) });
|
||||
break;
|
||||
case "HeatEnable":
|
||||
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.HeatEnable == true ? 1 : 0 });
|
||||
case "PTCEnable":
|
||||
item.Steps.Add(new PlcMeterStepCellQuick() { Step = CurStep, Value = proStep.PTCEnable == true ? 1 : 0,Address= GetAddress(item.ValueStartAddress, CurStep, item.Step) });
|
||||
break;
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user