Эх сурвалжийг харах

修正相机采集策略、角度计算及PLC地址等问题

修正了相机采集策略,确保只采集最新帧;修正了角度计算公式,避免角度误差;将PLC产品结果读取地址改为支持多站点格式化;修复压力采样清理时的空引用异常。
徐孝锋 7 сар өмнө
parent
commit
edfa3d4ec3

+ 2 - 2
TeamAAS-VM/Core/Cameras/OptCamera.cs

@@ -436,9 +436,9 @@ namespace TeamAAS_VP.Core.Cameras
                         if (lastImageOnly)
                         {
                             //判断当前的模式是否为最新模式,如果不是则设置为最新模式
-                            if (CurrentGrabStrategy != SciCam.SciCamGrabStrategy.SciCam_GrabStrategy_OneByOne)
+                            if (CurrentGrabStrategy != SciCam.SciCamGrabStrategy.SciCam_GrabStrategy_Upcoming)
                             {
-                                CurrentGrabStrategy = SciCam.SciCamGrabStrategy.SciCam_GrabStrategy_OneByOne;
+                                CurrentGrabStrategy = SciCam.SciCamGrabStrategy.SciCam_GrabStrategy_Upcoming;
                                 nReVal = mvCameraAcq.SetGrabStrategy(CurrentGrabStrategy);
                             }
                         }

+ 3 - 3
TeamAAS-VM/Core/Management.cs

@@ -1846,7 +1846,7 @@ namespace TeamAAS_VP.Core
                             var point = currentProduct.ScrewPoints[0].Clone();
                             var pn = Vector<double>.Build.Dense(new double[] { upCameraX, upCameraY });
                             //目标角度:
-                            double angle = point.U_Position + (DowmCameraResults[1].Z - currentProduct.FixedUpCameraTempletAngle) + (upCameraU - currentProduct.MoveDownCamerTempletAngle);
+                            double angle = point.U_Position - (DowmCameraResults[1].Z - currentProduct.FixedUpCameraTempletAngle) - (upCameraU - currentProduct.MoveDownCamerTempletAngle);
 
                             var toolCoord = new ToolCoord();
                             toolCoord.SetTool(DowmCameraResults[1].X, DowmCameraResults[1].Y);
@@ -1951,7 +1951,7 @@ namespace TeamAAS_VP.Core
                                     }
 
                                     //读取产品结果
-                                    Int16 resultIndex = plc.ReadNode<Int16>(addressConfig.In_Result.Address);
+                                    Int16 resultIndex = plc.ReadNode<Int16>(string.Format(addressConfig.In_Result.Address, i));
 
                                     //目前只记录当前站
                                     if (i == 0)
@@ -2265,7 +2265,7 @@ namespace TeamAAS_VP.Core
                     _pressureLinkedCts[Index]?.Dispose();
                     _pressureTimeoutCts[Index]?.Dispose();
                     _pressureCts[Index]?.Dispose();
-                    _pressureSamples[Index].Clear();
+                    _pressureSamples[Index]?.Clear();
                 }
                 catch { }
             }