Skip to content

4.9 파일 관리자

개요

FileManager는 호스트 컴퓨터와 로봇 컨트롤러 간의 로봇 프로그램, 궤적, 임시 파일 등의 리소스를 업로드, 다운로드, 삭제 또는 검색하는 데 사용되며 다양한 파일 유형에 대한 관리 및 운영을 지원합니다.

핵심 기능

  • 로봇 컨트롤러에 로컬 파일 업로드 지원
  • 로컬 디렉터리에 로봇 파일 다운로드 지원
  • 로봇 컨트롤러에서 파일 삭제 지원
  • 파일 이름 패턴으로 파일 검색 지원
  • 여러 파일 형식 관리 지원(USER_PROGRAM, BLOCK_PROGRAM, TRAJECTORY, ROBOT_TMP)
  • 업로드 중 덮어쓰기 제어 지원/download

사용 사례

  • 로봇 컨트롤러에 프로그램 배포
  • 로봇의 프로그램 및 궤적 파일 백업
  • 생산 라인의 디버그 데이터 동기화
  • 로봇 파일 일괄 관리 및 쿼리
  • 임시 데이터 파일을 로봇에 업로드
  • 로봇 로그 또는 출력 파일을 로컬로 다운로드

4.9.1 로봇에 로컬 파일 업로드

