SetAxisCyclicSwitch

使用轴位置来控制重复触发数位输出的开关。当轴达到特定的位置,开关即开启或关闭,开关可受轴的向前与向后移动所控制。

语法

KsCommandStatus SetAxisCyclicSwitch(
     int Index,
     McOutput Output,
     double StartPosition,
     McCamSwitch CyclicSwitch,
     McLengthType IntervalType,
     double Interval,
     McLengthType DurationType,
     double Duration,
     McSource ValueSource
);

参数

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

Outputs [in]:选择对应轨道所控制的数位输出。请见 McOutput 结构。

StartPosition [in]:周期开始的位置。

CyclicSwitch [in]:控制开关动作,请见 McCamSwitch 结构。

IntervalType [in]:Interval 类型可使用 mcDistance 与 mcTime,请见 McLengthType 类型。

Interval [in]:周期长度,依照所选的 IntervalType 而定,须为正值。

DurationType [in]:Duration 类型可使用 mcDistance 与 mcCount,请见 McLengthType 类型。

Duration [in]:周期重复的持续时间,依照所选的 DurationType 而定,须为正值。

ValueSource [in]:定义轴值的来源,例如:位置。请见 McSource 类型。

回传值

返回 KsCommandStatus 结构。

备注

范例

案例 1

循环开关在持续时间内完成其任务。

McOutput outputBit = {
   FALSE,   //Axis or IO module. FALSE = I/O.
   0,       //Index
   0        //Offset
}

McCamSwitch cyclicSwitch = {
   0,    //TrackNumber
   40,   //FirstOnPosition 
   60,   //LastOnPosition
   1,    //AxisDirection. 1 = Positive.
   0,    //CamSwitchMode. 0 = Position.
   0     //Duration. It is not used in this case.
);

Command = SetAxisCyclicSwitch(
   TargetAxis,    //Index
   outputBit,     //Output
   100,           //StartPosition
   cyclicSwitch,  //CyclicSwitch
   mcDistance,    //IntervalType
   100,           //Interval
   mcDistance,    //DurationType
   250,           //Duration
   mcSetValue     //ValueSource
);

案例 2

循环开关在完成任务之前中止。

McOutput outputBit = {
   FALSE,   //Axis or IO module. FALSE = I/O.
   0,       //Index
   0        //Offset
}

McCamSwitch cyclicSwitch = {
   0,        //TrackNumber
   0,        //FirstOnPosition
   0,        //LastOnPosition
   1,        //AxisDirection. 1 = Positive.
   1,        //CamSwitchMode. 1 = Time.
   0.003     //Duration
);

Command = SetAxisCyclicSwitch(
   TargetAxis,    //Index
   outputBit,     //Output
   100,           //StartPosition
   cyclicSwitch,  //CyclicSwitch
   mcTime,        //IntervalType
   0.005,         //Interval
   mcCount,       //DurationType
   3,             //Duration
   mcSetValue     //ValueSource
);

使用需求

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

参见

AbortCommand

PowerAxis

ResetAxis

SetAxisCamSwitch