Commit 8fa1e7ee LN

原点返回时,如果原点信号持续亮5秒以上,伺服报警。

1 个父辈 05711223
......@@ -160,6 +160,26 @@ namespace OnlineStore.DeviceLibrary
if (wait.IsHomeMove)
{
wait.IsEnd = ACHomeMoveIsEnd(wait.AxisInfo, out msg);
if (!wait.IsEnd && (String.IsNullOrEmpty(msg)))
{
//如果原点没完成,且原点亮超过5秒,需要报警
int org = AxisManager.instance.GetHomeSingle(wait.AxisInfo.DeviceName, wait.AxisInfo.GetAxisValue());
if (org.Equals(1) && wait.AxisOrgValue.Equals(1))
{
TimeSpan orgSpan = DateTime.Now - wait.LastHasOrgTime;
if (orgSpan.TotalSeconds > 5)
{
msg = Name + " " + MoveInfo.MoveStep + " " + wait.AxisInfo.DisplayStr + "原点返回,原点信号已持续亮" + orgSpan.ToString() + "秒,需要报警";
LogUtil.error(msg);
}
}
else
{
wait.AxisOrgValue = org;
wait.LastHasOrgTime = DateTime.Now;
}
}
}
else
{
......
......@@ -209,13 +209,14 @@ namespace OnlineStore.DeviceLibrary
/// </summary>
protected virtual void InventoryProcess()
{
}
}
protected void ACAxisHomeMove(ConfigMoveAxis moveAxis)
{
moveAxis.TargetPosition = 0;
LogUtil.debug (moveAxis.DisplayStr + "speed[" + moveAxis.HomeHighSpeed + "]开始原点返回");
MoveInfo.WaitList.Add(WaitResultInfo.WaitAxis(moveAxis, true));
LogUtil.debug(moveAxis.DisplayStr + "speed[" + moveAxis.HomeHighSpeed + "]开始原点返回");
int org = ACServerManager.instance.GetHomeSingle(moveAxis.DeviceName, moveAxis.GetAxisValue());
MoveInfo.WaitList.Add(WaitResultInfo.WaitAxisHome(moveAxis, org));
AxisManager.instance.HomeMove(moveAxis.DeviceName, (short)moveAxis.GetAxisValue(), moveAxis.HomeHighSpeed, moveAxis.HomeLowSpeed, moveAxis.HomeAddSpeed);
}
......
......@@ -183,7 +183,7 @@ namespace OnlineStore.DeviceLibrary
wait.IsEnd = false;
return wait;
}
public static WaitResultInfo WaitAxis(ConfigMoveAxis axis, bool isHomeMove)
public static WaitResultInfo WaitAxisHome(ConfigMoveAxis axis, int AxisOrgValue)
{
WaitResultInfo wait = new WaitResultInfo();
wait.CanWhileMoveCount = 0;
......@@ -191,42 +191,10 @@ namespace OnlineStore.DeviceLibrary
wait.AxisInfo = axis;
wait.IsHomeMove = true;
wait.IsEnd = false;
wait.AxisOrgValue = AxisOrgValue;
wait.LastHasOrgTime = DateTime.Now;
return wait;
}
public static WaitResultInfo WaitStell(byte slvAddr, int targetPosition, int speed)
{
WaitResultInfo wait = new WaitResultInfo();
wait.CanWhileMoveCount =10;
wait.WaitType = 4;
wait.SlvAddr = slvAddr;
wait.IsHomeMove = false;
wait.TargetPosition = targetPosition;
wait.TargetSpeed = speed;
wait.IsEnd = false;
return wait;
}
public static WaitResultInfo WaitStellHome(byte slvAddr, int targetPosition, int speed)
{
WaitResultInfo wait = new WaitResultInfo();
wait.CanWhileMoveCount = 10;
wait.WaitType = 4;
wait.SlvAddr = slvAddr;
wait.IsHomeMove = true;
wait.TargetPosition = 0;
wait.TargetSpeed = speed;
wait.IsEnd = false;
return wait;
}
public static WaitResultInfo WaitShuoKe(int slvAddr, int targetPosition, bool isHome)
{
WaitResultInfo wait = new WaitResultInfo();
wait.CanWhileMoveCount = 0;
wait.WaitType = 5;
wait.SlvAddr =(byte) slvAddr;
wait.TargetPosition = targetPosition;
wait.IsHomeMove = isHome;
return wait;
}
}
public static WaitResultInfo WaitTime(int MScends)
{
WaitResultInfo wait = new WaitResultInfo();
......@@ -346,6 +314,11 @@ namespace OnlineStore.DeviceLibrary
/// 高度
/// </summary>
public int HeightValue { get; set; }
public int AxisOrgValue = 0;
public DateTime LastHasOrgTime = DateTime.Now;
}
public enum StoreMoveType
{
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!