8.1.2. ecdiGetNumChannels


SYNOPSYS

t_i32 ecdiGetNumChannels(
  t_i32 NetID,
  t_i32 *ErrCode)

DESCRIPTION

  • 지정한 네트워크에 연결되어 있는 전체 디지털 입력 채널의 개수를 반환합니다.

PARAMETER

  • NetID : Network 번호

  • ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.

RETURN VALUE

  • 지정한 네트워크에 연결되어 있는 디지털 입력 채널의 개수를 반환합니다.

EXAMPLE

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include "ComiEcatSdk_Api.h"
t_32 Error_Num = 0;//함수 별 에러 코드 저장 변수

/***************************************************************************
본 예제에선 연결되어 있는 모든 DI,DO채널을 로드합니다.
이것은 슬레이브의 로컬 채널을 얻어 오는 것과는 다른 개념입니다.
*****************************************************************************/

void DI_GetChCount(void)
{
       t_i32 All_DiCount = 0; //마스터에 연결 된 모든 DI 채널 개수 저장 할 변수
       t_i32 All_DoCount = 0; //마스터에 연결 된 모든 DO 채널 개수 저장 할 변수
       All_DiCount = ecdiGetNumChannels( Device_Info.NetIdx, &Error_Num); // 마스터에 연결 된 모든 DI 채널 개수를 로드
       All_DoCount = ecdoGetNumChannels( Device_Info.NetIdx, &Error_Num); // 마스터에 연결 된 모든 DO 채널 개수를 로드
}

Note

전역채널(Global Channel) 번호를 이용하는 함수군전역채널(Global Channel) 번호는 네트워크에 연결된 모든 디지털입력(또는 출력) 접점을 종합하여 채널 번호를 매겨서 사용하는 것을 말합니다.

예를 들어서 네트워크에 32채널짜리 디지털입력 모듈이 2개 연결되어 있다면 전역채널 번호는 0~63의 번호로 구성됩니다.

따라서 두 번째 모듈의 첫 번째 채널은 전역채널 번호로는 32번 채널이 되는 것입니다.

이때 전역채널 번호의 순서는 모듈의 연결순서에 의해서 결정됩니다.

또한 디지털입력 채널과 디지털출력 채널은 서로 독립적으로 전역채널 번호가 관리되므로 서로 영향을 주지 않습니다.

예를 들어서 32채널 디지털입력 모듈이 2개 연결되고, 32채널 디지털출력 모듈이 3개 연결되었다고 가정하면, 디지털입력의 전역채널은 0~63이 되고,

디지털출력의 전역채널은 0~95가 됩니다.