SetAxisTouchProbe

纪录在触发事件中的轴位置。

语法

KsCommandStatus SetAxisTouchProbe(
     int Index,
     McProbeTrigger TriggerInput,
     BOOL WindowOnly,
     double firstPosition,
     double lastPosition,
     double* recordedPosition
);

参数

Index [in]:轴索引。索引以零为起点;别名将影响此参数。

TriggerInput [in]:触发信号来源。触发可由 Index 指定;而信号来源可在 McProbeTrigger 结构中选定。

WindowOnly [in]:若设定,则只有在视窗内的值会用来触发事件,视窗范围为 firstPosition lastPosition 之间。

firstPosition [in]:接受(正方向)触发事件的起始位置(使用者单位),为包含在视窗的值,firstPosition 须小于 lastPosition

lastPosition [in]:视窗的末端位置(使用者单位),为包含在视窗的值。

recordedPosition [out]:触发事件发生的位置(使用者单位)。

回传值

返回 KsCommandStatus 结构。

备注

范例

VOID RecordPosition(INT Index, DOUBLE Velocity, McDirection Direction) {
   double PosRecord = 0;

   //Configure the probe
   McProbeTrigger ProbeTrigger = { 0 };
   ProbeTrigger.TouchProbeId = 0;
   ProbeTrigger.Software = FALSE;
   ProbeTrigger.IndexPulse = TRUE;
   ProbeTrigger.Edge = TRUE;
   ProbeTrigger.AxisSwitch = FALSE;
   ProbeTrigger.Index = 0;
   ProbeTrigger.Offset = 0;
   KsCommandStatus probe = SetAxisTouchProbe(Index, ProbeTrigger, FALSE, 0, 0, &PosRecord);

   //Start moving
   MoveAxisVelocity(Index, Velocity, 36000, 36000, 3600000, Direction, mcAborting);

   //Wait for the position to be recorded
   probe = WaitForCommand(30, TRUE, probe);

   RtPrintf("Recorded position: %d\n", (int)PosRecord);
   WaitForCommand(30, TRUE, HaltAxis(Index, 36000, 3600000, mcAborting));
}

使用需求

  RT Win32
最低支援版本 4.0 4.0
标头档 ksmotion.h ksmotion.h
程式库 KsApi_Rtss.lib KsApi.lib

参见

AbortCommand

EnableTouchProbe

PowerAxis

ResetAxis