1.1.2 문서 작성 및 개정 이력

개정 번호

작성/개정 페이지 및 내용

개정 날짜

1.33.5

버전 정보 수정: GL013305

기능 업데이트

  • 실시간 데이터를 받고 실시간 콜백 함수를 실행할 때 라이브러리가 쓰는 운영 체제 스케줄링 우선순위를 선택하는 set_rt_thread_priority를 추가했습니다(예: Linux의 SCHED_FIFO, Windows의 THREAD_PRIORITY_* 수준). 다음 connect_rt_control 호출부터 적용됩니다.

버그 수정

  • Linux에서 실시간 제어(Real-time Control)의 안정성과 응답 시간을 개선했습니다.

  • disconnect_rt_control을 호출한 뒤 connect_rt_control이 실패하는 문제를 수정했습니다.

  • 컨트롤러가 응답하지 않을 때 connect_rt_control이 반환되지 않는 문제를 수정했습니다.

  • ikin의 기준 포즈 옵션이 무시되는 문제를 수정했습니다.

  • 목표 포즈에 도달할 수 없는데도 servoj_g와 movesj_g가 로봇을 움직이는 문제를 수정했습니다. 이제 false를 반환합니다.

  • 모드 변경이 실패했는데도 set_robot_mode가 true를 반환하는 문제를 수정했습니다.

  • 컨트롤러가 응답하지 않거나 연결이 끊겼는데도 set_safety_mode와 set_robot_control이 true를 반환하는 문제를 수정했습니다.

  • 컨트롤러가 응답하지 않았는데도 get_robot_link_info가 빈 데이터와 함께 true를 반환하는 문제를 수정했습니다.

  • 경로 수정(Alter Motion)이 활성화되지 않았을 때 alter_motion이 로봇을 움직이지 않고 true를 반환하는 문제를 수정했습니다.

  • flange_serial_open이 잘못된 보드레이트를 설정하는 문제를 수정했습니다. 지원하지 않는 보드레이트에는 false를 반환합니다.

  • 크기가 잘못되었을 때 flange_serial_write가 데이터를 보내는 문제를 수정했습니다. 이제 데이터를 보내지 않고 false를 반환합니다.

  • 호출이 끝난 뒤 addto의 결과가 바뀌는 문제를 수정했습니다.

  • CMake 4로 라이브러리를 소스에서 빌드할 수 없는 문제를 수정했습니다.

샘플 업데이트

  • 모든 샘플이 더 이상 사용되지 않는 함수 대신 현재 함수 이름을 사용합니다.

  • 이제 -DDRCF_VERSION=3으로 1_minimal_motion_sample.cpp~3_send_drl_script_sample.cpp를 DRCF v3 컨트롤러용으로 빌드할 수 있습니다.

  • 2_minimal_rt_monitoring_sample.cpp가 실시간 데이터를 받지 못하는 문제를 수정했습니다.

  • 4_minimal_welding_sample.cpp는 DRCF v2 컨트롤러용으로 빌드되며, 수동 모드에서 TCP를 설정합니다.

  • 일부 DRCF 버전에서 5_minimal_instruction_sample.cpp와 6_realtime_control_sample.cpp가 빌드되지 않는 문제를 수정했습니다.

  • 6_realtime_control_sample.cpp는 실시간 제어를 시작할 수 없으면 실패한 단계를 알려 줍니다.

  • 7_get_robot_link_info_sample.cpp가 가끔 링크 정보를 모두 0으로 표시하는 문제를 수정했습니다.

  • Ubuntu 18.04와 20.04에서 API_DRFL_BUILD.sh로 샘플을 링크할 수 없는 문제를 수정했습니다.

기타 변경 사항

  • movesj_g는 점이 MAX_SPLINE_POINT개를 넘으면 false를 반환합니다.

  • 기존 함수의 시그니처는 바뀌지 않았습니다. Windows는 DLL을 교체하고, Linux는 libDRFL.a로 다시 링크하세요.

  • 튜토리얼 페이지를 샘플에 맞게 수정했습니다.

알림

  • 하나의 연결에서 get_current_posx, ikin처럼 컨트롤러에서 값을 받아 오는 함수는 하나의 스레드에서 호출하거나, 한 번에 하나씩 호출하세요.

  • set_rt_control_output의 출력 주기는 1초보다 짧게 설정하세요. 실시간 연결이 끊어지면 5초 이상 기다린 후 connect_rt_control을 다시 호출하세요. 시뮬레이터에서는 시뮬레이터를 다시 시작하세요.

  • connect_rt_control이 실패한 이유를 확인하려면 호출하기 전에 set_on_rt_log_alarm을 등록하세요.

  • 실시간 명령을 보내기 전에 read_data_rt의 time_stamp가 계속 증가하는지 확인하세요. get_rt_control_*_list 함수는 실시간 제어가 연결된 동안에만 호출하세요.

