11.2.10. ecmSxCfg_AutoTorq_SetValue¶
SYNOPSIS¶
t_success ecmSxCfg_AutoTorq_SetValue(
t_i32 NetID,
t_i32 Axis,
t_i32 OutTorqVal,
t_i32 *ErrCode,
)
DESCRIPTION¶
이 함수는 자동토크출력 기능에서의 토크 값 설정 모드(Torque Value Mode)가 ‘Single-Value Mode’로 설정된 경우에만 사용하는 함수로서, 토크 모드로 전환되었을 때 출력되어야 하는 토크 값을 정의하는 함수입니다.
PARAMETER¶
NetID : Network 번호
Axis : 대상 축 번호.
OutTorqVal : 출력 토크값을 설정한다. 토크값은 0.1% 단위의 값으로 설정한다. 다시 말해서 이 값을 1로 하면 정격토크의0.1%의 토크를 의미하며, 10은 정격토크의1%의 토크를 의미합니다.
ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
RETURN VALUE¶
이 리턴값은 불 형(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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | // Single-Value 모드로 설정하여 자동토크출력기능을 사용하는 예 제입니다.
#include "ComiEcatSdk_Api.h"
#define AXIS 0
#define TORQ_VAL 50 // 출력 토크값. 값의 단위는 0.1%이다. 따라서 50은 5%를 의미한다
t_32 Error_Num = 0;//함수 별 에러 코드 저장 변수
/***************************************************************
* OnProgramInitial : 이 함수는 가상의 함수로서 프로그램 초기화 루틴이
* 적용되는 부분을 의미합니다. //5~9장 사이 내용 참고
***************************************************************/
void OnProgramInitial()
{
TEcDevInfo Device_Info; //디바이스 정보 저장 할 구조체
t_i32 Device_Num = 0;
t_success nIsLoaded = ecDll_Load ();
if(!ecGn_LoadDevices(&Error_Num)){ //장치 로드
//로드 실패시 예외 처리
}
if(!ecGn_GetDevInfo(Device_Num,&Device_Info, &Error_Num)){
//디바이스 정보 로드 실패 시 예외 처리
}
//ALState OP모드로 전환
ecNet_SetAlState(Device_Info.NetIdx, ecAL_STATE_OP, &Error_Num);
ecmSxCtl_SetSvon(Device_Info.NetIdx, AXIS0, &Error_Num);
} //OnProgramInitial 함수 끝
/********************************************************************
* OnSigleTorq: 이 함수는 OnSigleTorq 사용 입니다
* 많은 세팅 관련 함수가 있지만 경우에 따라 사용자가 선택해서 사용
*********************************************************************/
void OnSigleTorq ()
{
// 1) 토크값설정모드(Torque Value Mode) 설정
if(!ecmSxCfg_AutoTorq_SetValMode (Device_Info.NetIdx , AXIS, ecmATRQ_VAL_SINGLE, 1, &nErrCode))
{
//실패 시 예외처리
}
// 2) 출력 토크값 설정
if(!ecmSxCfg_AutoTorq_SetValue (Device_Info.NetIdx , AXIS, TORQ_VAL, &nErrCode))
{
//실패 시 예외처리
}
// 3) 자동토크출력 기능 활성화
if(!ecmSxCfg_AutoTorq_SetEnable (Device_Info.NetIdx , AXIS, true, true, &nErrCode))
{
//실패 시 예외처리
}
// 4) PTP 이송을 수행한다. => 이 이송이 완료되면 자동으로 토크 출력됨.
if(!ecmSxMot_Move (Device_Info.NetIdx , AXIS, 100000, &nErrCode))
{
//실패 시 예외처리
}
// 5) 자동토크출력 기능이 완료될 때까지 기다린다.
// 참고로, 토크모드로 전환되면 ecmSxSt_GetMotState() 함수는 ecmMST_IN_AUTO_TORQ_MDOE(15) 값을 반환한다.
if(!ecmSxSt_WaitCompt (Device_Info.NetIdx , AXIS, &nErrCode))
{
//실패 시 예외 처리
}
// 6) 앞서 ecmSxCfg_AutoTorq_SetValue() 함수를 실행할 때 IsOneShotEnable 매개변수의 값을 true로 하였으므로 여기에서 비활성화하지 않아도 자동으로 비활성화된다. 그렇지 않으면 여기에서 ecmSxCfg_AutoTorq_SetValue() 함수를 이용해서 비활성화할 필요 있다. //
}
|