ceilActionModeOne_Set


SYNOPSIS

VT_I4 ceilActionModeOne_Set(
  VT_I4 NodeID,
  VT_I4 ModuleType,
  VT_I4 Channel,
  VT_I4 ActionMode
)

DESCRIPTION

  • 해당 원격 노드 슬레이브 모듈의 단일 채널에 대해 인터락 동작 모드를 설정합니다.

PARAMETER

  • NodeID : 인터락 동작 모드를 설정할 채널이 속한 원격 노드 ID를 설정합니다.

  • ModuleType : 인터락 동작 모드를 설정할 대상 모듈 을 선택합니다.

Value

Meaning

0 (MOD_CPU)

마스터 모듈 (ceNM-SE) 을 선택합니다.

1 (MOD_AO)

슬레이브 모듈 중 아날로그 출력 모듈(ceAO02A) 을 선택합니다.

2 (MOD_DO)

슬레이브 모듈 중 디지털 출력 모듈(ceD16CM, ceDO32N) 을 선택합니다.

3 (MOD_MOT)

슬레이브 모듈 중 모션 모듈(ceMC02P)을 선택합니다.

  • Channel : 인터락 동작 모드를 설정할 채널 번호. 통합 채널로 관리되는 채널 번호를 의미하며,. 상수 값으로 0 (Zero Based) 이상, (최대 통합 채널수 - 1) 이하의 값을 채널 번호로 설정할 수 있습니다.

  • ActionMode : 인터락 동작 모드를 설정합니다. Module_Type 에서 설정한 모듈 종류에 따라. 인터락 동작 모드는 다음과 같이 구분됩니다.

Slave Module

Value

Meaning



ceNM-SE
0 (CPU_ACT_RESERVED)
1 (CPU_ACT_REBOOT)
2 (CPU_ACT_KEEP)
Reserved
Reboot
현재 상태 유지(불변) [Default]

ceAO02N

0 (AO_ACT_MIN)
1 (AO_RESERVED1)
2 (AO_ACT_KEEP)
최소 전압출력 값(0 V, 0 mA) 출력 [Default]
Reserved
현재 상태 유지(불변)

ceD16CN, ceDO32N

0 (DO_ACT_OFF)
1 (DO_ACT_ON)
2 (DO_ACT_KEEP)
OFF 출력 [Default]
ON 출력
현재 상태 유지(불변)

ceMC02P

0(MOT_ACT_DECELSTOP)
1 (MOT_ACT_EMGSTOP1)
2 (MOT_ACT_KEEP)
감속후 정지 [Default]
즉시 정지
현재 상태 유지(불변)

RETURN VALUE

Value

Meaning

음수

수행 실패. 자세한 내용은 ‘에러 처리’ 편을 참고합니다.

0 (ceERR_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
 C/C++
 #include “ceSDK.h”
 #include “ceSDKDef.h”
 #define NODE_ID 1 // 노드 IP 를 192.168.1.1 로 지정
 // Module type: ceNM-SE(0), ceAO02N(1), ceDxxN(2), ceMC02P(3)
 enum {MOD_CPU, MOD_AO, MOD_DO, MOD_MOT};
 // CPU (ceNM-SE) : reserved(0), reboot(1), 현재상태유지/불변(2) => reboot(1) 인 경우만 노드 마스터가 재부팅
 됨.
 enum {CPU_ACT_RESERVED, CPU_ACT_REBOOT, CPU_ACT_KEEP};
 // Analog Output 모듈의 인터락 Action 정의 : 0: 최소 전압 값(0V, 0 mA)출력, 1: reserved, 2: 현재상태 유지(불변)
 enum {AO_ACT_MIN, AO_RESERVED, AO_ACT_KEEP};
 // Digital Output 모듈의 인터락 Action 정의 : off 출력(0), on 출력(1), 현출력상태 유지(2)
 enum {DO_ACT_OFF, DO_ACT_ON, DO_ACT_KEEP};
 // Motion 모듈의 인터락 Action 정의 : 0: 감속후 정지 (default), 1: 즉시 정지, 2: 현재상태 유지(불변)
 enum {MOT_ACT_DECELSTOP, MOT_ACT_EMGSTOP, MOT_ACT_KEEP};
 VOID CInterlockTestDlg::OnBtnActModeSetOne
 {
 long val;
 // 1. CPU 모듈 리셋 설정
   // Module Type => 0: ceNM-SE(CPU 모듈)
   // Channel => CPU 모듈인 경우 임의값, don't care
   // Action Mode => 1 이외의 값은 Reboot 하지 않음, 1: 재부팅
   long nResult = ceilActionModeOne_Set(NODE_ID, MOD_CPU, 0, CPU_ACT_REBOOT);
 // 2. CPU 모듈 리셋 설정 확인
   nResult = ceilActionModeOne_Get(NODE_ID, MOD_CPU, 0, &val);
 // 3. AO 모듈 단일 채널의 인터락 동작 설정
   // Module Type => 1: 아날로그출력모듈
   // Channel => 0 번
   // Action Mode => AO_ACT_MIN : 최소값 출력 (0V, 0mA)
   nResult = ceilActionModeOne_Set(NODE_ID, MOD_AO, 0, AO_ACT_MIN);
 // 4. AO 모듈 단일 채널의 인터락 동작 설정 확인
   nResult = ceilActionModeOne_Get(NODE_ID, MOD_AO, 0, &val);
 // 5. DO 모듈 단일 채널의 인터락 동작 설정
   // Module Type => 2: 디지털출력모듈
   // Channel => 0 번
   // Action Mode => DO_ACT_OFF : 출력 OFF
   nResult = ceilActionModeOne_Set(NODE_ID, MOD_DO, 0, DO_ACT_OFF);
 // 6. DO 모듈 단일 채널의 인터락 동작 설정 확인
   nResult = ceilActionModeOne_Get(NODE_ID, MOD_DO, 0, &val);
 // 7. MOTION 모듈 단일 채널의 인터락 동작 설정
   // Module Type => 3: 모션 모듈
   // Channel => 0 번 축
   // Action Mode => MOT_ACT_EMGSTOP : 비상 정지 (Emergency Stop)
   nResult = ceilActionModeOne_Set(NODE_ID, MOD_MOT, 0, MOT_ACT_EMGSTOP);
 // 8. MOTION 모듈 단일 채널의 인터락 동작 설정 확인
   nResult = ceilActionModeOne_Get(NODE_ID, MOD_MOT, 0, &val);
 }