2026-11-04

1.33.4

버전 정보 수정: GL013304

버그 수정

  • 연결을 닫을 때 프로그램이 비정상 종료되거나 멈추는 문제를 수정했습니다.

  • 트래픽이 많을 때 모니터링 콜백이 지연되는 문제를 수정했습니다.

  • open_connection 중에 연결 끊김을 감지하지 못하는 문제를 수정했습니다.

  • 라이브러리가 유휴 상태일 때 CPU 사용률이 높아지는 문제를 수정했습니다.

  • 잘못된 형식의 안전 설정에서 메모리가 손상되는 문제를 수정했습니다.

  • close_connection 다음에 open_connection을 호출하면 예기치 않은 알람이 발생하고 세션이 데이터를 받지 못하는 문제를 수정했습니다.

기타 변경 사항

  • 이제 get_safety_configuration은 설정이 불완전하거나 형식이 잘못되었으면 NULL을 반환합니다.

  • 헤더는 GL013303과 같습니다. Windows는 DLL을 교체하고, Linux는 libDRFL.a로 다시 링크하세요.

  • 실시간 제어, 힘/순응 제어, 모션, 용접, 튜토리얼 페이지 전반에서 잘못된 값, 단위, 블로킹 동작 설명과 예제를 바로잡았습니다.

  • 매뉴얼의 한국어 번역을 추가했습니다.

2026-09-08

1.33.3

버전 정보 수정: GL013303

기능 업데이트

  • DRFLEx.h의 _ikin_ex와 _ikin_add_iter_threshold에 매개변수 기본값을 추가했습니다.

  • DRCF v3용 내부 API 함수 _set_stiffnessx_v3와 _set_desired_force_v3를 추가했습니다.

  • 이제 set_stiffnessx와 set_desired_force는 DRCF_VERSION 전처리기 플래그에 따라 v2 구현이나 v3 구현을 호출합니다.

  • 이제 라이브러리가 자동 모드에서 set_workpiece_weight, set_user_home, change_collision_sensitivity를 거부하지 않습니다.

샘플 업데이트

  • 5_minimal_instruction_sample.cpp

    • 한국어 주석을 영어로 번역했습니다.

    • 샘플이 OnMonitoringStateCB에서 멈추는 문제를 수정했습니다.

    • 제어권(Control Authority) 획득 재시도 로직을 추가했습니다.

    • 상태 복구와 제한 시간을 갖춘 안정적인 서보 온 처리를 추가했습니다.

    • ikin_norm 사용 예제와 현재 포즈 읽기를 추가했습니다.

기타 변경 사항

  • 더 이상 쓰지 않는 main.cpp를 삭제했습니다.

  • 이제 컨트롤러가 응답하지 않을 때 open_connection과 get_system_version이 무한정 기다리지 않습니다.

2026-03-10

1.33.2

버전 정보 수정: GL013302

기능 업데이트

  • DRFL.h와 DRFLEx.h를 하나의 헤더로 통합했습니다.

  • 기존 CamelCase API는 이제 더 이상 사용되지 않음으로 표시되며(DRFL_DEPRECATED로 컴파일러 경고 발생) DRFLEx.h에 선언되어 있습니다. 대신 snake_case 함수를 사용하세요.

함수 업데이트

  • Hold to Run 함수 추가:

    • hold2run

    • jog_h2r

    • movej_h2r

    • movel_h2r

  • Ethernet Register 함수 추가:

    • set_output_register_bit

    • set_output_register_int

    • set_output_register_float

    • get_output_register_bit

    • get_output_register_int

    • get_output_register_float

    • get_input_register_bit

    • get_input_register_int

    • get_input_register_float

2026-01-28

1.33.1

버전 정보 수정: GL013301

함수 업데이트

  • 누락된 함수 추가

  • DH 매개변수 함수 추가: get_robot_link_info

  • 특이점 함수 추가: set_singular_handling_force

정의 업데이트

  • 누락된 구조체 추가

  • DH 매개변수 구조체 추가: ROBOT_LINK_INFO

  • 특이점(Singularity) 열거형 추가: SINGULARITY_FORCE_HANDLING

기능 업데이트

  • open_connection의 힙 오류를 수정했습니다.

  • 이제 set_robot_mode(ROBOT_MODE_AUTONOMOUS)는 자동 모드에 들어간 직후 자동 모드 이동 이벤트(SAFETY_MODE_EVENT_MOVE)도 보냅니다.

2025-12-19

1.33

버전 정보 수정: GL013300

기능 업데이트

  • 모니터링의 힘 제어(Force Control) 모니터링이 올바르게 표시되지 않던 문제를 수정했습니다.

  • 플랜지 버전 rev2에 맞게 flange_serial 명령을 업데이트했습니다.

