[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;
|
||||
});
|
||||
|
||||
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) =>
|
||||
{
|
||||
if (args.Length == 1 && args[0] is double value)
|
||||
|
@ -433,19 +454,23 @@ namespace Aitex.Core.RT.Device.Devices
|
|||
private void MonitorPsu2OutputLimit()
|
||||
{
|
||||
if (Name == "PSU2")
|
||||
{
|
||||
var tunedByRecipe = SC.GetValue<bool>($"PM.{Module}.Heater.PSU2OutputLimitHighTuningByRecipe");
|
||||
if (!tunedByRecipe)
|
||||
{
|
||||
var limitHigh = (float)SC.GetValue<double>($"PM.{Module}.Heater.PSU2OutputLimitHigh");
|
||||
_outputLimitHighTuningTemp = (float)SC.GetValue<double>($"PM.{Module}.Heater.PSU2OutputLimitHighTuningTemp");
|
||||
_outputLimitHighTuningTemp =
|
||||
(float)SC.GetValue<double>($"PM.{Module}.Heater.PSU2OutputLimitHighTuningTemp");
|
||||
if (AETemp >= _outputLimitHighTuningTemp)
|
||||
{
|
||||
if(Math.Abs(_aoOutputLimitHigh.FloatValue - limitHigh) > 1E-6)
|
||||
if (Math.Abs(_aoOutputLimitHigh.FloatValue - limitHigh) > 1E-6)
|
||||
_aoOutputLimitHigh.FloatValue = limitHigh;
|
||||
}
|
||||
else
|
||||
{
|
||||
_aoOutputLimitHigh.FloatValue = 100;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
var limitLow = (float)SC.GetValue<double>($"PM.{Module}.Heater.PSU2OutputLimitLow");
|
||||
if (Math.Abs(_aoOutputLimitLow.FloatValue - limitLow) > 1E-6)
|
||||
|
|
Loading…
Reference in New Issue