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);
../../../_images/ecSlv_WriteCoeSdo_00.jpg

See also

ecSlv_ReadCoeSdo