You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
287 lines
6.8 KiB
C#
287 lines
6.8 KiB
C#
using Newtonsoft.Json;
|
|
using Rs.Framework;
|
|
using Rs.Motion.Base.Config;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using static GTN.mc_ecat;
|
|
|
|
namespace Rs.Motion.Base
|
|
{
|
|
[Serializable]
|
|
public class IAxis
|
|
{
|
|
/// <summary>
|
|
/// 目标位置
|
|
/// </summary>
|
|
public double TargetPosition { get; set; }
|
|
public ICard Card { get; set; }
|
|
public bool IsInitialized { get; set; } = false;
|
|
public AxisConfig Config { get; set; }
|
|
public EHomeStatus HomeStatus { get; set; }
|
|
public event Func<bool> FunSafeCheck;
|
|
|
|
public bool SafeCheck()
|
|
{
|
|
if(FunSafeCheck != null)
|
|
return FunSafeCheck();
|
|
return true;
|
|
}
|
|
public virtual ErrorCode Init()
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public string GetConfigString()
|
|
{
|
|
if(Config != null)
|
|
{
|
|
return JsonConvert.SerializeObject(Config);
|
|
}
|
|
return string.Empty;
|
|
}
|
|
|
|
public virtual ErrorCode Deinit()
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode MmToPulse(double mm, out double pulse)
|
|
{
|
|
pulse = 0.0;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode PulseToMm(double pulse, out double mm)
|
|
{
|
|
mm = 0.0;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode Enable()
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode Disable()
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode Stop()
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode Default_Home_Move()
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode MovePos(double dfPosVal, int percent = 100,double accTime=0,double decTime=0)
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode MoveOffset(double dfDistVal, int percent = 100,double accTime=0,double decTime=0)
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode MoveJog(short dir, int percent = 10)
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode UpdateTargetPosition(double dfNewPosVal)
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode ChangeSpeed(double dfNewSpeed)
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode IsEnable(out bool bIsEable)
|
|
{
|
|
bIsEable = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode IsHomed(out bool bIsHomed)
|
|
{
|
|
bIsHomed = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode IsStop(out bool bIsStop)
|
|
{
|
|
bIsStop = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode IsArrived(out bool bIsArrived)
|
|
{
|
|
bIsArrived = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode IsInPosition(out bool bIsInPosition)
|
|
{
|
|
bIsInPosition = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetPrfPosition(out double dfCmdPos)
|
|
{
|
|
dfCmdPos = 0.0;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetEncoderPosition(out double dfEncPos)
|
|
{
|
|
dfEncPos = 0.0;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetAuEncoderPosition(out double dfEncPos)
|
|
{
|
|
dfEncPos = 0.0;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetDriverPosition(out double dfEncPos)
|
|
{
|
|
dfEncPos = 0.0;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetTolerance(out double dfTorlance)
|
|
{
|
|
dfTorlance = 0.0;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode SetPosCompare(ushort channel, double[] postions)
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode CompareStatus(out short _pStatus, out int _pCount)
|
|
{
|
|
_pStatus = 0;
|
|
_pCount = 0;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode ComparePulse(ushort channel,bool dp=true)
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode ClearCompare(ushort uChannel)
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetPelStatus(out bool bIsOn)
|
|
{
|
|
bIsOn = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetNelStatus(out bool bIsOn)
|
|
{
|
|
bIsOn = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetOrgStatus(out bool bIsOn)
|
|
{
|
|
bIsOn = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetAlarmStatus(out bool bIsOn)
|
|
{
|
|
bIsOn = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetEmgStatus(out bool bIsOn)
|
|
{
|
|
bIsOn = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetInpStatus(out bool bIsOn)
|
|
{
|
|
bIsOn = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode GetEzStatus(out bool bIsOn)
|
|
{
|
|
bIsOn = false;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode Home()
|
|
{
|
|
this.HomeStatus = EHomeStatus.Start;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual void Abort_Go_Home()
|
|
{
|
|
if (this.HomeStatus == EHomeStatus.Homing || this.HomeStatus == EHomeStatus.Start)
|
|
{
|
|
this.HomeStatus = EHomeStatus.Abort;
|
|
}
|
|
this.Stop();
|
|
}
|
|
|
|
protected virtual void DealHome(object obj)
|
|
{
|
|
try
|
|
{
|
|
this.HomeStatus = EHomeStatus.Finished;
|
|
}
|
|
catch
|
|
{
|
|
this.HomeStatus = EHomeStatus.Fail;
|
|
}
|
|
}
|
|
|
|
public virtual ErrorCode Zero(int iOrig)
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
|
|
public virtual ErrorCode Get_Target_Position(out double dfTargetPos)
|
|
{
|
|
dfTargetPos = 0.0;
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
public virtual ErrorCode ClearAlarm()
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 暂停后恢复
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public virtual ErrorCode Restore()
|
|
{
|
|
return ErrorCode.Ok;
|
|
}
|
|
}
|
|
}
|