From 8477176a329c0530c4873f57f401a2a22b002760 Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期六, 11 七月 2020 15:33:24 +0800
Subject: [PATCH] 回原点
---
src/Bro.Device.GTSCard/GTSCardDriver.cs | 94 +++++++++++++++++++++++++++++++++++++++++++---
src/Bro.Common.Model/Model/MotionCardRelated.cs | 8 ++--
2 files changed, 91 insertions(+), 11 deletions(-)
diff --git a/src/Bro.Common.Model/Model/MotionCardRelated.cs b/src/Bro.Common.Model/Model/MotionCardRelated.cs
index 671c68e..7fd4136 100644
--- a/src/Bro.Common.Model/Model/MotionCardRelated.cs
+++ b/src/Bro.Common.Model/Model/MotionCardRelated.cs
@@ -162,8 +162,8 @@
public short HomeDir { get; set; } = 1;
[Category("鍥炲師鐐瑰弬鏁�")]
- [DisplayName("鍥炲師鐐规柟鍚�")]
- [Description("HomeDir锛�1 姝e悜锛�-1 璐熷悜")]
+ [DisplayName("杈圭紭")]
+ [Description("edge锛氳竟缂�")]
public short Edge { get; set; } = 0;
[Category("鍥炲師鐐瑰弬鏁�")]
@@ -178,8 +178,8 @@
public double HighVelocity { get; set; } = 50;
[Category("鍥炲師鐐瑰弬鏁�")]
- [DisplayName("鎼滄悳璺濈")]
- [Description("SearchHomeDistance锛氭悳鎼滆窛绂�")]
+ [DisplayName("鎼滅储璺濈")]
+ [Description("SearchHomeDistance锛氭悳绱㈣窛绂�")]
public int SearchHomeDistance { get; set; } = 9999999;
[Category("鍥炲師鐐瑰弬鏁�")]
diff --git a/src/Bro.Device.GTSCard/GTSCardDriver.cs b/src/Bro.Device.GTSCard/GTSCardDriver.cs
index cd6746f..85c4e5f 100644
--- a/src/Bro.Device.GTSCard/GTSCardDriver.cs
+++ b/src/Bro.Device.GTSCard/GTSCardDriver.cs
@@ -425,7 +425,8 @@
break;
case MotionMode.FindOri:
{
- isSuccessAndStop = GoHome(optionPara);
+ //isSuccessAndStop = GoHome(optionPara);
+ isSuccessAndStop = P2PGoHome(optionPara);
}
break;
case MotionMode.Jog:
@@ -463,7 +464,7 @@
throw new Exception("杞�" + axisNum + "鑾峰彇瑙勫垝浣嶇疆寮傚父锛岄敊璇爜锛�" + ret);
}
//var AxisRatio = IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum) == null ? 1 : IConfig.AxisSettings.FirstOrDefault(u => u.AxisIndex == axisNum).AxisRatio;
- position = prfpos ;
+ position = prfpos;
return position;
}
@@ -628,8 +629,8 @@
repeatTime = 1000;
do
{
- isStop = IsStop((short)optionPara.AxisIndex);
Thread.Sleep(50);
+ isStop = IsStop((short)optionPara.AxisIndex);
repeatTime--;
} while (!isStop && repeatTime > 0);
@@ -703,8 +704,8 @@
repeatTime = 1000;
while (!isStop && repeatTime > 0)
{
- isStop = IsStop((short)optionPara.AxisIndex);
Thread.Sleep(50);
+ isStop = IsStop((short)optionPara.AxisIndex);
repeatTime--;
}
@@ -746,8 +747,8 @@
int repeatTime = 100;
do
{
- isStop = IsStop((short)axisNum);
Thread.Sleep(10);
+ isStop = IsStop((short)axisNum);
repeatTime--;
} while (!isStop && repeatTime > 0);
@@ -786,7 +787,13 @@
PositionReset(movingOption.AxisIndex, 1);
GTSCardAPI.THomePrm thomeprm;
GTSCardAPI.THomeStatus homests;
- short rtn = GTSCardAPI.GT_GetHomePrm((short)IConfig.CardNum, (short)movingOption.AxisIndex, out thomeprm);
+ // 鍚姩Home鎹曡幏
+ short rtn = GTSCardAPI.GT_SetCaptureMode((short)IConfig.CardNum, (short)movingOption.AxisIndex, GTSCardAPI.CAPTURE_HOME);
+ // 鍒囨崲鍒扮偣浣嶈繍鍔ㄦā寮�
+ rtn = GTSCardAPI.GT_PrfTrap((short)IConfig.CardNum, (short)movingOption.AxisIndex);
+ // 璇诲彇鐐逛綅妯″紡杩愬姩鍙傛暟
+ rtn = GTSCardAPI.GT_GetHomePrm((short)IConfig.CardNum, (short)movingOption.AxisIndex, out thomeprm);
+
thomeprm.mode = movingOption.GoHomePara.HomeMode;//鍥為浂鏂瑰紡
thomeprm.moveDir = movingOption.GoHomePara.HomeDir;//鍥為浂鏂瑰悜
thomeprm.edge = movingOption.GoHomePara.Edge;
@@ -794,7 +801,7 @@
thomeprm.velLow = movingOption.GoHomePara.LowVelocity;
thomeprm.acc = movingOption.VelocityPara.Acc;
thomeprm.dec = movingOption.VelocityPara.Dec;
- thomeprm.searchHomeDistance = movingOption.GoHomePara.SearchHomeDistance;//鎼滄悳璺濈
+ thomeprm.searchHomeDistance = movingOption.GoHomePara.SearchHomeDistance;//鎼滅储璺濈
thomeprm.homeOffset = movingOption.GoHomePara.HomeOffset; //鍋忕Щ璺濈
thomeprm.escapeStep = movingOption.GoHomePara.EscapeStep;
rtn = GTSCardAPI.GT_GoHome((short)IConfig.CardNum, (short)movingOption.AxisIndex, ref thomeprm); //鍚姩鍥為浂
@@ -826,6 +833,79 @@
}
/// <summary>
+ /// P2P鏂瑰紡鍥炲師鐐�
+ /// </summary>
+ /// <param name="movingOption">杩愬姩鍙傛暟</param>
+ public bool P2PGoHome(MovingOption movingOption)
+ {
+ try
+ {
+ PositionReset(movingOption.AxisIndex, 1);
+ ClearStatus(movingOption.AxisIndex, 1);
+ GTSCardAPI.TTrapPrm trapPrm;
+ bool isStop = false;
+ //鎼滅储璺濈 闃舵1
+ // 鍚姩Home鎹曡幏
+ short sRtn = GTSCardAPI.GT_SetCaptureMode((short)IConfig.CardNum, (short)movingOption.AxisIndex, GTSCardAPI.CAPTURE_HOME);
+ // 鍒囨崲鍒扮偣浣嶈繍鍔ㄦā寮�
+ sRtn = GTSCardAPI.GT_PrfTrap((short)IConfig.CardNum, (short)movingOption.AxisIndex);
+ // 璇诲彇鐐逛綅妯″紡杩愬姩鍙傛暟
+ sRtn = GTSCardAPI.GT_GetTrapPrm((short)IConfig.CardNum, (short)movingOption.AxisIndex, out trapPrm);
+ trapPrm.acc = movingOption.VelocityPara.Acc;
+ trapPrm.dec = movingOption.VelocityPara.Dec;
+ // 璁剧疆鐐逛綅妯″紡杩愬姩鍙傛暟
+ 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_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, movingOption.GoHomePara.SearchHomeDistance);
+ // 鍚姩杩愬姩
+ sRtn = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (movingOption.AxisIndex - 1));
+
+ int repeatTime = 1000;
+ do
+ {
+ Thread.Sleep(20);
+ isStop = IsStop((short)movingOption.AxisIndex);
+ repeatTime--;
+ } while (!isStop && repeatTime > 0);
+
+ if (isStop)
+ {
+ short capture;
+ int pos;
+ uint clk;//鏃堕挓鍙傛暟
+ // 璇诲彇鎹曡幏鐘舵��
+ GTSCardAPI.GT_GetCaptureStatus((short)IConfig.CardNum, (short)movingOption.AxisIndex, out capture, out pos, 1, out clk);
+ //宸茬粡鎹曡幏鍒癏ome鎵嶅彲浠ュ洖闆� 闃舵2
+ if (capture == 1)
+ {
+ // 杩愬姩鍒�"鎹曡幏浣嶇疆+鍋忕Щ閲�"
+ sRtn = GTSCardAPI.GT_SetPos((short)IConfig.CardNum, (short)movingOption.AxisIndex, pos + movingOption.GoHomePara.HomeOffset);
+ // 鍦ㄨ繍鍔ㄧ姸鎬佷笅鏇存柊鐩爣浣嶇疆
+ sRtn = GTSCardAPI.GT_Update((short)IConfig.CardNum, 1 << (movingOption.AxisIndex - 1));
+ isStop = false;
+ }
+ repeatTime = 1000;
+ do
+ {
+ Thread.Sleep(20);
+ isStop = IsStop((short)movingOption.AxisIndex);
+ repeatTime--;
+ } while (!isStop && repeatTime > 0);
+ return (sRtn == (short)GTSRetCode.GRCRunOK) && isStop;
+ }
+ return false;
+ }
+ catch (Exception ex)
+ {
+ AllMoveStop(true);
+ OnExceptionOccured?.Invoke(DateTime.Now, ex);
+ return false;
+ }
+ }
+
+ /// <summary>
/// 璇诲彇IO杈撳叆
/// </summary>
/// <param name="cardNum">鍗″彿</param>
--
Gitblit v1.8.0