revert(TC): 恢复IoTC对象在Pyro模式时,Ramp到目标温度的逻辑。
This commit is contained in:
parent
ccffb542e0
commit
b04e9af5d8
|
@ -1,6 +1,5 @@
|
|||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Xml;
|
||||
using Aitex.Core.RT.DataCenter;
|
||||
using Aitex.Core.RT.Device.PmDevices;
|
||||
|
@ -768,93 +767,75 @@ namespace Aitex.Core.RT.Device.Devices
|
|||
/// </summary>
|
||||
/// <param name="loop"></param>
|
||||
/// <param name="targetTemp">目标温度</param>
|
||||
/// <param name="time"></param>
|
||||
/// <param name="time">SP爬升时间。如果为1,表示Recipe中定义为Jump模式。</param>
|
||||
/// <returns></returns>
|
||||
public bool SetTargetSP(string loop, float targetTemp, int time)
|
||||
{
|
||||
// float startPoint = 0;
|
||||
switch (loop)
|
||||
{
|
||||
case "L1":
|
||||
|
||||
//如果是Pyro模式直接设置SP即可
|
||||
if (HeaterModeSetPoint == HeatStrategy.PyroFollow ||
|
||||
HeaterModeSetPoint == HeatStrategy.PyroAuto)
|
||||
//如果是Power模式直接设置SP即可
|
||||
if (HeaterModeSetPoint == HeatStrategy.Power)
|
||||
{
|
||||
L1TargetSPSetPoint = targetTemp;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* else
|
||||
else
|
||||
{
|
||||
_rampTimerL1.Stop(); // 停止正在Ramp的过程
|
||||
_rampInitValueL1 = L1InputTempSetPoint; // 保存当前温度SP
|
||||
_rampTimeL1 = time; // 接下来Ramp的总耗时
|
||||
if (time == 0) // 如果没有指定Ramp耗时,则根据系统配置的温度爬升速率计算当前温差所需的爬升时间
|
||||
_rampTimeL1 = Math.Abs((int)((targetTemp - _rampInitValueL1) / _tempRampRatio.DoubleValue) * 1000);
|
||||
|
||||
_rampTimerL1.Stop();
|
||||
|
||||
_rampInitValueL1 = L1InputTempSetPoint;
|
||||
startPoint = L1InputTempSetPoint;
|
||||
|
||||
_rampTimeL1 = time;
|
||||
if (time == 0)
|
||||
{
|
||||
_rampTimeL1 = Math.Abs((int)((TargetSP - startPoint) / _tempRampRatio.DoubleValue) * 1000);
|
||||
}
|
||||
|
||||
_rampTargetL1 = TargetSP;
|
||||
_rampTimerL1.Start(_rampTimeL1);
|
||||
_rampTargetL1 = targetTemp; // 本次温度Ramp的目标值
|
||||
_rampTimerL1.Start(_rampTimeL1); // 启动Ramp计时器
|
||||
}
|
||||
*/
|
||||
break;
|
||||
|
||||
case "L2":
|
||||
|
||||
//如果是Pyro模式直接设置SP即可
|
||||
if (HeaterModeSetPoint == HeatStrategy.PyroFollow ||
|
||||
HeaterModeSetPoint == HeatStrategy.PyroAuto)
|
||||
//如果是Power模式直接设置SP即可
|
||||
if (HeaterModeSetPoint == HeatStrategy.Power)
|
||||
{
|
||||
L2TargetSPSetPoint = targetTemp;
|
||||
return true;
|
||||
}
|
||||
/*else
|
||||
else
|
||||
{
|
||||
_rampTimerL2.Stop();
|
||||
|
||||
_rampInitValueL2 = L2InputTempSetPoint;
|
||||
startPoint = L2InputTempSetPoint;
|
||||
|
||||
_rampTimeL2 = time;
|
||||
if (time == 0)
|
||||
{
|
||||
_rampTimeL2 = Math.Abs((int)((TargetSP - startPoint) / _tempRampRatio.DoubleValue) * 1000);
|
||||
}
|
||||
_rampTimeL2 = Math.Abs((int)((targetTemp - _rampInitValueL2) / _tempRampRatio.DoubleValue) * 1000);
|
||||
|
||||
_rampTargetL2 = TargetSP;
|
||||
_rampTargetL2 = targetTemp;
|
||||
_rampTimerL2.Start(_rampTimeL2);
|
||||
}*/
|
||||
}
|
||||
|
||||
break;
|
||||
case "L3":
|
||||
|
||||
//如果是Pyro模式直接设置SP即可
|
||||
if (HeaterModeSetPoint == HeatStrategy.PyroFollow ||
|
||||
HeaterModeSetPoint == HeatStrategy.PyroAuto)
|
||||
//如果是Power模式直接设置SP即可
|
||||
if (HeaterModeSetPoint == HeatStrategy.Power)
|
||||
{
|
||||
L3TargetSPSetPoint = targetTemp;
|
||||
return true;
|
||||
}
|
||||
/*else
|
||||
else
|
||||
{
|
||||
_rampTimerL3.Stop();
|
||||
_rampInitValueL3 = L3InputTempSetPoint;
|
||||
startPoint = L3InputTempSetPoint;
|
||||
|
||||
_rampTimeL3 = time;
|
||||
if (time == 0)
|
||||
{
|
||||
_rampTimeL3 = Math.Abs((int)((TargetSP - startPoint) / _tempRampRatio.DoubleValue) * 1000);
|
||||
}
|
||||
_rampTimeL3 = Math.Abs((int)((targetTemp - _rampInitValueL3) / _tempRampRatio.DoubleValue) * 1000);
|
||||
|
||||
_rampTargetL3 = TargetSP;
|
||||
_rampTargetL3 = targetTemp;
|
||||
_rampTimerL3.Start(_rampTimeL3);
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -862,8 +843,7 @@ namespace Aitex.Core.RT.Device.Devices
|
|||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
private void MonitorL1Ramping()
|
||||
private void MonitorL1Ramping()
|
||||
{
|
||||
if (!_rampTimerL1.IsIdle())
|
||||
{
|
||||
|
@ -895,22 +875,22 @@ namespace Aitex.Core.RT.Device.Devices
|
|||
}
|
||||
}
|
||||
|
||||
private void MonitorL3Ramping()
|
||||
{
|
||||
if (!_rampTimerL3.IsIdle())
|
||||
{
|
||||
if (_rampTimerL3.IsTimeout() || _rampTimeL3 == 0)
|
||||
{
|
||||
_rampTimerL3.Stop();
|
||||
L3TargetSPSetPoint = _rampTargetL3;
|
||||
}
|
||||
else
|
||||
{
|
||||
L3TargetSPSetPoint = _rampInitValueL3 + (_rampTargetL3 - _rampInitValueL3) * (float)_rampTimerL3.GetElapseTime() / _rampTimeL3;
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
private void MonitorL3Ramping()
|
||||
{
|
||||
if (!_rampTimerL3.IsIdle())
|
||||
{
|
||||
if (_rampTimerL3.IsTimeout() || _rampTimeL3 == 0)
|
||||
{
|
||||
_rampTimerL3.Stop();
|
||||
L3TargetSPSetPoint = _rampTargetL3;
|
||||
}
|
||||
else
|
||||
{
|
||||
L3TargetSPSetPoint = _rampInitValueL3 + (_rampTargetL3 - _rampInitValueL3) * (float)_rampTimerL3.GetElapseTime() / _rampTimeL3;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion Pyro自动模式
|
||||
|
||||
|
@ -986,9 +966,9 @@ namespace Aitex.Core.RT.Device.Devices
|
|||
{
|
||||
try
|
||||
{
|
||||
/* MonitorL1Ramping();
|
||||
MonitorL2Ramping();
|
||||
MonitorL3Ramping();*/
|
||||
MonitorL1Ramping();
|
||||
MonitorL2Ramping();
|
||||
MonitorL3Ramping();
|
||||
|
||||
MonitorSetOP();
|
||||
|
||||
|
@ -1754,7 +1734,7 @@ namespace Aitex.Core.RT.Device.Devices
|
|||
/// 将数字转换为<see cref="HeatStrategy"/>枚举。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 如果传入的mode不在<see cref="HeatStrategy"/>定义范围内,则默认返回HeaterControlMode.Power。
|
||||
/// 如果传入的mode不在<see cref="HeatStrategy"/>定义范围内,则默认返回HeatStrategy.Power。
|
||||
/// </remarks>
|
||||
/// <param name="ao"></param>
|
||||
/// <returns></returns>
|
||||
|
|
Loading…
Reference in New Issue