8.1.12. ecdoPutOne¶
SYNOPSYS¶
t_success ecdoPutOne(
t_i32 NetID,
t_ui32 DoChannel,
t_bool OutState,
t_i32 *ErrCode)
t_bool ecdoPutOne_L(
t_i32 NetID,
t_ui16 SlvPhysAddr,
t_i32 LocalChannel,
t_bool OutState,
t_i32 *ErrCode)
DESCRIPTION¶
ecdoPutOne 함수는 단일 채널에 대한 디지털 출력 상태를 발생시킵니다.
ecdoPutOne_L 함수는 지역 채널 방식으로 지정된 디지털 출력 채널에 대한 디지털 출력 상태를 발생시킵니다.
PARAMETER¶
NetID : Network 번호
DoChannel : 디지털 출력 채널 번호
SlvPhysAddr: 슬레이브 주소
LocalChannel : 해당 디지털 입력 채널의 지역 채널 번호
OutState : ecdoPutOne() 함수의 인자이며, 단일 채널에 대한 디지털 출력상태를 발생합니다.
ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
RETURN VALUE¶
ecdoPutOne 함수의 반환 값: 이 리턴값은 불 형(Boolean Type) 을 가지고 있습니다.
Value |
Meaning |
---|---|
0 |
출력 발생에 실패했음을 의미합니다. |
1 |
출력 발생에 성공했음을 의미합니다. |
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 | /**********************************************************
채널의 DO 상태를 확인 하는 예제
슬레이브에서 할당 받은 초기 채널과 채널 수를 이용하여
슬레이브의 모든 채널 Do 상태를 확인
***********************************************************/
#include "ComiEcatSdk_Api.h"
#define DO_CHNUMBER 0 //사용자가 출력을 원하는 DO 채널 번호
t_32 Error_Num = 0;//함수 별 에러 코드 저장 변수
void DO_PutOne(void)
{
TEcSlvTypeInfo pTypeInfoBuf // 구조체 관련 내용 9장 참고
t_i16 DO_InitCh = 0; //시작 채널 번호 저장 변수
t_i16 DO_NumCh =0; // DO채널 개수 저장 변수
t_bool State = 0; // 출력 값
DO_InitCh = pTypeInfoBuf . DO. StaGlobChannel; //구조체 할당 후 DI 시작 채널 얻어 옴
DO_NumCh = pTypeInfoBuf . DO . NumChannels; //구조체 할당 후 DI 채널 개수 얻어옴
if(!ecdoPutOne (Device_Info.NetIdx, DI_InitCh, DO_CHNUMBER, State, &Error_Num))
{
//DO 실패 시 예외 처리
}
} // DO_PutOne 함수 종료
void DO_GetOne(void)
{
TEcSlvTypeInfo pTypeInfoBuf // 구조체 관련 내용 9장 참고
t_i16 DO_InitCh = 0; //시작 채널 번호 저장 변수
t_i16 DO_NumCh =0; // DO채널 개수 저장 변수
DO_InitCh = pTypeInfoBuf . DO. StaGlobChannel; //구조체 할당 후 DI 시작 채널 얻어 옴
DO_NumCh = pTypeInfoBuf . DO . NumChannels; //구조체 할당 후 DI 채널 개수 얻어옴
for(int i = DO_InitCh; i < DO_NumCh ; i++)
{
if(ecdoGetOne (Device_Info.NetIdx, i, &Error_Num))
{
//DO 결과가 1일 경우 처리
}
else
{
//DO 결과가 0일 경우 처리
}
}
} // DO_GetOne 함수 종료
|
See also