diff --git a/Rs.DeweyTester/Commom/Enums.cs b/Rs.DeweyTester/Commom/Enums.cs
index 1294143..13a0ce4 100644
--- a/Rs.DeweyTester/Commom/Enums.cs
+++ b/Rs.DeweyTester/Commom/Enums.cs
@@ -6,6 +6,8 @@ using System.Threading.Tasks;
namespace Rs.MotionPlat.Commom
{
+
+
///
/// 异常安全处理位
///
diff --git a/Rs.DeweyTester/Commom/GlobalVar.cs b/Rs.DeweyTester/Commom/GlobalVar.cs
index 02b9236..c33bea7 100644
--- a/Rs.DeweyTester/Commom/GlobalVar.cs
+++ b/Rs.DeweyTester/Commom/GlobalVar.cs
@@ -17,6 +17,30 @@ namespace Rs.Framework
{
#region newpro
+ ///
+ /// 模拟测试良率
+ ///
+ [ParameterInit("int", "95", "system", "模拟测试良率")]
+ public static int SimulateTestYield
+ {
+ get
+ {
+ return SysConfigParam.GetValue(nameof(SimulateTestYield));
+ }
+ }
+
+ ///
+ /// 模拟测试时间
+ ///
+ [ParameterInit("int", "30", "system", "模拟测试时间")]
+ public static int SimulateTestTime
+ {
+ get
+ {
+ return SysConfigParam.GetValue(nameof(SimulateTestTime));
+ }
+ }
+
///
/// 检测视觉软件是否打开
///
diff --git a/Rs.DeweyTester/Commom/NozzleCollection.cs b/Rs.DeweyTester/Commom/NozzleCollection.cs
index 440c9cf..a03b423 100644
--- a/Rs.DeweyTester/Commom/NozzleCollection.cs
+++ b/Rs.DeweyTester/Commom/NozzleCollection.cs
@@ -84,12 +84,12 @@ namespace Rs.MotionPlat.Commom
{
if (op == EIoOperate.Open)
{
- Ops.On($"{NozzleIndex}号吸嘴真空吸电磁阀");
+ Ops.On($"吸料真空{NozzleIndex}吸");
Thread.Sleep(GlobalVar.LoadNozzleOpenVacSuctionDelaytime);
}
else
{
- Ops.Off($"{NozzleIndex}号吸嘴真空吸电磁阀");
+ Ops.Off($"吸料真空{NozzleIndex}吸");
Thread.Sleep(GlobalVar.LoadNozzleCloseVacSuctionDelaytime);
}
}
@@ -101,11 +101,11 @@ namespace Rs.MotionPlat.Commom
{
if (op == EIoOperate.Open)
{
- Ops.On($"{NozzleIndex}号吸嘴真空破电磁阀");
+ Ops.On($"吸料真空{NozzleIndex}破");
}
else
{
- Ops.Off($"{NozzleIndex}号吸嘴真空破电磁阀");
+ Ops.Off($"吸料真空{NozzleIndex}破");
}
}
@@ -115,7 +115,7 @@ namespace Rs.MotionPlat.Commom
///
public bool HasProduct()
{
- return Ops.IsOn($"{NozzleIndex}号吸嘴真空吸检测");
+ return Ops.IsOn($"吸料真空{NozzleIndex}检测");
}
}
@@ -494,7 +494,7 @@ namespace Rs.MotionPlat.Commom
///
///
///
- public static double GotoTrayTakeProductPos(ETrayType trayType, int nozzleIndex)
+ public static double GetNozzleToTrayTakeProductPos(ETrayType trayType, int nozzleIndex)
{
double targetPos = 0.0;
switch (trayType)
@@ -574,5 +574,25 @@ namespace Rs.MotionPlat.Commom
double offsetHeight = GetNozzleOffsetHeight(nozzleIndex);
return targetPos + offsetHeight;
}
+
+ ///
+ /// 吸嘴运动
+ ///
+ ///
+ ///
+ public static bool Go(Nozzle nozzle,double pos,int speed)
+ {
+ ErrorCode errCode = AxisControl.GetAxis($"NozzleZ{nozzle.NozzleIndex}").MovePos(pos, GlobalVar.WholeSpeed);
+ if (errCode == ErrorCode.Ok)
+ {
+ return true;
+ }
+ else
+ {
+ AlarmEntity alarmEntity = AlarmCollection.Get($"NozzleZ{nozzle.NozzleIndex}运动异常报警");
+ Msgbox.ShowDialog(alarmEntity, EButtonType.Retry);
+ return false;
+ }
+ }
}
}
diff --git a/Rs.DeweyTester/Entitys/SimulateTesterManager.cs b/Rs.DeweyTester/Entitys/SimulateTesterManager.cs
index 559eb2b..57c7f54 100644
--- a/Rs.DeweyTester/Entitys/SimulateTesterManager.cs
+++ b/Rs.DeweyTester/Entitys/SimulateTesterManager.cs
@@ -56,14 +56,14 @@ namespace Rs.MotionPlat.Entitys
void CheckTest()
{
if (!_btest) return;
- if(_start.ElapsedMilliseconds>45*1000)
+ if(_start.ElapsedMilliseconds>GlobalVar.SimulateTestTime*1000)
{
_start.Stop();
_btest = false;
testResult = $"1$";
Random rnd = new Random();
int randomNumber = rnd.Next(0, 100);
- int res = randomNumber < 20 ? 0 : 1;
+ int res = randomNumber < (100-GlobalVar.SimulateTestYield) ? 0 : 1;
testResult = $"Result#0#{res}#CsvInfo#FailItems#TestItems#BinInfo$";
}
}
diff --git a/Rs.DeweyTester/Entitys/TestFixtureManager.cs b/Rs.DeweyTester/Entitys/TestFixtureManager.cs
index d32665e..49c0a8d 100644
--- a/Rs.DeweyTester/Entitys/TestFixtureManager.cs
+++ b/Rs.DeweyTester/Entitys/TestFixtureManager.cs
@@ -319,13 +319,13 @@ namespace Rs.MotionPlat.Entitys
}
while (true)
{
- if (dataEvent.WaitOne(10))
+ if (dataEvent.WaitOne(100))
{
break;
}
else
{
- Thread.Sleep(10);
+ Thread.Sleep(100);
}
}
Send("Status$");
@@ -351,13 +351,13 @@ namespace Rs.MotionPlat.Entitys
{
while (true)
{
- if (dataEvent.WaitOne(10))
+ if (dataEvent.WaitOne(100))
{
break;
}
else
{
- Thread.Sleep(10);
+ Thread.Sleep(100);
}
}
Send($"Reset$");
@@ -374,13 +374,13 @@ namespace Rs.MotionPlat.Entitys
{
while (true)
{
- if (dataEvent.WaitOne(10))
+ if (dataEvent.WaitOne(100))
{
break;
}
else
{
- Thread.Sleep(10);
+ Thread.Sleep(100);
}
}
Send($"Pause#1$");
@@ -397,13 +397,13 @@ namespace Rs.MotionPlat.Entitys
{
while (true)
{
- if (dataEvent.WaitOne(10))
+ if (dataEvent.WaitOne(100))
{
break;
}
else
{
- Thread.Sleep(10);
+ Thread.Sleep(100);
}
}
int noise = GlobalVar.Noise ? 1 : 0;
@@ -424,7 +424,7 @@ namespace Rs.MotionPlat.Entitys
{
if(!Connected)
{
- Thread.Sleep(50);
+ Thread.Sleep(100);
continue;
}
byte[] bytes=new byte[1024 *10];
@@ -656,6 +656,10 @@ namespace Rs.MotionPlat.Entitys
File.AppendAllText(logFileName, $"{DateTime.Now.ToString("HH:mm:ss fff")} {log}\r\n");
}
}
+ else
+ {
+ Thread.Sleep(100);
+ }
}
});
}
@@ -684,6 +688,24 @@ namespace Rs.MotionPlat.Entitys
}
}
+ ///
+ /// 夹头夹紧
+ ///
+ public void ColletOn()
+ {
+ Ops.On($"治具夹{Index}");
+ Thread.Sleep(100);
+ }
+
+ ///
+ /// 夹头松开
+ ///
+ public void ColletOff()
+ {
+ Ops.Off($"治具夹{Index}");
+ Thread.Sleep(100);
+ }
+
}
public class TestFixtureManager
{
diff --git a/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs b/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs
index 5905ae0..939d2ae 100644
--- a/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs
+++ b/Rs.DeweyTester/Flow/NormalFlow/DischargeFlow.cs
@@ -43,12 +43,10 @@ namespace Rs.MotionPlat.Flow
到料仓拍照位上方,
等待到料仓拍照位上方,
料仓取料拍照,
- 料仓取料拍照结果处理,
到料仓取料位上方,
等待到料仓取料位上方,
到料仓取料位下方,
等待到料仓取料位下方,
- 料仓取料打开真空吸,
料仓取料完成抬起,
等待料仓取料完成抬起,
料仓取料真空吸检测,
@@ -275,18 +273,17 @@ namespace Rs.MotionPlat.Flow
List vResult = VisionHelper.OneGrabFour();
if(vResult!=null &&vResult.Count==4)
{
-
+ for (int i = 0; i < vResult.Count; i++)
+ {
+ OneGrabFourManager.Instance.DealGrabResult(slot.Index, i + 1, vResult[i]);
+ }
+ GlobalTray.GrabTray.ChangeStatus(slot.Index, ESlotStatus.NotHave);
+ flowStep = EDischargeFlowStep.到料仓取料位上方;
}
- for(int i=0;i buttons = new List