함수 업데이트

  • LED 제어 함수 추가:

    • state_led_reset

    • set_state_led_off

    • set_state_led_color

    • get_state_led_rule

  • I/O 제어 함수:

    • 이제 flange_serial_open과 flange_serial_close는 첫 번째 인수로 필수 인수 nPort를 받습니다(플랜지 rev2).

2025-09-03

1.32

기능 업데이트

  • 용접 관련 API 추가

정의 업데이트

  • 여러 구조체 추가:

    • ROBOT_WELDING_DATA

    • WELDING_CHANNEL

    • CONFIG_WELDING_INTERFACE

    • CONFIG_WELD_SETTING

    • GET_WELDING_SETTING_RESPONSE

    • ADJUST_WELDING_SETTING

    • CONFIG_TRAPEZOID_WEAVING_SETTING

    • CONFIG_ZIGZAG_WEAVING_SETTING

    • CONFIG_CIRCULE_WEAVING_SETTING

    • CONFIG_SINE_WEAVING_SETTING

    • CONFIG_WELDING_DETAIL_INFO

    • CONFIG_ANALOG_WELDING_INTERFACE

    • CONFIG_ANALOG_WELDING_SETTING

    • ANALOG_WELDING_ADJUST_SETTING

    • CONFIG_DIGITAL_WELDING_IF_MAPPING_DATA

    • CONFIG_DIGITAL_WELDING_INTERFACE_PROCESS

    • CONFIG_DIGITAL_WELDING_INTERFACE_MODE

    • CONFIG_DIGITAL_WELDING_INTERFACE_TEST

    • CONFIG_DIGITAL_WELDING_INTERFACE_CONDITION

    • CONFIG_DIGITAL_WELDING_INTERFACE_OPTION

    • CONFIG_DIGITAL_WELDING_INTERFACE_PROCESS2

    • CONFIG_DIGITAL_WELDING_INTERFACE_MONITORING

    • DIGITAL_WELDING_RESET

    • CONFIG_DIGITAL_WELDING_MODE

    • CONFIG_DIGITAL_WELDING_CONDITION

    • CONFIG_DIGITAL_WELDING_ADJUST

    • MEASURE_TCP_WELDING

    • TACK_WELDING_SETTING

    • DIGITAL_FORCE_WRITE_DATA

    • ROBOT_DIGITAL_WELDING_DATA

    • DIGITAL_WELDING_COMM_STATE

함수 업데이트

  • 모니터링 함수 추가:

    • set_on_monitoring_welding_data

    • set_on_monitoring_analog_welding_data

    • set_on_monitoring_digital_welding_data

  • 위빙 함수 추가:

    • app_weld_weave_cond_trapezoidal

    • app_weld_weave_cond_zigzag

    • app_weld_weave_cond_circular

    • app_weld_weave_cond_sinusoidal

  • 아날로그 인터페이스 함수 추가:

    • app_weld_enable_analog

    • app_weld_set_weld_cond_analog

    • app_weld_adj_welding_cond_analog

  • Ethernet/IP 함수 추가:

    • app_weld_set_interface_eip_r2m_mode

    • app_weld_set_interface_eip_r2m_process

    • app_weld_set_interface_eip_r2m_test

    • app_weld_set_interface_eip_r2m_condition

    • app_weld_set_interface_eip_r2m_option

    • app_weld_set_interface_eip_m2r_process2

    • app_weld_set_interface_eip_m2r_monitoring

2025-01-15

1.31

