From 5241a8f6377dfd1618610dd15fd05ed6f51c8ba2 Mon Sep 17 00:00:00 2001 From: patrick.xu <patrick.xu@broconcentric.com> Date: 星期三, 16 十二月 2020 11:19:45 +0800 Subject: [PATCH] 1. 添加默认流程和默认产品功能 2. 修改批量建立检测项功能 --- src/Bro.Device.GTSCard/GTSCardDriver.cs | 65 +++++++++++++++++++++++++------- 1 files changed, 50 insertions(+), 15 deletions(-) diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs index a721273..dbea577 100644 --- a/src/Bro.Device.GTSCard/GTSCardDriver.cs +++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs @@ -526,7 +526,7 @@ /// <returns></returns> public double GetPosition(int axisNum) { - lock (moveLock) + //lock (moveLock) { double position = 0; double pPos = 0; @@ -891,6 +891,8 @@ { try { + Thread.CurrentThread.Priority = ThreadPriority.AboveNormal; + var goHomePara = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == movingOption.AxisIndex).GoHomePara; bool homeDirection = goHomePara.IsHomeDirPositive; bool isRightLimitReached = false; @@ -907,34 +909,56 @@ // 璁剧疆鐐逛綅妯″紡杩愬姩鍙傛暟 sRtn = GTSCardAPI.GT_SetTrapPrm((short)IConfig.CardNum, (short)movingOption.AxisIndex, ref trapPrm); // 璁剧疆鐐逛綅妯″紡鐩爣閫熷害锛屽嵆鍥炲師鐐归�熷害 - sRtn = GTSCardAPI.GT_SetVel((short)IConfig.CardNum, (short)movingOption.AxisIndex, goHomePara.HighVelocity); + sRtn = GTSCardAPI.GT_SetVel((short)IConfig.CardNum, (short)movingOption.AxisIndex, goHomePara.HomeVelocity); do { PositionReset(movingOption.AxisIndex, 1); ClearStatus(movingOption.AxisIndex, 1); - //鎼滅储璺濈 闃舵1 - // 鍚姩Home鎹曡幏 - sRtn = GTSCardAPI.GT_SetCaptureMode((short)IConfig.CardNum, (short)movingOption.AxisIndex, GTSCardAPI.CAPTURE_HOME); + //LogAsync(DateTime.Now, $"{Name}浣嶇疆缃浂", ""); + + if (goHomePara.IsCaptureMode) + { + //鎼滅储璺濈 闃舵1 + // 鍚姩Home鎹曡幏 + sRtn = GTSCardAPI.GT_SetCaptureMode((short)IConfig.CardNum, (short)movingOption.AxisIndex, GTSCardAPI.CAPTURE_HOME); + } // 璁剧疆鐐逛綅妯″紡鐩爣浣嶇疆锛屽嵆鍘熺偣鎼滅储璺濈 - sRtn = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, homeDirection ? 99999999 : -99999999); + sRtn = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, homeDirection ? 999999999 : -999999999); // 鍚姩杩愬姩 sRtn = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (movingOption.AxisIndex - 1)); int repeatTime = goHomePara.GoHomeTimeOut * 1000; bool isStop = false; - int pos; + int pos = 0; uint clk;//鏃堕挓鍙傛暟 + + int checkInterval = IConfig.MonitorInterval; + if (IConfig.MonitorInterval <= 0) + { + checkInterval = 10; + } + do { - Thread.Sleep(IConfig.MonitorInterval * 5); - // 璇诲彇鎹曡幏鐘舵�� - GTSCardAPI.GT_GetCaptureStatus((short)IConfig.CardNum, (short)movingOption.AxisIndex, out capture, out pos, 1, out clk); + Thread.Sleep(checkInterval); + + if (goHomePara.IsCaptureMode) + { + // 璇诲彇鎹曡幏鐘舵�� + GTSCardAPI.GT_GetCaptureStatus((short)IConfig.CardNum, (short)movingOption.AxisIndex, out capture, out pos, 1, out clk); + } + else + { + GTSCardAPI.GT_GetDi((short)IConfig.CardNum, GTSCardAPI.MC_HOME, out int pValue); + capture = (short)((pValue & (1 << (movingOption.AxisIndex - 1))) == 0 ? 1 : 0); + //LogAsync(DateTime.Now, $"鍘熺偣鐘舵�亄pValue}锛岃酱{movingOption.AxisIndex}鍘熺偣{capture}", ""); + } isStop = IsStop((short)movingOption.AxisIndex); - repeatTime -= IConfig.MonitorInterval * 5; + repeatTime -= checkInterval; } while (!(isStop || capture == 1 || repeatTime <= 0)); if (repeatTime <= 0) @@ -945,11 +969,16 @@ var axisStatus = AxisStatusList.FirstOrDefault(u => u.AxisIndex == movingOption.AxisIndex); + //if (isStop) + //{ + // LogAsync(DateTime.Now, $"杞磠movingOption.AxisIndex}澶嶄綅涓仠姝�", $"Capture鐘舵�亄capture}"); + //} + if (isStop && capture != 1) { if (((axisStatus.AxisStatus & 0x20) != 0) || ((axisStatus.AxisStatus & 0x40) != 0)) { - //movingOption.GoHomePara.HomeDir = (short)(movingOption.GoHomePara.HomeDir == 1 ? -1 : 1); + capture = 0; //姝i檺浣� if ((axisStatus.AxisStatus & 0x20) != 0 && !goHomePara.IsCaptureDirPositive) @@ -964,6 +993,8 @@ } homeDirection = !homeDirection; + + LogAsync(DateTime.Now, $"杞磠movingOption.AxisIndex}鏋侀檺浣嶇疆鎹㈠悜", ""); } ClearStatus(movingOption.AxisIndex, 1); @@ -998,14 +1029,18 @@ repeatTime--; } while (!isStop && repeatTime > 0); PositionReset(movingOption.AxisIndex, 1); + LogAsync(DateTime.Now, $"杞磠movingOption.AxisIndex}澶嶄綅瀹屾垚锛屼綅缃竻闆�", ""); + return (sRtn == (short)GTSRetCode.GRCRunOK) && isStop; } } while (!(capture == 1 && isRightLimitReached)); + return false; } catch (Exception ex) { + LogAsync(DateTime.Now, $"{Name}鍥炲師鐐瑰紓甯�", ex.GetExceptionMessage()); AllMoveStop(true); OnExceptionOccured?.Invoke(DateTime.Now, ex); return false; @@ -1079,7 +1114,7 @@ /// <returns></returns> public override int GetAxisStatus(int axisNum) { - lock (moveLock) + //lock (moveLock) { int sts = 0; uint pclock = 0; @@ -1102,7 +1137,7 @@ /// <returns></returns> public override bool PositionReset(int startAxisIndex, int count) { - lock (moveLock) + //lock (moveLock) { var rtn = GTSCardAPI.GT_ZeroPos((short)IConfig.CardNum, (short)startAxisIndex, (short)count); return rtn == (short)GTSRetCode.GRCRunOK; @@ -1253,7 +1288,7 @@ var newValues = GetMonitorValues(); //var newAxisMovingStatus = GetAxisMovingStatus(); - if (newValues == null || newValues.Count == 0 ) + if (newValues == null || newValues.Count == 0) continue; //Stopwatch sw = new Stopwatch(); -- Gitblit v1.8.0