3.1.12. cmmGnSetServoOn


SYNOPSYS

VT_I4 cmmGnSetServoOn (
    [in] VT_I4 Axis, [in] VT_I4 Enable
    )

DESCRIPTION

  • SERVO-ON 신호의 ON/OFF를 제어합니다.

PARAMETER

  • Axis: 축 번호(0 부터 시작합니다).

  • Enable : cmmGnSetServoOn 함수의 인자이며, SERVO-ON 신호의 출력 상태를 설정합니다.

Value

Meaning

0 또는 cmFALSE

SERVO-OFF

1 또는 cmTRUE

SERVO-ON

RETURN VALUE

Value

Meaning

음수

수행 실패

cmERR_NONE

수행 성공

REFERENCE

  • 서보를 On 시켜야 하는 경우 cmmGnDeivceLoad() 함수 호출 이후에 cmmGnSetServoOn(Axis#, cmTRUE)를 호출해주셔야 서보 모터가 정상 동작 합니다.

  • cmmCfgSetMioProperty() 또는 cmmCfgSetMioProperty() 를 실행하여 서보온 신호의 출력로직을 설정할 수 있습니다.

Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
C/C++

#include “Cmmsdk.h”
#include “CmmsdkDef.h”

void OnSetServoOn ()
{
       long nAxisNo = 1; // Servo-On 신호를 제어할 축 선택.
       long nMioStates; // 모션 상태 정보

       /* 해당 축의 Servo-On 상태를 확인한 후, 설정된 상태에 따라 ON/OFF 상태 제어 */

       if ( cmmStReadMioStatuses ( nAxisNo, &nMioStates ) == cmERR_NONE )
       {
           if ( (nMioStates >> cmIOST_SVON) & 0x1 == cmFALSE )
           {
               // Servo OFF 상태이므로 Servo ON 상태로 설정합니다.
               cmmGnSetServoOn ( nAxisNo, cmTRUE );
           }
           else
           {
           // Servo ON 상태이므로 Servo OFF 상태로 설정합니다.
           cmmGnSetServoOn ( nAxisNo, cmFALSE );
           }
       }
}
-------------------------------------------------------------------------------------------------------
Visual Basic

Private Sub OnSetServoOn()

   Dim nAxisNo As Long ' Servo-On 신호를 제어할 축 선택.
   Dim nMioStates As Long ' 모션 상태 정보
   Dim nResult As Long

   nAxisNo = 1

   ' 해당 축의 Servo-On 상태를 확인한 후, 설정된 상태에 따라 ON/OFF 상태 제어

   If cmmStReadMioStatuses(nAxisNo, nMioStates) = cmERR_NONE Then

       Call cmmGnBitShift(nMioStates, cmIOST_SVON, nResult)

       If nResult = cmFALSE Then
           ' Servo OFF 상태이므로 Servo ON 상태로 설정합니다.
           Call cmmGnSetServoOn(nAxisNo, cmTRUE)
       Else
           ' Servo ON 상태이므로 Servo OFF 상태로 설정합니다.
            Call cmmGnSetServoOn(nAxisNo, cmFALSE)
       End If
   End If
End Sub

-------------------------------------------------------------------------------------------------------
Delphi

procedure OnSetServoOn ();
var

   nAxisNo : LongInt; // Servo-On 신호를 제어할 축 선택.
   nMioStates : LongInt; // 모션 상태 정보

begin
   nAxisNo := 1;

   // 해당 축의 Servo-On 상태를 확인한 후, 설정된 상태에 따라 ON/OFF 상태 제어

   if cmmStReadMioStatuses ( nAxisNo, @nMioStates ) = cmERR_NONE then
   begin
       if ( ( nMioStates shr cmIOST_SVON ) and $1 ) = cmFALSE then
       begin
           // Servo OFF 상태이므로 Servo ON 상태로 설정합니다.
           cmmGnSetServoOn ( nAxisNo, cmTRUE );
       end
       else
           // Servo ON 상태이므로 Servo OFF 상태로 설정합니다.
           cmmGnSetServoOn ( nAxisNo, cmFALSE );
       end;
   end;
end;

See also

cmmGnGetServoOn