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);
}
|