7.1.5. ecSlv_WriteCoeSdo¶
SYNOPSIS¶
t_i32 ecSlv_WriteCoeSdo (
t_i32 NetID,
t_ui16 SlvPhysAddr,
t_i32 Index,
t_i32 SubIndex,
t_i32 IsComptAccess,
t_i32 DataSize,
void* pBuf,
t_i32 *ErrCode)
t_i32 ecSlv_WriteCoeSdo_A (
t_i32 NetID,
t_ui16 SlaveIdx,
t_i32 Index,
t_i32 SubIndex,
t_i32 IsComptAccess,
t_i32 DataSize,
void* pBuf,
t_i32 *ErrCode)
Hint
FAST FUNCTION 모드 사용 가능
DESCRIPTION¶
지정한 슬레이브에서 지정된 SDO(Service Data Object) 오브젝트를 읽어서 반환하는 함수입니다. SDO(Service Data Object)는 비주기적으로 전달되는 데이터 오브젝트(Object)를 말합니다. 오브젝트에 대한 설명은 ecSlv_ReadCoeSdo 함수 설명편을 참고하시기 바랍니다.
ecSlv_WriteCoeSdo 함수는 슬레이브를 지정할 때 주소값을 사용하여 슬레이브를 지정합니다.
ecSlv_WriteCoeSdo_A 함수는 슬레이브를 지정할 때 네트워크 상에서 슬레이브의 연결 순서를 사용하여 슬레이브를 지정합니다.
PARAMETER¶
NetID : 사용자가 사용 할 Network 번호
SlvPhysAddr: 슬레이브의 물리적 주소( ex. 서보 로터리 스위치로 선택한 축 번호)
SlaveIndex : 슬레이브의 연결 순서
Index : 오브젝트 인덱스(Object Index)
SubIndex : 오브젝트의 서브인덱스(Sub-index)
IsComptAccess: 오브젝트가 배열이나 구조체로 이루어진 경우에 해당 오브젝트의 모든 서브인덱스에 해당하는 값을 쓰기할 것인지 아니면 서브인덱스로 지정된 데이터만 쓰기할 것인지를 결정하는 플래그입니다. 일반적으로 이 값은 0(false)으로 설정해야 합니다.
Value |
Meaning |
---|---|
0 |
지정한 서브 인덱스에 대해서만 값을 씁니다. |
1 |
모든 서브 인덱스에 대한 데이터를 한꺼번에 씁니다. 이 경우에는 SubIndex 값을 0으로 전달해야 하며, 버퍼는 오브젝트의 전체 데이터 구조와 일치하는 버퍼가 제공되어야 합니다. |
DataSize : 쓰기할 DataSize. 이 값은 오브젝트 사전에서 정의된 해당 오브젝트의 데이터 크기와 일치해야 합니다. 그렇지 않으면 읽기에 실패할 수 있습니다.
pBuf: 쓰기 하는 데이터를 전달하는 버퍼.
ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
RETURN VALUE¶
반환 값이 양수이면 쓰기한 데이터의 크기를 반환하는 것입니다. 반환 값이 음수이면 에러코드를 반환하는 것입니다.
EXAMPLE¶
1 2 3 4 5 6 7 | //슬레이브 주소가 0x1인 슬레이브로부터 CiA DS-402 프로파일에서 정의한 ‘Max motor speed’ 오브젝트(아래 그림 참조)값을 3000으로 쓰기 하는 예.
#define NETID 0
#define SLAVE_ADDR 0x1
t_i32 errCode;
t_ui32 maxMotorSpeed = 3000;
ecSlv_WriteCoeSdo (NETID, SLAVE_ADDR, 0x6080, 0, false, 4, &maxMotorSpeed, &errCode);
|
See also