This commit is contained in:
TD 2025-03-27 17:51:07 +08:00
parent 8d32269ee0
commit 0865af247a
3 changed files with 48 additions and 37 deletions

View File

@ -140,8 +140,8 @@ namespace DH.Devices.Vision
// LogAsync(DateTime.Now, LogLevel.Information, $"{detectConfig.Name} 产品{detectResult.TempPid} RunInference BEGIN");
mlWatch.Start();
//20230802改成多线程推理 RunInferenceFixed
var result = mlSet.StationMLEngine.RunInference(req);
// MLResult result = new MLResult();
var result = mlSet.StationMLEngine.RunInference(req);
// var result = mlSet.StationMLEngine.RunInferenceFixed(req);
mlWatch.Stop();
// LogAsync(DateTime.Now, LogLevel.Information, $"{detectConfig.Name} 产品{detectResult.TempPid} RunInference END");

View File

@ -689,11 +689,7 @@ namespace DHSoftware
// ProductBaseCount = _MGSCameraList.Count;
for (int i = 0; i < ProductBaseCount * ProductListMulti; i++)
{
ConcurrentDictionary<uint, ProductData> products = new ConcurrentDictionary<uint, ProductData>();
_productLists.Add(products);
}
//流程执行时PLC
PLC.StartProcess();
@ -706,7 +702,7 @@ namespace DHSoftware
private uint PieceCount = 0;
private List<ConcurrentDictionary<uint, ProductData>> _productLists = new List<ConcurrentDictionary<uint, ProductData>>();
private int ProductListMulti = 2;
private int ProductListMulti = 1;
private int ProductBaseCount = 0;
private int PieceNumberToIndex(uint pn)
@ -798,8 +794,8 @@ namespace DHSoftware
}
else
{
// Thread.Sleep(20);
await Task.Delay(20);
Thread.Sleep(20);
//await Task.Delay(20);
}
retryTimes--;
}
@ -852,10 +848,7 @@ namespace DHSoftware
}));
//重新生成实例 销毁之前的实例
using (StreamWriter sw = new StreamWriter("D://123log.txt", true, Encoding.UTF8))
{
sw.WriteLine(productNumber + "提前推出" + camera.CameraName);
}
// LogAsync(DateTime.Now, LogLevel.Warning, $"{camera.Name} 找到产品{productNumber}但是没有推理1");
return;
@ -864,7 +857,8 @@ namespace DHSoftware
double totalTime = 0.0;
List<ResultState> resultStates = new List<ResultState>();
List<string>? detectionDict = _cameraRelatedDetectionDict[camera.CameraName];
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
for (int i = 0; i < detectionDict.Count; i++)
{
string detectionId = detectionDict[i];
@ -879,7 +873,8 @@ namespace DHSoftware
product.ResultCollection.Add(temp1);
}
}
stopwatch.Stop();
product.InferenceOne();
// LogAsync(DateTime.Now, LogLevel.Information, $"{camera.Name} 推理完成,产品{productNumber}");
@ -907,14 +902,14 @@ namespace DHSoftware
product.ProductResult = product.ResultCollection.Any(u => u.ResultState != ResultState.OK)
? ResultState.B_NG
: ResultState.OK;
if (product.ProductResult == ResultState.OK)
{
PLC.Blowing(productNumber, 1);
}
else
{
PLC.Blowing(productNumber, 2);
}
//if (product.ProductResult == ResultState.OK)
//{
// PLC.Blowing(productNumber, 1);
//}
//else
//{
// PLC.Blowing(productNumber, 2);
//}
product.ProductLabelCategory = product.ProductResult.GetEnumDescription();
product.ProductLabel = product.ProductResult.GetEnumDescription();

View File

@ -73,32 +73,48 @@ namespace DHSoftware
public ProductData( string batchNO, uint pieceNumber, int inferenceLeft = -1) : this(pieceNumber)
{
InferenceLeft = inferenceLeft;
_countdownEvent = new CountdownEvent(inferenceLeft);
//_countdownEvent = new CountdownEvent(inferenceLeft);
BatchNO = batchNO;
}
public void InferenceOne()
{
//lock (_inferenceLock)
//{
// Interlocked.Decrement(ref InferenceLeft);
//}
//public void InferenceOne()
//{
// //lock (_inferenceLock)
// //{
// // Interlocked.Decrement(ref InferenceLeft);
// //}
_countdownEvent.Signal();
// _countdownEvent.Signal();
//}
//public bool InferenceFinished()
//{
// //lock (_inferenceLock)
// //{
// // return 0 == InferenceLeft;
// //}
// return _countdownEvent.CurrentCount == 0; // 判断计数器是否为 0
//}
public void InferenceOne()
{
lock (_inferenceLock)
{
Interlocked.Decrement(ref InferenceLeft);
}
}
public bool InferenceFinished()
{
//lock (_inferenceLock)
//{
// return 0 == InferenceLeft;
//}
return _countdownEvent.CurrentCount == 0; // 判断计数器是否为 0
lock (_inferenceLock)
{
return 0 == InferenceLeft;
}
}