기능 업데이트

  • 컨트롤러 옵션 추가(#define DRCF_VERSION)

정의 업데이트

  • MONITORING_CTRLIO_EX2 추가

  • READ_CTRLIO_INPUT_EX2 추가

  • READ_CTRLIO_OUTPUT_EX2 추가

  • v3 컨트롤러용 GPIO_CTRLBOX_DIGITAL_INDEX 업데이트

  • SAFETY_CONFIGURATION_EX2_V3 추가

함수 업데이트

  • get_safety_configuration_ex 멤버를 삭제했습니다. 이제 get_safety_configuration은 DRCF_VERSION에 따라 SAFETY_CONFIGURATION_EX2(DRCF v2) 또는 SAFETY_CONFIGURATION_EX2_V3(DRCF v3)를 반환합니다.

  • SetOnMonitoringData 삭제(중복)

  • SetOnMonitoringCtrlIO 삭제(중복)

2024-12-03

1.30

기능 업데이트

  • Arm64 DRFL 바이너리 추가

  • Ubuntu 22.04 버전 지원

  • 실시간 성능 개선

  • 블렌딩 모션 관련 문제 수정

  • flange_serial_read의 반환값 변경

정의 업데이트

  • 열거형 추가: MOVE_ORIENTATION, SPIRAL_DIR, ROT_DIR, DR_SERVOJ_TYPE

  • 구조체 추가: SAFETY_CONFIGURATION_EX2, CONFIG_SAFETY_IO_OP

  • movej에 축별 속도/가속도 조정 매개변수 추가

  • 확장 movejx, amovej, amovejx, servoj 추가

함수 업데이트

  • get_safety_configuration (Extension) 추가

  • ikin (Add_iter_threshold), ikin_norm 업데이트

  • movec (Extension), amovec (Extension) 업데이트

  • move_spiral (Extension), amove_spiral (Extension), servoj (Extension) 업데이트

2024-11-27

1.29

query_modbus_data_list 추가

2023-03-24

1.28

enum.ROBOT_STATE 설명 수정

enum.ROBOT_MODE 내용 추가

중복된 enum.ROBOT_SPACE 삭제

set_palletizing_mode 명령 추가

move_home 주의 사항 추가

2023-02-20

1.27

drl_stop 함수 매개변수 수정: enum.STOP_TYPE → unsigned char

2022-07-04

1.26

enum.ROBOT_SPACE 수정

set_on_monitoring_safety_state 수정

enum.MOVE_REFERENCE 수정

change_operation_speed 수정

TOnMonitoringRobotSystemCB 수정

함수 업데이트

  • 새 속성 함수 추가

    • get_current_posj

    • get_control_space

    • get_current_velj

    • get_desired_posj

    • get_current_tool_flange_posx

    • get_current_velx

    • get_desired_velx

    • get_joint_torque

    • get_external_torque

    • get_tool_force

  • 열거형/구조체 추가

    • enum.ROBOT_SPACE 추가

    • struct.ROBOT_VEL / struct.ROBOT_FORCE 추가

2022-06-02

1.25

flange_serial_open / close의 port 매개변수 삭제

set_tool과 set_workpiece_weight를 연달아 호출하는 경우에 대한 참고 사항 추가

2022-05-04

1.24

enum.SAFETY_MODE_EVENT 관련 내용 수정

set_safety_mode 예제의 매개변수 수정

flange_serial 함수에 port 매개변수 추가. 이 매개변수는 플랜지 버전 rev2에만 적용됩니다.

버전 변경 → GL010115

함수 업데이트

  • 새 함수 추가

    • set_workpiece_weight

    • set_mode_tool_analog_input

    • set_tool_digital_output_type

    • set_tool_digital_output_level

    • get_tool_analog_input

  • 열거형 추가

    • COG_REFERENCE

    • ADD_UP

    • OUTPUT_TYPE

2022-04-29

1.23

3.3.21: 인수 부분 변경 TOnMonitoringSafetyState → TOnMonitoringSafetyStateCB

3.7.14: 인수 부분 TYPE_TYPE → DATA_TYPE으로 변경

3.8.11 인수를 열거형으로 수정 → enum.MODBUS_REGISTER_TYPE

정의 업데이트

  • 열거형 추가: SAFETY_MODE / SAFETY_MODE_EVENT, COORDINATE_SYSTEM

  • 구조체 추가: struct.MESSAGE_PROGRESS

  • 열거형 상수 ROBOT_STATE 표기 오류 수정

함수 업데이트

  • get_override_speed 삭제

기능 업데이트

  • 실시간 제어 추가

2022-03-10

1.2

버전 정보 수정: GL010112

새 함수 추가

  • set_safety_mode

  • set_on_monitoring_state

  • 실시간 제어용 새 함수 추가(별도 매뉴얼 참고)

2021-12-16

1.19

버전 정보 수정: GL010112

새 함수 추가

  • ikin (extension)

  • set_on_monitoring_robot_system

  • change_collision_sensitivity

  • add_sw_module

  • del_sw_module

  • update_sw_module

  • release_protective_stop

  • set_on_monitoring_update_module

2021-11-22

1.18

버전 정보 수정: GL010111

새 함수 추가: get_override_speed

2021-09-15

1.17

버전 정보 수정: GL010110

2021-06-09

1.16

누락된 함수 추가: servo_off

2021-03-24

1.15

누락된 함수 추가: set_user_home / Flange_serial_read 매개변수 추가(timeout)

2021-03-19

1.14

오타 수정 / 일부 함수 수정: movesj, set_safe_stop_reset_type, close_connection 등

2020-10-19

1.13

함수 추가: flange_serial 등

2020-10-19

1.12

헤더 분리(DRFLEx 클래스 추가)

2020-06-08

1.11

함수 이름 업데이트(DRL 스타일)

2020-05-28

1.1

새 명령 업데이트

2020-05-20

1.0

최초 작성 및 배포

2018-06-29