整理昂坤测温

This commit is contained in:
hanqiangqiang 2026-08-20 09:10:12 +08:00
parent 532cba6e37
commit 545b0a689b
2 changed files with 33 additions and 63 deletions

View File

@ -195,65 +195,35 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Temps
return calZone;
}
//public double[] GetWaferTemp()
//{
// double[] waferTemps = Enumerable.Repeat(_minTemp, _waferNum).ToArray();
// if (_waferTempDataList.Count < _waferNum)
// return waferTemps;
// int count = (_waferTempDataList.Count - 1) / _waferNum ;//分区数计算,最后一个数据是托盘的,所以减一,
// if ((_waferTempDataList.Count - 1) % _waferNum != 0)//分区数量不是整数,温度不解析防呆,
// return waferTemps;
// for (int i = 0; i < _waferNum; i++) //Wafer温度只取每个晶圆的第一个设置的中心温度
// {
// var index = i * count;
// waferTemps[i] = _waferTempDataList[index].Temp;//直接使用第一个中心温度作为中心温度
// //要求不判断中心点,只用第一个分区温度
// //for (int j = index; j < index + count ; j++)
// //{
// // if(_waferTempDataList[j].ZoneNum==0)
// // {
// // waferTemps[i] = _waferTempDataList[j].Temp;//有中心温度设置,获取第一个中心温度作为晶圆温度
// // break;
// // }
// //}
// }
// return waferTemps;
//}
public double[] GetWaferTemp()
{
double[] waferTemps = Enumerable.Repeat(_minTemp, _waferNum).ToArray();
if (_waferTempDataList.Count < _waferNum)
return waferTemps;
//这届
for (int i = 0; i < _waferNum; i++) //只有前面几个温度数据,才是需要统计的
//for (int i = 0; i < _waferNum; i++) //只有前面几个温度数据,才是需要统计的
//{
// waferTemps[i] = _waferTempDataList[i].Temp;
//}
for (int i = 0; i < _waferNum; i++)
{
waferTemps[i] = _waferTempDataList[i].Temp;
//根据编号,获取同一分区所有温度数据
var tempCaches = _waferTempDataList.Where(item => item.PocketNum == i + 1);
if (tempCaches != null && tempCaches.Count() > 0)
{
//同一分区所有温度数据查找第一个CalZone为true的温度数据
var matchedItem = tempCaches.Where(item => item.CalZone).FirstOrDefault();
if (matchedItem != null)
waferTemps[i] = matchedItem.Temp;
else
waferTemps[i] = tempCaches.First().Temp;//未设置CalZone为true使用当前分区第一个数据作为默认温度值
}
else
waferTemps[i] = -1;//没有分区温度是乱的无法解析,使用-1作为提示
}
//_waferTempDataList[i].CalZone
//for (int i = 0; i < _waferNum; i++)
//{
// //根据编号,获取同一分区所有温度数据
// var tempCaches = _waferTempDataList.Where(item => item.PocketNum == i + 1);
// if (tempCaches != null && tempCaches.Count() > 0)
// {
// //同一分区所有温度数据查找第一个CalZone为true的温度数据
// var matchedItem = tempCaches.Where(item => item.CalZone).FirstOrDefault();
// if (matchedItem != null)
// waferTemps[i] = matchedItem.Temp;
// else
// waferTemps[i] = tempCaches.First().Temp;//未设置CalZone为true使用当前分区第一个数据作为默认温度值
// }
// else
// waferTemps[i] = -1;//没有分区温度是乱的无法解析,使用-1作为提示
//}
return waferTemps;
}

View File

@ -62,7 +62,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Temps
/// <summary>
/// 反射率数组
/// </summary>
private List<double[]> _reflects;
//private List<double[]> _reflects;
//private AKunTriggerChannelWaferTempData[] _tempDataArray;
@ -113,18 +113,18 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Temps
//DATA.Subscribe($"TempSensor.{Name}.CalZone", () => _calZone);
#region
_reflects = Enumerable
.Range(0, _waferNum)
.Select(i => new double[3])
.ToList();
//_reflects = Enumerable
// .Range(0, _waferNum)
// .Select(i => new double[3])
// .ToList();
for (int i = 0; i < _waferNum; i++)
{
var index = i;
DATA.Subscribe($"TempSensor.{Name}.Wafer{index + 1}.Reflect1", () => _reflects[index][0]);
DATA.Subscribe($"TempSensor.{Name}.Wafer{index + 1}.Reflect2", () => _reflects[index][1]);
DATA.Subscribe($"TempSensor.{Name}.Wafer{index + 1}.Reflect3", () => _reflects[index][2]);
}
//for (int i = 0; i < _waferNum; i++)
//{
// var index = i;
// DATA.Subscribe($"TempSensor.{Name}.Wafer{index + 1}.Reflect1", () => _reflects[index][0]);
// DATA.Subscribe($"TempSensor.{Name}.Wafer{index + 1}.Reflect2", () => _reflects[index][1]);
// DATA.Subscribe($"TempSensor.{Name}.Wafer{index + 1}.Reflect3", () => _reflects[index][2]);
//}
#endregion
@ -289,7 +289,7 @@ namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Temps
//昂坤的温度数据上位机在这里被动接受
//_calZone = _aKunTempManager.GetCalZone();
_trayTemp = _aKunTempManager.GetTrayTemp();
_reflects = _aKunTempManager.GetReflectValue();
//_reflects = _aKunTempManager.GetReflectValue();
return _aKunTempManager.GetWaferTemp();
}