메서드 이름file_manager.upload( file_path : str, file_type : str, overwriting : bool = False) -> StatusCodeEnum
설명로봇 컨트롤러에 로컬 파일을 업로드합니다.
요청 매개변수file_path : str 로컬 파일 절대 경로.
file_type : str 파일 형식(USER_PROGRAM: file_path 는 프로그램 이름 경로입니다. 동일한 디렉터리에서 json / xml 를 업로드합니다. BLOCK_PROGRAM: file_path 는 블록 프로그램 이름 경로입니다. 동일한 디렉터리에서 block / json / xml 를 업로드합니다. TRAJECTORY: file_path 는 전체 궤적 파일 경로입니다. ROBOT_TMP: file_path 는 전체 임시 파일 경로입니다.
overwriting : bool 같은 이름의 파일을 덮어씁니다(기본값 False ).
반환 값StatusCodeEnum: 함수 실행 결과.
호환 로봇 소프트웨어 버전협업(Copper): v7.5.0.0+
산업용(Bronze): v7.5.0.0+
메모USER_PROGRAMBLOCK_PROGRAM 의 경우 프로그램 이름만 지정하십시오(예: 확장자가 없는 파일 이름).

4.9.2 로봇 파일을 로컬로 다운로드

메서드 이름file_manager.download( file_name : str, file_path : str, file_type : str, overwriting : bool=False) -> StatusCodeEnum
설명로봇에서 로컬 디렉터리로 파일을 다운로드합니다.
요청 매개변수file_name : str 파일 이름.
file_path : str 로컬 저장 디렉터리.
file_type : str 파일 형식( BLOCK_PROGRAM 다운로드는 지원되지 않음).
overwriting : bool 같은 이름의 파일을 덮어씁니다.
반환 값StatusCodeEnum: 함수 실행 결과.
호환 로봇 소프트웨어 버전협업(Copper): v7.5.0.0+
산업용(Bronze): v7.5.0.0+
메모USER_PROGRAM 의 경우 프로그램 이름만 지정하십시오(예: 확장자가 없는 파일 이름). 시스템은 일치하는 .json / .xml .를 다운로드합니다. TRAJECTORY 의 경우 .trajectory 로 전체 파일 이름을 제공합니다. ROBOT_TMP 의 경우 접미사를 포함한 전체 파일 이름을 제공하세요(예: .csv ).

4.9.3 로봇에서 파일 삭제

메서드 이름file_manager.delete( file_name : str, file_type : str) -> StatusCodeEnum
설명로봇 컨트롤러에서 파일을 삭제합니다.
요청 매개변수file_name : str 파일 이름.
file_type : str 파일 형식.
반환 값StatusCodeEnum: 함수 실행 결과.
호환 로봇 소프트웨어 버전협업(Copper): v7.5.0.0+
산업용(Bronze): v7.5.0.0+
메모USER_PROGRAM / BLOCK_PROGRAM ,의 경우 프로그램 이름만 지정하십시오(예: 확장자가 없는 파일 이름). TRAJECTORY / ROBOT_TMP ,의 경우 접미사와 함께 전체 파일 이름을 제공하십시오.

4.9.4 파일 이름 패턴으로 파일 검색

메서드 이름file_manager.search( pattern : str, file_list : list) -> StatusCodeEnum
설명파일 이름 패턴과 일치하는 컨트롤러에서 파일을 검색합니다.
요청 매개변수pattern : str 파일 이름 일치 패턴입니다.
file_list : list 출력 목록(일치하는 파일 이름을 받습니다).
반환 값StatusCodeEnum: 함수 실행 결과.
호환 로봇 소프트웨어 버전협업(Copper): v7.5.0.0+
산업용(Bronze): v7.5.0.0+

예제 코드

file_manager/file_manager.py
py
#!python
"""
Copyright © 2016 Agilebot Robotics Ltd. All rights reserved.
Instruction: 文件操作, 上传下载示例 / Example of file operation, upload and download
"""

from pathlib import Path

from Agilebot import ROBOT_TMP, TRAJECTORY, USER_PROGRAM, FileManager, StatusCodeEnum

current_path = Path(__file__)
path = str(current_path)

# [ZH] 连接文件管理服务
# [EN] Connect to the file management service
file_manager = FileManager("10.27.1.254")

# [ZH] 上传其他文件
# [EN] Upload other files
tmp_file_path = path.replace("file_manager.py", "test.csv")
ret = file_manager.upload(tmp_file_path, ROBOT_TMP, True)
if ret == StatusCodeEnum.OK:
    print("文件上传成功 / File upload successful")
else:
    print(f"文件上传失败,错误代码 / File upload failed, error code: {ret.errmsg}")
    exit(1)

# [ZH] 上传程序
# [EN] Upload a program
prog_file_path = path.replace("file_manager.py", "test_prog")
ret = file_manager.upload(prog_file_path, USER_PROGRAM, True)
if ret == StatusCodeEnum.OK:
    print("程序上传成功 / Program upload successful")
else:
    print(f"程序上传失败,错误代码 / Program upload failed, error code: {ret.errmsg}")
    exit(1)

# [ZH] 上传轨迹
# [EN] Upload a trajectory
trajectory_file_path = path.replace("file_manager.py", "test_torque.trajectory")
ret = file_manager.upload(trajectory_file_path, TRAJECTORY, True)
if ret == StatusCodeEnum.OK:
    print("轨迹上传成功 / Trajectory upload successful")
else:
    print(f"轨迹上传失败,错误代码 / Trajectory upload failed, error code: {ret.errmsg}")
    exit(1)

# [ZH] 搜索文件
# [EN] Search for files
file_list = list()
ret = file_manager.search("test.csv", file_list)
if ret == StatusCodeEnum.OK:
    print("文件搜索成功 / File search successful")
else:
    print(f"文件搜索失败,错误代码 / File search failed, error code: {ret.errmsg}")
    exit(1)
print("搜索文件:", file_list)

# [ZH] 下载文件
# [EN] Download a file
download_file_path = path.replace("file_manager.py", "download")
ret = file_manager.download("test_torque", download_file_path, file_type=TRAJECTORY)
if ret == StatusCodeEnum.OK:
    print("文件下载成功 / File download successful")
else:
    print(f"文件下载失败,错误代码 / File download failed, error code: {ret.errmsg}")
    exit(1)

# [ZH] 删除文件
# [EN] Delete a file
ret = file_manager.delete("test_torque.trajectory", TRAJECTORY)
if ret == StatusCodeEnum.OK:
    print("文件删除成功 / File delete successful")
else:
    print(f"文件删除失败,错误代码 / File delete failed, error code: {ret.errmsg}")
    exit(1)