나노틱-로고

Nanotic NanoLib C++ 프로그래밍

Nanotic-NanoLib-C++-프로그래밍-제품

제품 정보

명세서

  • 제품 이름: NanoLib
  • 프로그램 작성 언어 : C++
  • 제품 버전 : 1.3.0
  • 사용자 설명서 버전: 1.4.2

NanoLib 라이브러리는 Nanotec 컨트롤러용 제어 소프트웨어를 프로그래밍하도록 설계되었습니다. 제어 애플리케이션 개발을 용이하게 하기 위해 사용자 인터페이스, 핵심 기능 및 통신 라이브러리를 제공합니다.

제품 사용 지침

  • 시작하기 전에:
    • 시스템이 설명서에 명시된 하드웨어 요구 사항을 충족하는지 확인하십시오. 이 제품의 대상 고객에는 Nanotec 컨트롤러용 제어 소프트웨어를 만들려는 개발자가 포함됩니다.
  • 시작하기:
    • NanoLib을 사용하려면 다음 단계를 따르세요.
    • 프로젝트에 NanoLib을 가져와서 시작하세요.
    • 필요에 따라 프로젝트 설정을 구성하세요.
    • NanoLib 기능을 통합하여 프로젝트를 빌드하세요.
  • 프로젝트 생성:
    • Windows와 Linux 환경 모두에 대한 프로젝트를 만들 수 있습니다. 각 플랫폼에 대한 매뉴얼에 제공된 구체적인 지침을 따르세요.
  • 클래스/함수 참조:
    • NanoLib에서 제어 소프트웨어를 프로그래밍하는 데 사용할 수 있는 클래스와 기능에 대한 자세한 안내는 사용자 설명서를 참조하세요.

자주 묻는 질문

  • 질문: NanoLib의 목적은 무엇인가요?
    • A: NanoLib은 Nanotec 컨트롤러용 제어 소프트웨어를 프로그래밍하기 위한 라이브러리로, 필수적인 기능과 통신 기능을 제공합니다.
  • 질문: NanoLib을 시작하려면 어떻게 해야 하나요?
    • A: NanoLib을 프로젝트에 가져오고, 프로젝트 설정을 구성하고, NanoLib 기능을 활용하도록 프로젝트를 빌드하는 것으로 시작합니다.

