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