2.1.1. cmsGnLoadDevice


SYNOPSYS

VT_I4 cmsGnLoadDevice (
  [out] VT_PI4 NumDevices, [out] VT_PI4 BoardIdList, [out]
  VT_PI4 NumServos
  )

DESCRIPTION

  • 시스템에 설치된 하드웨어 장치를 로드합니다. 이 함수는 ComiSSCNET3 / SSCNET3H 의

다른 함수가 호출되기전에 반드시 한번은 수행되어야 합니다. 일반적으로 프로그램의 시작부분에서 수행해주면 됩니다.

  • 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의

첨두어 cms 가 붙지 않습니다.

PARAMETER

▶ NumDevices : 이 매개 변수를 통하여 실제로 로드(Load)된 네트워크 모션 보드의 개수를 반환합니다. 단, 이 매개 변수에 NULL 을 전달하면 보드 개수를 반환하지 않습니다.

▶ BoardIdList : 이 매개 변수를 통하여 실제로 로드(Load)된 네트워크 모션 보드의 ID 배열을 반환합니다. 단, 이 매개 변수에 NULL 을 전달하면 보드 ID 배열을 반환하지 않습니다.

▶ NumServos : 이 매개 변수를 통하여 실제로 로드(Load)된 서보 드라이브의 개수를 반환합니다. 단, 이 매개 변수에 NULL 을 전달하면 제어 축 수를 반환하지 않습니다.

RETURN VALUE

  • 장치 로드 성공 여부를 반환합니다.

Value

Meaning

음수

수행 실패.

cmERR_NONE

수행 성공

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
C/C++

   #include “ComiSSCNET3_SDK.h”
   #include “ComiSSCNET3_SDK_Def.h”

   void ProgramInitial(void)
   {
   long nNumDevices = 0;
   long DeviceList[16] = {0, };
   long nNumAxes = 0;
   if ( cmsLoadDll() != TRUE ) {

   /* OutputDebugString API 는 GUI 프로그램에서 문자열을 디버거에 보낼 수 있습니다. Borland
   C++ Builder 에서는 DebugWindows 에 Event Log 를 확인(確認)할 수 있으며, MS VC++ 에서는
   Debug 윈도우에서 확인(確認)할 수 있습니다. */

   OutputDebugString(“DLL 로드에 실패하였습니다”);
   // 이후 적절한 에러처리를 해주시기 바랍니다.
   }

   if ( cmsGnLoadDevice (&nNumDevices, DeviceList, &nNumAxes) != ERR_NONE ){

   // 에러메시지 출력

   }
   } /* ProgramInitial(void) 함수의 끝 */

 -----------------------------------------------------------------------------------------------------------------------------

   Visual Basic

   ‘ Visual Basic 에서는 명시적인 DLL 로드가 필요 없습니다.

   Private Sub Form_Load()

   Dim IRetVal As Long

   Dim nTotalDevices As Long
   Dim DeviceList(16) As Long
   Dim nTotalAxes As Long

   IRetVal = GnLoadDevice (nTotalDevices, DeviceList(0), nTotalAxes)

   If IRetVal <> ERR_NONE Then

   MsgBox(“cmsGnLoadDevice has been failed”)

   End If

   End Sub


 ------------------------------------------------------------------------------------------------------------------------------

 Delphi

   //* Delphi 에서는 명시적인 DLL 로드가 필요없습니다.
   //* 단, 처음 선언시에 다음과 같은 내용이 포함되어야 합니다.
   /////////////////////////////////////////////////////////////
   // COMZIOA SDK Library 를 위한 인터페이스 파일을 사용합니다.
   uses ComiSSCNET3;
   ////////////////////////////////////////////////////////////
   procedure TForm1.OnCreate(Sender: TObject);
   var
   g_nDevs : LongInt;
   DevList : Array[0..15] of LongInt
   g_nAxes : LongInt;

   begin

   if ( cmsGnLoadDevice (@g_nDevs, @DevList, @g_nAxes) <> ERR_NONE ) then
   begin

   // 에러메시지 출력

        exit;
       end;

   end;