From 773369500892dcb5347e4a0059f8089960073030 Mon Sep 17 00:00:00 2001 From: xcd <834800634@qq.com> Date: 星期三, 15 七月 2020 22:08:34 +0800 Subject: [PATCH] 板卡回原点配置迁移到初始配置轴配置中 板卡回原点配置区分运动方向和捕捉方向,限制捕捉原点方向 --- src/Bro.Device.GTSCard/GTSCardDriver.cs | 41 +++++++++++++++++++++++++++++++++-------- 1 files changed, 33 insertions(+), 8 deletions(-) diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs index 2385a82..d87e661 100644 --- a/src/Bro.Device.GTSCard/GTSCardDriver.cs +++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs @@ -888,7 +888,11 @@ { try { - StartCapture: + var goHomePara = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == movingOption.AxisIndex).GoHomePara; + bool homeDirection = goHomePara.IsHomeDirPositive; + bool isRightLimitReached = false; + + StartCapture: PositionReset(movingOption.AxisIndex, 1); ClearStatus(movingOption.AxisIndex, 1); @@ -907,24 +911,24 @@ // 璁剧疆鐐逛綅妯″紡杩愬姩鍙傛暟 sRtn = GTSCardAPI.GT_SetTrapPrm((short)IConfig.CardNum, (short)movingOption.AxisIndex, ref trapPrm); // 璁剧疆鐐逛綅妯″紡鐩爣閫熷害锛屽嵆鍥炲師鐐归�熷害 - sRtn = GTSCardAPI.GT_SetVel((short)IConfig.CardNum, (short)movingOption.AxisIndex, movingOption.GoHomePara.HighVelocity); + sRtn = GTSCardAPI.GT_SetVel((short)IConfig.CardNum, (short)movingOption.AxisIndex, goHomePara.HighVelocity); // 璁剧疆鐐逛綅妯″紡鐩爣浣嶇疆锛屽嵆鍘熺偣鎼滅储璺濈 - sRtn = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, movingOption.GoHomePara.HomeDir == 1 ? 99999999 : -99999999); + sRtn = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, homeDirection ? 99999999 : -99999999); // 鍚姩杩愬姩 sRtn = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (movingOption.AxisIndex - 1)); - int repeatTime = 1000; + int repeatTime = goHomePara.GoHomeTimeOut * 1000; short capture; int pos; uint clk;//鏃堕挓鍙傛暟 do { - Thread.Sleep(20); + Thread.Sleep(IConfig.MonitorInterval); // 璇诲彇鎹曡幏鐘舵�� GTSCardAPI.GT_GetCaptureStatus((short)IConfig.CardNum, (short)movingOption.AxisIndex, out capture, out pos, 1, out clk); isStop = IsStop((short)movingOption.AxisIndex); - repeatTime--; + repeatTime -= IConfig.MonitorInterval; } while (!(isStop || capture == 1 || repeatTime <= 0)); if (repeatTime <= 0) @@ -941,7 +945,22 @@ if (((axisStatus.AxisStatus & 0x20) != 0) || ((axisStatus.AxisStatus & 0x40) != 0)) { - movingOption.GoHomePara.HomeDir = (short)(movingOption.GoHomePara.HomeDir == 1 ? -1 : 1); + //movingOption.GoHomePara.HomeDir = (short)(movingOption.GoHomePara.HomeDir == 1 ? -1 : 1); + + //姝i檺浣� + if ((axisStatus.AxisStatus & 0x20) != 0 && !goHomePara.IsCaptureDirPositive) + { + isRightLimitReached = true; + } + + + //璐熼檺浣� + if ((axisStatus.AxisStatus & 0x40) != 0 && goHomePara.IsCaptureDirPositive) + { + isRightLimitReached = true; + } + + homeDirection = !homeDirection; goto StartCapture; } @@ -950,12 +969,18 @@ if (capture == 1) { + if (!isRightLimitReached) + { + capture = 0; + goto StartCapture; + } + //鍏坰top MoveStop((short)movingOption.AxisIndex, 0); ClearStatus((short)movingOption.AxisIndex, 1); //宸茬粡鎹曡幏鍒癏ome鎵嶅彲浠ュ洖闆� 闃舵2 // 杩愬姩鍒�"鎹曡幏浣嶇疆+鍋忕Щ閲�" - sRtn = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, pos + movingOption.GoHomePara.HomeOffset); + sRtn = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, pos + goHomePara.HomeOffset); // 鍦ㄨ繍鍔ㄧ姸鎬佷笅鏇存柊鐩爣浣嶇疆 sRtn = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (movingOption.AxisIndex - 1)); isStop = false; -- Gitblit v1.8.0