“`

NanoLib 사용자 매뉴얼
씨++

제품 버전 1.3.0에 유효

사용자 설명서 버전: 1.4.2

문서 목적 및 규칙

이 문서는 NanoLib 라이브러리의 설정 및 사용에 대해 설명하고 Nanotec 컨트롤러용 제어 소프트웨어를 프로그래밍하기 위한 모든 클래스와 기능에 대한 참조를 포함합니다. 우리는 다음과 같은 서체를 사용합니다:
밑줄이 그어진 텍스트는 상호 참조 또는 하이퍼링크를 표시합니다.
Example 1: NanoLibAccessor에 대한 정확한 지침은 설정을 참조하세요. 전ample 2: Ixxat 드라이버를 설치하고 CAN-to-USB 어댑터를 연결합니다. 기울임꼴 텍스트는 다음을 의미합니다. 이것은 명명된 개체, 메뉴 경로/항목, 탭/ file 이름 또는 (필요한 경우) 외국어 표현.
Examp르 1: 선택 File > 새로 만들기 > 빈 문서. 도구 탭을 열고 댓글을 선택하세요. 전ample 2: 이 문서는 사용자(= Nutzer; usuario; utente; utilisateur; utente 등)를 다음과 같이 나눕니다.
– 제3자 사용자(= Drittnutzer, tercero usuario, terceiro utente, tiers utilisateur, terzo utente 등). – 최종 사용자(= Endnutzer; usuario final; utente final; utilisateur final; utente finale 등).
Courier는 코드 블록이나 프로그래밍 명령을 표시합니다. 전ample 1: Bash를 통해 sudo make install을 호출하여 공유 객체를 복사합니다. 그런 다음 ldconfig를 호출하십시오. 전ample 2: NanoLib의 로깅 수준을 변경하려면 다음 NanoLibAccessor 함수를 사용하세요.
// ***** C++ 변형 *****
void setLoggingLevel(LogLevel 레벨);
굵은 텍스트는 매우 중요한 개별 단어를 강조합니다. 또는 괄호로 묶인 느낌표는 매우 중요한(!) 중요성을 강조합니다.
ExampLe 1: 자신과 다른 사람, 장비를 보호하십시오. 모든 Nanotec 제품에 일반적으로 적용되는 일반 안전 참고 사항을 따르십시오.
Example 2: 사용자 보호를 위해 이 특정 제품에 적용되는 특정 안전 참고 사항도 따르십시오. 공동 클릭이라는 동사는 상황에 맞는 메뉴 등을 열기 위해 보조 마우스 키를 통한 클릭을 의미합니다.
Example 1: 공동 클릭 file, 이름 바꾸기를 선택하고 이름을 바꿉니다. file. 전ample 2: 속성을 확인하려면 file 속성을 선택하십시오.

버전: doc 1.4.2 / NanoLib 1.3.0

4

시작하기 전에

NanoLib 사용을 시작하기 전에 PC를 준비하고 용도와 라이브러리 제한 사항에 대해 알아두십시오.
2.1 시스템 및 하드웨어 요구 사항

Nanotic-NanoLib-C++-프로그래밍-FIG- (1)
공지 32비트 작동 또는 중단된 시스템으로 인한 오작동! 64비트 시스템을 사용하고 지속적으로 유지 관리하세요. OEM 중단 및 ~지침을 준수하세요.

NanoLib 1.3.0은 CANopen, Modbus RTU(가상 com 포트의 USB도 포함), Modbus TCP, EtherCat 및 Profinet을 갖춘 모든 Nanotec 제품을 지원합니다. 이전 NanoLibs의 경우: 임프린트의 변경 로그를 참조하세요. 전적으로 귀하의 책임입니다: 레거시 시스템 사용. 참고: FTDI 기반 USB 어댑터를 사용할 때 문제가 발생하는 경우 유효한 OEM 지침에 따라 대기 시간을 최대한 낮게 설정하세요.

요구 사항(64비트 시스템 필수)
Visual Studio 10 버전 11 이상 및 Windows SDK 2019(버전 16.8) 이상이 설치된 Windows 10.0.20348.0 또는 2104
C++ 재배포 가능 패키지 2017 이상 CANopen: Ixxat VCI 또는 PCAN 기본 드라이버(선택 사항) EtherCat 모듈/Profinet DCP: Npcap 또는 WinPcap RESTful 모듈: Npcap, WinPcap 또는 관리자 권한
이더넷 부트로더와 통신
Linux w/ Ubuntu 20.04 LTS ~ 24(모두 x64 및 arm64)
커널 헤더 및 libpopt-dev 패킷 Profinet DCP: CAP_NET_ADMIN 및 CAP_NET_RAW 기능
CANopen: Ixxat ECI 드라이버 또는 Peak PCAN-USB 어댑터 EtherCat: CAP_NET_ADMIN, CAP_NET_RAW 및
CAP_SYS_NICE RESTful 기능: CAP_NET_ADMIN Eth-와 통신할 수 있는 기능
ernet 부트로더(권장: CAP_NET_RAW)

언어, 필드버스 어댑터, 케이블
C++ GCC 7 이상(Linux)
EtherCAT: 이더넷 케이블 VCP/USB 허브: 이제 USB로 통일 USB 대용량 저장소: USB 케이블 REST: 이더넷 케이블 CANopen: Ixxat USB-to-CAN V2; Na-
notec ZK-USB-CAN-1, Peak PCANUSB 어댑터 arm64에서 Ubuntu에 대한 Ixxat 지원 없음
Modbus RTU: Nanotec ZK-USB-RS485-1 또는 동급 어댑터, 가상 COM 포트(VCP)에 USB 케이블
Modbus TCP: 제품 데이터시트에 따른 이더넷 케이블

2.2 용도 및 대상
NanoLib은 광범위한 산업 응용 분야에서 숙련된 프로그래머만을 위한 Nanotec 컨트롤러의 작동 및 통신을 위한 프로그램 라이브러리 및 소프트웨어 구성 요소입니다.
실시간으로 동작하지 않는 하드웨어(PC)와 운영 체제로 인해 NanoLib은 동기식 다축 이동이 필요하거나 일반적으로 시간에 민감한 애플리케이션에는 사용할 수 없습니다.
어떠한 경우에도 NanoLib를 제품이나 시스템에 안전 구성 요소로 통합할 수 없습니다. 최종 사용자에게 배송할 때 Nanotec에서 제조한 구성 요소가 있는 각 제품에 해당 경고 공지와 안전한 사용 및 안전한 작동에 대한 지침을 추가해야 합니다. Nanotec에서 발행한 모든 경고 공지를 최종 사용자에게 직접 전달해야 합니다.
2.3 배송 범위 및 보증
NanoLib은 다운로드 시 *.zip 폴더로 제공됩니다. webEMEA/APAC 또는 AMERICA용 사이트입니다. 설정하기 전에 다운로드한 파일을 정식으로 저장하고 압축을 해제하세요. NanoLib 패키지에는 다음이 포함되어 있습니다.

버전: doc 1.4.2 / NanoLib 1.3.0

5

2 시작하기 전에

소스 코드로서의 인터페이스 헤더(API)

핵심 기능은 바이너리 형식의 라이브러리로 작동합니다: nano-

통신을 원활하게 해주는 라이브러리: nanolibm_lib.dll

[yourfieldbus].dll 등

Examp프로젝트: Example.sln(Visual Studio)

프로젝트) 및 전ample.cpp(메인 file)

보증 범위에 대해서는 a) EMEA/APAC 또는 AMERICA에 대한 이용 약관 및 b) 모든 라이선스 약관을 준수하십시오. 참고: Nanotec은 타사 장비의 결함 또는 부적절한 품질, 취급, 설치, 작동, 사용 및 유지 관리에 대해 책임을 지지 않습니다! 적절한 안전을 위해 항상 유효한 OEM 지침을 따르십시오.

버전: doc 1.4.2 / NanoLib 1.3.0

6

NanoLib 아키텍처

NanoLib의 모듈형 소프트웨어 구조를 사용하면 엄격하게 사전 구축된 코어 주위에 자유롭게 사용자 정의 가능한 모터 컨트롤러/필드버스 기능을 배열할 수 있습니다. NanoLib에는 다음 모듈이 포함되어 있습니다.

사용자 인터페이스(API)

NanoLib 코어

인터페이스 및 도우미 클래스

통신 라이브러리 Fieldbus 전용 라이브러리

컨트롤러의 API 기능 구현에 액세스하여 NanoLib 간의 인터페이스를 수행합니다.

OD(객체 사전)

버스 도서관과 상호 작용합니다.

코어 및 버스 하드웨어.

NanoLib 핵심 기능을 기반으로

이유.

3.1 사용자 인터페이스

사용자 인터페이스는 헤더 인터페이스로 구성됩니다. file컨트롤러 매개변수에 액세스하는 데 사용할 수 있습니다. 클래스/함수 참조에 설명된 사용자 인터페이스 클래스를 사용하면 다음을 수행할 수 있습니다.
하드웨어(필드버스 어댑터)와 컨트롤러 장치에 모두 연결합니다. 장치의 OD에 액세스하여 컨트롤러 매개변수를 읽고 씁니다.

3.2 NanoLib 코어

NanoLib 코어는 import 라이브러리 nanolib.lib와 함께 제공됩니다. 이는 사용자 인터페이스 기능을 구현하며 다음을 담당합니다.
통신 라이브러리를 로드하고 관리합니다. NanoLibAccessor에서 사용자 인터페이스 기능을 제공합니다. 이 통신 진입점은
NanoLib 코어 및 통신 라이브러리에서 실행할 수 있는 일련의 작업을 벌금으로 정합니다.

3.3 통신 라이브러리

Nanotec.services.nanolib.dll(선택 사항인 Plug & Drive Studio에 유용함) 외에도 NanoLib은 다음과 같은 통신 라이브러리를 제공합니다.

nanolibm_canopen.dll nanolibm_modbus.dll

nanolibm_ethercat.dll nanolibm_restful-api.dll

nanolibm_usbmmsc.dll nanolibm_profinet.dll

모든 라이브러리는 코어와 컨트롤러 사이에 하드웨어 추상화 계층을 배치합니다. 코어는 시작 시 지정된 프로젝트 폴더에서 이를 로드하고 이를 사용하여 해당 프로토콜을 통해 컨트롤러와의 통신을 설정합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

7

시작하기

운영 체제에 맞게 NanoLib을 설정하는 방법과 필요에 따라 하드웨어를 연결하는 방법을 읽어보세요.
4.1 시스템 준비
어댑터 드라이버를 설치하기 전에 먼저 운영 체제와 함께 PC를 준비하세요. Windows OS와 함께 PC를 준비하려면 C++ 확장 기능이 있는 MS Visual Studio를 설치하세요. Linux Bash로 make와 gcc를 설치하려면 sudo apt install build-essentials를 호출하세요. 그런 다음 NanoLib를 사용하는 애플리케이션에 대해 CAP_NET_ADMIN, CAP_NET_RAW 및 CAP_SYS_NICE 기능을 활성화하세요. 1. sudo setcap 'cap_net_admin,cap_net_raw,cap_sys_nice+eip'를 호출하세요.
이름>. 2. 그런 다음에만 어댑터 드라이버를 설치하십시오.
4.2 Windows용 Ixxat 어댑터 드라이버 설치
적절한 드라이버 설치 후에만 Ixxat의 USB-CAN V2 어댑터를 사용할 수 있습니다. USB 드라이브의 제품 설명서를 읽고 가상 컴포트(VCP)를 활성화하는 방법/방법을 알아보세요. 1. Windows용 Ixxat의 VCI 4 드라이버를 다운로드하여 설치하세요. www.ixxat.com. 2. Ixxat의 USB-to-CAN V2 컴팩트 어댑터를 USB를 통해 PC에 연결합니다. 3. 장치 관리자를 통해 드라이버와 어댑터가 모두 제대로 설치/인식되는지 확인합니다.
4.3 Windows용 Peak 어댑터 드라이버 설치
적절한 드라이버 설치 후에만 Peak의 PCAN-USB 어댑터를 사용할 수 있습니다. USB 드라이브의 제품 설명서를 읽고 가상 컴포트(VCP)를 활성화하는 방법/방법을 알아보세요. 1. Windows 장치 드라이버 설치 프로그램(= 장치 드라이버, 도구 및
API)에서 http://www.peak-system.com. 2. Peak의 PCAN-USB 어댑터를 USB를 통해 PC에 연결합니다. 3. 장치 관리자를 통해 드라이버와 어댑터가 모두 제대로 설치/인식되는지 확인합니다.
4.4 Linux용 Ixxat 어댑터 드라이버 설치
적절한 드라이버 설치 후에만 Ixxat의 USB-CAN V2 어댑터를 사용할 수 있습니다. 참고: 다른 지원되는 어댑터는 sudo chmod +777/dev/ttyACM* (* 장치 번호)로 권한이 필요합니다. USB 드라이브의 제품 설명서를 읽고 가상 컴포트(VCP)를 활성화해야 하는지 여부/방법을 알아보세요. 1. ECI 드라이버와 데모 애플리케이션에 필요한 소프트웨어를 설치하세요.
sudo apt-get 업데이트 apt-get 설치 libusb-1.0-0-dev libusb-0.1-4 libc6 libstdc++6 libgcc1 buildessential
2. www.ixxat.com에서 ECI-for-Linux 드라이버를 다운로드합니다. 다음을 통해 압축을 풉니다.
eci_driver_linux_amd64.zip 압축 해제
3. 다음을 통해 드라이버를 설치하세요.
cd /EciLinux_amd/src/KernelModule sudo make install-usb
4. 데모 애플리케이션을 컴파일하고 시작하여 드라이버 설치가 성공했는지 확인합니다.
cd /EciLinux_amd/src/EciDemos/ sudo make cd /EciLinux_amd/bin/release/ ./LinuxEciDemo

버전: doc 1.4.2 / NanoLib 1.3.0

8

4 시작하기
4.5 Linux용 Peak 어댑터 드라이버 설치
적절한 드라이버 설치 후에만 Peak의 PCAN-USB 어댑터를 사용할 수 있습니다. 참고: 다른 지원되는 어댑터는 sudo chmod +777/dev/ttyACM* (* 장치 번호)를 통해 권한이 필요합니다. USB 드라이브의 제품 설명서를 읽고 가상 컴포트(VCP)를 활성화하는지 여부/방법을 알아보세요. 1. Linux에 커널 헤더가 있는지 확인하세요: ls /usr/src/linux-headers-`uname -r`. 없으면 설치하세요.
2. 지금 당장 libpopt-dev 패킷을 설치합니다. sudo apt-get install libpopt-dev 3. www.peak-system.com에서 필요한 드라이버 패키지(peak-linux-driver-xxx.tar.gz)를 다운로드합니다. 4. 압축을 풀려면 다음을 사용합니다. tar xzf peak-linux-driver-xxx.tar.gz 5. 압축을 푼 폴더에서 드라이버, PCAN 기반 라이브러리 등을 컴파일하고 설치합니다. make all
sudo make install 6. 기능을 확인하려면 PCAN-USB 어댑터를 꽂으세요.
a) 커널 모듈을 확인하세요.
lsmod | grep pcan b) … 그리고 공유 라이브러리:
ls -l /usr/lib/libpcan*
참고: USB3 문제가 발생하면 USB2 포트를 사용하세요.
4.6 하드웨어 연결
NanoLib 프로젝트를 실행하려면 어댑터를 사용하여 호환되는 Nanotec 컨트롤러를 PC에 연결합니다. 1. 적합한 케이블을 사용하여 어댑터를 컨트롤러에 연결합니다. 2. 어댑터 데이터 시트에 따라 어댑터를 PC에 연결합니다. 3. 적합한 전원 공급 장치를 사용하여 컨트롤러의 전원을 켭니다. 4. 필요한 경우 제품 설명서에 따라 Nanotec 컨트롤러의 통신 설정을 변경합니다.
4.7 NanoLib 로드
빠르고 쉬운 기본 사항을 처음 시작하려면 ex를 사용할 수 있지만 사용해서는 안 됩니다.amp르 프로젝트. 1. 지역에 따라: 당사에서 NanoLib을 다운로드하세요. webEMEA/APAC 또는 AMERICA용 사이트입니다. 2. 패키지의 압축을 푼다 files / 폴더를 선택하고 옵션 하나를 선택하세요. 빠르고 쉬운 기본 사항: ex 시작을 참조하세요.ample 프로젝트. Windows에서 고급 사용자 지정: Windows 프로젝트 만들기를 참조하세요. Linux에서 고급 사용자 지정: Linux 프로젝트 만들기를 참조하세요.

버전: doc 1.4.2 / NanoLib 1.3.0

9

전 애인을 시작하다amp르 프로젝트

NanoLib이 올바르게 로드되면 examp파일 프로젝트에서는 Nanotec 컨트롤러와 함께 NanoLib을 사용하는 방법을 보여줍니다. 참고: 각 단계에 대해 제공된 예시의 설명은 다음과 같습니다.amp파일 코드는 사용된 기능을 설명합니다. 전직ample 프로젝트는 다음으로 구성됩니다: `*_functions_examp르.*' fileNanoLib 인터페이스 함수 `*_callback_ex`에 대한 구현을 포함하는 samp르.*' file다양한 콜백(scan, data 및
로깅) `menu_*.*' file메뉴 논리와 Ex 코드가 포함되어 있습니다.amp르.* file, 이는 메뉴를 생성하고 사용된 모든 매개변수를 초기화하는 주요 프로그램입니다.ampler_examp르.* file, 여기에는 ex가 포함됩니다amps에 대한 le 구현ampler 사용법. 더 많은 ex를 찾을 수 있습니다.ampnanotec.com의 Knowledge Base에서 다양한 작동 모드에 대한 일부 모션 명령이 포함된 les를 찾을 수 있습니다. 모두 Windows 또는 Linux에서 사용할 수 있습니다.
Visual Studio 1이 있는 Windows에서 Ex를 엽니다.amp르.슬른 file. 2. ex를 엽니다.ample.cpp. 3. ex를 컴파일하고 실행합니다.amp코드.
Linux에서 Bash를 통해 1. 소스 압축 해제 file, 압축 해제된 콘텐츠가 있는 폴더로 이동합니다. 주요 file 전직을 위해amp르이다
example.cpp. 2. bash에서 다음을 호출합니다.
a. 공유 객체를 복사하고 ldconfig를 호출하기 위한 “sudo make install”. b. 테스트 실행 파일을 빌드하기 위한 “make all”. 3. bin 폴더에는 실행 파일 ex가 들어 있습니다.ample filebash를 사용하여: 출력 폴더로 이동하여 ./ex를 입력합니다.ample. 오류가 발생하지 않으면 공유 객체가 이제 제대로 설치되었으며 라이브러리를 사용할 준비가 되었습니다. 오류가 ./ex로 표시되면ample: 공유 라이브러리를 로드하는 동안 오류가 발생했습니다: libnanolib.so: 공유 객체를 열 수 없습니다 file: 그런 것이 없습니다 file 또는 디렉토리, 공유 객체의 설치가 실패했습니다. 이 경우 다음 단계를 따르세요. 4. /usr/local/lib 내에 새 폴더를 만듭니다(관리자 권한 필요). bash에 다음과 같이 입력합니다.
sudo mkdir /usr/local/lib/nanotec
5. zip에서 공유된 모든 객체를 복사합니다. file's lib 폴더:
./lib/*.so /usr/local/lib/nanotec/을 설치합니다.
6. 다음을 사용하여 대상 폴더의 내용을 확인하세요.
ls -al /usr/local/lib/나노텍/
공유 객체를 나열해야 합니다. filelib 폴더에서 s. 7. 이 폴더에서 ldconfig를 실행합니다.
sudo ldconfig /usr/local/lib/nanotec/
전직ample는 CLI 애플리케이션으로 구현되고 메뉴 인터페이스를 제공합니다. 메뉴 항목은 컨텍스트 기반이며 컨텍스트 상태에 따라 활성화되거나 비활성화됩니다. 컨트롤러를 처리하기 위한 일반적인 워크플로에 따라 다양한 라이브러리 함수를 선택하고 실행할 수 있는 가능성을 제공합니다. 1. PC에서 연결된 하드웨어(어댑터)를 확인하고 나열합니다. 2. 어댑터에 연결을 설정합니다. 3. 버스에서 연결된 컨트롤러 장치를 스캔합니다. 4. 장치에 연결합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

10

5 전직 시작하기amp르 프로젝트
5. 라이브러리 기능 중 하나 이상을 테스트합니다. 컨트롤러의 객체 사전에서 읽기/쓰기, 펌웨어 업데이트, NanoJ 프로그램 업로드 및 실행, 모터를 작동시키고 조정, 로깅을 구성 및 사용합니다.amp러.
6. 먼저 장치와의 연결을 닫고, 그다음 어댑터와의 연결을 닫습니다.

버전: doc 1.4.2 / NanoLib 1.3.0

11

나만의 Windows 프로젝트 만들기

NanoLib을 사용하려면 Windows 프로젝트를 직접 만들고, 컴파일하고 실행해야 합니다.
6.1 NanoLib 가져오기
NanoLib 헤더 가져오기 fileMS Visual Studio를 통해 s 및 라이브러리를 제공합니다.
1. Visual Studio를 엽니다. 2. 새 프로젝트 만들기 > 콘솔 앱 C++ > 다음을 통해 프로젝트 유형을 선택합니다. 3. 솔루션 탐색기에서 프로젝트 폴더를 만들려면 프로젝트 이름을 지정합니다(여기서는 NanolibTest). 4. 마침을 선택합니다. 5. 창을 엽니다. file 탐색기를 열고 새로 만든 프로젝트 폴더로 이동합니다. 6. inc 및 lib라는 두 개의 새 폴더를 만듭니다. 7. NanoLib 패키지 폴더를 엽니다. 8. 거기에서: 헤더를 복사합니다. fileinclude 폴더의 s와 모든 .lib 및 .dll을 프로젝트 폴더 inc로 옮기세요.
files를 새 프로젝트 폴더 lib에 추가합니다. 9. 예를 들어 프로젝트 폴더의 구조가 올바른지 확인합니다.amp르 :

Nanotic-NanoLib-C++-프로그래밍-FIG- (2)적절한 구조를 위한 ect 폴더:
. NanolibTest inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result_od_entry.hpp lib nanolibm_canopen.dll nanolib.dll … nanolib.lib NanolibTest.cpp NanolibTest.vcxproj NanolibTest.vcxproj.filters NanolibTest.vcxproj.user NanolibTest.sln
6.2 프로젝트 구성
MS Visual Studio의 솔루션 탐색기를 사용하여 NanoLib 프로젝트를 설정합니다. 참고: 올바른 NanoLib 작동을 위해 Visual C++ 프로젝트 설정에서 릴리스(디버그 아님!) 구성을 선택한 다음 C++ 재배포 가능 패키지의 VC 런타임으로 프로젝트를 빌드하고 연결합니다[2022].
1. 솔루션 탐색기에서: 프로젝트 폴더로 이동합니다(여기서는 NanolibTest).2. 폴더를 공동 클릭하여 상황에 맞는 메뉴를 엽니다.3. 속성을 선택합니다.4. 모든 구성 및 모든 플랫폼을 활성화합니다.5. C/C++를 선택하고 추가 포함 디렉터리로 이동합니다.6. 삽입: $(ProjectDir)Nanolib/includes;%(AdditionalIncludeDirectories) 7. 링커를 선택하고 추가 라이브러리 디렉터리로 이동합니다.8. 삽입: $(ProjectDir)Nanolib;%(AdditionalLibraryDirectories) 9. 링커를 확장하고 입력을 선택합니다.10. 추가 종속성으로 이동하여 삽입: nanolib.lib;%(AdditionalDependencies) 11. 확인을 클릭하여 확인합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

12

6. 나만의 Windows 프로젝트 만들기
12. 구성 > C++ > 언어 > 언어 표준 > ISO C++17 표준으로 이동하고 언어 표준을 C++17(/std:c++17)로 설정합니다.
6.3 프로젝트 빌드
MS Visual Studio에서 NanoLib 프로젝트를 빌드합니다. 1. 메인 *.cpp를 엽니다. file (여기: nanolib_example.cpp)를 선택하고 필요한 경우 코드를 편집합니다. 2. 빌드 > 구성 관리자를 선택합니다. 3. 활성 솔루션 플랫폼을 x64로 변경합니다. 4. 닫기를 통해 확인합니다. 5. 빌드 > 솔루션 빌드를 선택합니다. 6. 오류가 없습니까? 컴파일 출력이 제대로 보고되는지 확인합니다.
1>—— 정리 시작: 프로젝트: NanolibTest, 구성: 디버그 x64 —–========== 정리: 1개 성공, 0개 실패, 0개 건너뜀 ==========

버전: doc 1.4.2 / NanoLib 1.3.0

13

7. 자신의 Linux 프로젝트 만들기
7. 자신의 Linux 프로젝트 만들기
NanoLib을 사용하기 위해 자신의 Linux 프로젝트를 만들고, 컴파일하고, 실행합니다. 1. 압축 해제된 NanoLib 설치 키트에서: 열기 /nanotec_nanolib. 2. tar.gz에 있는 모든 공유 객체를 찾습니다. file. 3. 옵션 중 하나를 선택하세요: 각 라이브러리를 Make로 설치하세요.file 또는 손으로.
7.1 Make를 사용하여 공유 객체 설치file
사용하다file Linux Bash를 사용하여 모든 기본 *.so를 자동 설치 files. 1. Bash를 통해: make가 포함된 폴더로 이동합니다.file. 2. 다음을 통해 공유 객체를 복사합니다.
sudo make install 3. 다음을 통해 확인:
ldconfig
7.2 공유 객체를 수동으로 설치
Bash를 사용하여 모든 *.so를 설치하세요 fileNanoLib의 s를 수동으로 설치합니다. 1. Bash를 통해: /usr/local/lib 내에 새 폴더를 만듭니다. 2. 관리자 권한이 필요합니다! 다음을 입력합니다.
sudo mkdir /usr/local/lib/nanotec 3. 압축 해제된 설치 패키지 폴더로 변경합니다. 4. 다음을 통해 lib 폴더에서 모든 공유 객체를 복사합니다.
./nanotec_nanolib/lib/*.so /usr/local/lib/nanotec/를 설치합니다. 5. 다음을 통해 대상 폴더의 내용을 확인합니다.
ls -al /usr/local/lib/nanotec/ 6. lib 폴더의 모든 공유 객체가 나열되어 있는지 확인합니다. 7. 다음을 통해 이 폴더에서 ldconfig를 실행합니다.
sudo ldconfig /usr/local/lib/nanotec/
7.3 프로젝트 생성
공유 객체가 설치되면: Linux NanoLib에 대한 새 프로젝트를 만듭니다. 1. Bash를 통해: 다음을 통해 새 프로젝트 폴더(여기서는 NanoLibTest)를 만듭니다.
mkdir NanoLibTest cd NanoLibTest
2. 헤더를 복사합니다. files를 포함 폴더로(여기서는 inc)로: mkdir inc cp / FILE IS>/나노텍_나노리브/inc/*.hpp inc
3. 메인을 생성하세요 file (NanoLibTest.cpp) 다음을 통해: #include “accessor_factory.hpp” #include

버전: doc 1.4.2 / NanoLib 1.3.0

14

7. 자신의 Linux 프로젝트 만들기
int main(){ nlc::NanoLibAccessor *accessor = getNanoLibAccessor();
nlc::ResultBusHwIds 결과 = accessor->listAvailableBusHardware();
결과에 오류가 있으면 std::cout << result.getError() << std::endl;
else{ std::cout << “성공” << std::endl; }
접근자 삭제; 0 반환; }
4. 프로젝트 폴더의 적절한 구조를 확인하세요.

Nanotic-NanoLib-C++-프로그래밍-FIG- (3)
. 나노립테스트
inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result.hpp NanoLibTest.cpp
7.4 프로젝트 컴파일 및 테스트
Bash를 통해 Linux NanoLib을 사용할 수 있도록 준비하세요.
1. Bash를 통해: 메인 컴파일 file 을 통해:
g++ -Wall -Wextra -pedantic -I./inc -c NanoLibTest.cpp -o NanoLibTest
2. 다음을 통해 실행 파일을 연결합니다.
g++ -Wall -Wextra -pedantic -I./inc -o 테스트 NanoLibTest.o L/usr/local/lib/nanotec -lnanolib -ldl
3. 다음을 통해 테스트 프로그램을 실행합니다.
./시험
4. Bash가 제대로 보고하는지 확인하세요:
성공

버전: doc 1.4.2 / NanoLib 1.3.0

15

8 클래스/함수 참조

8 클래스/함수 참조

NanoLib의 사용자 인터페이스 클래스와 해당 멤버 함수 목록을 여기에서 찾아보세요. 함수에 대한 일반적인 설명에는 짧은 소개, 함수 정의 및 매개변수/반환 목록이 포함됩니다.

ExampleFunction () 함수가 수행하는 작업을 간략하게 설명합니다.
가상 무효 nlc::NanoLibAccessor::ExampleFunction(Param_a const & param_a, Param_b const & param_B)

매개변수 param_a param_b
ResultVoid를 반환합니다.

필요한 경우 추가 의견. 필요한 경우 추가 의견.

8.1 NanoLib접근자

NanoLib의 진입점으로 사용되는 인터페이스 클래스입니다. 일반적인 작업 흐름은 다음과 같습니다.
1. NanoLibAccessor.listAvailableBusHardware()를 사용하여 하드웨어 검색을 시작합니다. 2. BusHardwareOptions()를 사용하여 통신 설정을 지정합니다. 3. NanoLibAccessor.openBusHardwareWithProtocol()을 사용하여 하드웨어 연결을 엽니다. 4. NanoLibAccessor.scanDevices()를 사용하여 연결된 장치의 버스를 검색합니다. 5. NanoLibAccessor.addDevice()를 사용하여 장치를 추가합니다. 6. NanoLibAccessor.connectDevice()를 사용하여 장치에 연결합니다. 7. 작업이 끝나면 NanoLibAccessor.disconnectDevice()를 사용하여 장치 연결을 끊습니다. 8. NanoLibAccessor.removeDevice()를 사용하여 장치를 제거합니다. 9. NanoLibAccessor.closeBusHardware()를 사용하여 하드웨어 연결을 닫습니다.
NanoLibAccessor에는 다음과 같은 공개 멤버 기능이 있습니다.

listAvailableBusHardware() 사용 가능한 필드버스 하드웨어를 나열하려면 이 함수를 사용합니다.
가상 ResultBusHwIds nlc::NanoLibAccessor::listAvailableBusHardware()

ResultBusHwId를 반환합니다.

Fieldbus ID 배열을 제공합니다.

openBusHardwareWithProtocol() 이 함수를 사용하여 버스 하드웨어를 연결합니다.
가상 ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol(BusHardwareId const & busHwId, BusHardwareOptions const & busHwOpt)

매개변수busHwIdbusHwOpt
ResultVoid를 반환합니다.

열려는 필드버스를 지정합니다. 필드버스 열기 옵션을 지정합니다. void 함수가 실행되었는지 확인합니다.

isBusHardwareOpen() 이 함수를 사용하여 Fieldbus 하드웨어 연결이 열려 있는지 확인합니다.
가상 ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol(const BusHardwareId 및 busHwId, const BusHardwareOptions 및 busHwOpt)

버전: doc 1.4.2 / NanoLib 1.3.0

16

8 클래스/함수 참조

매개변수 BusHardwareId는 true를 반환합니다.
거짓

열려는 각 필드버스를 지정합니다. 하드웨어가 열려 있습니다. 하드웨어가 닫혀 있습니다.

getProtocolSpecificAccessor () 이 함수를 사용하여 프로토콜별 접근자 개체를 가져옵니다.
가상 ResultVoid nlc::NanoLibAccessor::getProtocolSpecificAccessor(BusHardwareId const & busHwId)

매개변수busHwId는 ResultVoid를 반환합니다.

접근자를 가져올 필드버스를 지정합니다. void 함수가 실행되었는지 확인합니다.

getProfinetDCP () Profinet DCP 인터페이스에 대한 참조를 반환하려면 이 함수를 사용합니다.
가상 ProfinetDCP 및 getProfinetDCP()

ProfinetDCP 반환

겟스amplerInterface() 이 함수를 사용하여 s에 대한 참조를 얻습니다.amp인터페이스.
가상 Sampler인터페이스 & getSamp러인터페이스()

S를 반환합니다.ampler인터페이스

을 참조한다ampler 인터페이스 클래스.

setBusState() 이 함수를 사용하여 버스 프로토콜별 상태를 설정합니다.
가상 ResultVoid nlc::NanoLibAccessor::setBusState(const BusHardwareId & busHwId, const std::string & state)

매개변수busHwId 상태
ResultVoid를 반환합니다.

열려는 필드버스를 지정합니다. 버스별 상태를 문자열 값으로 할당합니다. void 함수가 실행되었는지 확인합니다.

scanDevices () 이 함수를 사용하여 네트워크에서 장치를 검색합니다.
가상 ResultDeviceIds nlc::NanoLibAccessor::scanDevices(const BusHardwareId & busHwId, NlcScanBusCallback* 콜백)

매개변수busHwId 콜백
ResultDeviceIds IOError를 반환합니다.

스캔할 필드버스를 지정합니다. NlcScanBusCallback 진행 추적기. 장치 ID 배열을 전달합니다. 장치를 찾을 수 없음을 알립니다.

버전: doc 1.4.2 / NanoLib 1.3.0

17

8 클래스/함수 참조

addDevice() 장치 추가
이 함수를 사용하여 deviceId로 설명되는 버스 장치를 NanoLib의 내부 장치 목록에 추가하고 해당 장치에 대한 deviceHandle을 반환합니다.
가상 ResultDeviceHandle nlc::NanoLibAccessor::addDevice(DeviceId const & deviceId)

매개변수 deviceId는 ResultDeviceHandle을 반환합니다.

목록에 추가할 장치를 지정합니다. 장치 핸들을 전달합니다.

connectDevice () 이 함수를 사용하여 deviceHandle로 장치를 연결합니다.
가상 ResultVoid nlc::NanoLibAccessor::connectDevice(DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultVoid를 반환합니다.
IO오류

NanoLib이 연결되는 버스 장치를 지정합니다. void 함수가 실행되었는지 확인합니다. 장치를 찾을 수 없음을 알립니다.

getDeviceName () 이 함수를 사용하여 deviceHandle로 장치 이름을 가져옵니다.
가상 ResultString nlc::NanoLibAccessor::getDeviceName(DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultString을 반환합니다.

NanoLib이 이름을 얻는 버스 장치를 지정합니다. 장치 이름을 문자열로 전달합니다.

getDeviceProductCode () deviceHandle로 장치의 제품 코드를 가져오려면 이 함수를 사용합니다.
가상 ResultInt nlc::NanoLibAccessor::getDeviceProductCode(DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultInt를 반환합니다.

NanoLib이 제품 코드를 가져오는 버스 장치를 지정합니다. 제품 코드를 정수로 제공합니다.

getDeviceVendorId () 이 함수를 사용하여 deviceHandle로 장치 공급업체 ID를 가져옵니다.
가상 ResultInt nlc::NanoLibAccessor::getDeviceVendorId(DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultInt를 반환합니다.
리소스사용 불가

NanoLib이 공급업체 ID를 가져오는 버스 장치를 지정합니다. 공급업체 ID를 정수로 전달합니다. 데이터가 발견되지 않았음을 알립니다.

버전: doc 1.4.2 / NanoLib 1.3.0

18

8 클래스/함수 참조

getDeviceId () NanoLib 내부 목록에서 특정 장치의 ID를 가져오려면 이 함수를 사용합니다.
가상 ResultDeviceId nlc::NanoLibAccessor::getDeviceId (DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultDeviceId를 반환합니다.

NanoLib이 장치 ID를 가져오는 버스 장치를 지정합니다. 장치 ID를 전달합니다.

getDeviceIds () NanoLib 내부 목록에서 모든 장치의 ID를 가져오려면 이 함수를 사용합니다.
가상 ResultDeviceIds nlc::NanoLibAccessor::getDeviceIds()

ResultDeviceId를 반환합니다.

장치 ID 목록을 전달합니다.

getDeviceUid () 이 함수를 사용하여 deviceHandle로 장치의 고유 ID(96비트/12바이트)를 가져옵니다.
가상 ResultArrayByte nlc::NanoLibAccessor::getDeviceUid(DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultArrayByte를 반환합니다.
리소스사용 불가

NanoLib이 고유 ID를 가져오는 버스 장치를 지정합니다. 고유 ID를 바이트 배열로 제공합니다. 데이터가 발견되지 않았음을 알립니다.

getDeviceSerialNumber () 이 함수를 사용하여 deviceHandle로 장치의 일련번호를 가져옵니다.
가상 ResultString NanolibAccessor::getDeviceSerialNumber(DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultString을 반환합니다.
리소스사용 불가

NanoLib이 일련 번호를 가져오는 버스 장치를 지정합니다. 일련번호를 문자열로 전달합니다. 데이터가 발견되지 않았음을 알립니다.

getDeviceHardwareGroup () 이 함수를 사용하여 deviceHandle로 버스 장치의 하드웨어 그룹을 가져옵니다.
가상 ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareGroup(DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultInt를 반환합니다.

NanoLib이 하드웨어 그룹을 가져오는 버스 장치를 지정합니다.
하드웨어 그룹을 정수로 제공합니다.

getDeviceHardwareVersion () 이 함수를 사용하여 deviceHandle로 버스 장치의 하드웨어 버전을 가져옵니다.
가상 ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareVersion(DeviceHandle const deviceHandle)

버전: doc 1.4.2 / NanoLib 1.3.0

19

8 클래스/함수 참조

매개변수 deviceHandle

보고

ResultString 리소스를 사용할 수 없습니다.

NanoLib이 하드웨어 버전을 가져오는 버스 장치를 지정합니다. 장치 이름을 문자열로 전달합니다. 데이터가 발견되지 않았음을 알립니다.

getDeviceFirmwareBuildId () 이 함수를 사용하여 deviceHandle로 버스 장치의 펌웨어 빌드 ID를 가져옵니다.
가상 ResultDeviceId nlc::NanoLibAccessor::getDeviceFirmwareBuildId(DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultString을 반환합니다.

NanoLib이 펌웨어 빌드 ID를 가져오는 버스 장치를 지정합니다.
장치 이름을 문자열로 전달합니다.

getDeviceBootloaderVersion () 이 함수를 사용하여 deviceHandle로 버스 장치의 부트로더 버전을 가져옵니다.
가상 ResultInt nlc::NanoLibAccessor::getDeviceBootloaderVersion(DeviceHandle const deviceHandle)

매개변수 deviceHandle

보고

ResultInt 리소스를 사용할 수 없음

NanoLib이 부트로더 버전을 가져오는 버스 장치를 지정합니다. 부트로더 버전을 정수로 제공합니다. 데이터가 발견되지 않았음을 알립니다.

getDeviceBootloaderBuildId () 이 함수를 사용하여 deviceHandle로 버스 장치의 부트로더 빌드 ID를 가져옵니다.
가상 ResultDeviceId nlc::NanoLibAccessor:: (DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultString을 반환합니다.

NanoLib이 부트로더 빌드 ID를 가져오는 버스 장치를 지정합니다.
장치 이름을 문자열로 전달합니다.

bootDevice () deviceHandle로 장치를 재부팅하려면 이 함수를 사용하십시오.
가상 ResultVoid nlc::NanoLibAccessor::rebootDevice (const DeviceHandle deviceHandle)

매개변수 deviceHandle은 ResultVoid를 반환합니다.

재부팅할 필드버스를 지정합니다. void 함수가 실행되었는지 확인합니다.

getDeviceState () 이 함수를 사용하여 장치 프로토콜별 상태를 가져옵니다.
가상 ResultString nlc::NanoLibAccessor::getDeviceState(DeviceHandle const deviceHandle)

매개변수 deviceHandle

NanoLib이 상태를 가져오는 버스 장치를 지정합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

20

8 클래스/함수 참조

결과 문자열을 반환합니다.

장치 이름을 문자열로 전달합니다.

setDeviceState() 이 함수를 사용하여 장치 프로토콜별 상태를 설정합니다.
가상 ResultVoid nlc::NanoLibAccessor::setDeviceState (const DeviceHandle deviceHandle, const std::string & state)

매개변수 deviceHandle 상태
ResultVoid를 반환합니다.

NanoLib이 상태를 설정하는 버스 장치를 지정합니다. 버스별 상태를 문자열 값으로 할당합니다. void 함수가 실행되었는지 확인합니다.

getConnectionState()
이 함수를 사용하면 deviceHandle(= Disconnected, Connected, ConnectedBootloader)을 통해 특정 장치의 마지막으로 알려진 연결 상태를 가져올 수 있습니다.
가상 ResultConnectionState nlc::NanoLibAccessor::getConnectionState (DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultConnectionState를 반환합니다.

NanoLib이 연결 상태를 가져오는 버스 장치를 지정합니다.
연결 상태(= 연결 끊김, 연결됨, ConnectedBootloader)를 전달합니다.

연결 상태 확인()
마지막으로 알려진 상태가 Disconnected가 아닌 경우에만: 이 함수를 사용하여 deviceHandle 및 여러 모드별 작업을 테스트하여 특정 장치의 연결 상태를 확인하고 가능하면 업데이트합니다.
가상 ResultConnectionState nlc::NanoLibAccessor::checkConnectionState (DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultConnectionState를 반환합니다.

NanoLib이 연결 상태를 확인하는 버스 장치를 지정합니다.
연결 상태(= 연결 끊김 아님)를 전달합니다.

AssignObjectDictionary () 이 수동 함수를 사용하여 개체 사전(OD)을 deviceHandle에 직접 할당할 수 있습니다.
가상 ResultObjectDictionary nlc::NanoLibAccessor::assignObjectDictionary (DeviceHandle const deviceHandle, ObjectDictionary const & objectDictionary)

매개변수 deviceHandle objectDictionary
ResultObjectDictionary를 반환합니다.

NanoLib이 OD를 할당하는 버스 장치를 지정합니다. 개체 사전의 속성을 표시합니다.

autoAssignObjectDictionary()
NanoLib이 OD(객체 사전)를 deviceHandle에 할당하도록 하려면 이 자동 기능을 사용하세요. 적합한 OD를 찾아 로드하면 NanoLib이 자동으로 이를 장치에 할당합니다. 참고: 호환 가능한 OD가 개체 라이브러리에 이미 로드된 경우 NanoLib은 제출된 디렉터리를 스캔하지 않고 자동으로 이를 사용합니다.
가상 ResultObjectDictionary nlc::NanoLibAccessor::autoAssignObjectDictionary(DeviceHandle const deviceHandle, const std::string & dictionariesLocationPath)

버전: doc 1.4.2 / NanoLib 1.3.0

21

8 클래스/함수 참조

매개변수 deviceHandle

보고

사전위치경로 결과객체사전

NanoLib이 적합한 OD를 자동으로 검색할 버스 장치를 지정합니다. OD 디렉터리의 경로를 지정합니다. 개체 사전의 속성을 표시합니다.

getAssignedObjectDictionary()
이 함수를 사용하면 deviceHandle에 의해 장치에 할당된 개체 사전을 가져올 수 있습니다.
가상 ResultObjectDictionary nlc::NanoLibAccessor::getAssignedObjectDictionary(DeviceHandle const 장치
핸들)

매개변수 deviceHandle은 ResultObjectDictionary를 반환합니다.

NanoLib이 할당된 OD를 가져오는 버스 장치를 지정합니다. 개체 사전의 속성을 표시합니다.

getObjectDictionaryLibrary () 이 함수는 OdLibrary 참조를 반환합니다.
가상 OdLibrary& nlc::NanoLibAccessor::getObjectDictionaryLibrary()

OdLibrary&를 반환합니다.

전체 OD 라이브러리와 해당 개체 사전을 엽니다.

setLoggingLevel() 이 함수를 사용하여 필요한 로그 세부 정보(및 로그)를 설정합니다. file 크기). 기본 수준은 정보입니다.
가상 void nlc::NanoLibAccessor::setLoggingLevel(LogLevel 수준)

매개변수 수준

다음과 같은 로그 세부정보가 가능합니다.

0 = 추적 1 = 디버그 2 = 정보 3 = 경고 4 = 오류 5 = 위험 6 = 꺼짐

가장 낮은 수준(가장 큰 로그 file); 가능한 모든 세부 사항과 소프트웨어 시작/중지를 기록합니다. 디버그 정보(= 중간 결과, 전송 또는 수신된 콘텐츠 등)를 기록합니다. 기본 수준. 정보 메시지를 기록합니다. 발생한 문제를 기록하지만 현재 알고리즘을 중지하지는 않습니다. 알고리즘을 중지시킨 심각한 문제만 기록합니다. 최고 수준(가장 작은 로그 file); 로그를 끕니다. 더 이상 로그가 없습니다. 전혀 로깅이 없습니다.

setLoggingCallback()
이 함수를 사용하면 로깅 콜백 포인터와 해당 콜백에 대한 로깅 모듈(=라이브러리)을 설정할 수 있습니다(로거 자체는 아님).
가상 void nlc::NanoLibAccessor::setLoggingCallback (NlcLoggingCallback* 콜백, const nlc::LogModule & logModule)

매개변수 *콜백 logModule

콜백 포인터를 설정합니다. 콜백(로거 아님!)을 라이브러리에 맞춥니다.

0 = 나노리브코어 1 = 나노리브CANopen 2 = 나노리브모드버스 3 = 나노리브이더캣

NanoLib의 코어에 대한 콜백만 활성화합니다. CANopen 전용 콜백을 활성화합니다. Modbus 전용 콜백을 활성화합니다. EtherCAT 전용 콜백을 활성화합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

22

8 클래스/함수 참조

4 = 나노리브레스트 5 = 나노리브USB

REST 전용 콜백을 활성화합니다. USB 전용 콜백을 활성화합니다.

unsetLoggingCallback () 이 함수를 사용하여 로깅 콜백 포인터를 취소합니다.
가상 무효 nlc::NanoLibAccessor::unsetLoggingCallback()

readNumber () 이 함수를 사용하여 객체 사전에서 숫자 값을 읽습니다.
가상 ResultInt nlc::NanoLibAccessor::readNumber(const DeviceHandle deviceHandle, const OdIndex odIndex)

매개변수 deviceHandle odIndex
ResultInt를 반환합니다.

NanoLib이 읽는 버스 장치를 지정합니다. 읽을 (하위) 인덱스를 지정합니다. 해석되지 않은 숫자 값을 제공합니다(부호 있음, 부호 없음, 수정 16.16비트 값 가능).

readNumberArray () 이 함수를 사용하여 객체 사전에서 숫자 배열을 읽습니다.
가상 ResultArrayInt nlc::NanoLibAccessor::readNumberArray(const DeviceHandle deviceHandle, const uint16_t index)

매개변수 deviceHandle 인덱스
ResultArrayInt를 반환합니다.

NanoLib이 읽는 버스 장치를 지정합니다. 배열 객체 인덱스. 정수 배열을 제공합니다.

readBytes () 이 함수를 사용하여 객체 사전에서 임의의 바이트(도메인 객체 데이터)를 읽습니다.
가상 ResultArrayByte nlc::NanoLibAccessor::readBytes(const DeviceHandle deviceHandle, const OdIndex odIndex)

매개변수 deviceHandle odIndex
ResultArrayByte를 반환합니다.

NanoLib이 읽는 버스 장치를 지정합니다. 읽을 (하위) 인덱스를 지정합니다. 바이트 배열을 제공합니다.

readString () 이 함수를 사용하여 개체 디렉터리에서 문자열을 읽습니다.
가상 ResultString nlc::NanoLibAccessor::readString (const DeviceHandle deviceHandle, const OdIndex odIndex)

매개변수 deviceHandle odIndex
결과 문자열을 반환합니다.

NanoLib이 읽는 버스 장치를 지정합니다. 읽을 (하위) 인덱스를 지정합니다. 장치 이름을 문자열로 전달합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

23

8 클래스/함수 참조

writeNumber () 이 함수를 사용하여 개체 디렉터리에 숫자 값을 씁니다.
가상 ResultVoid nlc::NanoLibAccessor::writeNumber(const DeviceHandle deviceHandle, int64_t value, const OdIndex odIndex, unsigned int bitLength)

매개변수 deviceHandle 값 odIndex bitLength
ResultVoid를 반환합니다.

NanoLib이 쓰는 버스 장치를 지정합니다. 해석되지 않은 값(부호 있음, 부호 없음, 수정 16.16 가능) 읽을 (하위) 인덱스를 지정합니다. 길이(비트)입니다. void 함수가 실행되었는지 확인합니다.

writeBytes() 이 함수를 사용하여 임의 바이트(도메인 개체 데이터)를 개체 디렉터리에 씁니다.
가상 ResultVoid nlc::NanoLibAccessor::writeBytes(const DeviceHandle deviceHandle, const std::vector & 데이터, const OdIndex odIndex)

매개변수 deviceHandle 데이터 odIndex
ResultVoid를 반환합니다.

NanoLib이 쓰는 버스 장치를 지정합니다. 바이트 벡터/배열. 읽을 (하위) 인덱스를 지정합니다. void 함수가 실행되었는지 확인합니다.

펌웨어 업로드()
이 기능을 사용하여 컨트롤러 펌웨어를 업데이트하세요.
가상 ResultVoid nlc::NanoLibAccessor::uploadFirmware (const DeviceHandle deviceHandle, const std::vector & fwData, NlcDataTransferCallback* 콜백)

매개변수 deviceHandle fwData NlcDataTransferCallback
ResultVoid를 반환합니다.

NanoLib이 업데이트하는 버스 장치를 지정합니다. 펌웨어 데이터가 포함된 배열입니다. 데이터 진행 추적기. void 함수가 실행되었는지 확인합니다.

업로드펌웨어에서File ()
이 기능을 사용하면 컨트롤러 펌웨어를 업로드하여 업데이트할 수 있습니다. file.
가상 ResultVoid nlc::NanoLibAccessor::uploadFirmwareFromFile (const DeviceHandle 장치 핸들, const std::string & 절대File경로, NlcDataTransferCallback* 콜백)

매개변수 deviceHandle 절대값File경로 NlcDataTransferCallback
ResultVoid를 반환합니다.

NanoLib이 업데이트하는 버스 장치를 지정합니다. 경로 file 펌웨어 데이터(std::string)를 포함합니다. 데이터 진행 추적기. void 함수가 실행되었는지 확인합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

24

8 클래스/함수 참조

부트로더 업로드()
이 기능을 사용하여 컨트롤러 부트로더를 업데이트하세요.
가상 ResultVoid nlc::NanoLibAccessor::uploadBootloader(const DeviceHandle deviceHandle, const std::vector & btData, NlcDataTransferCallback* 콜백)

매개변수 deviceHandle btData NlcDataTransferCallback
ResultVoid를 반환합니다.

NanoLib이 업데이트하는 버스 장치를 지정합니다. 부트로더 데이터가 포함된 배열입니다. 데이터 진행 추적기. void 함수가 실행되었는지 확인합니다.

업로드부트로더다음에서File ()
이 기능을 사용하면 컨트롤러 부트로더를 업로드하여 업데이트할 수 있습니다. file.
가상 ResultVoid nlc::NanoLibAccessor::uploadBootloaderFromFile (const DeviceHandle 장치 핸들, const std::string & 부트로더 절대File경로, NlcDataTransferCallback* 콜백)

매개변수 deviceHandle bootloaderAbsoluteFile경로 NlcDataTransferCallback
ResultVoid를 반환합니다.

NanoLib이 업데이트하는 버스 장치를 지정합니다. 경로 file 부트로더 데이터(std::string)를 포함합니다. 데이터 진행 추적기. void 함수가 실행되었는지 확인합니다.

uploadBootloaderFirmware()
이 기능을 사용하면 컨트롤러 부트로더와 펌웨어를 업데이트할 수 있습니다.
가상 ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmware (const DeviceHandle deviceHandle, const std::vector & btData, const std::vector & fwData, NlcDataTransferCallback* 콜백)

매개변수 deviceHandle btData fwData NlcDataTransferCallback
ResultVoid를 반환합니다.

NanoLib이 업데이트하는 버스 장치를 지정합니다. 부트로더 데이터가 포함된 배열입니다. 펌웨어 데이터가 포함된 배열입니다. 데이터 진행 추적기. void 함수가 실행되었는지 확인합니다.

업로드부트로더펌웨어에서File ()
이 기능을 사용하면 컨트롤러 부트로더와 펌웨어를 업데이트할 수 있습니다. files.
가상 ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmwareFromFile (const DeviceHandle 장치 핸들, const std::string & 부트로더 절대File경로, const std::string & absoluteFile경로, NlcDataTransferCallback* 콜백)

매개변수 deviceHandle bootloaderAbsoluteFile절대 경로File경로 NlcDataTransferCallback
ResultVoid를 반환합니다.

NanoLib이 업데이트하는 버스 장치를 지정합니다. 경로 file 부트로더 데이터(std::string)를 포함합니다. 경로 file 펌웨어 데이터(uint8_t)를 포함합니다. 데이터 진행 추적기. void 함수가 실행되었는지 확인합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

25

8 클래스/함수 참조

업로드NanoJ()
이 공개 함수를 사용하여 NanoJ 프로그램을 컨트롤러에 업로드합니다.
가상 ResultVoid nlc::NanoLibAccessor::uploadNanoJ (DeviceHandle const deviceHandle, std::vector const & vmmData, NlcDataTransferCallback* 콜백)

매개변수 deviceHandle vmmData NlcDataTransferCallback
ResultVoid를 반환합니다.

NanoLib이 업로드할 버스 장치를 지정합니다. NanoJ 데이터가 포함된 배열입니다. 데이터 진행 추적기. void 함수가 실행되었는지 확인합니다.

업로드NanoJ에서File ()
이 공개 기능을 사용하여 NanoJ 프로그램을 컨트롤러에 업로드합니다. file.
가상 ResultVoid nlc::NanoLibAccessor::uploadNanoJFromFile (const DeviceHandle 장치 핸들, const std::string & 절대File경로, NlcDataTransferCallback* 콜백)

매개변수 deviceHandle 절대값File경로 NlcDataTransferCallback
ResultVoid를 반환합니다.

NanoLib이 업로드할 버스 장치를 지정합니다. 경로 file NanoJ 데이터(std::string)를 포함합니다. 데이터 진행 추적기. void 함수가 실행되었는지 확인합니다.

DisconnectDevice () 이 함수를 사용하여 deviceHandle로 장치의 연결을 끊습니다.
가상 ResultVoid nlc::NanoLibAccessor::disconnectDevice(DeviceHandle const deviceHandle)

매개변수 deviceHandle은 ResultVoid를 반환합니다.

NanoLib이 연결을 끊는 버스 장치를 지정합니다. void 함수가 실행되었는지 확인합니다.

RemoveDevice () 이 함수를 사용하여 NanoLib의 내부 장치 목록에서 장치를 제거합니다.
가상 ResultVoid nlc::NanoLibAccessor::removeDevice (const DeviceHandle deviceHandle)

매개변수 deviceHandle은 ResultVoid를 반환합니다.

NanoLib이 제거할 버스 장치를 지정합니다. void 함수가 실행되었는지 확인합니다.

closeBusHardware() 이 함수를 사용하여 Fieldbus 하드웨어와의 연결을 끊습니다.
가상 ResultVoid nlc::NanoLibAccessor::closeBusHardware(BusHardwareId const & busHwId)

매개변수busHwId는 ResultVoid를 반환합니다.

연결을 끊을 필드버스를 지정합니다. void 함수가 실행되었는지 확인합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

26

8 클래스/함수 참조

8.2 버스하드웨어 ID
이 클래스를 사용하여 버스 하드웨어를 일대일로 식별하거나 서로 다른 버스 하드웨어를 구별합니다. 이 클래스(생성 시 불변인 setter 함수 없음)는 다음에 대한 정보도 보유합니다.
하드웨어(= 어댑터 이름, 네트워크 어댑터 등) 사용할 프로토콜(= Modbus TCP, CANopen 등) 버스 하드웨어 지정자(= 직렬 포트 이름, MAC 친숙한 이름
주소 등)

BusHardwareId() [1/3] 새로운 버스 하드웨어 ID 객체를 생성하는 생성자입니다.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocol_, std::string const & hardwareSpecifier_, std::string const & name_)

매개변수 버스Hardware_ 프로토콜_ hardwareSpecifier_ extraHardwareSpecifier_ 이름_

하드웨어 유형(= ZK-USB-CAN-1 등). 버스 통신 프로토콜(= CANopen 등). 하드웨어 지정자(= COM3 등). 하드웨어의 추가 지정자(예: USB 위치 정보)입니다. 친숙한 이름(= AdapterName (Port) 등).

BusHardwareId() [2/3] 추가 하드웨어 지정자를 위한 옵션과 함께 새로운 버스 하드웨어 ID 객체를 생성하는 생성자입니다.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocol_, std::string const & hardwareSpecifier_, std::string const & extraHardwareSpecifier_, std::string const & name_)

매개변수 버스Hardware_ 프로토콜_ hardwareSpecifier_ extraHardwareSpecifier_ 이름_

하드웨어 유형(= ZK-USB-CAN-1 등). 버스 통신 프로토콜(= CANopen 등). 하드웨어 지정자(= COM3 등). 하드웨어의 추가 지정자(예: USB 위치 정보)입니다. 친숙한 이름(= AdapterName (Port) 등).

BusHardwareId () [3/3] 기존busHardwareId를 복사하는 생성자입니다.
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)

nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)

매개변수 버스HardwareId

복사할 버스 하드웨어 ID의 이름을 지정합니다.

같음() 새 버스 하드웨어 ID를 기존 ID와 비교합니다.
bool nlc::BusHardwareId::equals(BusHardwareId const & other) const

기타 매개변수는 true를 반환합니다.

같은 클래스의 다른 객체. 두 값이 모두 같은 경우.

버전: doc 1.4.2 / NanoLib 1.3.0

27

8 클래스/함수 참조

거짓

값이 다른 경우.

getBusHardware () 버스 하드웨어 문자열을 읽습니다.
std::string nlc::BusHardwareId::getBusHardware() const

문자열을 반환합니다.

getHardwareSpecifier() 버스 하드웨어의 지정자 문자열(= 네트워크 이름 등)을 읽습니다.
std::string nlc::BusHardwareId::getHardwareSpecifier() const

문자열을 반환합니다.

getExtraHardwareSpecifier() 버스 추가 하드웨어의 지정자 문자열(MAC 주소 등)을 읽습니다.
std::string nlc::BusHardwareId::getExtraHardwareSpecifier () const

문자열을 반환합니다.

getName() 버스 하드웨어의 친화적 이름을 읽습니다.
std::string nlc::BusHardwareId::getName() const

문자열을 반환합니다.

getProtocol() 버스 프로토콜 문자열을 읽습니다.
std::string nlc::BusHardwareId::getProtocol() const

문자열을 반환합니다.

toString() 버스 하드웨어 ID를 문자열로 반환합니다.
std::string nlc::BusHardwareId::toString() const

문자열을 반환합니다.
8.3 버스하드웨어 옵션
문자열의 키-값 목록에서 이 클래스에서 버스 하드웨어를 여는 데 필요한 모든 옵션을 찾아보세요.

버전: doc 1.4.2 / NanoLib 1.3.0

28

8 클래스/함수 참조

BusHardwareOptions() [1/2] 새로운 버스 하드웨어 옵션 객체를 구성합니다.
nlc::BusHardwareOptions::BusHardwareOptions () 키-값 쌍을 추가하려면 addOption() 함수를 사용합니다.

BusHardwareOptions () [2/2] 키-값 맵이 이미 있는 새 버스 하드웨어 옵션 개체를 구성합니다.
nlc::BusHardwareOptions::BusHardwareOptions (std::map const 및 옵션)

매개변수 옵션

버스 하드웨어 작동 옵션이 ​​포함된 지도입니다.

addOption () 추가 키와 값을 생성합니다.
void nlc::BusHardwareOptions::addOption(std::string const & 키, std::string const & 값)

매개변수 키 값

Examp파일: BAUD_RATE_OPTIONS_NAME,bus_hw_options_ 기본값 참조
Example: BAUD_RATE_1000K,bus_hw_options_defaults 참조

같음() BusHardwareOptions를 기존 옵션과 비교합니다.
bool nlc::BusHardwareOptions::equals(BusHardwareOptions const & other) const

기타 매개변수는 true를 반환합니다.
거짓

같은 클래스의 또 다른 개체입니다. 다른 개체에 완전히 동일한 옵션이 모두 있는 경우. 다른 객체에 다른 키나 값이 있는 경우.

getOptions () 추가된 모든 키-값 쌍을 읽습니다.
표준::맵 nlc::BusHardwareOptions::getOptions() const

문자열 맵을 반환합니다.

toString () 모든 키/값을 문자열로 반환합니다.
std::string nlc::BusHardwareId::toString() const

문자열을 반환합니다.
8.4 BusHwOptionsDefault
이 기본 구성 옵션 클래스에는 다음과 같은 공개 속성이 있습니다.

버전: doc 1.4.2 / NanoLib 1.3.0

29

8 클래스/함수 참조

const CanBus const 직렬 const RESTfulBus const EtherCATBus

canBus = CanBus () serial = Serial () RestfulBus = RESTfulBus() ethercatBus = EtherCATBus()

8.5 CanBaudRate

다음 공개 속성에 CAN 버스 전송 속도를 포함하는 구조체:

const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string

BAUD_RATE_1000K = “1000k” BAUD_RATE_800K = “800k” BAUD_RATE_500K = “500k” BAUD_RATE_250K = “250k” BAUD_RATE_125K = “125k” BAUD_RATE_100K = “100k” BAUD_RATE_50K = “50k” ATE_20K = “20k” BAUD_RATE_10K = “10k” BAUD_RATE_5K = “5k”

8.6 캔버스

다음 공개 속성을 가진 기본 구성 옵션 클래스:

const std::string const CanBaudRate const Ixxat

BAUD_RATE_OPTIONS_NAME = "전송 속도를 어댑터할 수 있음" baudRate = CanBaudRate () ixxat = Ixxat ()

8.7 CanOpenNmt서비스

NMT 서비스의 경우 이 구조체에는 다음 공개 속성의 문자열 값으로 CANopen NMT 상태가 포함되어 있습니다.

const std::string const std::string const std::string const std::string const std::string

START = “START” STOP = “STOP” PRE_OPERATIONAL = “PRE_OPERATIONAL” RESET = “RESET” RESET_COMMUNICATION = “RESET_COMMUNICATION”

8.8 CanOpenNmtState

이 구조체에는 다음 공개 속성의 문자열 값으로 CANopen NMT 상태가 포함되어 있습니다.

const std::string const std::string const std::string const std::string const std::string

중지됨 = "중지됨" PRE_OPERATIONAL = "사전 작동 중" 작동 = "작동 중" 초기화 = "초기화" 알 수 없음 = "알 수 없음"

8.9 EtherCATBus 구조체

이 구조체에는 다음 공개 속성에 EtherCAT 통신 구성 옵션이 포함되어 있습니다.

버전: doc 1.4.2 / NanoLib 1.3.0

30

8 클래스/함수 참조

const std::string NETWORK_FIRMWARE_STATE_OP- 네트워크 상태가 펌웨어 모드로 처리됨. 허용 가능

TION_NAME = “네트워크 펌웨어 상태”

값(기본값 = PRE_OPERATIONAL):

EtherCATState::PRE_OPERATIONAL EtherCATState::SAFE_OPERATIONAL EtherCATState::OPERATIONAL

const std::string 기본 네트워크 펌웨어 상태 = "운영 전"

const std::string EXCLUSIVE_LOCK_TIMEOUT_OP- 배타적 잠금을 획득하기 위한 시간 초과(밀리초)

TION_NAME = “공유 잠금 시간 초과”

네트워크(기본값 = 500ms)

const unsigned int DEFAULT_EXCLUSIVE_LOCK_ TIMEOUT = "500"

const std::string SHARED_LOCK_TIMEOUT_OPTION_ 공유 잠금을 획득하기 위한 시간 초과(밀리초)

NAME = “공유 잠금 시간 초과”

네트워크(기본값 = 250ms)

const unsigned int DEFAULT_SHARED_LOCK_TIMEOUT = "250"

const std::string READ_TIMEOUT_OPTION_NAME = 읽기 작업에 대한 시간 초과(밀리초) (기본값

“읽기 시간 초과”

= 700밀리초).

const unsigned int DEFAULT_READ_TIMEOUT = “700”

const std::string WRITE_TIMEOUT_OPTION_NAME = 쓰기 작업에 대한 시간 초과(밀리초)(기본값)

“쓰기 시간 초과”

= 200밀리초).

const unsigned int DEFAULT_WRITE_TIMEOUT = “200”

const std::string READ_WRITE_ATTEMPTS_OPTION_ 최대 읽기 또는 쓰기 시도 횟수(0이 아닌 값)

이름 = “읽기/쓰기 시도”

오직; 기본값 = 5).

const unsigned int DEFAULT_READ_WRITE_ATTEMPTS = "5"

const std::string CHANGE_NETWORK_STATE_ATTEMPTS_OPTION_NAME = “네트워크 상태 변경 시도”

네트워크 상태를 변경하려는 최대 시도 횟수(10이 아닌 값만 해당, 기본값 = XNUMX)

const unsigned int DEFAULT_CHANGE_NETWORK_ STATE_ATTEMPTS = “10”

const std::string PDO_IO_ENABLED_OPTION_NAME 디지털 입력에 대한 PDO 처리를 활성화하거나 비활성화합니다.

= “PDO IO 활성화됨”

출력합니다("True" 또는 "False"만 해당, 기본값 = "True").

const std::string 기본 PDO_IO_ENABLED = "참"

8.10 EtherCATState 구조체

이 구조체에는 EtherCAT 슬레이브/네트워크 상태가 다음 공개 속성의 문자열 값으로 포함되어 있습니다. 참고: 전원을 켤 때의 기본 상태는 PRE_OPERATIONAL입니다. NanoLib은 비실시간 운영 체제에서 안정적인 "작동" 상태를 제공할 수 없습니다.

const std::string const std::string const std::string const std::string const std::string const std::string

NONE = "없음" INIT = "INIT" PRE_OPERATIONAL = "PRE_OPERATIONAL" BOOT = "부팅" SAFE_OPERATIONAL = "SAFE_OPERATIONAL" OPERATIONAL = "OPERATIONAL"

버전: doc 1.4.2 / NanoLib 1.3.0

31

8 클래스/함수 참조

8.11 익사트

이 구조체는 다음의 공개 속성에서 Ixxat usb-to-can에 대한 모든 정보를 보관합니다.

상수 std::문자열

ADAPTER_BUS_NUMBER_OPTIONS_NAME = "ixxat 어댑터 버스 번호"

const IxxatAdapterBusNumber 어댑터BusNumber = IxxatAdapterBusNumber ()

8.12 IxxatAdapterBus번호

이 구조체는 다음 공개 속성에서 Ixxat usb-to-can에 대한 버스 번호를 보관합니다.

const std::string const std::string const std::string const std::string

BUS_NUMBER_0_DEFAULT = “0” BUS_NUMBER_1 = “1” BUS_NUMBER_2 = “2” BUS_NUMBER_3 = “3”

8.13 피크

이 구조체는 다음 공개 속성에서 Peak usb-to-can에 대한 모든 정보를 보관합니다.

상수 std::문자열

ADAPTER_BUS_NUMBER_OPTIONS_NAME = “피크 어댑터 버스 번호”

const PeakAdapterBusNumber 어댑터버스번호 = PeakAdapterBusNumber()

8.14 피크어댑터버스번호

이 구조체는 다음 공개 속성에서 Peak usb-to-can에 대한 버스 번호를 보유합니다.

const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string

BUS_NUMBER_1_DEFAULT = std::to_string (PCAN_USBBUS1) BUS_NUMBER_2 = std::to_string (PCAN_USBBUS2) BUS_NUMBER_3 = std::to_string (PCAN_USBBUS3) BUS_NUMBER_4 = std::to_string (PCAN_USBBUS4) BUS_NUMBER_5 = std::to_string (PCAN_USBBUS5) BUS_NUMBER_6 = std::to_string (PCAN_USBBUS6) BUS_NUMBER_7 = std::to_string (PCAN_USBBUS7) BUS_NUMBER_8 = std::to_string (PCAN_USBBUS8) BUS_NUMBER_9 = std::to_string (PCAN_USBBUS9) BUS_NUMBER_10 = std::to_string (PCAN_USBBUS10) 버스 번호 11 = 표준::문자열로 (PCAN_USBBUS11) 버스 번호 12 = 표준::문자열로 (PCAN_USBBUS12) 버스 번호 13 = 표준::문자열로 (PCAN_USBBUS13) 버스 번호 14 = 표준::문자열로 (PCAN_USBBUS14) 버스 번호 15 = 표준::문자열로 (PCAN_USBBUS15) 버스 번호 16 = 표준::문자열로 (PCAN_USBBUS16)

8.15 디바이스핸들
이 클래스는 버스의 장치를 제어하기 위한 핸들을 나타내며 다음과 같은 공용 멤버 함수를 갖습니다.

DeviceHandle() DeviceHandle(uint32_t 핸들)

버전: doc 1.4.2 / NanoLib 1.3.0

32

8 클래스/함수 참조

같음() 자신을 지정된 장치 핸들과 비교합니다.
bool은 (DeviceHandle const other) const (uint32_t 핸들)과 같습니다.

toString () 장치 핸들의 문자열 표현을 반환합니다.
std::string toString() const

get() 장치 핸들을 반환합니다.
uint32_t get() const를 얻으세요

8.16 장치 ID
버스에서 장치를 식별하고 구별하려면 이 클래스(생성 시 변경 불가능)를 사용하십시오.

하드웨어 어댑터 식별자

장치 식별자

설명

장치 ID/설명 값의 의미는 버스에 따라 다릅니다. 예를 들어amp즉, CAN 버스는 정수 ID를 사용할 수 있습니다.

DeviceId () [1/3] 새로운 장치 ID 객체를 생성합니다.
nlc::DeviceId::DeviceId (버스하드웨어ID const & 버스하드웨어ID_, 부호 없는 int 디바이스ID_, std::문자열 const & 설명_)

매개변수 버스HardwareId_ deviceId_ 설명_

버스의 식별자입니다. 색인; 버스(= CANopen 노드 ID 등)에 따라 달라집니다. 설명(비어 있을 수 있음) 버스 대상.

DeviceId() [2/3] 확장된 ID 옵션을 사용하여 새로운 장치 ID 객체를 구성합니다.
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId, unsigned int deviceId_, std::string const & description_ std::vector const & extraId_, std::string const & extraStringId_)

매개변수 busHardwareId_ deviceId_ description_ extraId_ extraStringId_

버스 식별자. 인덱스; 버스에 따라 달라짐(= CANopen 노드 ID 등). 설명(비어 있을 수 있음); 버스에 따라 달라짐. 추가 ID(비어 있을 수 있음); 의미는 버스에 따라 달라짐. 추가 문자열 ID(비어 있을 수 있음); 의미는 버스에 따라 달라짐.

DeviceId () [3/3] 장치 ID 개체의 복사본을 생성합니다.
nlc::DeviceId::DeviceId (장치 ID const &)

버전: doc 1.4.2 / NanoLib 1.3.0

33

8 클래스/함수 참조

매개변수 deviceId_

복사할 장치 ID입니다.

같음() 새 개체를 기존 개체와 비교합니다.
bool nlc::DeviceId::equals (DeviceId const & other) const

부울을 반환합니다.

getBusHardwareId () 버스 하드웨어 ID를 읽습니다.
BusHardwareId nlc::DeviceId::getBusHardwareId() const

BusHardwareId를 반환합니다.

getDescription () 장치 설명을 읽습니다(사용되지 않을 수도 있음).
std::string nlc::DeviceId::getDescription() const

문자열을 반환합니다.

getDeviceId () 장치 ID를 읽습니다(사용되지 않을 수도 있음).
부호 없는 int nlc::DeviceId::getDeviceId() const

부호 없는 정수를 반환합니다.

toString () 객체를 문자열로 반환합니다.
std::string nlc::DeviceId::toString() const

문자열을 반환합니다.

getExtraId () 장치의 추가 ID를 읽습니다(사용되지 않을 수 있음).
상수 std::벡터 &getExtraId() const

벡터를 반환합니다

추가 추가 ID의 벡터(비어 있을 수 있음) 의미는 버스에 따라 다릅니다.

getExtraStringId () 장치의 추가 문자열 ID를 읽습니다(사용되지 않을 수 있음).
std::string getExtraStringId () const

버전: doc 1.4.2 / NanoLib 1.3.0

34

8 클래스/함수 참조

문자열을 반환합니다.

추가 문자열 ID(비어 있을 수 있음)입니다. 의미는 버스에 따라 다릅니다.

8.17 로그레벨 변환기

이 클래스는 로그 수준을 문자열로 반환합니다. static std::string toString (nlc::LogLevel logLevel)

8.18 로그 모듈 변환기

이 클래스는 라이브러리별 로그 modulesetLoggingLevel()을 문자열로 반환합니다.

정적 std::string

toString(nlc::LogModule logModule)

정적 std::string toString(nlc::LogModule logModule)

8.19 객체사전
이 클래스는 컨트롤러의 객체 사전을 나타내며 다음과 같은 공용 멤버 함수를 갖습니다. getDeviceHandle()
가상 ResultDeviceHandle getDeviceHandle() const ResultDeviceHandle을 반환합니다.

getObject() 가상 ResultObjectSubEntry getObject(OdIndex const odIndex) ResultObjectSubEntry를 반환합니다.

getObjectEntry() 가상 ResultObjectEntry getObjectEntry(uint16_t 인덱스)

ResultObjectEntry를 반환합니다.

개체의 속성을 알려줍니다.

getXmlFile이름() 가상 ResultString getXmlFile이름() const

결과 문자열을 반환합니다.

XML을 반환합니다. file 이름을 문자열로 지정합니다.

readNumber() 가상 ResultInt readNumber(OdIndex const odIndex) ResultInt를 반환합니다.
readNumberArray() 가상 ResultArrayInt readNumberArray(uint16_t const index)

버전: doc 1.4.2 / NanoLib 1.3.0

35

8 클래스/함수 참조
ResultArrayInt readString()을 반환합니다.
가상 ResultString readString(OdIndex const odIndex) ResultString readBytes()를 반환합니다. 가상 ResultArrayByte readBytes(OdIndex const odIndex) ResultArrayByte writeNumber()를 반환합니다. 가상 ResultVoid writeNumber(OdIndex const odIndex, const int64_t value) ResultVoid writeBytes()를 반환합니다. 가상 ResultVoid writeBytes(OdIndex const OdIndex, std::vector
const & data) ResultVoid를 반환합니다 관련 링크 OdIndex
8.20 객체입력
이 클래스는 객체 사전의 객체 항목을 나타내며 다음과 같은 정적 보호 속성과 공개 멤버 함수를 갖습니다.
정적 nlc::ObjectSubEntry invalidObject
getName () 객체의 이름을 문자열로 읽어옵니다.
가상 std::string getName() const
getPrivate() 객체가 비공개인지 확인합니다.
가상 bool getPrivate() const
getIndex () 객체 인덱스의 주소를 읽어옵니다.
가상 uint16_t getIndex() const

버전: doc 1.4.2 / NanoLib 1.3.0

36

8 클래스/함수 참조

getDataType () 객체의 데이터 유형을 읽습니다.
가상 nlc::ObjectEntryDataType getDataType() const

getObjectCode () 객체 코드를 읽습니다.

Null Deftype Defstruct Var Array 레코드

0x00 0x05 0x06 0x07 0x08 0x09

가상 nlc::ObjectCode getObjectCode() const

getObjectSaveable() 객체가 저장 가능한지 및 해당 카테고리인지 확인합니다(자세한 내용은 제품 설명서 참조): APPLICATION, COMMUNICATION, DRIVE, MISC_CONFIG, MODBUS_RTU, NO, TUNING, CUSTOMER, ETHERNET, CANOPEN, VERIFY1020, UNKNOWN_SAVEABLE_TYPE
가상 nlc::ObjectSaveable getObjectSaveable() const

getMaxSubIndex () 이 객체가 지원하는 하위 인덱스 수를 읽습니다.
가상 uint8_t getMaxSubIndex() const

getSubEntry() 가상 nlc::ObjectSubEntry & getSubEntry(uint8_t subIndex)
ObjectSubEntry도 참조하세요.
8.21 ObjectSubEntry
이 클래스는 객체 사전의 객체 하위 항목(하위 색인)을 나타내며 다음과 같은 공용 멤버 함수를 갖습니다.
getName () 객체의 이름을 문자열로 읽어옵니다.
가상 std::string getName() const

getSubIndex () 하위 인덱스의 주소를 읽어옵니다.
가상 uint8_t getSubIndex() const

버전: doc 1.4.2 / NanoLib 1.3.0

37

8 클래스/함수 참조

getDataType () 객체의 데이터 유형을 읽습니다.
가상 nlc::ObjectEntryDataType getDataType() const

getSdoAccess() SDO를 통해 하위 인덱스에 액세스할 수 있는지 확인합니다.

읽기 전용

1

쓰기 전용

2

읽기쓰기

3

접근 금지

0

가상 nlc::ObjectSdoAccessAttribute getSdoAccess() const

getPdoAccess() PDO를 통해 하위 인덱스에 액세스/매핑 가능한지 확인합니다.

Tx

1

Rx

2

수신

3

아니요

0

가상 nlc::ObjectPdoAccessAttribute getPdoAccess() const

getBitLength () 하위 인덱스 길이를 확인합니다.
가상 uint32_t getBitLength() const

getDefaultValueAsNumeric () 숫자 데이터 유형에 대한 하위 색인의 기본값을 읽습니다.
가상 ResultInt getDefaultValueAsNumeric(std::string const & key) const

getDefaultValueAsString () 문자열 데이터 유형에 대한 하위 색인의 기본값을 읽습니다.
가상 ResultString getDefaultValueAsString(std::string const & key) const

getDefaultValues ​​() 하위 인덱스의 기본값을 읽습니다.
가상 std::map getDefaultValues() const를 가져옵니다.

버전: doc 1.4.2 / NanoLib 1.3.0

38

8 클래스/함수 참조

readNumber () 하위 인덱스의 숫자 실제 값을 읽습니다.
가상 ResultInt readNumber() const

readString () 하위 인덱스의 문자열 실제 값을 읽습니다.
가상 ResultString readString() const

readBytes () 하위 인덱스의 실제 값을 바이트 단위로 읽습니다.
가상 ResultArrayByte readBytes() const

writeNumber () 하위 인덱스에 숫자 값을 씁니다.
가상 ResultVoid writeNumber(const int64_t value) const

writeBytes () 하위 인덱스에 값을 바이트 단위로 씁니다.
가상 ResultVoid writeBytes(std::vector const & 데이터) const

8.22 오드인덱스
객체 디렉토리 색인/하위 색인을 래핑하고 찾으려면 이 클래스(생성 시 변경 불가능)를 사용하십시오. 장치의 OD에는 최대 65535(0xFFFF) 행과 255(0xFF) 열이 있습니다. 불연속적인 행 사이에 간격이 있습니다. 자세한 내용은 CANopen 표준 및 제품 설명서를 참조하십시오.
OdIndex () 새로운 OdIndex 객체를 생성합니다.
nlc::OdIndex::OdIndex(uint16_t 인덱스, uint8_t 하위 인덱스)

매개변수 인덱스 하위 인덱스

0부터 65535(0xFFFF)까지 포함. 0~255(0xFF) 포함

getIndex () 인덱스(0x0000부터 0xFFFF까지)를 읽습니다.
uint16_t nlc::OdIndex::getIndex() const

uint16_t를 반환합니다

getSubindex() 하위 인덱스(0x00부터 0xFF까지)를 읽습니다.
uint8_t nlc::OdIndex::getSubIndex() const

버전: doc 1.4.2 / NanoLib 1.3.0

39

8 클래스/함수 참조

uint8_t를 반환합니다

toString () 인덱스와 하위 인덱스를 문자열로 반환합니다. 문자열 기본값 0xIII:0xSS는 다음과 같습니다.

I = 0x0000부터 0xFFFF까지의 인덱스

S = 0x00부터 0xFF까지의 하위 인덱스

std::string nlc::OdIndex::toString () const

0xIIII:0xSS를 반환합니다.

기본 문자열 표현

8.23 오드라이브러리
이 프로그래밍 인터페이스를 사용하여 XML에서 ObjectDictionary 클래스의 인스턴스를 만듭니다. AssignObjectDictionary를 사용하면 고유하게 생성된 식별자로 인해 각 인스턴스를 특정 장치에 바인딩할 수 있습니다. 이렇게 생성된 ObjectDictionary 인스턴스는 인덱스로 접근할 수 있도록 OdLibrary 객체에 저장됩니다. ODLibrary 클래스는 다음에서 ObjectDictionary 항목을 로드합니다. file 또는 배열을 저장하고 다음과 같은 공개 멤버 함수를 갖습니다.

getObjectDictionaryCount() 가상 uint32_t getObjectDictionaryCount() const

getObjectDictionary() 가상 ResultObjectDictionary getObjectDictionary(uint32_todIndex)

ResultObjectDictionary를 반환합니다.

addObjectDictionaryFromFile ()
가상 ResultObjectDictionary addObjectDictionaryFromFile (std::string const & absoluteXmlFile길)

ResultObjectDictionary를 반환합니다.

addObjectDictionary()
가상 ResultObjectDictionary addObjectDictionary(std::vector const & odXmlData, const std::string &xmlFile경로 = std::string ())

ResultObjectDictionary를 반환합니다.
8.24 OdTypesHelper
다음 공개 멤버 함수 외에도 이 클래스에는 사용자 정의 데이터 유형이 포함되어 있습니다. 참고: 사용자 정의 데이터 유형을 확인하려면 od_types.hpp에서 열거형 클래스 ObjectEntryDataType을 찾으세요.

uintToObjectCode() 부호 없는 정수를 객체 코드로 변환합니다.

Null 정의 유형

0x00 0x05

버전: doc 1.4.2 / NanoLib 1.3.0

40

8 클래스/함수 참조

Defstruct Var Array 레코드

0x06 0x07 0x08 0x09

정적 ObjectCode uintToObjectCode(unsigned int objectCode)

isNumericDataType () 데이터 유형이 숫자인지 여부를 알려줍니다.
정적 bool isNumericDataType(ObjectEntryDataType 데이터 유형)

isDefstructIndex () 객체가 정의 구조 인덱스인지 여부를 알려줍니다.
static bool isDefstructIndex (uint16_t typeNum)

isDeftypeIndex () 객체가 정의 유형 인덱스인지 여부를 알려줍니다.
static bool isDeftypeIndex (uint16_t typeNum)

isComplexDataType () 데이터 유형이 복잡한지 여부를 알려줍니다.
정적 bool isComplexDataType(ObjectEntryDataType 데이터 유형)

uintToObjectEntryDataType () 부호 없는 정수를 OD 데이터 유형으로 변환합니다.
sstatic ObjectEntryDataType uintToObjectEntryDataType(uint16_t objectDataType)

objectEntryDataTypeToString () OD 데이터 유형을 문자열로 변환합니다.
정적 std::string objectEntryDataTypeToString(ObjectEntryDataType odDataType)

stringToObjectEntryDatatype () 가능한 경우 문자열을 OD 데이터 유형으로 변환합니다. 그렇지 않으면 UNKNOWN_DATATYPE을 반환합니다.
정적 ObjectEntryDataType stringToObjectEntryDatatype(std::string dataTypeString)

버전: doc 1.4.2 / NanoLib 1.3.0

41

8 클래스/함수 참조

objectEntryDataTypeBitLength () 객체 항목 데이터 유형의 비트 길이를 알려줍니다.
정적 uint32_t objectEntryDataTypeBitLength(ObjectEntryDataType const & dataType)

8.25 RESTfulBus 구조체

이 구조체에는 RESTful 인터페이스(이더넷을 통한)에 대한 통신 구성 옵션이 포함되어 있습니다. 여기에는 다음과 같은 공개 속성이 포함됩니다.

const std::string const unsigned long const std::string const unsigned long const std::string const unsigned long

CONNECT_TIMEOUT_OPTION_NAME = “RESTful 연결 시간 초과” DEFAULT_CONNECT_TIMEOUT = 200 REQUEST_TIMEOUT_OPTION_NAME = “RESTful 요청 시간 초과” DEFAULT_REQUEST_TIMEOUT = 200 RESPONSE_TIMEOUT_OPTION_NAME = “RESTful 응답 시간 초과” DEFAULT_RESPONSE_TIMEOUT = 750

8.26 프로피넷DCP
Linux에서 호출 애플리케이션에는 CAP_NET_ADMIN 및 CAP_NET_RAW 기능이 필요합니다. 활성화하려면: sudo setcap 'cap_net_admin,cap_net_raw+eip' ./executable. Windows에서 ProfinetDCP 인터페이스는 WinPcap(버전 4.1.3에서 테스트됨) 또는 Npcap(버전 1.60 및 1.30에서 테스트됨)을 사용합니다. 따라서 동적으로 로드된 wpcap.dll 라이브러리를 다음 순서로 검색합니다(참고: 현재 Win10Pcap 지원 없음).
1. Nanolib.dll 디렉터리 2. Windows 시스템 디렉터리 SystemRoot%System32 3. Npcap 설치 디렉터리 SystemRoot%System32Npcap 4. 환경 경로
이 클래스는 Profinet DCP 인터페이스를 나타내며 다음과 같은 공용 멤버 함수를 갖습니다.

getScanTimeout() 장치 검색 시간 초과를 알립니다(기본값 = 2000ms).
가상 uint32_t nlc::ProfinetDCP::getScanTimeout() const

setScanTimeout() 장치 검색 시간 초과를 설정합니다(기본값 = 2000ms).
가상 무효 nlc::setScanTimeout (uint32_t timeoutMsec)

getResponseTimeout() 설정, 재설정 및 깜박임 작업에 대한 장치 응답 시간 초과를 알립니다(기본값 = 1000ms).
가상 uint32_t nlc::ProfinetDCP::getResponseTimeout() const

setResponseTimeout() 설정, 재설정 및 깜박임 작업에 대한 장치 응답 시간 초과를 알립니다(기본값 = 1000ms).
가상 무효 nlc::ProfinetDCP::setResponseTimeout(uint32_t timeoutMsec)

버전: doc 1.4.2 / NanoLib 1.3.0

42

8 클래스/함수 참조

isServiceAvailable ()
Profinet DCP 서비스 이용 가능 여부를 확인하려면 이 기능을 사용하세요.
네트워크 어댑터 유효성/가용성 Windows: WinPcap/Npcap 가용성 Linux: CAP_NET_ADMIN/CAP_NET_RAW 기능
virtual ResultVoid nlc::ProfinetDCP::isServiceAvailable (const BusHardwareId & busHardwareId)

매개변수 BusHardwareId는 true를 반환합니다.
거짓

확인할 Profinet DCP 서비스의 하드웨어 ID입니다. 서비스를 이용하실 수 있습니다. 서비스를 이용할 수 없습니다.

scanProfinetDevices () Profinet 장치가 있는지 하드웨어 버스를 검색하려면 이 함수를 사용합니다.
가상 ResultProfinetDevices 스캔ProfinetDevices(const BusHardwareId & busHardwareId)

매개변수 BusHardwareId는 ResultProfinetDevices를 반환합니다.

열려는 각 필드버스를 지정합니다. 하드웨어가 열려 있습니다.

setupProfinetDevice() 다음 장치 설정을 지정합니다.

장치 이름

IP 주소

네트워크 마스크

기본 게이트웨이

가상 ResultVoid nlc::setupProfinetDevice(const BusHardwareId & busHardwareId, const ProfinetDevice 구조체 & profinetDevice, bool savePermanent)

ResetProfinetDevice() 장치를 중지하고 공장 기본값으로 재설정합니다.
가상 ResultVoid nlc::resetProfinetDevice(const BusHardwareId & busHardwareId, const ProfinetDevice & profinetDevice)

깜박임ProfinetDevice() Profinet 장치에 Profinet LED 깜박임을 시작하도록 명령합니다.
가상 ResultVoid nlc::blinkProfinetDevice(const BusHardwareId & busHardwareId, const ProfinetDevice &profinetDevice)

verifyProfinetDeviceIp () 이 함수를 사용하여 장치의 IP 주소를 확인합니다.
가상 ResultVoid validateProfinetDeviceIp(const BusHardwareId &busHardwareId, const ProfinetDevice & profinetDevice)

매개변수 BusHardwareId ProfinetDevice

확인할 하드웨어 ID를 지정합니다. 검증할 Profinet 장치를 지정합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

43

8 클래스/함수 참조

ResultVoid를 반환합니다.

8.27 ProfinetDevice 구조체

Profinet 장치 데이터에는 다음과 같은 공개 속성이 있습니다.

std::문자열 std::문자열 std::배열<uint8_t, 6> uint32_t uint32_t uint32_t

deviceName deviceVendor macAddress ipAddress netMask defaultGateway

MAC 주소는 macAddress = {xx, xx, xx, xx, xx, xx} 형식의 배열로 제공됩니다. IP 주소, 네트워크 마스크 및 게이트웨이는 모두 다음과 같은 빅 엔디안 16진수로 해석됩니다.

IP 주소: 192.168.0.2 네트워크 마스크: 255.255.0.0 게이트웨이: 192.168.0.1

0xC0A80002 0xFFFF0000 0xC0A80001

8.28 결과 클래스

함수 호출의 성공 여부를 확인하고 실패 이유를 찾으려면 이러한 클래스의 "선택적" 반환 값을 사용하세요. 성공하면 hasError() 함수는 false를 반환합니다. getResult()를 사용하면 유형(ResultInt 등)별로 결과 값을 읽을 수 있습니다. 호출이 실패하면 getError()를 통해 이유를 읽습니다.

보호되는 속성

문자열 NlcErrorCode uint32_t

errorString errorCode exErrorCode

또한 이 클래스에는 다음과 같은 공용 멤버 함수가 있습니다.

hasError () 함수 호출의 성공 여부를 읽습니다.
bool nlc::Result::hasError() const

보고

참 거짓

통화에 실패했습니다. 값을 읽으려면 getError()를 사용하십시오. 통화가 성공했습니다. 값을 읽으려면 getResult()를 사용하십시오.

getError () 함수 호출이 실패할 경우 이유를 읽어냅니다.
const std::string nlc::Result::getError() const

const 문자열을 반환합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

44

8 클래스/함수 참조
result() 다음 함수는 정확한 결과를 정의하는 데 도움이 됩니다.
결과(std::string const & errorString_)
결과(NlcErrorCode const & errCode, std::string const & errorString_)
결과(NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
결과 (Result const & result)
getErrorCode () NlcErrorCode를 읽습니다.
NlcErrorCode getErrorCode () const
getExErrorCode() uint32_t getExErrorCode() const
8.28.1 ResultVoid
함수가 void를 반환하면 NanoLib은 이 클래스의 인스턴스를 보냅니다. 클래스는 결과 클래스에서 공개 함수와 보호된 속성을 상속하며 다음과 같은 공개 멤버 함수를 갖습니다.
ResultVoid () 다음 함수는 정확한 void 결과를 정의하는 데 도움이 됩니다.
ResultVoid(std::string const &errorString_)
ResultVoid(NlcErrorCode const & errCode, std::string const & errorString_)
ResultVoid (NlcErrorCode const & errCode, const uint32_t exErrCode, std:: 문자열 const & errorString_)
ResultVoid(Result const & result)
8.28.2 ResultInt
함수가 정수를 반환하는 경우 NanoLib은 이 클래스의 인스턴스를 보냅니다. 클래스는 결과 클래스에서 공개 함수/보호 속성을 상속하며 다음과 같은 공개 멤버 함수를 갖습니다.
getResult () 함수 호출이 성공한 경우 정수 결과를 반환합니다.
int64_t getResult() const
int64_t를 반환합니다

버전: doc 1.4.2 / NanoLib 1.3.0

45

8 클래스/함수 참조
ResultInt () 다음 함수는 정확한 정수 결과를 정의하는 데 도움이 됩니다.
결과Int (int64_t 결과_)
ResultInt(std::string const & errorString_)
ResultInt(NlcErrorCode const & errCode, std::string const & errorString_)
ResultInt(NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultInt(Result const & result)
8.28.3 결과 문자열
함수가 문자열을 반환하는 경우 NanoLib은 이 클래스의 인스턴스를 보냅니다. 클래스는 결과 클래스에서 공개 함수/보호 속성을 상속하며 다음과 같은 공개 멤버 함수를 갖습니다.
getResult () 함수 호출이 성공하면 문자열 결과를 읽습니다.
const std::string nlc::ResultString::getResult() const
const 문자열을 반환합니다.
ResultString () 다음 함수는 정확한 문자열 결과를 정의하는 데 도움이 됩니다.
ResultString(std::string const & 메시지, bool hasError_)
ResultString(NlcErrorCode const & errCode, std::string const & errorString_)
ResultString(NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultString(Result const & result)
8.28.4 결과ArrayByte
NanoLib은 함수가 바이트 배열을 반환하는 경우 이 클래스의 인스턴스를 보냅니다. 이 클래스는 result 클래스에서 public 함수/protected 속성을 상속하며 다음과 같은 public 멤버 함수를 갖습니다.
getResult() 함수 호출이 성공하면 바이트 벡터를 읽습니다.
상수 std::벡터 nlc::ResultArrayByte::getResult() const
const 벡터를 반환합니다

버전: doc 1.4.2 / NanoLib 1.3.0

46

8 클래스/함수 참조
ResultArrayByte () 다음 함수는 정확한 바이트 배열 결과를 정의하는 데 도움이 됩니다.
ResultArrayByte(std::vector const & result_)
ResultArrayByte(std::string const & errorString_)
ResultArrayByte(NlcErrorCode const & errCode, std::string const & 오류 String_)
ResultArrayByte(NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultArrayByte(Result const & result)
8.28.5 ResultArrayInt
NanoLib은 함수가 정수 배열을 반환하는 경우 이 클래스의 인스턴스를 보냅니다. 이 클래스는 result 클래스에서 public 함수/protected 속성을 상속하며 다음과 같은 public 멤버 함수를 갖습니다.
getResult() 함수 호출이 성공하면 정수 벡터를 읽습니다.
상수 std::벡터 nlc::ResultArrayInt::getResult() const
const 벡터를 반환합니다
ResultArrayInt () 다음 함수는 정확한 정수 배열 결과를 정의하는 데 도움이 됩니다.
ResultArrayInt(std::벡터 const & result_)
ResultArrayInt(std::string const & errorString_)
ResultArrayInt(NlcErrorCode const & errCode, std::string const & 오류 String_)
ResultArrayInt(NlcErrorCode const & errCode, const uint32_t exErrCode, std:: string const & errorString_)
ResultArrayInt(Result const & result)
8.28.6 ResultBusHwId
NanoLib은 함수가 버스 하드웨어 ID 배열을 반환하는 경우 이 클래스의 인스턴스를 보냅니다. 이 클래스는 result 클래스에서 public 함수/protected 속성을 상속하며 다음과 같은 public 멤버 함수를 갖습니다.
getResult() 함수 호출이 성공하면 버스 하드웨어 ID 벡터를 읽습니다.
상수 std::벡터 nlc::ResultBusHwIds::getResult() const
매개변수 const 벡터

버전: doc 1.4.2 / NanoLib 1.3.0

47

8 클래스/함수 참조
ResultBusHwIds () 다음 함수는 정확한 버스 하드웨어 ID 배열 결과를 정의하는 데 도움이 됩니다.
ResultBusHwIds(std::vector const & result_)
ResultBusHwIds(std::string const & errorString_)
ResultBusHwIds(NlcErrorCode const & errCode, std::string const & errorString_)
ResultBusHwIds(NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultBusHwIds(Result const & result)
8.28.7 ResultDeviceId
NanoLib은 함수가 장치 ID를 반환하는 경우 이 클래스의 인스턴스를 보냅니다. 이 클래스는 result 클래스에서 public 함수/protected 속성을 상속하며 다음과 같은 public 멤버 함수를 갖습니다.
getResult () 함수 호출이 성공한 경우 장치 ID 벡터를 읽습니다.
장치 ID nlc::ResultDeviceId::getResult() const
const 벡터를 반환합니다.
ResultDeviceId () 다음 함수는 정확한 장치 ID 결과를 정의하는 데 도움이 됩니다.
ResultDeviceId(장치 ID const & result_)
ResultDeviceId(std::string const & errorString_)
ResultDeviceId(NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceId(NlcErrorCode const & errCode, const uint32_t exErrCode, std::string errorString_)
ResultDeviceId(Result const & result)
8.28.8 ResultDeviceId
NanoLib은 함수가 장치 ID 배열을 반환하는 경우 이 클래스의 인스턴스를 보냅니다. 이 클래스는 result 클래스에서 public 함수/protected 속성을 상속하며 다음과 같은 public 멤버 함수를 갖습니다.
getResult() 함수 호출이 성공하면 장치 ID 벡터를 반환합니다.
장치 ID nlc::ResultDeviceIds::getResult() const
const 벡터를 반환합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

48

8 클래스/함수 참조
ResultDeviceIds () 다음 함수는 정확한 장치 ID 배열 결과를 정의하는 데 도움이 됩니다.
ResultDeviceIds(std::vector const & result_)
ResultDeviceIds(std::string const & errorString_)
ResultDeviceIds(NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceIds(NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultDeviceIds(Result const & result)
8.28.9 ResultDeviceHandle
NanoLib은 함수가 장치 핸들의 값을 반환하는 경우 이 클래스의 인스턴스를 보냅니다. 이 클래스는 result 클래스에서 public 함수/protected 속성을 상속하며 다음과 같은 public 멤버 함수를 갖습니다.
getResult () 함수 호출이 성공하면 장치 핸들을 읽습니다.
장치 핸들 nlc::ResultDeviceHandle::getResult() const
DeviceHandle을 반환합니다.
ResultDeviceHandle() 다음 함수는 정확한 장치 핸들 결과를 정의하는 데 도움이 됩니다.
ResultDeviceHandle (DeviceHandle const & result_)
ResultDeviceHandle(std::string const & errorString_)
ResultDeviceHandle(NlcErrorCode const & errCode, std::string const & errorString_)
ResultDeviceHandle(NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultDeviceHandle(Result const & result)
8.28.10 ResultObjectDictionary
함수가 객체 사전의 내용을 반환하는 경우 NanoLib은 이 클래스의 인스턴스를 보냅니다. 클래스는 결과 클래스에서 공개 함수/보호 속성을 상속하며 다음과 같은 공개 멤버 함수를 갖습니다.
getResult () 함수 호출이 성공한 경우 장치 ID 벡터를 읽습니다.
const nlc::ObjectDictionary 및 nlc::ResultObjectDictionary::getResult() const

버전: doc 1.4.2 / NanoLib 1.3.0

49

8 클래스/함수 참조

보고

const 벡터

ResultObjectDictionary () 다음 함수는 정확한 개체 사전 결과를 정의하는 데 도움이 됩니다.
ResultObjectDictionary(nlc::ObjectDictionary const & result_)

ResultObjectDictionary(std::string const & errorString_)

ResultObjectDictionary(NlcErrorCode const & errCode, std::string const & errorString_)

ResultObjectDictionary(NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)

ResultObjectDictionary(Result const & result)

8.28.11 ResultConnectionState
함수가 장치 연결 상태 정보를 반환하는 경우 NanoLib은 이 클래스의 인스턴스를 보냅니다. 클래스는 결과 클래스에서 공개 함수/보호 속성을 상속하며 다음과 같은 공개 멤버 함수를 갖습니다.
getResult () 함수 호출이 성공하면 장치 핸들을 읽습니다.
DeviceConnectionStateInfo nlc::ResultConnectionState::getResult() const

DeviceConnectionStateInfo 연결됨/연결 끊김/ConnectedBootloader를 반환합니다.

ResultConnectionState () 다음 함수는 정확한 연결 상태 결과를 정의하는 데 도움이 됩니다.
ResultConnectionState(DeviceConnectionStateInfo const & result_)

ResultConnectionState(std::string const & errorString_)

ResultConnectionState(NlcErrorCode const & errCode, std::string const & errorString_)

ResultConnectionState(NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)

ResultConnectionState(Result const & result)

8.28.12 ResultObjectEntry
NanoLib은 함수가 객체 항목을 반환하는 경우 이 클래스의 인스턴스를 보냅니다. 이 클래스는 result 클래스에서 public 함수/protected 속성을 상속하며 다음과 같은 public 멤버 함수를 갖습니다.

버전: doc 1.4.2 / NanoLib 1.3.0

50

8 클래스/함수 참조
getResult() 함수 호출이 성공하면 장치 ID 벡터를 반환합니다.
nlc::ObjectEntry const& nlc::ResultObjectEntry::getResult() const
const ObjectEntry를 반환합니다.
ResultObjectEntry () 다음 함수는 정확한 개체 입력 결과를 정의하는 데 도움이 됩니다.
ResultObjectEntry(nlc::ObjectEntry const & result_)
ResultObjectEntry(std::string const & errorString_)
ResultObjectEntry(NlcErrorCode const & errCode, std::string const & errorString_)
ResultObjectEntry(NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultObjectEntry(Result const & result)
8.28.13 ResultObjectSubEntry
NanoLib은 함수가 객체 하위 항목을 반환하는 경우 이 클래스의 인스턴스를 보냅니다. 이 클래스는 result 클래스에서 public 함수/protected 속성을 상속하며 다음과 같은 public 멤버 함수를 갖습니다.
getResult() 함수 호출이 성공하면 장치 ID 벡터를 반환합니다.
nlc::ObjectSubEntry const & nlc::ResultObjectSubEntry::getResult() const
const ObjectSubEntry를 반환합니다.
ResultObjectSubEntry () 다음 함수는 정확한 개체 하위 항목 결과를 정의하는 데 도움이 됩니다.
ResultObjectSubEntry(nlc::ObjectEntry const & result_)
ResultObjectSubEntry(std::string const & errorString_)
ResultObjectSubEntry(NlcErrorCode const & errCode, std::string const & errorString_)
ResultObjectSubEntry(NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultObjectSubEntry(Result const & result)
8.28.14 ResultProfinetDevices
함수가 Profinet 장치를 반환하는 경우 NanoLib은 이 클래스의 인스턴스를 보냅니다. 클래스는 결과 클래스에서 공개 함수/보호 속성을 상속하며 다음과 같은 공개 멤버 함수를 갖습니다.

버전: doc 1.4.2 / NanoLib 1.3.0

51

8 클래스/함수 참조

getResult () 함수 호출이 성공하면 Profinet 장치 벡터를 읽습니다.
상수 std::벡터 & getResult() const

ResultProfinetDevices () 다음 함수는 정확한 Profinet 장치를 정의하는 데 도움이 됩니다.
결과ProfinetDevices(const std::vector & profinet 장치)
ResultProfinetDevices(const Result & result)
ResultProfinetDevices(const std::string &errorText, NlcErrorCode errorCode = NlcErrorCode::GeneralError, uint32_t extendedErrorCode = 0)
8.28.15 결과ampleDataArray
함수가 다음과 같이 반환되면 NanoLib은 이 클래스의 인스턴스를 보냅니다.amp파일 데이터 배열. 클래스는 결과 클래스에서 공개 함수/보호 속성을 상속하며 다음과 같은 공개 멤버 함수를 갖습니다.
getResult () 함수 호출이 성공하면 데이터 배열을 읽습니다.
상수 std::벡터 <SampleData> & getResult() const

결과ampleDataArray () 다음 함수는 정확한 Profinet 장치를 정의하는 데 도움이 됩니다.
결과ampleDataArray(const std::vector <SampleData> & 데이터 배열)

결과ampleDataArray(const std::string &errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t extendedErrorCode = 0)

결과ampleDataArray(const ResultSampleDataArray 및 기타)

결과ampleDataArray(const Result & result)

8.28.16 결과amplerState
함수가 다음과 같이 반환되면 NanoLib은 이 클래스의 인스턴스를 보냅니다.ampler 상태. 이 클래스는 결과 클래스에서 공개 함수/보호 속성을 상속하며 다음과 같은 공개 멤버 함수를 갖습니다.

getResult () s를 읽습니다.amp함수 호출이 성공한 경우 ler 상태 벡터입니다.
SamplerState getResult() const

S를 반환합니다.ampler상태>

구성되지 않음 / 구성됨 / 준비됨 / 실행 중 / 완료됨 / 실패함 / 취소됨

버전: doc 1.4.2 / NanoLib 1.3.0

52

8 클래스/함수 참조

결과amplerState () 다음 함수는 정확한 s를 정의하는 데 도움이 됩니다.amp레 상태.
결과amplerState(const SamplerState 상태)

결과amplerState(const std::string & errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t
확장오류코드 = 0)

결과amplerState(const ResultSamplerState 및 기타)

결과amplerState(const Result & result)

8.29 NlcErrorCode

문제가 발생하면 결과 클래스는 이 열거형에 나열된 오류 코드 중 하나를 보고합니다.

오류 코드 성공 GeneralError BusUnavailable CommunicationError ProtocolError
ODDoesNotExist ODInvalidAccess ODTypeMismatch OperationAborted OperationNotSupported InvalidOperation
InvalidArguments AccessDenied ResourceNotFound ResourceUnavailable OutOfMemory TimeOutError

C: 범주 D: 설명 R: 이유 C: 없음. D: 오류가 없습니다. R: 작업이 성공적으로 완료되었습니다.
C: 지정되지 않음. D: 지정되지 않은 오류입니다. R: 다른 범주에 맞지 않는 실패입니다.
C: 버스. D: 하드웨어 버스를 사용할 수 없습니다. R: 버스가 존재하지 않거나 끊김 또는 결함이 있습니다.
C: 의사소통. D: 통신이 불안정합니다. R: 예상치 못한 데이터, 잘못된 CRC, 프레임 또는 패리티 오류 등.
C: 프로토콜. D: 프로토콜 오류입니다. R: 지원되지 않는 프로토콜 옵션, 지원되지 않는 프로토콜에 대한 장치 보고, 프로토콜 오류(예: SDO 세그먼트 동기화 비트) 등에 대한 응답. R: 지원되지 않는 프로토콜(옵션) 또는 프로토콜 오류(예: SDO)에 대한 응답 또는 장치 보고 세그먼트 동기화 비트) 등 R: 지원되지 않는 프로토콜(옵션) 또는 프로토콜 오류(예: SDO 세그먼트 동기화 비트) 등
C: 객체 사전. D: OD 주소가 존재하지 않습니다. R: 객체 사전에 해당 주소가 없습니다.
C: 개체 사전. D: OD 주소에 대한 액세스가 유효하지 않습니다. R: 읽기 전용 쓰기를 시도하거나 쓰기 전용 주소에서 읽으려고 시도합니다.
C: 개체 사전. D: 유형이 일치하지 않습니다. R: 예를 들어 문자열을 숫자로 처리하려는 시도에서 지정된 유형으로 변환되지 않은 값입니다.
C: 신청. D: 프로세스가 중단되었습니다. R: 신청요청으로 인해 처리가 중단되었습니다. 버스 스캐닝 등의 콜백 함수에 의한 작업 중단 시에만 반환됩니다.
C: 일반적입니다. D: 프로세스가 지원되지 않습니다. R: 하드웨어 버스/장치 지원이 없습니다.
C: 일반적입니다. D: 현재 컨텍스트에서 프로세스가 잘못되었거나 현재 인수에서 유효하지 않습니다. R: 이미 연결된 버스/장치에 대한 재연결 시도입니다. 이미 연결이 끊어진 연결을 시도합니다. 펌웨어 모드에서 부트로더 작업을 시도하거나 그 반대로 시도합니다.
C: 일반적입니다. D: 인수가 유효하지 않습니다. R: 논리나 구문이 잘못되었습니다.
C: 일반적입니다. D: 액세스가 거부되었습니다. R: 요청된 작업을 수행할 수 있는 권한이나 능력이 부족합니다.
C: 일반적입니다. D: 지정된 항목을 찾을 수 없습니다. R: 하드웨어 버스, 프로토콜, 장치, 장치의 OD 주소 또는 file 발견되지 않았습니다.
C: 일반적입니다. D: 지정된 항목을 찾을 수 없습니다. R: 사용 중, 존재하지 않음, 끊김 또는 결함.
C: 일반적입니다. D: 메모리가 부족합니다. R: 이 명령을 처리하기에는 메모리가 너무 부족합니다.
C: 일반적입니다. D: 프로세스 시간이 초과되었습니다. R: 타임아웃이 만료된 후 복귀합니다. 타임아웃은 장치 응답 시간, 공유 또는 독점 리소스 액세스를 얻는 시간 또는 버스/장치를 적절한 상태로 전환하는 시간일 수 있습니다.

버전: doc 1.4.2 / NanoLib 1.3.0

53

8 클래스/함수 참조

8.30 Nlc콜백
콜백에 대한 이 부모 클래스에는 다음과 같은 공개 멤버 함수가 있습니다: callback()
가상 ResultVoid 콜백()

보고

결과공허

8.31 NlcDataTransferCallback
데이터 전송(펌웨어 업데이트, NanoJ 업로드 등)에 이 콜백 클래스를 사용합니다. 1. 펌웨어 업로드의 경우: 사용자 정의 콜백 메서드로 이 클래스를 확장하는 "공동 클래스"를 정의합니다.
구현. 2. NanoLibAccessor.uploadFirmware() 호출에서 "co-class" 인스턴스를 사용합니다. 메인 클래스 자체에는 다음과 같은 공개 멤버 함수가 있습니다.

콜백() 가상 ResultVoid 콜백(nlc::DataTransferInfo 정보, int32_t 데이터)

보고

결과공허

8.32 NlcScanBus콜백
버스 스캐닝에 이 콜백 클래스를 사용합니다. 1. 사용자 정의 콜백 메서드 구현으로 이 클래스를 확장하는 "공동 클래스"를 정의합니다. 2. NanoLibAccessor.scanDevices() 호출에서 "공동 클래스"의 인스턴스를 사용합니다. 메인 클래스 자체에는 다음과 같은 공개 멤버 함수가 있습니다.

콜백()
가상 ResultVoid 콜백(nlc::BusScanInfo 정보, std::vector const & devicesFound, int32_t 데이터)

ResultVoid를 반환합니다.
8.33 NlcLoggingCallback
콜백을 기록하려면 이 콜백 클래스를 사용하세요. 1. 사용자 정의 콜백 메서드 구현으로 이 클래스를 확장하는 클래스를 정의합니다. 2. NanoLibAccessor에 의한 콜백을 설정하려면 해당 인스턴스에 대한 포인터를 사용합니다.
setLoggingCallback(...).
가상 void 콜백(const std::string & payload_str, const std::string & formatted_str, const std::string & logger_name, const unsigned int log_level, const std::uint64_t time_since_epoch, const size_t thread_id)

8.34 초ampler인터페이스
이 클래스를 사용하여 s를 구성, 시작 및 중지합니다.ampler, 또는 s를 얻으려면amp데이터를 가져오고 다음으로 가져옵니다.ampler의 상태 또는 마지막 오류. 클래스에는 다음과 같은 공용 멤버 함수가 있습니다.

버전: doc 1.4.2 / NanoLib 1.3.0

54

8 클래스/함수 참조

구성() 다음과 같이 구성합니다.amp러.
가상 ResultVoid nlc::SamplerInterface::configure(const DeviceHandle deviceHandle, const SamplerConfiguration & sampler구성)

매개변수 [in] deviceHandle [in] sampler구성
ResultVoid를 반환합니다.

구성할 장치를 지정합니다.amp에 대한. 구성 속성의 값을 지정합니다. void 함수가 실행되었는지 확인합니다.

getData() s를 가져옵니다.amp주도 데이터.
가상 결과ampleDataArray nlc::SamplerInterface::getData (const DeviceHandle 장치 핸들)

매개변수 [in] deviceHandle은 ResultS를 반환합니다.ampleDataArray

데이터를 가져올 장치를 지정합니다.
s를 제공합니다ampLED 데이터(s인 경우 빈 배열일 수 있음)amplerNotify는 시작 시 활성화됩니다.

getLastError() 다음과 같이 가져옵니다.ampler의 마지막 실수.
가상 ResultVoid nlc::SamplerInterface::getLastError(const DeviceHandle deviceHandle)

ResultVoid를 반환합니다.

void 함수가 실행되었는지 확인합니다.

getState() 다음과 같이 가져옵니다.amp러의 상태.
가상 결과amplerState nlc::SamplerInterface::getState (const DeviceHandle 장치핸들)

결과 반환amplerState

s를 제공합니다amp레 상태.

start() 다음으로 시작합니다.amp러.
가상 ResultVoid nlc::SamplerInterface::start(const DeviceHandle deviceHandle, SamplerNotify* samplerNotify, int64_t applicationData)

매개변수 [in] deviceHandle [in] SamplerNotify [in] applicationData
ResultVoid를 반환합니다.

s를 시작할 장치를 지정합니다.amp에 대한.
보고할 선택적 정보를 지정합니다(nullptr일 수 있음).
옵션: 애플리케이션 관련 데이터(사용자 정의 8비트 값 배열/장치 ID/인덱스 또는 날짜/시간, 변수/함수 포인터 등)를 s로 전달합니다.amplerNotify.
void 함수가 실행되었는지 확인합니다.

버전: doc 1.4.2 / NanoLib 1.3.0

55

8 클래스/함수 참조

stop () 다음과 같이 중지합니다.amp러.
가상 ResultVoid nlc::SamplerInterface::stop (const DeviceHandle 장치핸들)

매개변수 [in] deviceHandle은 ResultVoid를 반환합니다.

s를 중지할 장치를 지정합니다.amp에 대한. void 함수가 실행되었는지 확인합니다.

8.35 초ampler구성 구조체

이 구조체에는 데이터가 포함되어 있습니다.ampler의 구성 옵션(정적이든 아니든).

공개 속성

표준::벡터 추적된 주소

최대 12개의 OD 주소amp주도.

단위32_t

버전

구조의 버전입니다.

단위32_t

기간밀리초

Samp링 지속 시간(ms)(1~65535)

단위16_t

기간밀리초

Samp링 기간(ms)

단위16_t

S의 수amp레

Samp레 금액.

단위16_t

사전 트리거NumberOfSamp레

Samp사전 트리거 금액입니다.

소프트웨어구현 사용

소프트웨어 구현을 사용하십시오.

NewFWS 사용amplerImplementation 다음을 갖춘 장치에 FW 구현을 사용합니다.

FW 버전 v24xx 이상.

SamplerMode

방법

정상, 반복 또는 연속amp링.

SamplerTriggerCondition TriggerCondition

시작 트리거 조건: TC_FALSE = 0x00 TC_TRUE = 0x01 TC_SET = 0x10 TC_CLEAR = 0x11 TC_RISING_EDGE = 0x12 TC_FALLING_EDGE = 0x13 TC_BIT_TOGGLE = 0x14 TC_GREATER = 0x15 TC_GREATER_OR_EQUAL = 0x16 TC_LESS = 0x17 TC_LESS_OR_EQUAL = 0x18 TC_EQUAL = 0x19 TC_NOT_EQUAL = 0x1A TC_ONE_EDGE = 0x1B TC_MULTI_EDGE = 0x1C, OdIndex, triggerValue

SamplerTrigger

SamplerTrigger

다음으로 시작할 트리거amp레르?

정적 공개 속성
정적 constexpr size_t SAMPLER_CONFIGURATION_VERSION = 0x01000000 정적 constexpr size_t MAX_TRACKED_ADDRESSES = 12
8.36 초ampler알림
이 클래스를 사용하여 활성화amp다음으로 시작할 때 알림이 뜹니다.amp러. 클래스에는 다음과 같은 공개 멤버 함수가 있습니다.

버전: doc 1.4.2 / NanoLib 1.3.0

56

8 클래스/함수 참조

알리다 ()
알림 항목을 전달합니다.
가상 무효 nlc::SamplerNotify::notify(const ResultVoid & lastError, const SamplerState 의amplerState, const std::vector <SampleData> & sampleDatas, int64_t 애플리케이션 데이터)

매개변수 [in] lastError [in] samplerState
[in] 초ampleDatas [in] applicationData

s 동안 발생한 마지막 오류를 보고합니다.amp링. 보고서amp알림 시간의 서버 상태: 구성되지 않음/구성됨/준비됨/실행 중/완료됨/실패함/취소됨. 보고서ampLED 데이터 배열. 애플리케이션별 데이터를 보고합니다.

8.37 초ampleData 구조체

이 구조체에는 s가 포함되어 있습니다.amp주도 데이터.

uin64_t 반복 번호

0부터 시작하고 반복 모드에서만 증가합니다.

표준::벡터<SampledValues> 의 배열을 포함합니다.ampLED 가치.

8.38 초ampledValue 구조체

이 구조체에는 s가 포함되어 있습니다.ampLED 가치.

in64_t 값 uin64_t CollectTimeMsec

추적된 OD 주소의 값을 포함합니다.
s를 기준으로 밀리초 단위의 수집 시간을 포함합니다.amp르 시작.

8.39 초amplerTrigger 구조체

이 구조체에는 s의 트리거 설정이 포함되어 있습니다.amp러.

SamplerTriggerCondition 조건
OdIndex uin32_t 값

트리거 조건: TC_FALSE = 0x00 TC_TRUE = 0x01 TC_SET = 0x10 TC_CLEAR = 0x11 TC_RISING_EDGE = 0x12 TC_FALLING_EDGE = 0x13 TC_BIT_TOGGLE = 0x14 TC_GREATER = 0x15 TC_GREATER_OR_EQUAL = 0x16 TC_LESS = 0x17 TC_LESS_OR_EQUAL = 0x18 TC_EQUAL = 0x19 TC_NOT_EQUAL = 0x1A TC_ONE_EDGE = 0x1B TC_MULTI_EDGE = 0x1C
트리거의 OdIndex(주소)입니다.
조건 값 또는 비트 번호(비트 0부터 시작).

8.40 직렬 구조체

여기에서 직렬 통신 옵션과 다음 공개 속성을 찾으세요.

const std::string const SerialBaudRate

BAUD_RATE_OPTIONS_NAME = “직렬 전송 속도” baudRate =SerialBaudRate 구조체

버전: doc 1.4.2 / NanoLib 1.3.0

57

8 클래스/함수 참조

const std::string const 직렬 패리티

PARITY_OPTIONS_NAME = “직렬 패리티” 패리티 = SerialParity 구조체

8.41 SerialBaudRate 구조체

여기에서 직렬 통신 전송 속도와 다음 공개 속성을 찾으세요.

const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string const std::string

BAUD_RATE_7200 = “7200” BAUD_RATE_9600 = “9600” BAUD_RATE_14400 = “14400” BAUD_RATE_19200 = “19200” BAUD_RATE_38400 = “38400” BAUD_RATE_56000 = “56000” BAUD_RATE_57600 = “ 57600” BAUD_RATE_115200 = “115200” BAUD_RATE_128000 = “128000” BAUD_RATE_256000 = “256000”

8.42 SerialParity 구조체

여기에서 직렬 패리티 옵션과 다음 공개 속성을 찾으세요.

const std::string const std::string const std::string const std::string const std::string

NONE = "없음" ODD = "홀수" EVEN = "짝수" MARK = "표시" SPACE = "공백"

버전: doc 1.4.2 / NanoLib 1.3.0

58

9 라이선스

9 라이선스

NanoLib API 인터페이스 헤더 및 examp파일 소스 코드는 Creative Commons Attribution 3.0 Unported License(CC BY)에 따라 Nanotec Electronic GmbH & Co. KG에 의해 라이센스가 부여됩니다. 바이너리 형식으로 제공되는 라이브러리 부품(코어 및 필드버스 통신 라이브러리)은 Creative Commons AttributionNoDerivatives 4.0 International License(CC BY ND)에 따라 라이센스가 부여됩니다.

크리에이티브 커먼즈
사람이 읽을 수 있는 다음 요약은 라이선스 자체를 대체하지 않습니다. creativecommons.org 및 아래 링크에서 해당 라이센스를 찾을 수 있습니다. 귀하는 다음을 자유롭게 수행할 수 있습니다.

저작권 3.0
공유: 오른쪽을 보세요. 적응: 리믹스, 변형 및 구축
어떤 목적으로든, 심지어 상업적으로도 사용할 수 있는 자료입니다.

저작권: CC BY-ND 4.0
공유: 매체나 형식에 관계없이 자료를 복사하고 재배포합니다.

귀하가 다음 라이센스 조건을 준수하는 한 라이센스 제공자는 위의 자유를 취소할 수 없습니다.

저작권 3.0

저작권: CC BY-ND 4.0

귀속: 적절한 크레딧을 제공해야 합니다. 귀속: 왼쪽을 참조하세요. 하지만: 이에 대한 링크를 제공하세요.

라이센스에 대한 링크를 제공하고 다음 사항을 표시하십시오.

다른 라이센스.

변경되었습니다. 어느 경우에나 그렇게 할 수 있습니다.

파생물 없음: 리믹스, 변형 또는 구축하는 경우

합리적인 방식으로, 그러나 어떤 방식으로도

자료에 따라 배포할 수 없습니다.

라이센스 제공자가 귀하 또는 귀하의 사용을 보증한다는 것을 의미합니다.

수정된 재료.

추가 제한 없음: 신청할 수 없습니다. 추가 제한 없음: 왼쪽을 참조하세요. 법적으로 규정된 법적 용어 또는 기술적 조치

다른 사람이 라이선스에 따라 아무것도 하지 못하도록 제한

허가.

참고: 공개 도메인에 있거나 적용 가능한 예외 또는 제한에 따라 사용이 허용되는 자료의 요소에 대해서는 라이센스를 준수할 필요가 없습니다.
참고: 보증은 제공되지 않습니다. 라이선스는 귀하가 의도한 사용에 필요한 모든 권한을 부여하지 않을 수도 있습니다. 예를 들어amp즉, 퍼블리시티권, 개인정보 보호, 저작인격권과 같은 기타 권리는 귀하의 자료 사용 방식을 제한할 수 있습니다.

버전: doc 1.4.2 / NanoLib 1.3.0

59

임프린트, 연락처, 버전

©2024 Nanotec Electronic GmbH & Co.KGKapellenstr.685622 FeldkirchenGermanyTel.+49(0) 89 900 686-0Fax+49(0)89 900 686-50 info@nanotec.dewww.nanotec.com 모든 권리는 보호됩니다. 오류, 누락, 기술적 또는 내용 변경은 통지 없이 가능합니다. 인용된 브랜드/제품은 해당 소유자의 상표이며 그에 따라 취급됩니다. 원본 버전.

문서 1.4.2 2024.12 1.4.1 2024.10 1.4.0 2024.09 1.3.3 2024.07
1.3.2 2024.05 1.3.1 2024.04 1.3.0 2024.02
1.2.2 2022.09 1.2.1 2022.08 1.2.0 2022.08

+ 추가 > 변경 # 수정 > 제공된 ex의 재작업amp레.
+ NanoLib Modbus: Modbus VCP에 대한 장치 잠금 메커니즘이 추가되었습니다. # NanoLib Core: 연결 상태 확인이 수정되었습니다. # NanoLib Code: 버스 하드웨어 참조 제거가 수정되었습니다.
+ NanoLib-CANopen: Peak PCAN-USB 어댑터(IPEH-002021/002022) 지원.
> NanoLib Core: 로깅 콜백 인터페이스가 변경되었습니다(LogLevel이 LogModule로 대체됨). # NanoLib Logger: 코어와 모듈 간의 분리가 수정되었습니다. # Modbus TCP: FW4에 대한 펌웨어 업데이트가 수정되었습니다. # EtherCAT: Core5에 대한 NanoJ 프로그램 업로드가 수정되었습니다. # EtherCAT: Core5에 대한 펌웨어 업데이트가 수정되었습니다.
# Modbus RTU: 펌웨어 업데이트 중 낮은 전송 속도로 인한 타이밍 문제를 수정했습니다. # RESTful: NanoJ 프로그램 업로드를 수정했습니다.
# NanoLib 모듈 Sampler: s의 올바른 읽기ampLED 부울 값.
+ 모든 플랫폼에 대한 Java 11 지원. + 모든 플랫폼에 대한 Python 3.11/3.12 지원. + 새로운 로깅 콜백 인터페이스(예제 참조)amp레). + NanoLib Logger용 콜백 싱크. > 로거를 버전 1.12.0으로 업데이트합니다. > NanoLib 모듈 Sampler: 이제 Nanotec 컨트롤러 펌웨어 v24xx가 지원됩니다. > NanoLib 모듈 Sampler: s에 사용되는 구조 변경amp러 구성. > NanoLib 모듈 Sampler: 연속 모드는 무한과 동의어입니다. 트리거 조건은 한 번 확인됩니다. s의 수amp파일은 0이어야 합니다. > NanoLib 모듈 Sampler: 펌웨어 모드에서 데이터를 수집하는 스레드의 일반 우선순위입니다. > NanoLib 모듈 Sampler: 준비 및 실행 상태 사이의 전환을 감지하기 위해 알고리즘을 다시 작성했습니다. # NanoLib 코어: 동일한 버스 하드웨어를 사용하여 0개 이상의 장치를 닫을 때 더 이상 액세스 위반(0000005xC2)이 발생하지 않습니다. # NanoLib 코어: Linux에서 PEAK 어댑터 연결 시 더 이상 분할 오류가 발생하지 않습니다. # NanoLib 모듈 Sampler: 맞아요amp펌웨어 모드에서 LED 값을 읽습니다. # NanoLib 모듈 Sampler: 502X:04의 구성이 정확합니다. # NanoLib 모듈 Sampler: 채널과 버퍼의 올바른 혼합. # NanoLib-Canopen: 낮은 전송 속도에서 견고성과 올바른 스캐닝을 위해 CAN 시간 초과가 증가했습니다. # NanoLib-Modbus: 특수 장치(USB-DA-IO)에 대한 VCP 감지 알고리즘입니다.
+ EtherCAT 지원.
+ 프로젝트 구성에서 VS 프로젝트 설정에 대한 참고 사항.
+ getDeviceHardwareGroup(). + getProfinetDCP(서비스 사용 가능 여부). + getProfinetDCP(ProfinetDeviceIp 검증). + autoAssignObjectDictionary(). + getXmlFile이름(). + const std::string & xmlFileaddObjectDictionary()의 경로. + getSamplerInterface().

제품 1.3.0 1.2.1 1.2.0 1.1.3
1.1.2 1.1.1 1.1.0
1.0.1(B349) 1.0.0(B344) 1.0.0(B341)

버전: doc 1.4.2 / NanoLib 1.3.0

60

10 인쇄물, 연락처, 버전

문서
1.1.2 2022.03 1.1.1 2021.11 1.1.0 2021.06 1.0.1 2021.06 1.0.0 2021.05

+ 추가됨 > 변경됨 # 수정됨 + rebootDevice(). + getDeviceBootloaderVersion(), ~VendorId(), ~HardwareVersion(), ~SerialNumber 및 ~Uid에 대한 오류 코드 ResourceUnavailable. > firmwareUploadFromFile 지금 uploadFirmwareFromFile (). > firmwareUpload() 이제 uploadFirmware(). > bootloaderUploadFromFile () 이제 BootloaderFrom을 업로드합니다File (). > bootloaderUpload() 이제 uploadBootloader(). > bootloaderFirmwareUploadFromFile () 부트로더 펌웨어를 업로드하려면File (). > bootloaderFirmwareUpload() 이제 uploadBootloaderFirmware(). > nanojUploadFromFile () 이제 NanoJFrom을 업로드합니다File (). > nanojUpload()는 이제 uploadNanoJ()로 변경되었습니다. > objectDictionaryLibrary()는 이제 getObjectDictionaryLibrary()로 변경되었습니다. > String_String_Map은 이제 StringStringMap으로 변경되었습니다. > NanoLib-Common: Ixxat 어댑터를 사용하여 listAvailableBusHardware 및 openBusHardwareWithProtocol을 더 빠르게 실행합니다. > NanoLib-CANopen: 버스 하드웨어 옵션이 비어 있으면 기본 설정(1000k 통신 속도, Ixxat 버스 번호 0)을 사용합니다. > NanoLib-RESTful: npcap/winpcap 드라이버를 사용할 수 있는 경우 Windows에서 이더넷 부트로더와 통신할 때 관리자 권한이 더 이상 사용되지 않습니다. # NanoLib-CANopen: 버스 하드웨어가 이제 비어 있는 옵션으로 충돌 없이 열립니다. # NanoLib-Common: 이제 메모리 누수 없이 openBusHardwareWithProtocol()을 실행합니다.
+ Linux ARM64 지원. + USB 대용량 저장소 / REST / Profinet DCP 지원. + checkConnectionState(). + getDeviceBootloaderVersion(). + ResultProfinetDevices. + NlcErrorCode(NanotecExceptions를 대체). + NanoLib Modbus: VCP / USB 허브가 USB로 통합되었습니다. > Modbus TCP 스캐닝에서 결과가 반환됩니다. < Modbus TCP 통신 지연 시간은 일정하게 유지됩니다.
+ 더 많은 ObjectEntryDataType(복잡하고 전문적)file-특정). + connectDevice() 및 scanDevices()가 아무것도 찾지 못하면 IOError가 반환됩니다. + CanOpen/Modbus의 경우 명목상 시간 제한은 100ms에 불과합니다.
+ Modbus 지원(VCP를 통한 USB 허브 포함). + 챕터에서 자신의 Linux 프로젝트를 만드는 방법. + extraHardwareSpecifier를 BusHardwareId()로 변환. + extraId_ 및 extraStringId_를 DeviceId()로 변환.
+ setBusState(). + getDeviceBootloaderBuildId(). + getDeviceFirmwareBuildId(). + getDeviceHardwareVersion(). # 버그 수정.
판.

제품
0.8.0 0.7.1 0.7.0 0.5.1 0.5.1

버전: doc 1.4.2 / NanoLib 1.3.0

61

문서 / 리소스

Nanotic NanoLib C++ 프로그래밍 [PDF 파일] 사용자 매뉴얼
NanoLib C 프로그래밍, C 프로그래밍, 프로그래밍

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *