[RT.Equipment]
IoPSU支持通过Recipe设置OutputLimitHigh,同时可根据配置切换设置模式到手动。
This commit is contained in:
parent
6db597171b
commit
9a43416869
|
@ -220,6 +220,27 @@ namespace Aitex.Core.RT.Device.Devices
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
OP.Subscribe($"{Module}.{Name}.SetOutputLimitHighByRecipe", (out string reason, int time, object[] args) =>
|
||||||
|
{
|
||||||
|
reason = string.Empty;
|
||||||
|
|
||||||
|
if (_aoOutputLimitHigh == null)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.Length == 1 && args[0] is double value)
|
||||||
|
{
|
||||||
|
var tunedByRecipe = SC.GetValue<bool>($"PM.{Module}.Heater.PSU2OutputLimitHighTuningByRecipe");
|
||||||
|
if(tunedByRecipe)
|
||||||
|
_aoOutputLimitHigh.FloatValue = Convert.ToSingle(value);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
EV.PostWarningLog(Module, $"SetOutputLimitHighByRecipe fail, args error");
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
OP.Subscribe($"{Module}.{Name}.SetOutputLimitHigh", (function, args) =>
|
OP.Subscribe($"{Module}.{Name}.SetOutputLimitHigh", (function, args) =>
|
||||||
{
|
{
|
||||||
if (args.Length == 1 && args[0] is double value)
|
if (args.Length == 1 && args[0] is double value)
|
||||||
|
@ -302,7 +323,7 @@ namespace Aitex.Core.RT.Device.Devices
|
||||||
|
|
||||||
public void SetOutputLimitHigh(double value)
|
public void SetOutputLimitHigh(double value)
|
||||||
{
|
{
|
||||||
SC.SetItemValue($"PM.{Module}.Heater.PSU2OutputLimitHigh", value);
|
SC.SetItemValue($"PM.{Module}.Heater.PSU2OutputLimitHigh", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetOutputLimitLow(double value)
|
public void SetOutputLimitLow(double value)
|
||||||
|
@ -434,18 +455,22 @@ namespace Aitex.Core.RT.Device.Devices
|
||||||
{
|
{
|
||||||
if (Name == "PSU2")
|
if (Name == "PSU2")
|
||||||
{
|
{
|
||||||
var limitHigh = (float)SC.GetValue<double>($"PM.{Module}.Heater.PSU2OutputLimitHigh");
|
var tunedByRecipe = SC.GetValue<bool>($"PM.{Module}.Heater.PSU2OutputLimitHighTuningByRecipe");
|
||||||
_outputLimitHighTuningTemp = (float)SC.GetValue<double>($"PM.{Module}.Heater.PSU2OutputLimitHighTuningTemp");
|
if (!tunedByRecipe)
|
||||||
if (AETemp >= _outputLimitHighTuningTemp)
|
|
||||||
{
|
{
|
||||||
if(Math.Abs(_aoOutputLimitHigh.FloatValue - limitHigh) > 1E-6)
|
var limitHigh = (float)SC.GetValue<double>($"PM.{Module}.Heater.PSU2OutputLimitHigh");
|
||||||
_aoOutputLimitHigh.FloatValue = limitHigh;
|
_outputLimitHighTuningTemp =
|
||||||
|
(float)SC.GetValue<double>($"PM.{Module}.Heater.PSU2OutputLimitHighTuningTemp");
|
||||||
|
if (AETemp >= _outputLimitHighTuningTemp)
|
||||||
|
{
|
||||||
|
if (Math.Abs(_aoOutputLimitHigh.FloatValue - limitHigh) > 1E-6)
|
||||||
|
_aoOutputLimitHigh.FloatValue = limitHigh;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_aoOutputLimitHigh.FloatValue = 100;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
_aoOutputLimitHigh.FloatValue = 100;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var limitLow = (float)SC.GetValue<double>($"PM.{Module}.Heater.PSU2OutputLimitLow");
|
var limitLow = (float)SC.GetValue<double>($"PM.{Module}.Heater.PSU2OutputLimitLow");
|
||||||
if (Math.Abs(_aoOutputLimitLow.FloatValue - limitLow) > 1E-6)
|
if (Math.Abs(_aoOutputLimitLow.FloatValue - limitLow) > 1E-6)
|
||||||
|
|
Loading…
Reference in New Issue