Nanotic NanoLib C++-Programmierung

Produktinformationen
Technische Daten
- Produktname: NanoLib
- Programmierung Sprache: C++
- Produktversion: 1.3.0
- Benutzerhandbuch-Version: 1.4.2
Die NanoLib-Bibliothek ist für die Programmierung von Steuerungssoftware für Nanotec-Controller konzipiert. Sie bietet eine Benutzeroberfläche, Kernfunktionen und Kommunikationsbibliotheken, um die Entwicklung von Steuerungsanwendungen zu erleichtern.
Anweisungen zur Produktverwendung
- Bevor Sie beginnen:
- Stellen Sie sicher, dass Ihr System die im Handbuch angegebenen Hardwareanforderungen erfüllt. Die Zielgruppe dieses Produkts sind Entwickler, die Steuerungssoftware für Nanotec-Controller erstellen möchten.
- Erste Schritte:
- Um NanoLib zu verwenden, befolgen Sie diese Schritte:
- Importieren Sie zunächst NanoLib in Ihr Projekt.
- Konfigurieren Sie Ihre Projekteinstellungen nach Bedarf.
- Erstellen Sie Ihr Projekt, um NanoLib-Funktionen zu integrieren.
- Projekte erstellen:
- Sie können Projekte sowohl für Windows- als auch für Linux-Umgebungen erstellen. Befolgen Sie die spezifischen Anweisungen im Handbuch für jede Plattform.
- Klassen-/Funktionsreferenz:
- Eine ausführliche Anleitung zu den in NanoLib verfügbaren Klassen und Funktionen zur Programmierung von Steuerungssoftware finden Sie im Benutzerhandbuch.
FAQs
- F: Was ist der Zweck von NanoLib?
- A: NanoLib ist eine Bibliothek zum Programmieren von Steuerungssoftware für Nanotec-Controller, die wichtige Funktionen und Kommunikationsfähigkeiten bereitstellt.
- F: Wie kann ich mit NanoLib beginnen?
- A: Importieren Sie zunächst NanoLib in Ihr Projekt, konfigurieren Sie die Projekteinstellungen und erstellen Sie Ihr Projekt, um die NanoLib-Funktionen zu nutzen.
„`
Benutzerhandbuch NanoLib
C++
Gültig ab Produktversion 1.3.0
Benutzerhandbuch-Version: 1.4.2
Dokumentziel und Konventionen
Dieses Dokument beschreibt den Aufbau und die Verwendung der NanoLib-Bibliothek und enthält eine Referenz auf alle Klassen und Funktionen zur Programmierung eigener Steuerungssoftware für Nanotec-Controller. Wir verwenden folgende Schriftarten:
Unterstrichener Text kennzeichnet einen Querverweis oder Hyperlink.
ExampSeite 1: Genaue Anweisungen zum NanoLibAccessor finden Sie unter Setup. BeispielampSeite 2: Installieren Sie den Ixxat-Treiber und schließen Sie den CAN-zu-USB-Adapter an. Kursiver Text bedeutet: Dies ist ein benanntes Objekt, ein Menüpfad / -element, eine Registerkarte / file Name oder (ggf.) ein fremdsprachiger Ausdruck.
ExampSeite 1: Auswählen File > Neu > Leeres Dokument. Öffnen Sie die Registerkarte „Tools“ und wählen Sie „Kommentar“. BeispielampTeil 2: Dieses Dokument unterscheidet zwischen Benutzern (= Nutzer; usuario; utente; utilisateur; utente usw.) und:
– Drittnutzer (= Drittnutzer; tercero usuario; terceiro utente; tiers utilisateur; terzo utente usw.). – Endbenutzer (= Endnutzer; usuario final; utente final; utilisateur final; utente finale usw.).
Courier markiert Codeblöcke oder Programmierbefehle.ample 1: Rufen Sie über Bash sudo make install auf, um gemeinsam genutzte Objekte zu kopieren; rufen Sie dann ldconfig auf. BeispielampSeite 2: Verwenden Sie die folgende NanoLibAccessor-Funktion, um die Protokollierungsebene in NanoLib zu ändern:
// ***** C++-Variante *****
void setLoggingLevel(LogLevel-Ebene);
Fettgedruckter Text hebt einzelne Wörter von entscheidender Bedeutung hervor. Alternativ betonen eingeklammerte Ausrufezeichen die entscheidende(!) Bedeutung.
ExampTipp 1: Schützen Sie sich selbst, andere und Ihre Ausrüstung. Beachten Sie unsere allgemeinen Sicherheitshinweise, die grundsätzlich für alle Nanotec Produkte gelten.
ExampSeite 2: Beachten Sie zu Ihrem eigenen Schutz auch die produktspezifischen Sicherheitshinweise. Das Verb mitklicken bezeichnet einen Klick mit der zweiten Maustaste, um ein Kontextmenü etc. zu öffnen.
ExampSeite 1: Klicken Sie mit der Maus auf file, wählen Sie Umbenennen und benennen Sie das file. ExampSeite 2: Um die Eigenschaften zu überprüfen, klicken Sie mit der rechten Maustaste auf file und wählen Sie Eigenschaften.
Version: doc 1.4.2 / NanoLib 1.3.0
4
Bevor Sie beginnen
Bevor Sie mit der Verwendung von NanoLib beginnen, bereiten Sie Ihren PC vor und informieren Sie sich über den Verwendungszweck und die Einschränkungen der Bibliothek.
2.1 System- und Hardwareanforderungen

HINWEIS Fehlfunktion durch 32-Bit-Betrieb oder abgekündigtes System! 64-Bit-System einsetzen und konsequent pflegen. OEM-Abkündigungen und ~Hinweise beachten.
NanoLib 1.3.0 unterstützt alle Nanotec-Produkte mit CANopen, Modbus RTU (auch USB auf virtuellem COM-Port), Modbus TCP, EtherCat und Profinet. Für ältere NanoLibs: Siehe Änderungsprotokoll im Impressum. Nur auf eigene Gefahr: Verwendung von Altsystemen. Hinweis: Befolgen Sie die gültigen OEM-Anweisungen, um die Latenz so gering wie möglich einzustellen, wenn bei Verwendung eines FTDI-basierten USB-Adapters Probleme auftreten.
Voraussetzungen (64-Bit-System zwingend erforderlich)
Windows 10 oder 11 mit Visual Studio 2019 Version 16.8 oder höher und Windows SDK 10.0.20348.0 (Version 2104) oder höher
C++ Redistributables 2017 oder höher CANopen: Ixxat VCI oder PCAN Basistreiber (optional) EtherCat Modul / Profinet DCP: Npcap oder WinPcap RESTful Modul: Npcap, WinPcap oder Administratorrechte für
Kommunikation mit Ethernet-Bootloadern
Linux mit Ubuntu 20.04 LTS bis 24 (alle x64 und arm64)
Kernel-Header und libpopt-dev-Paket Profinet DCP: CAP_NET_ADMIN- und CAP_NET_RAW-Fähigkeiten
ties CANopen: Ixxat ECI Treiber oder Peak PCAN-USB Adapter EtherCat: CAP_NET_ADMIN, CAP_NET_RAW und
CAP_SYS_NICE Fähigkeiten RESTful: CAP_NET_ADMIN Fähigkeit zur Kommunikation mit Eth-
Internet-Bootloader (ebenfalls empfohlen: CAP_NET_RAW)
Sprache, Feldbusadapter, Kabel
C++ GCC 7 oder höher (Linux)
EtherCAT: Ethernet-Kabel VCP / USB-Hub: jetzt einheitlich USB USB-Massenspeicher: USB-Kabel REST: Ethernet-Kabel CANopen: Ixxat USB-to-CAN V2; Na-
notec ZK-USB-CAN-1, Peak PCANUSB-Adapter Keine Ixxat-Unterstützung für Ubuntu auf arm64
Modbus RTU: Nanotec ZK-USB-RS485-1 oder gleichwertiger Adapter; USB-Kabel am virtuellen COM-Port (VCP)
Modbus TCP: Ethernet-Kabel gemäß Produktdatenblatt
2.2 Verwendungszweck und Zielgruppe
NanoLib ist eine Programmbibliothek und Softwarekomponente für den Betrieb und die Kommunikation mit Nanotec-Steuerungen in zahlreichen industriellen Anwendungen und nur für entsprechend qualifizierte Programmierer.
Aufgrund der nicht echtzeitfähigen Hardware (PC) und des Betriebssystems ist NanoLib nicht für den Einsatz in Anwendungen geeignet, die synchrone Mehrachsenbewegungen erfordern oder generell zeitkritisch sind.
Sie dürfen NanoLib in keinem Fall als Sicherheitskomponente in ein Produkt oder System integrieren. Bei der Lieferung an Endverbraucher müssen Sie jedem Produkt mit einer von Nanotec hergestellten Komponente entsprechende Warnhinweise und Anweisungen für die sichere Verwendung und den sicheren Betrieb beifügen. Sie müssen alle von Nanotec herausgegebenen Warnhinweise direkt an den Endverbraucher weitergeben.
2.3 Lieferumfang und Gewährleistung
NanoLib kommt als *.zip-Ordner aus unserem Download webSite für entweder EMEA / APAC oder AMERIKA. Speichern und entpacken Sie Ihren Download vor dem Setup ordnungsgemäß. Das NanoLib-Paket enthält:
Version: doc 1.4.2 / NanoLib 1.3.0
5
2 Bevor Sie beginnen
Schnittstellenheader als Quellcode (API)
Kernfunktionen als Bibliotheken im Binärformat: nano-
Bibliotheken, die die Kommunikation erleichtern: nanolibm_lib.dll
[yourfieldbus].dll usw.Example-Projekt: Example.sln (Visual Studio
Projekt) und Example.cpp (Haupt file)
Zum Garantieumfang beachten Sie bitte a) unsere Allgemeinen Geschäftsbedingungen für EMEA / APAC oder AMERIKA und b) alle Lizenzbedingungen. Hinweis: Nanotec haftet nicht für fehlerhafte oder unangemessene Qualität, Handhabung, Installation, Betrieb, Nutzung und Wartung von Geräten Dritter! Befolgen Sie zur Sicherheit immer die gültigen OEM-Anweisungen.
Version: doc 1.4.2 / NanoLib 1.3.0
6
Die NanoLib-Architektur
Die modulare Softwarestruktur von NanoLib ermöglicht es Ihnen, frei anpassbare Motorsteuerungs-/Feldbusfunktionen um einen streng vorgefertigten Kern herum anzuordnen. NanoLib enthält die folgenden Module:
Benutzeroberfläche (API)
NanoLib-Kern
Schnittstellen- und Hilfsklassen, die Bibliotheken, die
Kommunikationsbibliotheken Feldbusspezifische Bibliotheken, die
Zugriff auf die API-Funktionalität Ihres Controllers implementieren Schnittstelle zwischen NanoLib
OD (Objektverzeichnis)
mit Busbibliotheken interagieren.
Kern- und Bus-Hardware.
basiert auf der NanoLib-Kernfunktion
Nationalitäten.
3.1 Benutzeroberfläche
Die Benutzeroberfläche besteht aus Header-Schnittstelle files, mit denen Sie auf die Controller-Parameter zugreifen können. Die Benutzeroberflächenklassen, wie sie in der Klassen-/Funktionsreferenz beschrieben sind, ermöglichen Ihnen:
Stellen Sie eine Verbindung sowohl zur Hardware (Feldbusadapter) als auch zum Controllergerät her. Greifen Sie auf das OD des Geräts zu, um die Controllerparameter zu lesen/schreiben.
3.2 NanoLib-Kern
Der NanoLib-Kern wird mit der Importbibliothek nanolib.lib geliefert. Sie implementiert die Benutzeroberflächenfunktionalität und ist verantwortlich für:
Laden und Verwalten der Kommunikationsbibliotheken. Bereitstellen der Benutzeroberflächenfunktionalitäten im NanoLibAccessor. Dieser Kommunikationseinstiegspunkt de-
definiert eine Reihe von Operationen, die Sie auf dem NanoLib-Kern und den Kommunikationsbibliotheken ausführen können.
3.3 Kommunikationsbibliotheken
Zusätzlich zu nanotec.services.nanolib.dll (nützlich für Ihr optionales Plug & Drive Studio) bietet NanoLib die folgenden Kommunikationsbibliotheken:
nanolibm_canopen.dll nanolibm_modbus.dll
nanolibm_ethercat.dll nanolibm_restful-api.dll
nanolibm_usbmmsc.dll nanolibm_profinet.dll
Alle Bibliotheken legen eine Hardwareabstraktionsschicht zwischen Kern und Controller. Der Kern lädt sie beim Start aus dem dafür vorgesehenen Projektordner und verwendet sie, um über das entsprechende Protokoll mit dem Controller zu kommunizieren.
Version: doc 1.4.2 / NanoLib 1.3.0
7
Erste Schritte
Lesen Sie, wie Sie NanoLib ordnungsgemäß für Ihr Betriebssystem einrichten und wie Sie die Hardware bei Bedarf anschließen.
4.1 Bereiten Sie Ihr System vor
Bevor Sie die Adaptertreiber installieren, bereiten Sie Ihren PC zunächst mit dem Betriebssystem vor. Um den PC mit Ihrem Windows-Betriebssystem vorzubereiten, installieren Sie MS Visual Studio mit C++-Erweiterungen. Um make und gcc mit Linux Bash zu installieren, rufen Sie sudo apt install build-essentials auf. Aktivieren Sie dann die Funktionen CAP_NET_ADMIN, CAP_NET_RAW und CAP_SYS_NICE für die Anwendung, die NanoLib verwendet: 1. Rufen Sie sudo setcap 'cap_net_admin,cap_net_raw,cap_sys_nice+eip' auf.
Name>. 2. Installieren Sie erst dann Ihre Adaptertreiber.
4.2 Installieren des Ixxat-Adaptertreibers für Windows
Erst nach der ordnungsgemäßen Treiberinstallation können Sie den USB-to-CAN V2-Adapter von Ixxat verwenden. Lesen Sie das Produkthandbuch des USB-Laufwerks, um zu erfahren, ob und wie Sie den virtuellen Comport (VCP) aktivieren. 1. Laden Sie den VCI 4-Treiber von Ixxat für Windows herunter und installieren Sie ihn von www.ixxat.com. 2. Verbinden Sie den USB-to-CAN V2-Kompaktadapter von Ixxat über USB mit dem PC. 3. Über den Geräte-Manager: Überprüfen Sie, ob Treiber und Adapter ordnungsgemäß installiert/erkannt wurden.
4.3 Installieren Sie den Peak-Adaptertreiber für Windows
Erst nach der ordnungsgemäßen Treiberinstallation können Sie den PCAN-USB-Adapter von Peak verwenden. Lesen Sie im Produkthandbuch des USB-Laufwerks nach, ob und wie Sie den virtuellen Comport (VCP) aktivieren. 1. Laden Sie das Windows-Gerätetreiber-Setup herunter und installieren Sie es (= Installationspaket mit Gerätetreibern, Tools und
APIs) von http://www.peak-system.com. 2. Verbinden Sie den PCAN-USB-Adapter von Peak über USB mit dem PC. 3. Über den Geräte-Manager: Überprüfen Sie, ob Treiber und Adapter ordnungsgemäß installiert/erkannt wurden.
4.4 Installieren des Ixxat-Adaptertreibers für Linux
Erst nach der ordnungsgemäßen Treiberinstallation können Sie den USB-to-CAN V2-Adapter von Ixxat verwenden. Hinweis: Andere unterstützte Adapter benötigen Ihre Berechtigungen per sudo chmod +777/dev/ttyACM* (* Gerätenummer). Lesen Sie das Produkthandbuch des USB-Laufwerks, um zu erfahren, ob und wie Sie den virtuellen Comport (VCP) aktivieren. 1. Installieren Sie die für den ECI-Treiber und die Demoanwendung erforderliche Software:
sudo apt-get update apt-get installiere libusb-1.0-0-dev libusb-0.1-4 libc6 libstdc++6 libgcc1 buildessential
2. Laden Sie den ECI-for-Linux-Treiber von www.ixxat.com herunter. Entpacken Sie ihn über:
entpacken Sie eci_driver_linux_amd64.zip
3. Installieren Sie den Treiber über:
cd /EciLinux_amd/src/KernelModule sudo make install-usb
4. Überprüfen Sie die erfolgreiche Treiberinstallation, indem Sie die Demoanwendung kompilieren und starten:
cd /EciLinux_amd/src/EciDemos/ sudo make cd /EciLinux_amd/bin/release/ ./LinuxEciDemo
Version: doc 1.4.2 / NanoLib 1.3.0
8
4 Erste Schritte
4.5 Installieren Sie den Peak-Adaptertreiber für Linux
Erst nach der ordnungsgemäßen Treiberinstallation können Sie den PCAN-USB-Adapter von Peak verwenden. Hinweis: Andere unterstützte Adapter benötigen Ihre Berechtigungen per sudo chmod +777/dev/ttyACM* (* Gerätenummer). Lesen Sie das Produkthandbuch des USB-Laufwerks, um zu erfahren, ob und wie Sie den virtuellen Comport (VCP) aktivieren. 1. Überprüfen Sie, ob Ihr Linux Kernel-Header hat: ls /usr/src/linux-headers-`uname -r`. Wenn nicht, installieren Sie
2. Führen Sie den folgenden Befehl aus: sudo apt-get install linux-headers-`uname -r` 3. Installieren Sie jetzt das libpopt-dev-Paket: sudo apt-get install libpopt-dev 4. Laden Sie das benötigte Treiberpaket (peak-linux-driver-xxx.tar.gz) von www.peak-system.com herunter. 5. Entpacken Sie es mit: tar xzf peak-linux-driver-xxx.tar.gz XNUMX. Kompilieren und installieren Sie im entpackten Ordner die Treiber, die PCAN-Basisbibliothek usw.: make all
sudo make install 6. Um die Funktion zu überprüfen, stecken Sie den PCAN-USB-Adapter ein.
a) Überprüfen Sie das Kernelmodul:
lsmod | grep pcan b) … und die gemeinsam genutzte Bibliothek:
ls -l /usr/lib/libpcan*
Hinweis: Wenn USB3-Probleme auftreten, verwenden Sie einen USB2-Anschluss.
4.6 Schließen Sie Ihre Hardware an
Um ein NanoLib-Projekt ausführen zu können, verbinden Sie einen kompatiblen Nanotec-Controller mithilfe Ihres Adapters mit dem PC. 1. Verbinden Sie Ihren Adapter über ein geeignetes Kabel mit dem Controller. 2. Verbinden Sie den Adapter gemäß dem Adapterdatenblatt mit dem PC. 3. Schalten Sie den Controller mithilfe eines geeigneten Netzteils ein. 4. Ändern Sie bei Bedarf die Kommunikationseinstellungen des Nanotec-Controllers gemäß den Anweisungen im Produkthandbuch.
4.7 NanoLib laden
Für einen ersten Einstieg mit schnellen und einfachen Grundlagen können Sie (müssen aber nicht) unsere Ex verwenden.amp1. Abhängig von Ihrer Region: Laden Sie NanoLib von unserem webSite für entweder EMEA / APAC oder AMERICA. 2. Entpacken Sie das Paket files / Ordner und wählen Sie eine Option: Für schnelle und einfache Grundlagen: Siehe Starten der example-Projekt. Für erweiterte Anpassungen in Windows: Siehe Erstellen Ihres eigenen Windows-Projekts. Für erweiterte Anpassungen in Linux: Siehe Erstellen Ihres eigenen Linux-Projekts.
Version: doc 1.4.2 / NanoLib 1.3.0
9
Starten des Exampdas Projekt
Wenn NanoLib ordnungsgemäß geladen ist,ampDas Projekt zeigt Ihnen die Verwendung von NanoLib mit einem Nanotec-Controller. Hinweis: Für jeden Schritt finden Sie Kommentare im bereitgestellten Beispielample-Code erklärt die verwendeten Funktionen. Der ExampDas Projekt besteht aus: dem `*_functions_example.*' files, die die Implementierungen für die NanoLib-Schnittstellenfunktionen enthalten, die `*_callback_example.*' files, die Implementierungen für die verschiedenen Callbacks (Scan, Daten und
Protokollierung) das `menu_*.*' file, das die Menülogik und den Code des Ex enthältample.* file, das Hauptprogramm, das das Menü erstellt und alle verwendeten Parameter initialisiert.ampler_example.* file, das das Ex enthältample Implementierung für sampler-Nutzung. Weitere Beispiele finden SieampDateien mit einigen Bewegungsbefehlen für verschiedene Betriebsarten finden Sie in der Knowledge Base auf nanotec.com. Alle sind unter Windows oder Linux verwendbar.
In Windows mit Visual Studio 1. Öffnen Sie das Example.sln file2. Öffnen Sie das Examp3. Kompilieren und starten Sie dieampder Code.
Unter Linux über Bash 1. Entpacken Sie die Quelle file, navigieren Sie zu dem Ordner mit dem entpackten Inhalt. Der Haupt file für den Example ist
example.cpp. 2. Rufen Sie in der Bash auf:
a. „sudo make install“, um die freigegebenen Objekte zu kopieren und ldconfig aufzurufen. b. „make all“, um die ausführbare Testdatei zu erstellen. 3. Der Ordner „bin“ enthält eine ausführbare Datei, z. B.ample file. Per Bash: Gehen Sie zum Ausgabeordner und geben Sie ./ex ein.ample. Wenn kein Fehler auftritt, sind Ihre gemeinsam genutzten Objekte nun ordnungsgemäß installiert und Ihre Bibliothek ist einsatzbereit. Wenn der Fehler lautet ./example: Fehler beim Laden gemeinsam genutzter Bibliotheken: libnanolib.so: Gemeinsam genutztes Objekt kann nicht geöffnet werden file: Keine solche file oder Verzeichnis, die Installation der freigegebenen Objekte ist fehlgeschlagen. Befolgen Sie in diesem Fall die nächsten Schritte. 4. Erstellen Sie einen neuen Ordner innerhalb von /usr/local/lib (Administratorrechte erforderlich). Geben Sie in die Bash Folgendes ein:
sudo mkdir /usr/local/lib/nanotec
5. Alle freigegebenen Objekte aus der Zip-Datei kopieren file's lib-Ordner:
installiere ./lib/*.so /usr/local/lib/nanotec/
6. Prüfen Sie den Inhalt des Zielordners mit:
ls -al /usr/local/lib/nanotec/
Es sollte das gemeinsam genutzte Objekt auflisten files aus dem lib-Ordner. 7. Führen Sie ldconfig in diesem Ordner aus:
sudo ldconfig /usr/local/lib/nanotec/
Der Example ist als CLI-Anwendung implementiert und bietet eine Menüschnittstelle. Die Menüeinträge sind kontextbasiert und werden je nach Kontextstatus aktiviert oder deaktiviert. Sie bieten Ihnen die Möglichkeit, verschiedene Bibliotheksfunktionen auszuwählen und auszuführen, indem Sie dem typischen Workflow für die Handhabung eines Controllers folgen: 1. Den PC auf angeschlossene Hardware (Adapter) prüfen und auflisten. 2. Verbindung zu einem Adapter herstellen. 3. Den Bus nach angeschlossenen Controllergeräten durchsuchen. 4. Verbindung zu einem Gerät herstellen.
Version: doc 1.4.2 / NanoLib 1.3.0
10
5 Starten des Exampdas Projekt
5. Testen Sie eine oder mehrere der Bibliotheksfunktionen: Lesen/Schreiben vom/zum Objektverzeichnis des Controllers, Aktualisieren der Firmware, Hochladen und Ausführen eines NanoJ-Programms, Starten und Einstellen des Motors, Konfigurieren und Verwenden der Protokollierung/enamplesen.
6. Schließen Sie die Verbindung zunächst zum Gerät und dann zum Adapter.
Version: doc 1.4.2 / NanoLib 1.3.0
11
Erstellen eines eigenen Windows-Projekts
Erstellen, kompilieren und führen Sie Ihr eigenes Windows-Projekt aus, um NanoLib zu verwenden.
6.1 NanoLib importieren
Importieren Sie den NanoLib-Header files und Bibliotheken über MS Visual Studio.
1. Öffnen Sie Visual Studio. 2. Wählen Sie über Neues Projekt erstellen > Konsolen-App C++ > Weiter einen Projekttyp aus. 3. Geben Sie Ihrem Projekt einen Namen (hier: NanolibTest), um einen Projektordner im Solution Explorer zu erstellen. 4. Wählen Sie Fertig stellen. 5. Öffnen Sie das Fenster file Explorer und navigieren Sie zum neu erstellten Projektordner. 6. Erstellen Sie zwei neue Ordner, inc und lib. 7. Öffnen Sie den NanoLib-Paketordner. 8. Von dort: Kopieren Sie den Header files aus dem Include-Ordner in Ihren Projektordner inc und alle .lib und .dll
files in Ihren neuen Projektordner lib. 9. Überprüfen Sie Ihren Projektordner auf die richtige Struktur, zum Beispielampauf:
ect-Ordner für die erforderliche Struktur:
. 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 Konfigurieren Sie Ihr Projekt
Verwenden Sie den Solution Explorer in MS Visual Studio, um NanoLib-Projekte einzurichten. Hinweis: Für einen korrekten Betrieb von NanoLib wählen Sie in den Visual C++-Projekteinstellungen die Release-Konfiguration (nicht Debug-Konfiguration!) aus. Erstellen und verknüpfen Sie dann das Projekt mit VC-Runtimes von C++ Redistributables [2022].
1. Im Solution Explorer: Gehen Sie zu Ihrem Projektordner (hier: NanolibTest). 2. Klicken Sie mit gedrückter Maustaste auf den Ordner, um das Kontextmenü zu öffnen. 3. Wählen Sie Eigenschaften. 4. Aktivieren Sie Alle Konfigurationen und Alle Plattformen. 5. Wählen Sie C/C++ und gehen Sie zu Zusätzliche Include-Verzeichnisse. 6. Fügen Sie ein: $(ProjectDir)Nanolib/includes;%(AdditionalIncludeDirectories) 7. Wählen Sie Linker und gehen Sie zu Zusätzliche Bibliotheksverzeichnisse. 8. Fügen Sie ein: $(ProjectDir)Nanolib;%(AdditionalLibraryDirectories) 9. Erweitern Sie Linker und wählen Sie Eingabe. 10.Gehen Sie zu Zusätzliche Abhängigkeiten und fügen Sie ein: nanolib.lib;%(AdditionalDependencies) 11.Bestätigen Sie mit OK.
Version: doc 1.4.2 / NanoLib 1.3.0
12
6 Erstellen eines eigenen Windows-Projekts
12.Gehen Sie zu Konfiguration > C++ > Sprache > Sprachstandard > ISO C++17-Standard und stellen Sie den Sprachstandard auf C++17 ein (/std:c++17).
6.3 Erstellen Sie Ihr Projekt
Erstellen Sie Ihr NanoLib-Projekt in MS Visual Studio. 1. Öffnen Sie die Haupt-*.cpp file (hier: nanolib_example.cpp) und bearbeiten Sie den Code, falls nötig. 2. Wählen Sie Erstellen > Konfigurationsmanager. 3. Ändern Sie Aktive Lösungsplattformen in x64. 4. Bestätigen Sie mit Schließen. 5. Wählen Sie Erstellen > Lösung erstellen. 6. Kein Fehler? Überprüfen Sie, ob Ihre Kompilierungsausgabe ordnungsgemäß Folgendes meldet:
1>—— Bereinigen gestartet: Projekt: NanolibTest, Konfiguration: Debug x64 —–========== Bereinigen: 1 erfolgreich, 0 fehlgeschlagen, 0 übersprungen ==========
Version: doc 1.4.2 / NanoLib 1.3.0
13
7 Erstellen Sie Ihr eigenes Linux-Projekt
7 Erstellen Sie Ihr eigenes Linux-Projekt
Erstellen, kompilieren und führen Sie Ihr eigenes Linux-Projekt aus, um NanoLib zu verwenden. 1. Im entpackten NanoLib-Installationskit: Öffnen /nanotec_nanolib. 2. Alle gemeinsam genutzten Objekte in der tar.gz-Datei finden file3. Wählen Sie eine Option: Installieren Sie jede Bibliothek entweder mit einem Makefile oder von Hand.
7.1 Installieren Sie die freigegebenen Objekte mit Makefile
Verwenden Sie Makefile mit Linux Bash zur automatischen Installation aller Standard *.so files. 1. Via Bash: Gehen Sie in den Ordner mit dem makefile2. Kopieren Sie die freigegebenen Objekte über:
sudo make install 3. Bestätigen Sie mit:
ldconfig
7.2 Installieren Sie die gemeinsam genutzten Objekte manuell
Verwenden Sie eine Bash, um alle *.so zu installieren files von NanoLib manuell. 1. Via Bash: Erstellen Sie einen neuen Ordner innerhalb von /usr/local/lib. 2. Administratorrechte erforderlich! Geben Sie ein:
sudo mkdir /usr/local/lib/nanotec 3. Wechseln Sie in den entpackten Installationspaketordner. 4. Kopieren Sie alle freigegebenen Objekte aus dem Lib-Ordner über:
install ./nanotec_nanolib/lib/*.so /usr/local/lib/nanotec/ 5. Überprüfen Sie den Inhalt des Zielordners über:
ls -al /usr/local/lib/nanotec/ 6. Überprüfen Sie, ob alle freigegebenen Objekte aus dem Ordner „lib“ aufgelistet sind. 7. Führen Sie ldconfig für diesen Ordner aus über:
sudo ldconfig /usr/local/lib/nanotec/
7.3 Erstellen Sie Ihr Projekt
Nachdem Ihre freigegebenen Objekte installiert wurden: Erstellen Sie ein neues Projekt für Ihre Linux NanoLib. 1. Über Bash: Erstellen Sie einen neuen Projektordner (hier: NanoLibTest) über:
mkdir NanoLibTest cd NanoLibTest
2. Kopfzeile kopieren files in einen Include-Ordner (hier: inc) via: mkdir inc cp / FILE IS>/nanotec_nanolib/inc/*.hpp inc
3. Erstellen Sie einen Haupt file (NanoLibTest.cpp) über: #include „accessor_factory.hpp“ #include
Version: doc 1.4.2 / NanoLib 1.3.0
14
7 Erstellen Sie Ihr eigenes Linux-Projekt
int main(){ nlc::NanoLibAccessor *accessor = getNanoLibAccessor();
nlc::ResultBusHwIds Ergebnis = Accessor->listAvailableBusHardware();
wenn(Ergebnis.hasError()) { std::cout << Ergebnis.getError() << std::endl; }
else{ std::cout << „Erfolg“ << std::endl; }
Zugriffsmethode löschen; return 0; }
4. Überprüfen Sie Ihren Projektordner auf die erforderliche Struktur:

. NanoLibTest
inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result.hpp NanoLibTest.cpp
7.4 Kompilieren und testen Sie Ihr Projekt
Machen Sie Ihre Linux NanoLib über Bash einsatzbereit.
1. Via Bash: Kompilieren Sie die Haupt file über:
g++ -Wall -Wextra -pedantic -I./inc -c NanoLibTest.cpp -o NanoLibTest
2. Verknüpfen Sie die ausführbare Datei über:
g++ -Wall -Wextra -pedantic -I./inc -o test NanoLibTest.o L/usr/local/lib/nanotec -lnanolib -ldl
3. Führen Sie das Testprogramm aus über:
./prüfen
4. Überprüfen Sie, ob Ihre Bash ordnungsgemäß meldet:
Erfolg
Version: doc 1.4.2 / NanoLib 1.3.0
15
8 Klassen / Funktionen Referenz
8 Klassen / Funktionen Referenz
Hier finden Sie eine Liste der Benutzeroberflächenklassen von NanoLib und ihrer Memberfunktionen. Die typische Beschreibung einer Funktion umfasst eine kurze Einführung, die Funktionsdefinition und eine Parameter-/Rückgabeliste:
ExampleFunction () Teilt Ihnen kurz mit, was die Funktion macht.
virtueller void nlc::NanoLibAccessor::ExampleFunction (Param_a const & param_a, Param_b const & param_B)
Parameter param_a param_b
Gibt ResultVoid zurück
Bei Bedarf zusätzlicher Kommentar. Bei Bedarf zusätzlicher Kommentar.
8.1 NanoLibAccessor
Schnittstellenklasse, die als Einstiegspunkt zur NanoLib verwendet wird. Ein typischer Workflow sieht folgendermaßen aus:
1. Beginnen Sie mit dem Scannen nach Hardware mit NanoLibAccessor.listAvailableBusHardware(). 2. Legen Sie die Kommunikationseinstellungen mit BusHardwareOptions() fest. 3. Öffnen Sie die Hardwareverbindung mit NanoLibAccessor.openBusHardwareWithProtocol(). 4. Scannen Sie den Bus mit NanoLibAccessor.scanDevices() nach angeschlossenen Geräten. 5. Fügen Sie mit NanoLibAccessor.addDevice() ein Gerät hinzu. 6. Stellen Sie mit NanoLibAccessor.connectDevice() eine Verbindung zum Gerät her. 7. Trennen Sie das Gerät nach Abschluss des Vorgangs mit NanoLibAccessor.disconnectDevice(). 8. Entfernen Sie das Gerät mit NanoLibAccessor.removeDevice(). 9. Schließen Sie die Hardwareverbindung mit NanoLibAccessor.closeBusHardware().
NanoLibAccessor verfügt über die folgenden öffentlichen Memberfunktionen:
listAvailableBusHardware () Verwenden Sie diese Funktion, um die verfügbare Feldbus-Hardware aufzulisten.
virtuelle ResultBusHwIds nlc::NanoLibAccessor::listAvailableBusHardware ()
Gibt ResultBusHwIds zurück
Liefert ein Feldbus-ID-Array.
openBusHardwareWithProtocol () Verwenden Sie diese Funktion, um Bus-Hardware zu verbinden.
virtuelles ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (BusHardwareId const & busHwId, BusHardwareOptions const & busHwOpt)
Parameter busHwId busHwOpt
Gibt ResultVoid zurück
Gibt den zu öffnenden Feldbus an. Gibt Optionen zum Öffnen des Feldbusses an. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
isBusHardwareOpen () Verwenden Sie diese Funktion, um zu überprüfen, ob Ihre Feldbus-Hardwareverbindung geöffnet ist.
virtuelles ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (const BusHardwareId & busHwId, const BusHardwareOptions & busHwOpt)
Version: doc 1.4.2 / NanoLib 1.3.0
16
8 Klassen / Funktionen Referenz
Parameter BusHardwareId Gibt true zurück
FALSCH
Gibt jeden zu öffnenden Feldbus an. Hardware ist geöffnet. Hardware ist geschlossen.
getProtocolSpecificAccessor () Verwenden Sie diese Funktion, um das protokollspezifische Accessor-Objekt abzurufen.
virtuelles ResultVoid nlc::NanoLibAccessor::getProtocolSpecificAccessor (BusHardwareId const & busHwId)
Parameter busHwId Gibt ResultVoid zurück
Gibt den Feldbus an, für den der Accessor abgerufen werden soll. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
getProfinetDCP () Verwenden Sie diese Funktion, um eine Referenz auf die Profinet DCP-Schnittstelle zurückzugeben.
virtuelles ProfinetDCP & getProfinetDCP ()
Retouren ProfinetDCP
bekommtamplerInterface () Mit dieser Funktion erhalten Sie eine Referenz auf die sampler-Schnittstelle.
virtuelles SamplerInterface und getSamplerInterface ()
Rückgaben SamplerSchnittstelle
Bezieht sich auf die sampler-Schnittstellenklasse.
setBusState () Mit dieser Funktion können Sie den busprotokollspezifischen Status festlegen.
virtuelles ResultVoid nlc::NanoLibAccessor::setBusState (const BusHardwareId & busHwId, const std::string & state)
Parameter busHwId Status
Gibt ResultVoid zurück
Gibt den zu öffnenden Feldbus an. Weist einen busspezifischen Status als Zeichenfolgenwert zu. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
scanDevices () Verwenden Sie diese Funktion, um nach Geräten im Netzwerk zu suchen.
virtuelle ResultDeviceIds nlc::NanoLibAccessor::scanDevices (const BusHardwareId & busHwId, NlcScanBusCallback* Rückruf)
Parameter busHwId Rückruf
Gibt ResultDeviceIds IOError zurück
Gibt den zu scannenden Feldbus an. NlcScanBusCallback-Fortschrittsanzeige. Liefert ein Geräte-ID-Array. Informiert, dass ein Gerät nicht gefunden wurde.
Version: doc 1.4.2 / NanoLib 1.3.0
17
8 Klassen / Funktionen Referenz
Gerät hinzufügen ()
Verwenden Sie diese Funktion, um ein durch die Geräte-ID beschriebenes Busgerät zur internen Geräteliste von NanoLib hinzuzufügen und den Geräte-Handle dafür zurückzugeben.
virtueller ResultDeviceHandle nlc::NanoLibAccessor::addDevice (DeviceId const & deviceId)
Parameter deviceId Gibt ResultDeviceHandle zurück
Gibt das Gerät an, das zur Liste hinzugefügt werden soll. Liefert einen Geräte-Handle.
connectDevice () Verwenden Sie diese Funktion, um ein Gerät per Gerätehandle zu verbinden.
virtuelles ResultVoid nlc::NanoLibAccessor::connectDevice (DeviceHandle const deviceHandle)
Parameter deviceHandle Gibt ResultVoid zurück
IO-Fehler
Gibt an, mit welchem Busgerät NanoLib eine Verbindung herstellt. Bestätigt, dass eine Void-Funktion ausgeführt wurde. Informiert, dass ein Gerät nicht gefunden wurde.
getDeviceName () Verwenden Sie diese Funktion, um den Namen eines Geräts per Gerätehandle abzurufen.
virtueller ResultString nlc::NanoLibAccessor::getDeviceName (DeviceHandle const deviceHandle)
Parameter deviceHandle Gibt ResultString zurück
Gibt an, für welches Busgerät NanoLib den Namen erhält. Liefert Gerätenamen als String.
getDeviceProductCode () Verwenden Sie diese Funktion, um den Produktcode eines Geräts per Gerätehandle abzurufen.
virtuelles ResultInt nlc::NanoLibAccessor::getDeviceProductCode (DeviceHandle const deviceHandle)
Parameter deviceHandle Gibt ResultInt zurück
Gibt an, für welches Busgerät NanoLib den Produktcode erhält. Liefert Produktcodes als Ganzzahl.
getDeviceVendorId () Verwenden Sie diese Funktion, um die Gerätehersteller-ID per Gerätehandle abzurufen.
virtuelles ResultInt nlc::NanoLibAccessor::getDeviceVendorId (DeviceHandle const deviceHandle)
Parameter deviceHandle Gibt ResultInt zurück
Ressource nicht verfügbar
Gibt an, für welches Busgerät NanoLib die Hersteller-ID erhält. Liefert Hersteller-IDs als Ganzzahl. Informiert, dass keine Daten gefunden wurden.
Version: doc 1.4.2 / NanoLib 1.3.0
18
8 Klassen / Funktionen Referenz
getDeviceId () Verwenden Sie diese Funktion, um die ID eines bestimmten Geräts aus der internen Liste von NanoLib abzurufen.
virtuelle ResultDeviceId nlc::NanoLibAccessor::getDeviceId (DeviceHandle const deviceHandle)
Parameter deviceHandle Gibt ResultDeviceId zurück
Gibt an, für welches Busgerät NanoLib die Geräte-ID erhält. Liefert eine Geräte-ID.
getDeviceIds () Verwenden Sie diese Funktion, um die ID aller Geräte aus der internen Liste von NanoLib abzurufen.
virtuelle ResultDeviceIds nlc::NanoLibAccessor::getDeviceIds ()
Gibt ResultDeviceIds zurück
Liefert eine Geräte-ID-Liste.
getDeviceUid () Verwenden Sie diese Funktion, um die eindeutige ID eines Geräts (96 Bit/12 Byte) per Gerätehandle abzurufen.
virtuelles ResultArrayByte nlc::NanoLibAccessor::getDeviceUid (DeviceHandle const deviceHandle)
Parameter deviceHandle Gibt ResultArrayByte zurück
Ressource nicht verfügbar
Gibt an, für welches Busgerät NanoLib die eindeutige ID erhält. Liefert eindeutige IDs als Byte-Array. Informiert, dass keine Daten gefunden wurden.
getDeviceSerialNumber () Verwenden Sie diese Funktion, um die Seriennummer eines Geräts per Gerätehandle abzurufen.
virtueller ResultString NanolibAccessor::getDeviceSerialNumber (DeviceHandle const deviceHandle)
Parameter deviceHandle Gibt ResultString zurück
Ressource nicht verfügbar
Gibt an, für welches Busgerät NanoLib die Seriennummer erhält. Liefert Seriennummern als String. Informiert, dass keine Daten gefunden wurden.
getDeviceHardwareGroup () Verwenden Sie diese Funktion, um die Hardwaregruppe eines Busgeräts per Gerätehandle abzurufen.
virtuelle ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareGroup (DeviceHandle const deviceHandle)
Parameter deviceHandle Gibt ResultInt zurück
Gibt an, für welches Busgerät NanoLib die Hardwaregruppe abruft.
Liefert Hardwaregruppen als Ganzzahl.
getDeviceHardwareVersion () Verwenden Sie diese Funktion, um die Hardwareversion eines Busgeräts per Gerätehandle abzurufen.
virtuelle ResultDeviceId nlc::NanoLibAccessor::getDeviceHardwareVersion (DeviceHandle const deviceHandle)
Version: doc 1.4.2 / NanoLib 1.3.0
19
8 Klassen / Funktionen Referenz
Parameter Gerätehandle
Rückgaben
ResultString-Ressource nicht verfügbar
Gibt an, für welches Busgerät NanoLib die Hardwareversion abruft. Liefert Gerätenamen als String. Informiert, dass keine Daten gefunden wurden.
getDeviceFirmwareBuildId () Verwenden Sie diese Funktion, um die Firmware-Build-ID eines Busgeräts per Gerätehandle abzurufen.
virtuelle ResultDeviceId nlc::NanoLibAccessor::getDeviceFirmwareBuildId (Gerätehandle const Gerätehandle)
Parameter deviceHandle Gibt ResultString zurück
Gibt an, für welches Busgerät NanoLib die Firmware-Build-ID erhält.
Liefert Gerätenamen als String.
getDeviceBootloaderVersion () Verwenden Sie diese Funktion, um die Bootloader-Version eines Busgeräts per Gerätehandle abzurufen.
virtuelles ResultInt nlc::NanoLibAccessor::getDeviceBootloaderVersion (DeviceHandle const deviceHandle)
Parameter Gerätehandle
Rückgaben
ResultInt-Ressource nicht verfügbar
Gibt an, für welches Busgerät NanoLib die Bootloader-Version abruft. Liefert Bootloader-Versionen als Ganzzahl. Informiert, dass keine Daten gefunden wurden.
getDeviceBootloaderBuildId () Verwenden Sie diese Funktion, um die Bootloader-Build-ID eines Busgeräts per Gerätehandle abzurufen.
virtuelle ResultDeviceId nlc::NanoLibAccessor:: (DeviceHandle const deviceHandle)
Parameter deviceHandle Gibt ResultString zurück
Gibt an, für welches Busgerät NanoLib die Build-ID des Bootloaders erhält.
Liefert Gerätenamen als String.
rebootDevice () Verwenden Sie diese Funktion, um das Gerät per Gerätehandle neu zu starten.
virtuelles ResultVoid nlc::NanoLibAccessor::rebootDevice (const DeviceHandle deviceHandle)
Parameter deviceHandle Gibt ResultVoid zurück
Gibt den neu zu startenden Feldbus an. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
getDeviceState () Verwenden Sie diese Funktion, um den geräteprotokollspezifischen Status abzurufen.
virtueller ResultString nlc::NanoLibAccessor::getDeviceState (DeviceHandle const deviceHandle)
Parameter Gerätehandle
Gibt an, für welches Busgerät NanoLib den Status abruft.
Version: doc 1.4.2 / NanoLib 1.3.0
20
8 Klassen / Funktionen Referenz
Gibt ResultString zurück
Liefert Gerätenamen als String.
setDeviceState () Verwenden Sie diese Funktion, um den geräteprotokollspezifischen Status festzulegen.
virtuelles ResultVoid nlc::NanoLibAccessor::setDeviceState (const DeviceHandle deviceHandle, const std::string & state)
Parameter Gerätehandle-Status
Gibt ResultVoid zurück
Gibt an, für welches Busgerät NanoLib den Status festlegt. Weist einen busspezifischen Status als Zeichenfolgenwert zu. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
getConnectionState ()
Verwenden Sie diese Funktion, um den letzten bekannten Verbindungsstatus eines bestimmten Geräts anhand des Geräte-Handles abzurufen (= Getrennt, Verbunden, Verbundener Bootloader).
virtueller ResultConnectionState nlc::NanoLibAccessor::getConnectionState (Gerätehandle const Gerätehandle)
Parameter deviceHandle Gibt ResultConnectionState zurück
Gibt an, für welches Busgerät NanoLib den Verbindungsstatus abruft.
Liefert einen Verbindungsstatus (= Getrennt, Verbunden, Verbundener Bootloader).
checkConnectionState ()
Nur wenn der letzte bekannte Status nicht „Getrennt“ war: Verwenden Sie diese Funktion, um den Verbindungsstatus eines bestimmten Geräts per Gerätehandle zu prüfen und ggf. zu aktualisieren und indem Sie mehrere modusspezifische Vorgänge testen.
virtueller ResultConnectionState nlc::NanoLibAccessor::checkConnectionState (Gerätehandle const Gerätehandle)
Parameter deviceHandle Gibt ResultConnectionState zurück
Gibt an, für welches Busgerät NanoLib den Verbindungsstatus überprüft.
Liefert einen Verbindungsstatus (= nicht getrennt).
assignObjectDictionary () Verwenden Sie diese manuelle Funktion, um deviceHandle selbst ein Objektwörterbuch (OD) zuzuweisen.
virtuelles ResultObjectDictionary nlc::NanoLibAccessor::assignObjectDictionary (Gerätehandle const Gerätehandle, ObjectDictionary const & Objektdiktionary)
Parameter Gerätehandle Objektwörterbuch
Gibt ResultObjectDictionary zurück
Gibt an, welchem Busgerät NanoLib das OD zuweist. Zeigt die Eigenschaften eines Objektverzeichnisses.
autoAssignObjectDictionary ()
Verwenden Sie diesen Automatismus, damit NanoLib dem Gerätehandle ein Objektverzeichnis (OD) zuweist. Wenn ein geeignetes OD gefunden und geladen wird, weist NanoLib es automatisch dem Gerät zu. Hinweis: Wenn in der Objektbibliothek bereits ein kompatibles OD geladen ist, verwendet NanoLib es automatisch, ohne das übermittelte Verzeichnis zu scannen.
virtuelles ResultObjectDictionary nlc::NanoLibAccessor::autoAssignObjectDictionary (Gerätehandle const deviceHandle, const std::string & dictionariesLocationPath)
Version: doc 1.4.2 / NanoLib 1.3.0
21
8 Klassen / Funktionen Referenz
Parameter Gerätehandle
Rückgaben
WörterbücherStandortPfadErgebnisObjektWörterbuch
Gibt an, für welches Busgerät NanoLib automatisch nach geeigneten ODs suchen soll. Gibt den Pfad zum OD-Verzeichnis an. Zeigt die Eigenschaften eines Objektverzeichnisses.
getAssignedObjectDictionary ()
Verwenden Sie diese Funktion, um das einem Gerät per Gerätehandle zugewiesene Objektwörterbuch abzurufen.
virtuelles ResultObjectDictionary nlc::NanoLibAccessor::getAssignedObjectDictionary (DeviceHandle const device
Handhaben)
Parameter deviceHandle Gibt ResultObjectDictionary zurück
Gibt an, für welches Busgerät NanoLib den zugewiesenen OD erhält. Zeigt die Eigenschaften eines Objektverzeichnisses.
getObjectDictionaryLibrary () Diese Funktion gibt eine OdLibrary-Referenz zurück.
virtuelle OdLibrary& nlc::NanoLibAccessor::getObjectDictionaryLibrary ()
Gibt OdLibrary& zurück
Öffnet die gesamte OD-Bibliothek und ihre Objektwörterbücher.
setLoggingLevel () Mit dieser Funktion können Sie die benötigten Logdetails (und Log- file Größe). Die Standardebene ist Info.
virtueller void nlc::NanoLibAccessor::setLoggingLevel (LogLevel-Ebene)
Parameterebene
Folgende Protokolldetaillierungen sind möglich:
0 = Trace 1 = Debug 2 = Info 3 = Warnen 4 = Fehler 5 = Kritisch 6 = Aus
Niedrigste Ebene (größter Baumstamm file); protokolliert alle möglichen Details sowie Softwarestart/-stopp. Protokolliert Debuginformationen (= Zwischenergebnisse, gesendete oder empfangene Inhalte usw.) Standardebene; protokolliert Informationsmeldungen. Protokolliert Probleme, die aufgetreten sind, aber den aktuellen Algorithmus nicht stoppen. Protokolliert nur schwerwiegende Probleme, die den Algorithmus gestoppt haben. Höchste Ebene (kleinste Protokollebene) file); schaltet die Protokollierung aus; keine weitere Protokollierung. Keine Protokollierung mehr.
setLoggingCallback ()
Verwenden Sie diese Funktion, um einen Protokollierungs-Callbackzeiger und ein Protokollmodul (= Bibliothek) für diesen Callback festzulegen (nicht für den Logger selbst).
virtueller void nlc::NanoLibAccessor::setLoggingCallback (NlcLoggingCallback* Rückruf, const nlc::LogModule & logModule)
Parameter *callback logModul
Legt einen Rückrufzeiger fest. Passt den Rückruf (nicht den Logger!) an Ihre Bibliothek an.
0 = NanolibCore 1 = NanolibCANopen 2 = NanolibModbus 3 = NanolibEtherCAT
Aktiviert einen Rückruf nur für den NanoLib-Kern. Aktiviert einen Nur-CANopen-Rückruf. Aktiviert einen Nur-Modbus-Rückruf. Aktiviert einen Nur-EtherCAT-Rückruf.
Version: doc 1.4.2 / NanoLib 1.3.0
22
8 Klassen / Funktionen Referenz
4 = NanolibRest 5 = NanolibUSB
Aktiviert einen Nur-REST-Rückruf. Aktiviert einen Nur-USB-Rückruf.
unsetLoggingCallback () Verwenden Sie diese Funktion, um einen Protokollierungs-Rückrufzeiger abzubrechen.
virtueller void nlc::NanoLibAccessor::unsetLoggingCallback ()
readNumber () Verwenden Sie diese Funktion, um einen numerischen Wert aus dem Objektwörterbuch zu lesen.
virtuelles ResultInt nlc::NanoLibAccessor::readNumber (const DeviceHandle deviceHandle, const OdIndex odIndex)
Parameter Gerätehandle odIndex
Gibt ResultInt zurück
Gibt an, von welchem Busgerät NanoLib liest. Gibt den (Unter-)Index an, von dem gelesen werden soll. Liefert einen nicht interpretierten numerischen Wert (kann vorzeichenbehaftet, vorzeichenlos oder fixe 16.16-Bit-Werte sein).
readNumberArray () Verwenden Sie diese Funktion, um numerische Arrays aus dem Objektwörterbuch zu lesen.
virtuelles ResultArrayInt nlc::NanoLibAccessor::readNumberArray (const DeviceHandle deviceHandle, const uint16_t index)
Parameter Gerätehandle Index
Gibt ResultArrayInt zurück
Gibt an, von welchem Busgerät NanoLib liest. Array-Objektindex. Liefert ein Integer-Array.
readBytes () Verwenden Sie diese Funktion, um beliebige Bytes (Domänenobjektdaten) aus dem Objektwörterbuch zu lesen.
virtuelles ResultArrayByte nlc::NanoLibAccessor::readBytes (const DeviceHandle deviceHandle, const OdIndex odIndex)
Parameter Gerätehandle odIndex
Gibt ResultArrayByte zurück
Gibt an, von welchem Busgerät NanoLib liest. Gibt den (Unter-)Index an, von dem gelesen werden soll. Liefert ein Byte-Array.
readString () Mit dieser Funktion können Sie Zeichenfolgen aus dem Objektverzeichnis lesen.
virtueller ResultString nlc::NanoLibAccessor::readString (const DeviceHandle deviceHandle, const OdIndex odIndex)
Parameter Gerätehandle odIndex
Gibt ResultString zurück
Gibt an, von welchem Busgerät NanoLib liest. Gibt den (Unter-)Index an, von dem gelesen werden soll. Liefert Gerätenamen als String.
Version: doc 1.4.2 / NanoLib 1.3.0
23
8 Klassen / Funktionen Referenz
writeNumber () Mit dieser Funktion können Sie numerische Werte in das Objektverzeichnis schreiben.
virtuelles ResultVoid nlc::NanoLibAccessor::writeNumber (const DeviceHandle Gerätehandle, int64_t Wert, const OdIndex odIndex, unsigned int Bitlänge)
Parameter Gerätehandle-Wert odIndex Bitlänge
Gibt ResultVoid zurück
Gibt an, auf welches Busgerät NanoLib schreibt. Der nicht interpretierte Wert (kann signiert oder unsigniert sein, fix 16.16). Gibt den (Unter-)Index an, von dem gelesen werden soll. Länge in Bit. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
writeBytes () Verwenden Sie diese Funktion, um beliebige Bytes (Domänenobjektdaten) in das Objektverzeichnis zu schreiben.
virtuelles ResultVoid nlc::NanoLibAccessor::writeBytes (const DeviceHandle deviceHandle, const std::vector & Daten, const OdIndex odIndex)
Parameter Gerätehandle Daten odIndex
Gibt ResultVoid zurück
Gibt an, auf welches Busgerät NanoLib schreibt. Byte-Vektor/Array. Gibt den (Unter-)Index an, aus dem gelesen werden soll. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
Firmware hochladen ()
Verwenden Sie diese Funktion, um die Firmware Ihres Controllers zu aktualisieren.
virtuelles ResultVoid nlc::NanoLibAccessor::uploadFirmware (const DeviceHandle deviceHandle, const std::vector & fwData, NlcDataTransferCallback* Rückruf)
Parameter Gerätehandle fwData NlcDataTransferCallback
Gibt ResultVoid zurück
Gibt an, welches Busgerät NanoLib aktualisiert. Array mit Firmware-Daten. Ein Datenfortschritts-Tracer. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
Firmware hochladenVonFile ()
Mit dieser Funktion können Sie die Firmware Ihres Controllers aktualisieren, indem Sie file.
virtuelles ResultVoid nlc::NanoLibAccessor::uploadFirmwareFromFile (const DeviceHandle Gerätehandle, const std::string & absoluteFilePfad, NlcDataTransferCallback* Rückruf)
Parameter Gerätehandle absolutFilePfad NlcDataTransferCallback
Gibt ResultVoid zurück
Gibt an, welches Busgerät NanoLib aktualisiert. Pfad zu file enthält Firmware-Daten (std::string). Ein Datenfortschritts-Tracer. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
Version: doc 1.4.2 / NanoLib 1.3.0
24
8 Klassen / Funktionen Referenz
Bootloader hochladen ()
Verwenden Sie diese Funktion, um den Bootloader Ihres Controllers zu aktualisieren.
virtuelles ResultVoid nlc::NanoLibAccessor::uploadBootloader (const DeviceHandle deviceHandle, const std::vector & btData, NlcDataTransferCallback* Rückruf)
Parameter Gerätehandle btData NlcDataTransferCallback
Gibt ResultVoid zurück
Gibt an, welches Busgerät NanoLib aktualisiert. Array mit Bootloaderdaten. Ein Datenfortschritts-Tracer. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
HochladenBootloaderVonFile ()
Mit dieser Funktion können Sie den Bootloader Ihres Controllers aktualisieren, indem Sie file.
virtuelles ResultVoid nlc::NanoLibAccessor::uploadBootloaderFromFile (const DeviceHandle Gerätehandle, const std::string & BootloaderAbsoluteFilePfad, NlcDataTransferCallback* Rückruf)
Parameter Gerätehandle BootloaderAbsoluteFilePfad NlcDataTransferCallback
Gibt ResultVoid zurück
Gibt an, welches Busgerät NanoLib aktualisiert. Pfad zu file enthält Bootloaderdaten (std::string). Ein Datenfortschritts-Tracer. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
BootloaderFirmware hochladen ()
Verwenden Sie diese Funktion, um den Bootloader und die Firmware Ihres Controllers zu aktualisieren.
virtuelles ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmware (const DeviceHandle deviceHandle, const std::vector & btData, const std::Vektor & fwData, NlcDataTransferCallback* Rückruf)
Parameter Gerätehandle btData fwData NlcDataTransferCallback
Gibt ResultVoid zurück
Gibt an, welches Busgerät NanoLib aktualisiert. Array mit Bootloaderdaten. Array mit Firmwaredaten. Ein Datenfortschritts-Tracer. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
hochladenBootloaderFirmwareVonFile ()
Mit dieser Funktion können Sie den Bootloader und die Firmware Ihres Controllers aktualisieren, indem Sie die files.
virtuelles ResultVoid nlc::NanoLibAccessor::uploadBootloaderFirmwareFromFile (const DeviceHandle Gerätehandle, const std::string & BootloaderAbsoluteFilePfad, const std::string & absoluteFilePfad, NlcDataTransferCallback* Rückruf)
Parameter Gerätehandle BootloaderAbsoluteFilePfad absolutFilePfad NlcDataTransferCallback
Gibt ResultVoid zurück
Gibt an, welches Busgerät NanoLib aktualisiert. Pfad zu file enthält Bootloaderdaten (std::string). Pfad zu file enthält Firmware-Daten (uint8_t). Ein Datenfortschritts-Tracer. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
Version: doc 1.4.2 / NanoLib 1.3.0
25
8 Klassen / Funktionen Referenz
hochladenNanoJ ()
Verwenden Sie diese öffentliche Funktion, um das NanoJ-Programm auf Ihren Controller hochzuladen.
virtuelles ResultVoid nlc::NanoLibAccessor::uploadNanoJ (Gerätehandle const Gerätehandle, std::Vektor const & vmmData, NlcDataTransferCallback* Rückruf)
Parameter Gerätehandle vmmData NlcDataTransferCallback
Gibt ResultVoid zurück
Gibt an, auf welches Busgerät NanoLib hochlädt. Array mit NanoJ-Daten. Ein Datenfortschritts-Tracer. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
hochladenNanoJFromFile ()
Verwenden Sie diese öffentliche Funktion, um das NanoJ-Programm auf Ihren Controller hochzuladen, indem Sie das file.
virtuelles ResultVoid nlc::NanoLibAccessor::uploadNanoJFromFile (const DeviceHandle Gerätehandle, const std::string & absoluteFilePfad, NlcDataTransferCallback* Rückruf)
Parameter Gerätehandle absolutFilePfad NlcDataTransferCallback
Gibt ResultVoid zurück
Gibt an, auf welches Busgerät NanoLib hochlädt. Pfad zu file enthält NanoJ-Daten (std::string). Ein Datenfortschritts-Tracer. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
disconnectDevice () Verwenden Sie diese Funktion, um Ihr Gerät per Gerätehandle zu trennen.
virtuelles ResultVoid nlc::NanoLibAccessor::disconnectDevice (Gerätehandle const Gerätehandle)
Parameter deviceHandle Gibt ResultVoid zurück
Gibt an, von welchem Busgerät NanoLib die Verbindung trennt. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
removeDevice () Verwenden Sie diese Funktion, um Ihr Gerät aus der internen Geräteliste von NanoLib zu entfernen.
virtuelles ResultVoid nlc::NanoLibAccessor::removeDevice (const DeviceHandle deviceHandle)
Parameter deviceHandle Gibt ResultVoid zurück
Gibt an, welches Busgerät NanoLib auslistet. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
closeBusHardware () Verwenden Sie diese Funktion, um die Verbindung zu Ihrer Feldbus-Hardware zu trennen.
virtuelles ResultVoid nlc::NanoLibAccessor::closeBusHardware (BusHardwareId const & busHwId)
Parameter busHwId Gibt ResultVoid zurück
Gibt den Feldbus an, von dem die Verbindung getrennt werden soll. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
Version: doc 1.4.2 / NanoLib 1.3.0
26
8 Klassen / Funktionen Referenz
8.2 BusHardwareId
Mit dieser Klasse können Sie eine Bushardware eindeutig identifizieren oder verschiedene Bushardware voneinander unterscheiden. Diese Klasse (ohne Setter-Funktionen, die von Anfang an unveränderlich sind) enthält außerdem Informationen zu:
Hardware (= Adaptername, Netzwerkadapter usw.) Zu verwendendes Protokoll (= Modbus TCP, CANopen usw.) Bus-Hardware-Spezifizierer (= Name der seriellen Schnittstelle, MAC-freundlicher Name
Adresse usw.)
BusHardwareId () [1/3] Konstruktor der ein neues Bus-Hardware-ID Objekt erstellt.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocol_, std::string const & hardwareSpecifier_, std::string const & name_)
Parameter busHardware_ protokoll_ hardwareSpecifier_ extraHardwareSpecifier_ name_
Hardwaretyp (= ZK-USB-CAN-1 usw.). Buskommunikationsprotokoll (= CANopen usw.). Der Spezifizierer einer Hardware (= COM3 usw.). Der zusätzliche Spezifizierer der Hardware (z. B. USB-Standortinfo). Ein benutzerfreundlicher Name (= Adaptername (Port) usw.).
BusHardwareId () [2/3] Konstruktor der ein neues Bus-Hardware-ID-Objekt erstellt, mit der Option für einen zusätzlichen Hardware-Spezifizierer.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_, std::string const & protocol_, std::string const & hardwareSpecifier_, std::string const & extraHardwareSpecifier_, std::string const & name_)
Parameter busHardware_ protokoll_ hardwareSpecifier_ extraHardwareSpecifier_ name_
Hardwaretyp (= ZK-USB-CAN-1 usw.). Buskommunikationsprotokoll (= CANopen usw.). Der Spezifizierer einer Hardware (= COM3 usw.). Der zusätzliche Spezifizierer der Hardware (z. B. USB-Standortinfo). Ein benutzerfreundlicher Name (= Adaptername (Port) usw.).
BusHardwareId () [3/3] Konstruktor, der eine existierende BusHardwareId kopiert.
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)
Parameter busHardwareId
Gibt die Bus-Hardware-ID an, von der kopiert werden soll.
equals () Vergleicht eine neue Bus-Hardware-ID mit vorhandenen.
bool nlc::BusHardwareId::equals (BusHardwareId const & andere) const
Parameter andere Gibt true zurück
Ein anderes Objekt derselben Klasse. Wenn beide in allen Werten gleich sind.
Version: doc 1.4.2 / NanoLib 1.3.0
27
8 Klassen / Funktionen Referenz
FALSCH
Wenn die Werte abweichen.
getBusHardware() Liest den Bus-Hardwarestring aus.
std::string nlc::BusHardwareId::getBusHardware () const
Gibt eine Zeichenfolge zurück
getHardwareSpecifier () Liest den Specifierstring (= Netzwerkname etc.) der Bus-Hardware aus.
std::string nlc::BusHardwareId::getHardwareSpecifier () const
Gibt eine Zeichenfolge zurück
getExtraHardwareSpecifier () Liest den Specifier-String (= MAC-Adresse etc.) der zusätzlichen Bus-Hardware aus.
std::string nlc::BusHardwareId::getExtraHardwareSpecifier () const
Gibt eine Zeichenfolge zurück
getName () Liest den benutzerfreundlichen Namen der Bus-Hardware aus.
std::string nlc::BusHardwareId::getName () const
Gibt eine Zeichenfolge zurück
getProtocol () Liest den Busprotokollstring aus.
std::string nlc::BusHardwareId::getProtocol () const
Gibt eine Zeichenfolge zurück
toString () Gibt die Bus-Hardware-ID als Zeichenfolge zurück.
std::string nlc::BusHardwareId::toString () const
Gibt eine Zeichenfolge zurück
8.3 BusHardwareOptionen
Finden Sie in dieser Klasse in einer Schlüssel-Wert-Liste von Zeichenfolgen alle Optionen, die zum Öffnen einer Bus-Hardware erforderlich sind.
Version: doc 1.4.2 / NanoLib 1.3.0
28
8 Klassen / Funktionen Referenz
BusHardwareOptions () [1/2] Konstruiert ein neues Bus-Hardware-Optionsobjekt.
nlc::BusHardwareOptions::BusHardwareOptions () Verwenden Sie die Funktion addOption (), um Schlüssel-Wert-Paare hinzuzufügen.
BusHardwareOptions () [2/2] Erstellt ein neues Bus-Hardware-Optionsobjekt mit der bereits vorhandenen Schlüssel-Wert-Zuordnung.
nlc::BusHardwareOptions::BusHardwareOptions (std::map Konstanten und Optionen)
Parameteroptionen
Eine Karte mit Optionen für den Betrieb der Bus-Hardware.
addOption () Erstellt zusätzliche Schlüssel und Werte.
void nlc::BusHardwareOptions::addOption (std::string const & Schlüssel, std::string const & Wert)
Parameter Schlüsselwert
Example: BAUD_RATE_OPTIONS_NAME, siehe bus_hw_options_defaults
Example: BAUD_RATE_1000K, siehe bus_hw_options_defaults
equals () Vergleicht die BusHardwareOptions mit den vorhandenen.
bool nlc::BusHardwareOptions::equals (BusHardwareOptions const & andere) const
Parameter andere Gibt true zurück
FALSCH
Ein anderes Objekt derselben Klasse. Wenn das andere Objekt genau dieselben Optionen hat. Wenn das andere Objekt andere Schlüssel oder Werte hat.
getOptions() Liest alle hinzugefügten Schlüssel-Wert-Paare aus.
std::map nlc::BusHardwareOptions::getOptions () const
Gibt eine Zeichenfolgenzuordnung zurück
toString() Gibt alle Schlüssel/Werte als String zurück.
std::string nlc::BusHardwareId::toString () const
Gibt eine Zeichenfolge zurück
8.4 BusHwOptionsDefault
Diese Standardklasse für Konfigurationsoptionen verfügt über die folgenden öffentlichen Attribute:
Version: doc 1.4.2 / NanoLib 1.3.0
29
8 Klassen / Funktionen Referenz
const CanBus const Serial const RESTfulBus const EtherCATBus
canBus = CanBus () serial = Seriell () restfulBus = RESTfulBus() ethercatBus = EtherCATBus()
8.5 CanBaudRate
Struktur, die CAN-Bus-Baudraten in den folgenden öffentlichen Attributen enthält:
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“ BAUD_RATE_20K = „20k“ BAUD_RATE_10K = „10k“ BAUD_RATE_5K = „5k“
8.6 CanBus
Standardmäßige Konfigurationsoptionenklasse mit den folgenden öffentlichen Attributen:
const std::string const CanBaudRate const Ixxat
BAUD_RATE_OPTIONS_NAME = „CAN-Adapter-Baudrate“ baudRate = CanBaudRate () ixxat = Ixxat ()
8.7 CanOpenNmtService
Für den NMT-Dienst enthält diese Struktur die CANopen NMT-Zustände als Zeichenfolgenwerte in den folgenden öffentlichen Attributen:
const std::string const std::string const std::string const std::string const std::string
START = „START“ STOP = „STOP“ PRE_OPERATIONAL = „PRE_OPERATIONAL“ RESET = „ZURÜCKSETZEN“ RESET_COMMUNICATION = „ZURÜCKSETZEN_COMMUNICATION“
8.8 CanOpenNmtState
Diese Struktur enthält die CANopen NMT-Zustände als Zeichenfolgenwerte in den folgenden öffentlichen Attributen:
const std::string const std::string const std::string const std::string const std::string
STOPPED = „STOPPED“ PRE_OPERATIONAL = „PRE_OPERATIONAL“ OPERATIONAL = „OPERATIONAL“ INITIALIZATION = „INITIALIZATION“ UNKNOWN = „UNKNOWN“
8.9 EtherCATBus-Struktur
Diese Struktur enthält die EtherCAT-Kommunikationskonfigurationsoptionen in den folgenden öffentlichen Attributen:
Version: doc 1.4.2 / NanoLib 1.3.0
30
8 Klassen / Funktionen Referenz
const std::string NETWORK_FIRMWARE_STATE_OP- Netzwerkstatus wird als Firmware-Modus behandelt. Akzeptabel
TION_NAME = „Netzwerk-Firmware-Status“
Werte (Standard = PRE_OPERATIONAL):
EtherCATState::PRE_OPERATIONAL EtherCATState::SAFE_OPERATIONAL EtherCATState::OPERATIONAL
const std::string DEFAULT_NETWORK_FIRMWARE_ STATE = „PRE_OPERATIONAL“
const std::string EXCLUSIVE_LOCK_TIMEOUT_OP- Timeout in Millisekunden für den Erwerb der exklusiven Sperre für
TION_NAME = „Zeitüberschreitung der gemeinsamen Sperre“
das Netzwerk (Standard = 500 ms).
const unsigned int DEFAULT_EXCLUSIVE_LOCK_TIMEOUT = „500“
const std::string SHARED_LOCK_TIMEOUT_OPTION_ Timeout in Millisekunden zum Erlangen einer gemeinsamen Sperre für
NAME = „Zeitüberschreitung der gemeinsamen Sperre“
das Netzwerk (Standard = 250 ms).
const unsigned int DEFAULT_SHARED_LOCK_TIMEOUT = „250“
const std::string READ_TIMEOUT_OPTION_NAME = Timeout in Millisekunden für einen Lesevorgang (Standard
„Zeitüberschreitung beim Lesen“
= 700 ms).
const unsigned int DEFAULT_READ_TIMEOUT = „700“
const std::string WRITE_TIMEOUT_OPTION_NAME = Timeout in Millisekunden für einen Schreibvorgang (Standard
„Schreib-Timeout“
= 200 ms).
const unsigned int DEFAULT_WRITE_TIMEOUT = „200“
const std::string READ_WRITE_ATTEMPTS_OPTION_ Maximale Lese- oder Schreibversuche (Werte ungleich Null)
NAME = „Lese-/Schreibversuche“
nur; Standard = 5).
const unsigned int DEFAULT_READ_WRITE_ATTEMPTS = „5“
const std::string CHANGE_NETWORK_STATE_ATTEMPTS_OPTION_NAME = „Versuche zum Ändern des Netzwerkstatus“
Maximale Anzahl der Versuche, den Netzwerkstatus zu ändern (nur Werte ungleich Null; Standard = 10).
const unsigned int DEFAULT_CHANGE_NETWORK_ STATE_ATTEMPTS = „10“
const std::string PDO_IO_ENABLED_OPTION_NAME Aktiviert oder deaktiviert die PDO-Verarbeitung für digitale Ein- /
= „PDO IO aktiviert“
Ausgaben (nur „True“ oder „False“, Standard = „True“).
const std::string DEFAULT_PDO_IO_ENABLED = „True“
8.10 EtherCATState-Struktur
Diese Struktur enthält die EtherCAT-Slave-/Netzwerkzustände als Zeichenfolgenwerte in den folgenden öffentlichen Attributen. Hinweis: Der Standardzustand beim Einschalten ist PRE_OPERATIONAL; NanoLib kann in einem nicht in Echtzeit arbeitenden Betriebssystem keinen zuverlässigen „OPERATIONAL“-Zustand bereitstellen:
const std::string const std::string const std::string const std::string const std::string const std::string
KEINE = „KEINE“ INIT = „INIT“ PRE_OPERATIONAL = „PRE_OPERATIONAL“ BOOT = „BOOT“ SAFE_OPERATIONAL = „SAFE_OPERATIONAL“ OPERATIONAL = „OPERATIONAL“
Version: doc 1.4.2 / NanoLib 1.3.0
31
8 Klassen / Funktionen Referenz
8.11 Ixxat
Diese Struktur enthält alle Informationen für das Ixxat USB-to-CAN in den folgenden öffentlichen Attributen:
const std::string
ADAPTER_BUS_NUMBER_OPTIONS_NAME = „ixxat Adapterbusnummer“
const IxxatAdapterBusNumber adapterBusNumber = IxxatAdapterBusNumber ()
8.12 IxxatAdapterBusNumber
Diese Struktur enthält die Busnummer für das Ixxat USB-to-CAN in den folgenden öffentlichen Attributen:
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
Diese Struktur enthält alle Informationen für Peak USB-to-CAN in den folgenden öffentlichen Attributen:
const std::string
ADAPTER_BUS_NUMBER_OPTIONS_NAME = „Spitzenadapterbusnummer“
const PeakAdapterBusNumber adapterBusNumber = PeakAdapterBusNumber ()
8.14 PeakAdapterBusNumber
Diese Struktur enthält die Busnummer für das Peak USB-to-CAN in den folgenden öffentlichen Attributen:
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) BUS_NUMBER_11 = std::zu_string (PCAN_USBBUS11) BUS_NUMBER_12 = std::zu_string (PCAN_USBBUS12) BUS_NUMBER_13 = std::zu_string (PCAN_USBBUS13) BUS_NUMBER_14 = std::zu_string (PCAN_USBBUS14) BUS_NUMBER_15 = std::zu_string (PCAN_USBBUS15) BUS_NUMBER_16 = std::zu_string (PCAN_USBBUS16)
8.15 GeräteHandle
Diese Klasse stellt einen Handle zur Steuerung eines Geräts auf einem Bus dar und verfügt über die folgenden öffentlichen Memberfunktionen.
Gerätehandle () Gerätehandle (uint32_t-Handle)
Version: doc 1.4.2 / NanoLib 1.3.0
32
8 Klassen / Funktionen Referenz
equals () Vergleicht sich selbst mit einem gegebenen Geräte-Handle.
bool ist gleich (Gerätehandle const anderes) const (uint32_t-Handle)
toString () Gibt eine Zeichenfolgendarstellung des Geräte-Handles zurück.
std::string toString () const
get () Gibt den Geräte-Handle zurück.
uint32_t get () const
8.16 Geräte-ID
Verwenden Sie diese Klasse (von der Erstellung an nicht unveränderlich), um Geräte auf einem Bus zu identifizieren und zu unterscheiden:
Hardware-Adapter-ID
Gerätekennung
Beschreibung
Die Bedeutung der Geräte-ID/Beschreibungswerte hängt vom Bus ab. Zum BeispielampBeispielsweise kann ein CAN-Bus die ganzzahlige ID verwenden.
DeviceId () [1/3] Konstruiert ein neues Geräte-ID-Objekt.
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId_, unsigned int deviceId_, std::string const & description_)
Parameter busHardwareId_ deviceId_ description_
Kennung des Busses. Ein Index; abhängig vom Bus (= CANopen-Knoten-ID usw.). Eine Beschreibung (kann leer sein); abhängig vom Bus.
DeviceId () [2/3] Konstruiert ein neues Geräte-ID-Objekt mit erweiterten ID-Optionen.
nlc::DeviceId::DeviceId (BusHardwareId const & busHardwareId, unsigned int deviceId_, std::string const & description_ std::vector const & extraId_, std::string const & extraStringId_)
Parameter busHardwareId_ deviceId_ description_ extraId_ extraStringId_
Kennung des Busses. Ein Index; abhängig vom Bus (= CANopen-Knoten-ID usw.). Eine Beschreibung (darf leer sein); abhängig vom Bus. Eine zusätzliche ID (darf leer sein); Bedeutung hängt vom Bus ab. Zusätzliche String-ID (darf leer sein); Bedeutung hängt vom Bus ab.
DeviceId () [3/3] Erstellt eine Kopie eines Geräte-ID-Objekts.
nlc::GeräteId::GeräteId (GeräteId const &)
Version: doc 1.4.2 / NanoLib 1.3.0
33
8 Klassen / Funktionen Referenz
Parameter deviceId_
Geräte-ID, von der kopiert werden soll.
equals () Vergleicht neue mit vorhandenen Objekten.
bool nlc::DeviceId::equals (DeviceId const & andere) const
Gibt Boolean zurück
getBusHardwareId () Liest die Bus-Hardware-ID aus.
BusHardwareId nlc::DeviceId::getBusHardwareId () const
Gibt BusHardwareId zurück
getDescription() Liest die Gerätebeschreibung aus (eventuell ungenutzt).
std::string nlc::DeviceId::getDescription () const
Gibt eine Zeichenfolge zurück
getDeviceId() Liest die Geräte-ID aus (eventuell unbenutzt).
unsigned int nlc::DeviceId::getDeviceId () const
Gibt unsigned int zurück
toString () Gibt das Objekt als Zeichenfolge zurück.
std::string nlc::DeviceId::toString () const
Gibt eine Zeichenfolge zurück
getExtraId() Liest die zusätzliche ID des Gerätes aus (kann unbenutzt sein).
const std::Vektor &getExtraId () const
Gibt den Vektor zurück
Ein Vektor der zusätzlichen Extra-IDs (kann leer sein); Bedeutung hängt vom Bus ab.
getExtraStringId () Liest die zusätzliche String-ID des Gerätes aus (kann unbenutzt sein).
std::string getExtraStringId () const
Version: doc 1.4.2 / NanoLib 1.3.0
34
8 Klassen / Funktionen Referenz
Gibt eine Zeichenfolge zurück
Die zusätzliche Zeichenfolge ID (kann leer sein); Bedeutung hängt vom Bus ab.
8.17 LogLevelKonverter
Diese Klasse gibt Ihre Protokollebene als Zeichenfolge zurück. static std::string toString (nlc::LogLevel logLevel)
8.18 LogModulKonverter
Diese Klasse gibt Ihr bibliotheksspezifisches Protokoll modulesetLoggingLevel() als Zeichenfolge zurück.
statischer std::string
toString (nlc::LogModule LogModul)
statischer std::string toString (nlc::LogModule logModul)
8.19 Objektverzeichnis
Diese Klasse stellt ein Objektverzeichnis eines Controllers dar und verfügt über folgende öffentliche Memberfunktionen: getDeviceHandle()
virtuelles ResultDeviceHandle getDeviceHandle () const Gibt ResultDeviceHandle zurück
getObject () virtual ResultObjectSubEntry getObject (OdIndex const odIndex) Gibt ResultObjectSubEntry zurück
getObjectEntry () virtuelles ResultObjectEntry getObjectEntry (uint16_t Index)
Gibt ResultObjectEntry zurück
Informiert über die Eigenschaften eines Objekts.
getXmlFileName () virtueller ResultString getXmlFileName () const
Gibt ResultString zurück
Gibt das XML zurück file Name als Zeichenfolge.
readNumber () virtual ResultInt readNumber (OdIndex const odIndex) Gibt ResultInt zurück
readNumberArray () virtuelles ResultArrayInt readNumberArray (uint16_t const index)
Version: doc 1.4.2 / NanoLib 1.3.0
35
8 Klassen / Funktionen Referenz
Gibt ResultArrayInt readString () zurück.
virtueller ResultString readString (OdIndex const odIndex) Gibt ResultString readBytes () zurück virtueller ResultArrayByte readBytes (OdIndex const odIndex) Gibt ResultArrayByte writeNumber () zurück virtueller ResultVoid writeNumber (OdIndex const odIndex, const int64_t value) Gibt ResultVoid writeBytes () zurück virtueller ResultVoid writeBytes (OdIndex const OdIndex, std::vector
const & data) Gibt ResultVoid zurück Verwandte Links OdIndex
8.20 Objekteintrag
Diese Klasse stellt einen Objekteintrag des Objektverzeichnisses dar und verfügt über die folgenden statisch geschützten Attribute und öffentlichen Memberfunktionen:
statisches nlc::ObjectSubEntry ungültiges Objekt
getName() Liest den Namen des Objektes als String aus.
virtueller std::string getName () const
getPrivate () Überprüft, ob das Objekt privat ist.
virtuell bool getPrivate () const
getIndex() Liest die Adresse des Objektindex aus.
virtuelle uint16_t getIndex () const
Version: doc 1.4.2 / NanoLib 1.3.0
36
8 Klassen / Funktionen Referenz
getDataType() Liest den Datentyp des Objektes aus.
virtueller nlc::ObjectEntryDataType getDataType () const
getObjectCode() Liest den Objektcode aus:
Null Deftype Defstruct Var Array Datensatz
0x00 0x05 0x06 0x07 0x08 0x09
virtueller nlc::ObjectCode getObjectCode () const
getObjectSaveable () Überprüft, ob das Objekt speicherbar ist und in welche Kategorie es sich befindet (weitere Einzelheiten finden Sie im Produkthandbuch): APPLICATION, COMMUNICATION, DRIVE, MISC_CONFIG, MODBUS_RTU, NO, TUNING, CUSTOMER, ETHERNET, CANOPEN, VERIFY1020, UNKNOWN_SAVEABLE_TYPE
virtuelles nlc::ObjectSaveable getObjectSaveable () const
getMaxSubIndex () Liest die Anzahl der von diesem Objekt unterstützten Subindizes aus.
virtuelle uint8_t getMaxSubIndex () const
getSubEntry () virtuelles nlc::ObjectSubEntry & getSubEntry (uint8_t subIndex)
Siehe auch ObjectSubEntry.
8.21 Objekt-Untereintrag
Diese Klasse stellt einen Objektuntereintrag (Subindex) des Objektverzeichnisses dar und verfügt über die folgenden öffentlichen Memberfunktionen:
getName() Liest den Namen des Objektes als String aus.
virtueller std::string getName () const
getSubIndex() Liest die Adresse des Subindex aus.
virtuelle uint8_t getSubIndex () const
Version: doc 1.4.2 / NanoLib 1.3.0
37
8 Klassen / Funktionen Referenz
getDataType() Liest den Datentyp des Objektes aus.
virtueller nlc::ObjectEntryDataType getDataType () const
getSdoAccess () Überprüft, ob der Subindex über SDO erreichbar ist:
Schreibgeschützt
1
Nur Schreiben
2
LesenSchreiben
3
Kein Zugang
0
virtuelles nlc::ObjectSdoAccessAttribute getSdoAccess () const
getPdoAccess () Überprüft, ob der Subindex über PDO erreichbar/abbildbar ist:
Tx
1
Rx
2
TxRx
3
NEIN
0
virtuelles nlc::ObjectPdoAccessAttribute getPdoAccess () const
getBitLength () Überprüft die Subindexlänge.
virtuelle uint32_t getBitLength () const
getDefaultValueAsNumeric () Liest den Defaultwert des Subindex für numerische Datentypen aus.
virtuelles ResultInt getDefaultValueAsNumeric (std::string const & key) const
getDefaultValueAsString () Liest den Defaultwert des Subindex für String-Datentypen aus.
virtueller ResultString getDefaultValueAsString (std::string const & key) const
getDefaultValues () Liest die Defaultwerte des Subindex aus.
virtueller std::map getDefaultValues () const
Version: doc 1.4.2 / NanoLib 1.3.0
38
8 Klassen / Funktionen Referenz
readNumber () Liest den numerischen Istwert des Subindex aus.
virtuelle ResultInt readNumber () const
readString () Liest den String-Istwert des Subindex aus.
virtueller ResultString readString () const
readBytes () Liest den aktuellen Wert des Subindex in Bytes aus.
virtuelles ResultArrayByte readBytes () const
writeNumber () Schreibt einen numerischen Wert in den Subindex.
virtuelles ResultVoid writeNumber (const int64_t value) const
writeBytes () Schreibt einen Wert in Bytes in den Subindex.
virtuelles ResultVoid writeBytes (std::vector const & Daten) const
8.22 OdIndex
Verwenden Sie diese Klasse (von der Erstellung an unveränderlich), um Objektverzeichnisindizes/-unterindizes zu umschließen und zu lokalisieren. Der Objektverzeichnisindex eines Geräts hat bis zu 65535 (0xFFFF) Zeilen und 255 (0xFF) Spalten; mit Lücken zwischen den unterbrochenen Zeilen. Weitere Einzelheiten finden Sie im CANopen-Standard und in Ihrem Produkthandbuch.
OdIndex () Erstellt ein neues OdIndex-Objekt.
nlc::OdIndex::OdIndex (uint16_t Index, uint8_t Unterindex)
Parameter Index Subindex
Von 0 bis 65535 (0xFFFF) inkl. Von 0 bis 255 (0xFF) inkl.
getIndex() Liest den Index (von 0x0000 bis 0xFFFF) aus.
uint16_t nlc::OdIndex::getIndex () const
Gibt uint16_t zurück
getSubindex () Liest den Subindex aus (von 0x00 bis 0xFF)
uint8_t nlc::OdIndex::getSubIndex () const
Version: doc 1.4.2 / NanoLib 1.3.0
39
8 Klassen / Funktionen Referenz
Gibt uint8_t zurück
toString () Gibt den Index und Subindex als String zurück. Der String-Standard 0xIIII:0xSS lautet wie folgt:
I = Index von 0x0000 bis 0xFFFF
S = Subindex von 0x00 bis 0xFF
std::string nlc::OdIndex::toString () const
Gibt 0xIIII:0xSS zurück
Standardmäßige Zeichenfolgendarstellung
8.23 OdBibliothek
Verwenden Sie diese Programmierschnittstelle, um Instanzen der ObjectDictionary-Klasse aus XML zu erstellen. Durch assignObjectDictionary können Sie dann jede Instanz aufgrund einer eindeutig erstellten Kennung an ein bestimmtes Gerät binden. Auf diese Weise erstellte ObjectDictionary-Instanzen werden im OdLibrary-Objekt gespeichert und können über den Index aufgerufen werden. Die ODLibrary-Klasse lädt ObjectDictionary-Elemente aus file oder ein Array, speichert sie und hat die folgenden öffentlichen Mitgliedsfunktionen:
getObjectDictionaryCount () virtuell uint32_t getObjectDictionaryCount () const
getObjectDictionary () virtuelles ResultObjectDictionary getObjectDictionary (uint32_t odIndex)
Gibt ResultObjectDictionary zurück
ObjektverzeichnisAusfüllenFile ()
virtuelles ResultObjectDictionary addObjectDictionaryFromFile (std::string const & absoluteXmlFileWeg)
Gibt ResultObjectDictionary zurück
addObjectDictionary ()
virtuelles ResultObjectDictionary addObjectDictionary (std::vector const & odXmlData, const std::string &xmlFilePfad = std::string ())
Gibt ResultObjectDictionary zurück
8.24 OdTypesHelper
Zusätzlich zu den folgenden öffentlichen Memberfunktionen enthält diese Klasse benutzerdefinierte Datentypen. Hinweis: Um Ihre benutzerdefinierten Datentypen zu überprüfen, suchen Sie in od_types.hpp nach der Enumerationsklasse ObjectEntryDataType.
uintToObjectCode() Wandelt vorzeichenlose Ganzzahlen in Objektcode um:
Null-Deftyp
0x00 0x05
Version: doc 1.4.2 / NanoLib 1.3.0
40
8 Klassen / Funktionen Referenz
Zerstöre Var-Array-Datensatz
0x06 0x07 0x08 0x09
statischer ObjectCode uintToObjectCode (vorzeichenloser int objectCode)
isNumericDataType () Informiert, ob ein Datentyp numerisch ist oder nicht.
statisches boolesches isNumericDataType (ObjectEntryDataType Datentyp)
isDefstructIndex () Informiert, ob ein Objekt ein Definitionsstrukturindex ist oder nicht.
static bool isDefstructIndex (uint16_t typeNum)
isDeftypeIndex () Informiert, ob ein Objekt ein Definitionstypindex ist oder nicht.
static bool isDeftypeIndex (uint16_t typeNum)
isComplexDataType () Informiert, ob ein Datentyp komplex ist oder nicht.
statisch bool isComplexDataType (ObjectEntryDataType Datentyp)
uintToObjectEntryDataType () Konvertiert vorzeichenlose Ganzzahlen in den OD-Datentyp.
sstatic ObjectEntryDataType uintToObjectEntryDataType (uint16_t objectDataType)
objectEntryDataTypeToString () Konvertiert den OD-Datentyp in eine Zeichenfolge.
statischer std::string objectEntryDataTypeToString (ObjectEntryDataType odDataType)
stringToObjectEntryDatatype () Konvertiert die Zeichenfolge, sofern möglich, in den OD-Datentyp. Andernfalls wird UNKNOWN_DATATYPE zurückgegeben.
statischer ObjectEntryDataType stringToObjectEntryDatatype (std::string dataTypeString)
Version: doc 1.4.2 / NanoLib 1.3.0
41
8 Klassen / Funktionen Referenz
objectEntryDataTypeBitLength () Informiert über die Bitlänge eines Objekteintrag-Datentyps.
statische uint32_t objectEntryDataTypeBitLength (ObjectEntryDataType const & dataType)
8.25 RESTfulBus-Struktur
Diese Struktur enthält die Kommunikationskonfigurationsoptionen für die RESTful-Schnittstelle (über Ethernet). Sie enthält die folgenden öffentlichen Attribute:
const std::string const unsigned long const std::string const unsigned long const std::string const unsigned long
CONNECT_TIMEOUT_OPTION_NAME = „RESTful-Verbindungstimeout“ DEFAULT_CONNECT_TIMEOUT = 200 REQUEST_TIMEOUT_OPTION_NAME = „RESTful-Anforderungstimeout“ DEFAULT_REQUEST_TIMEOUT = 200 RESPONSE_TIMEOUT_OPTION_NAME = „RESTful-Antworttimeout“ DEFAULT_RESPONSE_TIMEOUT = 750
8.26 ProfinetDCP
Unter Linux benötigt die aufrufende Anwendung die Fähigkeiten CAP_NET_ADMIN und CAP_NET_RAW. So aktivieren Sie sie: sudo setcap 'cap_net_admin,cap_net_raw+eip' ./executable. Unter Windows verwendet die ProfinetDCP-Schnittstelle WinPcap (getestet mit Version 4.1.3) oder Npcap (getestet mit den Versionen 1.60 und 1.30). Sie durchsucht daher die dynamisch geladene wpcap.dll-Bibliothek in der folgenden Reihenfolge (Hinweis: keine aktuelle Win10Pcap-Unterstützung):
1. Nanolib.dll-Verzeichnis 2. Windows-Systemverzeichnis SystemRoot%System32 3. Npcap-Installationsverzeichnis SystemRoot%System32Npcap 4. Umgebungspfad
Diese Klasse stellt eine Profinet DCP-Schnittstelle dar und verfügt über die folgenden öffentlichen Memberfunktionen:
getScanTimeout () Informiert über ein Geräte-Scan-Timeout (Standard = 2000 ms).
virtuelle uint32_t nlc::ProfinetDCP::getScanTimeout () const
setScanTimeout () Legt ein Timeout für den Gerätescan fest (Standard = 2000 ms).
virtueller void nlc::setScanTimeout (uint32_t timeoutMsec)
getResponseTimeout () Informiert über ein Geräteantwort-Timeout für Setup-, Reset- und Blinkvorgänge (Standard = 1000 ms).
virtuelle uint32_t nlc::ProfinetDCP::getResponseTimeout () const
setResponseTimeout () Informiert über ein Geräteantwort-Timeout für Setup-, Reset- und Blinkvorgänge (Standard = 1000 ms).
virtueller void nlc::ProfinetDCP::setResponseTimeout (uint32_t timeoutMsec)
Version: doc 1.4.2 / NanoLib 1.3.0
42
8 Klassen / Funktionen Referenz
istDienstverfügbar ()
Verwenden Sie diese Funktion, um die Verfügbarkeit des Profinet DCP-Dienstes zu überprüfen.
Gültigkeit / Verfügbarkeit des Netzwerkadapters Windows: WinPcap / Npcap-Verfügbarkeit Linux: CAP_NET_ADMIN / CAP_NET_RAW-Funktionen
virtual ResultVoid nlc::ProfinetDCP::isServiceAvailable (const BusHardwareId & busHardwareId)
Parameter BusHardwareId Gibt true zurück
FALSCH
Zu prüfende Hardware-ID des Profinet DCP-Dienstes. Dienst ist verfügbar. Dienst ist nicht verfügbar.
scanProfinetDevices () Verwenden Sie diese Funktion, um den Hardwarebus auf das Vorhandensein von Profinet-Geräten zu scannen.
virtuelles ErgebnisProfinetDevices scanProfinetDevices (const BusHardwareId & busHardwareId)
Parameter BusHardwareId Gibt ErgebnisProfinetDevices zurück
Gibt jeden zu öffnenden Feldbus an. Die Hardware ist geöffnet.
setupProfinetDevice() Legt folgende Geräteeinstellungen fest:
Gerätename
IP-Adresse
Netzwerkmaske
Standardgateway
virtuelles ResultVoid nlc::setupProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice-Struktur & profinetDevice, bool savePermanent)
resetProfinetDevice () Stoppt das Gerät und setzt es auf die Werkseinstellungen zurück.
virtuelles ResultVoid nlc::resetProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice & profinetDevice)
blinkProfinetDevice () Befiehlt dem Profinet-Gerät, mit dem Blinken seiner Profinet-LED zu beginnen.
virtuelles ResultVoid nlc::blinkProfinetDevice (const BusHardwareId & busHardwareId, const ProfinetDevice &profinetDevice)
validateProfinetDeviceIp () Verwenden Sie diese Funktion, um die IP-Adresse des Geräts zu überprüfen.
virtuelles ResultVoid validateProfinetDeviceIp (const BusHardwareId &busHardwareId, const ProfinetDevice & profinetDevice)
Parameter BusHardwareId ProfinetDevice
Gibt die zu prüfende Hardware-ID an. Gibt das zu validierende Profinet-Gerät an.
Version: doc 1.4.2 / NanoLib 1.3.0
43
8 Klassen / Funktionen Referenz
Gibt ResultVoid zurück
8.27 ProfinetDevice-Struktur
Die Profinet-Gerätedaten haben folgende öffentliche Attribute:
std::Zeichenfolge std::Zeichenfolge std::Array< uint8_t, 6 > uint32_t uint32_t uint32_t
Gerätename Gerätehersteller MAC-Adresse IP-Adresse Netzmaske Standard-Gateway
Die MAC-Adresse wird als Array im Format macAddress = {xx, xx, xx, xx, xx, xx} bereitgestellt, während IP-Adresse, Netzwerkmaske und Gateway alle als Big-Endian-Hex-Zahlen interpretiert werden, wie etwa:
IP-Adresse: 192.168.0.2 Netzwerkmaske: 255.255.0.0 Gateway: 192.168.0.1
0xC0A80002 0xFFFF0000 0xC0A80001
8.28 Ergebnisklassen
Mit den „optionalen“ Rückgabewerten dieser Klassen können Sie überprüfen, ob ein Funktionsaufruf erfolgreich war oder nicht, und auch die Gründe für das Scheitern ermitteln. Bei Erfolg gibt die Funktion hasError() false zurück. Mit getResult() können Sie den Ergebniswert je nach Typ (ResultInt usw.) auslesen. Schlägt ein Aufruf fehl, lesen Sie mit getError() den Grund aus.
Geschützte Attribute
Zeichenfolge NlcErrorCode uint32_t
Fehlerzeichenfolge Fehlercode exErrorCode
Außerdem verfügt diese Klasse über die folgenden öffentlichen Memberfunktionen:
hasError () Liest den Erfolg eines Funktionsaufrufs aus.
bool nlc::Ergebnis::hasError () const
Rückgaben
wahr falsch
Aufruf fehlgeschlagen. Verwenden Sie getError() um den Wert auszulesen. Aufruf erfolgreich. Verwenden Sie getResult() um den Wert auszulesen.
getError() Liest den Grund aus wenn ein Funktionsaufruf fehlschlägt.
const std::string nlc::Result::getError () const
Gibt eine konstante Zeichenfolge zurück
Version: doc 1.4.2 / NanoLib 1.3.0
44
8 Klassen / Funktionen Referenz
result () Die folgenden Funktionen helfen bei der Definition der genauen Ergebnisse:
Ergebnis (std::string const & errorString_)
Ergebnis (NlcErrorCode const & errCode, std::string const & errorString_)
Ergebnis (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
Ergebnis (Ergebnis const & Ergebnis)
getErrorCode () Liest den NlcErrorCode.
NlcErrorCode getErrorCode () const
getExErrorCode () uint32_t getExErrorCode () const
8.28.1 ErgebnisVoid
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion void zurückgibt. Die Klasse erbt die öffentlichen Funktionen und geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Mitgliedsfunktionen:
ResultVoid () Die folgenden Funktionen helfen bei der Definition des genauen Void-Ergebnisses:
ResultVoid (std::string const &errorString_)
ResultVoid (NlcErrorCode const & errCode, std::string const & errorString_)
ResultVoid (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultVoid (Ergebnis const & Ergebnis)
8.28.2 ErgebnisInt
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion eine Ganzzahl zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Mitgliedsfunktionen:
getResult () Gibt das ganzzahlige Ergebnis zurück, wenn ein Funktionsaufruf erfolgreich war.
int64_t getResult () const
Gibt int64_t zurück
Version: doc 1.4.2 / NanoLib 1.3.0
45
8 Klassen / Funktionen Referenz
ResultInt () Die folgenden Funktionen helfen dabei, das exakte ganzzahlige Ergebnis zu definieren:
ResultInt (int64_t Ergebnis_)
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 (Ergebnis const & Ergebnis)
8.28.3 Ergebniszeichenfolge
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion einen String zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Memberfunktionen:
getResult() Liest den String-Ergebnis aus, wenn ein Funktionsaufruf erfolgreich war.
const std::string nlc::ResultString::getResult () const
Gibt eine konstante Zeichenfolge zurück
ResultString () Die folgenden Funktionen helfen bei der Definition des genauen String-Ergebnisses:
ResultString (std::string const & message, bool hasError_)
ResultString (NlcErrorCode const & errCode, std::string const & errorString_)
ResultString (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultString (Ergebnis const & Ergebnis)
8.28.4 ErgebnisArrayByte
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion ein Byte-Array zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Memberfunktionen:
getResult() Liest den Byte-Vektor aus, wenn ein Funktionsaufruf erfolgreich war.
const std::Vektor nlc::ResultArrayByte::getResult () const
Gibt einen konstanten Vektor zurück
Version: doc 1.4.2 / NanoLib 1.3.0
46
8 Klassen / Funktionen Referenz
ResultArrayByte () Die folgenden Funktionen helfen bei der Definition des genauen Byte-Array-Ergebnisses:
ErgebnisArrayByte (std::Vektor const & result_)
ResultArrayByte (std::string const & errorString_)
ResultArrayByte (NlcErrorCode const & errCode, std::string const & error String_)
ResultArrayByte (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultArrayByte (Ergebnis const & Ergebnis)
8.28.5 ErgebnisArrayInt
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion ein Integer-Array zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Memberfunktionen:
getResult() Liest den Integer-Vektor aus, wenn ein Funktionsaufruf erfolgreich war.
const std::Vektor nlc::ResultArrayInt::getResult () const
Gibt einen konstanten Vektor zurück
ResultArrayInt () Die folgenden Funktionen helfen bei der Definition des genauen Integer-Array-Ergebnisses:
ErgebnisArrayInt (std::Vektor const & result_)
ResultArrayInt (std::string const & errorString_)
ResultArrayInt (NlcErrorCode const & errCode, std::string const & error String_)
ResultArrayInt (NlcErrorCode const & errCode, const uint32_t exErrCode, std::string const & errorString_)
ResultArrayInt (Ergebnis const & Ergebnis)
8.28.6 ErgebnisBusHwIds
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion ein Bus-Hardware-ID-Array zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Mitgliedsfunktionen:
getResult() Liest den Bus-Hardware-ID Vektor aus, wenn ein Funktionsaufruf erfolgreich war.
const std::Vektor nlc::ResultBusHwIds::getResult () const
Parameter const Vektor
Version: doc 1.4.2 / NanoLib 1.3.0
47
8 Klassen / Funktionen Referenz
ResultBusHwIds () Die folgenden Funktionen helfen bei der Definition des genauen Bus-Hardware-ID-Array-Ergebnisses:
ErgebnisBusHwIds (std::Vektor 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 (Ergebnis const & Ergebnis)
8.28.7 ResultDeviceId
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion eine Geräte-ID zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Mitgliedsfunktionen:
getResult() Liest den Geräte-ID-Vektor aus, wenn ein Funktionsaufruf erfolgreich war.
Geräte-ID nlc::ResultGeräte-ID::getResult () const
Gibt einen konstanten Vektor zurück
ResultDeviceId () Die folgenden Funktionen helfen bei der Definition des genauen Geräte-ID-Ergebnisses:
ResultDeviceId (Geräte-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 (Ergebnis konstant & Ergebnis)
8.28.8 ResultDeviceIds
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion ein Geräte-ID-Array zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Mitgliedsfunktionen:
getResult () Gibt den Geräte-ID-Vektor zurück, wenn ein Funktionsaufruf erfolgreich war.
Geräte-ID nlc::ResultDeviceIds::getResult () const
Gibt einen konstanten Vektor zurück
Version: doc 1.4.2 / NanoLib 1.3.0
48
8 Klassen / Funktionen Referenz
ResultDeviceIds () Die folgenden Funktionen helfen bei der Definition des genauen Geräte-ID-Array-Ergebnisses:
Ergebnisgeräte-IDs (std::Vektor 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 (Ergebnis konstant & Ergebnis)
8.28.9 Ergebnisgerätehandle
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion den Wert eines Gerätehandles zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Memberfunktionen:
getResult() Liest den Geräte-Handle aus, wenn ein Funktionsaufruf erfolgreich war.
GeräteHandle nlc::ResultGeräteHandle::getResult () const
Gibt DeviceHandle zurück
ResultDeviceHandle () Die folgenden Funktionen helfen dabei, das genaue Geräte-Handle-Ergebnis zu definieren:
ResultDeviceHandle (GeräteHandle 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 (Ergebnis const & Ergebnis)
8.28.10 Ergebnisobjektverzeichnis
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion den Inhalt eines Objektwörterbuchs zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Mitgliedsfunktionen:
getResult() Liest den Geräte-ID-Vektor aus, wenn ein Funktionsaufruf erfolgreich war.
const nlc::ObjectDictionary & nlc::ResultObjectDictionary::getResult () const
Version: doc 1.4.2 / NanoLib 1.3.0
49
8 Klassen / Funktionen Referenz
Rückgaben
const-Vektor
ResultObjectDictionary () Die folgenden Funktionen helfen bei der Definition des genauen Objektwörterbuchergebnisses:
ErgebnisObjektDictionary (nlc::ObjektDictionary 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 (Ergebnis const & Ergebnis)
8.28.11 ErgebnisVerbindungsstatus
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion Informationen zum Geräteverbindungsstatus zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Mitgliedsfunktionen:
getResult() Liest den Geräte-Handle aus, wenn ein Funktionsaufruf erfolgreich war.
DeviceConnectionStateInfo nlc::ResultConnectionState::getResult () const
Gibt DeviceConnectionStateInfo Verbunden / Getrennt / ConnectedBootloader zurück
ResultConnectionState () Die folgenden Funktionen helfen dabei, das genaue Ergebnis des Verbindungsstatus zu definieren:
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 (Ergebnis konstant & Ergebnis)
8.28.12 Ergebnisobjekteintrag
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion einen Objekteintrag zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Memberfunktionen:
Version: doc 1.4.2 / NanoLib 1.3.0
50
8 Klassen / Funktionen Referenz
getResult () Gibt den Geräte-ID-Vektor zurück, wenn ein Funktionsaufruf erfolgreich war.
nlc::ObjectEntry const& nlc::ResultObjectEntry::getResult () const
Gibt const ObjectEntry zurück
ResultObjectEntry () Die folgenden Funktionen helfen dabei, das genaue Ergebnis der Objekteingabe zu definieren:
Ergebnisobjekteintrag (nlc::Objekteintrag 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 (Ergebnis const & Ergebnis)
8.28.13 Ergebnisobjekt-Untereintrag
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion einen Objektuntereintrag zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Mitgliedsfunktionen:
getResult () Gibt den Geräte-ID-Vektor zurück, wenn ein Funktionsaufruf erfolgreich war.
nlc::ObjectSubEntry const & nlc::ResultObjectSubEntry::getResult () const
Gibt const ObjectSubEntry zurück
ResultObjectSubEntry () Die folgenden Funktionen helfen dabei, das genaue Ergebnis des Objektuntereintrags zu definieren:
Ergebnisobjekt-Untereintrag (nlc::Objekteintrag 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 (Ergebnis const & Ergebnis)
8.28.14 ErgebnisProfinetDevices
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion ein Profinet-Gerät zurückgibt. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Memberfunktionen:
Version: doc 1.4.2 / NanoLib 1.3.0
51
8 Klassen / Funktionen Referenz
getResult() Liest den Profinet-Gerätevektor aus, wenn ein Funktionsaufruf erfolgreich war.
const std::Vektor & getResult () const
ErgebnisProfinetDevices () Die folgenden Funktionen helfen bei der Definition der genauen Profinet-Geräte.
ErgebnisProfinetDevices (const std::vector & Profinet-Geräte)
ErgebnisProfinetDevices (const Ergebnis & Ergebnis)
ErgebnisProfinetDevices (const std::string &errorText, NlcErrorCode errorCode = NlcErrorCode::GeneralError, uint32_t extendedErrorCode = 0)
8.28.15 ErgebnisseampleDataArray
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion Folgendes zurückgibt:ample-Datenarray. Die Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Memberfunktionen:
getResult() Liest das Datenarray aus, wenn ein Funktionsaufruf erfolgreich war.
const std::Vektor <SampleData> & getResult () const
ErgebnisseampleDataArray () Die folgenden Funktionen helfen bei der Definition der genauen Profinet-Geräte.
ErgebnisseampleDataArray (const std::vector <SampleData> & dataArray)
ErgebnisseampleDataArray (const std::string &errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t extendedErrorCode = 0)
ErgebnisseampleDataArray (const ErgebnisSampleDataArray und andere)
ErgebnisseampleDataArray (const Ergebnis & Ergebnis)
8.28.16 ErgebnisseamplerState
NanoLib sendet Ihnen eine Instanz dieser Klasse, wenn die Funktion Folgendes zurückgibt:ampler-Status. Diese Klasse erbt die öffentlichen Funktionen/geschützten Attribute von der Ergebnisklasse und verfügt über die folgenden öffentlichen Mitgliedsfunktionen:
getResult () Liest die s ausampler-Zustandsvektor, wenn ein Funktionsaufruf erfolgreich war.
SamplerState getResult () const
Rückgaben SamplerState>
Nicht konfiguriert / Konfiguriert / Bereit / Wird ausgeführt / Abgeschlossen / Fehlgeschlagen / Abgebrochen
Version: doc 1.4.2 / NanoLib 1.3.0
52
8 Klassen / Funktionen Referenz
ErgebnisseamplerState () Die folgenden Funktionen helfen bei der Definition der genauen sampler Zustand.
ErgebnisseamplerState (const SamplerState-Zustand)
ErgebnisseamplerState (const std::string & errorDesc, const NlcErrorCode errorCode = NlcErrorCode::GeneralError, const uint32_t
erweiterterFehlercode = 0)
ErgebnisseamplerState (const ResultSamplerState & andere)
ErgebnisseamplerState (const Ergebnis & Ergebnis)
8.29 NlcErrorCode
Wenn etwas schief geht, melden die Ergebnisklassen einen der in dieser Aufzählung aufgeführten Fehlercodes.
Fehlercode Erfolg Allgemeiner Fehler Bus nicht verfügbar Kommunikationsfehler Protokollfehler
ODDoesNotExist ODInvalidAccess ODTypeMismatch Vorgang abgebrochen Vorgang nicht unterstützt Ungültiger Vorgang
Ungültige Argumente Zugriff verweigert Ressource nicht gefunden Ressource nicht verfügbar OutOfMemory TimeOutError
C: Kategorie D: Beschreibung R: Grund C: Keiner. D: Kein Fehler. R: Der Vorgang wurde erfolgreich abgeschlossen.
C: Nicht spezifiziert. D: Nicht spezifizierter Fehler. R: Fehler, der in keine andere Kategorie passt.
C: Bus. D: Hardware-Bus nicht verfügbar. R: Bus nicht vorhanden, unterbrochen oder defekt.
C: Kommunikation. D: Kommunikation unzuverlässig. R: Unerwartete Daten, falscher CRC, Frame- oder Paritätsfehler usw.
C: Protokoll. D: Protokollfehler. R: Antwort nach nicht unterstützter Protokolloption, Gerätebericht nicht unterstütztes Protokoll, Fehler im Protokoll (z. B. SDO-Segment-Sync-Bit) usw. R: Eine Antwort oder ein Gerätebericht auf nicht unterstütztes Protokoll (Optionen) oder auf Fehler im Protokoll (z. B. SDO-Segment-Sync-Bit) usw. R: Nicht unterstütztes Protokoll (Optionen) oder Fehler im Protokoll (z. B. SDO-Segment-Sync-Bit) usw.
C: Objektverzeichnis. D: OD-Adresse nicht vorhanden. R: Keine solche Adresse im Objektverzeichnis.
C: Objektwörterbuch. D: Zugriff auf OD-Adresse ungültig. R: Versuch, eine schreibgeschützte Adresse zu schreiben oder von einer schreibgeschützten Adresse zu lesen.
C: Objektwörterbuch. D: Typenkonflikt. R: Wert wurde nicht in den angegebenen Typ konvertiert, beispielsweise beim Versuch, eine Zeichenfolge als Zahl zu behandeln.
C: Anwendung. D: Prozess abgebrochen. R: Prozess durch Anwendungsanforderung unterbrochen. Kehrt nur bei Vorgangsunterbrechung durch Rückruffunktion zurück, z. B. durch Bus-Scanning.
C: Allgemein. D: Prozess wird nicht unterstützt. R: Keine Hardwarebus-/Geräteunterstützung.
C: Allgemein. D: Prozess im aktuellen Kontext falsch oder mit aktuellem Argument ungültig. R: Ein Wiederverbindungsversuch zu bereits verbundenen Bussen/Geräten. Ein Trennungsversuch zu bereits getrennten. Ein Bootloader-Operationsversuch im Firmware-Modus oder umgekehrt.
C: Allgemein. D: Argument ungültig. R: Falsche Logik oder Syntax.
C: Allgemein. D: Zugriff verweigert. R: Fehlende Rechte oder Fähigkeiten, um den angeforderten Vorgang auszuführen.
C: Allgemein. D: Angegebenes Element nicht gefunden. R: Hardware-Bus, Protokoll, Gerät, OD-Adresse auf dem Gerät oder file wurde nicht gefunden.
C: Allgemein. D: Angegebenes Element nicht gefunden. R: Beschäftigt, nicht vorhanden, unterbrochen oder defekt.
C: Allgemein. D: Nicht genügend Speicher. R: Zu wenig Speicher, um diesen Befehl zu verarbeiten.
C: Allgemein. D: Zeitüberschreitung des Prozesses. R: Rückkehr nach Ablauf der Zeitüberschreitung. Die Zeitüberschreitung kann eine Gerätereaktionszeit, eine Zeit zum Erlangen von gemeinsamem oder exklusivem Ressourcenzugriff oder eine Zeit zum Umschalten des Busses/Gerätes in einen geeigneten Zustand sein.
Version: doc 1.4.2 / NanoLib 1.3.0
53
8 Klassen / Funktionen Referenz
8.30 NlcCallback
Diese übergeordnete Klasse für Rückrufe hat die folgende öffentliche Memberfunktion: callback ()
virtueller ResultVoid-Rückruf ()
Rückgaben
ErgebnisVoid
8.31 NlcDataTransferCallback
Verwenden Sie diese Callback-Klasse für Datenübertragungen (Firmware-Update, NanoJ-Upload usw.). 1. Für einen Firmware-Upload: Definieren Sie eine „Co-Klasse“, die diese mit einer benutzerdefinierten Callback-Methode erweitert
Implementierung. 2. Verwenden Sie die Instanzen der „Co-Klasse“ in NanoLibAccessor.uploadFirmware()-Aufrufen. Die Hauptklasse selbst hat die folgende öffentliche Mitgliedsfunktion:
Rückruf () virtueller ResultVoid-Rückruf (nlc::DataTransferInfo-Info, int32_t-Daten)
Rückgaben
ErgebnisVoid
8.32 NlcScanBusCallback
Verwenden Sie diese Callback-Klasse zum Scannen von Bussen. 1. Definieren Sie eine „Co-Klasse“, die diese mit einer benutzerdefinierten Callback-Methodenimplementierung erweitert. 2. Verwenden Sie die Instanzen der „Co-Klasse“ in NanoLibAccessor.scanDevices()-Aufrufen. Die Hauptklasse selbst hat die folgende öffentliche Memberfunktion.
Ruf zurück ()
virtueller ResultVoid-Rückruf (nlc::BusScanInfo info, std::vector const & devicesFound, int32_t-Daten)
Gibt ResultVoid zurück
8.33 NlcLoggingCallback
Verwenden Sie diese Callback-Klasse zum Protokollieren von Callbacks. 1. Definieren Sie eine Klasse, die diese Klasse um eine benutzerdefinierte Callback-Methodenimplementierung erweitert. 2. Verwenden Sie einen Zeiger auf ihre Instanzen, um einen Callback von NanoLibAccessor einzurichten >
setLoggingCallback (…).
virtueller Void-Rückruf (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 SamplerSchnittstelle
Verwenden Sie diese Klasse zum Konfigurieren, Starten und Stoppen des sampler, oder um s zu bekommenampgeführte Daten und holen alsamplerstatus oder letzter Fehler. Die Klasse hat die folgenden öffentlichen Memberfunktionen.
Version: doc 1.4.2 / NanoLib 1.3.0
54
8 Klassen / Funktionen Referenz
configure () Konfiguriert alsamplesen.
virtuelles ResultVoid nlc::SamplerInterface::configure (const DeviceHandle deviceHandle, const SamplerKonfiguration & samplerKonfiguration)
Parameter [in] Gerätehandle [in] samplerKonfiguration
Gibt ResultVoid zurück
Gibt an, für welches Gerät die s konfiguriert werden sollampler für. Gibt die Werte der Konfigurationsattribute an. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
getData () Ruft die sampgeführte Daten.
Virtuelle ErgebnisseampleDataArray nlc::SamplerInterface::getData (const DeviceHandle Gerätehandle)
Parameter [in] deviceHandle Gibt Ergebnisse zurückampleDataArray
Gibt an, für welches Gerät die Daten abgerufen werden sollen.
Liefert die sampLED-Daten, die ein leeres Array sein können, wenn samplerNotify ist beim Start aktiv.
getLastError () Ruft ab alsamplers letzter Fehler.
virtuelles ResultVoid nlc::SamplerInterface::getLastError (const DeviceHandle Gerätehandle)
Gibt ResultVoid zurück
Bestätigt, dass eine Void-Funktion ausgeführt wurde.
getState () Ruft ab alsampler-Status.
Virtuelle ErgebnisseamplerState nlc::SamplerInterface::getState (const DeviceHandle Gerätehandle)
Gibt Ergebnisse zurückamplerState
Liefert die sampler Zustand.
start () Beginnt alsamplesen.
virtuelles ResultVoid nlc::SamplerInterface::start (const DeviceHandle deviceHandle, SamplerNotify* samplerNotify, int64_t Anwendungsdaten)
Parameter [in] Gerätehandle [in] SamplerNotify [in] applicationData
Gibt ResultVoid zurück
Gibt an, auf welchem Gerät der s gestartet werden sollampler für.
Gibt an, welche optionalen Informationen gemeldet werden sollen (kann nullptr sein).
Option: Leitet anwendungsbezogene Daten (ein benutzerdefiniertes 8-Bit-Array aus Werten/Geräte-IDs/Indizes oder ein Datum/eine Uhrzeit, einen Zeiger einer Variable/Funktion usw.) an s weiter.amplerNotify.
Bestätigt, dass eine Void-Funktion ausgeführt wurde.
Version: doc 1.4.2 / NanoLib 1.3.0
55
8 Klassen / Funktionen Referenz
stop () Stoppt alsamplesen.
virtuelles ResultVoid nlc::SamplerInterface::stop (const DeviceHandle Gerätehandle)
Parameter [in] deviceHandle Gibt ResultVoid zurück
Gibt an, welches Gerät den s stoppen sollampler für. Bestätigt, dass eine Void-Funktion ausgeführt wurde.
8.35 SamplerConfiguration-Struktur
Diese Struktur enthält die Daten sampKonfigurationsoptionen des lers (statisch oder nicht).
Öffentliche Attribute
std::Vektor verfolgte Adressen
Bis zu 12 OD-Adressen könnenampLED.
uint32_t
Version
Die Version einer Struktur.
uint32_t
DauerMillisekunden
Sampling-Dauer in ms, von 1 bis 65535
uint16_t
PeriodeMillisekunden
SampLaufzeit in ms.
uint16_t
AnzahlSamples
Sampgeringerer Betrag.
uint16_t
vorTriggerNumberOfSamples
Sampgeringerer Vortriggerbetrag.
bool
usingSoftwareImplementation
Verwenden Sie eine Softwareimplementierung.
bool
mitNewFWSamplerImplementation Verwenden Sie die FW-Implementierung für Geräte mit
FW-Version v24xx oder neuer.
SamplerMode
Modus
Normale, wiederholte oder kontinuierliche sampLeng.
SampTrigger-Bedingung Trigger-Bedingung
Triggerbedingungen starten: 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
Ein Auslöser zum Starten alsampler?
Statische öffentliche Attribute
statische constexpr size_t SAMPLER_CONFIGURATION_VERSION = 0x01000000 statische constexpr size_t MAX_TRACKED_ADDRESSES = 12
8.36 SamplerBenachrichtigung
Verwenden Sie diese Klasse, um s zu aktivierenampBenachrichtigungen, wenn Sie alsampler. Die Klasse hat die folgende öffentliche Memberfunktion.
Version: doc 1.4.2 / NanoLib 1.3.0
56
8 Klassen / Funktionen Referenz
benachrichtigen ()
Liefert einen Benachrichtigungseintrag.
virtuelle Leere nlc::SamplerNotify::notify (const ResultVoid & lastError, const SamplerState samplerState, const std::vector <SampleData> & sampleDatas, int64_t Anwendungsdaten)
Parameter [in] lastError [in] samplerState
[in] sampleDatas [in] applicationData
Meldet den letzten aufgetretenen Fehler währendampling. Berichtet die samplerstatus zum Zeitpunkt der Benachrichtigung: Nicht konfiguriert / Konfiguriert / Bereit / Wird ausgeführt / Abgeschlossen / Fehlgeschlagen / Abgebrochen. Meldet den sampLED-Daten-Array. Meldet anwendungsspezifische Daten.
8.37 SampleData-Struktur
Diese Struktur enthält die sampgeführte Daten.
uin64_t Iterationsnummer
Beginnt bei 0 und erhöht sich nur im Wiederholungsmodus.
std::Vektor<SampledValues> Enthält das Array von sampgeführte Werte.
8.38 SampledValue-Struktur
Diese Struktur enthält die sampgeführte Werte.
in64_t Wert uin64_t CollectTimeMsec
Enthält den Wert einer verfolgten OD-Adresse.
Enthält die Erfassungszeit in Millisekunden, relativ zur sampder Anfang.
8.39 SamplerTrigger-Struktur
Diese Struktur enthält die Triggereinstellungen des samplesen.
SamplerTriggerCondition-Bedingung
OdIndex uin32_t-Wert
Die Auslösebedingung: 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
Der OdIndex (Adresse) des Triggers.
Bedingungswert oder Bitnummer (beginnend bei Bit Null).
8.40 Serielle Struktur
Finden Sie hier Ihre seriellen Kommunikationsoptionen und die folgenden öffentlichen Attribute:
const std::string const SerialBaudRate
BAUD_RATE_OPTIONS_NAME = „serielle Baudrate“ baudRate =SerialBaudRate-Struktur
Version: doc 1.4.2 / NanoLib 1.3.0
57
8 Klassen / Funktionen Referenz
const std::string const SerialParity
PARITY_OPTIONS_NAME = „serielle Parität“ Parität = SerialParity-Struktur
8.41 SerialBaudRate-Struktur
Finden Sie hier Ihre serielle Kommunikations-Baudrate und die folgenden öffentlichen Attribute:
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-Struktur
Hier finden Sie Ihre seriellen Paritätsoptionen und die folgenden öffentlichen Attribute:
const std::string const std::string const std::string const std::string const std::string
NONE = „keine“ ODD = „ungerade“ EVEN = „gerade“ MARK = „Markierung“ SPACE = „Leerzeichen“
Version: doc 1.4.2 / NanoLib 1.3.0
58
9-Lizenzen
9-Lizenzen
NanoLib API-Schnittstellenheader und ExampDer Quellcode ist von der Nanotec Electronic GmbH & Co. KG unter der Creative Commons Attribution 3.0 Unported License (CC BY) lizenziert. Im Binärformat bereitgestellte Bibliotheksteile (Core- und Feldbuskommunikationsbibliotheken) sind unter der Creative Commons AttributionNoDerivatives 4.0 International License (CC BY ND) lizenziert.
Creative Commons
Die folgende, für Menschen lesbare Zusammenfassung ersetzt nicht die Lizenz(en) selbst. Sie finden die jeweilige Lizenz unter creativecommons.org und den unten stehenden Links. Sie können:
CC BY 3.0
Teilen: Siehe rechts. Anpassen: Remixen, transformieren und auf dem aufbauen,
Material für jegliche Zwecke, auch kommerziell.
CC BY-ND 4.0
Teilen: Kopieren und Weiterverteilen des Materials in jedem Medium oder Format.
Der Lizenzgeber kann die oben genannten Freiheiten nicht widerrufen, solange Sie die folgenden Lizenzbedingungen einhalten:
CC BY 3.0
CC BY-ND 4.0
Quellenangabe: Sie müssen den Urheber entsprechend benennen. Quellenangabe: Siehe links. Aber: Geben Sie einen Link zu diesem
Geben Sie einen Link zur Lizenz an und geben Sie an, ob
andere Lizenz.
Änderungen vorgenommen wurden. Sie können dies jederzeit tun
Keine Abwandlungen: Wenn Sie remixen, transformieren oder bauen
vernünftige Weise, aber nicht in einer Weise, die nahelegt,
auf dem Material dürfen Sie nicht verteilen die
bedeutet, dass der Lizenzgeber Sie oder Ihre Nutzung unterstützt.
modifiziertes Material.
Keine weiteren Einschränkungen: Sie dürfen keine rechtlichen Bedingungen oder technischen Maßnahmen anwenden, die rechtlich zulässig sind. Keine weiteren Einschränkungen: Siehe links.
andere daran hindern, etwas zu tun, was die Lizenz
Genehmigungen.
Hinweis: Sie müssen die Lizenz für Teile des Materials nicht einhalten, die gemeinfrei sind oder deren Nutzung durch eine geltende Ausnahme oder Einschränkung gestattet ist.
Hinweis: Es werden keine Garantien gegeben. Die Lizenz erteilt Ihnen möglicherweise nicht alle Berechtigungen, die für Ihren beabsichtigten Gebrauch erforderlich sind. Zum BeispielampDes Weiteren können andere Rechte, wie etwa Persönlichkeitsrechte, Datenschutzrechte oder Urheberpersönlichkeitsrechte, Ihre Nutzung des Materials einschränken.
Version: doc 1.4.2 / NanoLib 1.3.0
59
Impressum, Kontakt, Versionen
©2024 Nanotec Electronic GmbH & Co.KGKapellenstr.685622 FeldkirchenDeutschlandTel.+49(0) 89 900 686-0Fax+49(0)89 900 686-50 info@nanotec.dewww.nanotec.com Alle Rechte vorbehalten. Irrtum, Auslassungen, technische oder inhaltliche Änderungen ohne Vorankündigung möglich. Zitierte Marken/Produkte sind Warenzeichen ihrer Eigentümer und als solche zu behandeln. Originalversion.
Dokument 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
+ Hinzugefügt > Geändert # Behoben > Überarbeitung des bereitgestellten Beispielsamples.
+ NanoLib Modbus: Gerätesperrmechanismus für Modbus VCP hinzugefügt. # NanoLib Core: Überprüfung des Verbindungsstatus behoben. # NanoLib Code: Entfernung der Bus-Hardwarereferenz korrigiert.
+ NanoLib-CANopen: Unterstützung für Peak PCAN-USB-Adapter (IPEH-002021/002022).
> NanoLib Core: Geänderte Schnittstelle für Logging-Callbacks (LogLevel durch LogModule ersetzt). # NanoLib Logger: Trennung zwischen Core und Modulen wurde korrigiert. # Modbus TCP: Firmware-Update für FW4 behoben. # EtherCAT: NanoJ-Programmupload für Core5 behoben. # EtherCAT: Firmware-Update für Core5 behoben.
# Modbus RTU: Zeitprobleme mit niedrigen Baudraten während der Firmware-Aktualisierung behoben. # RESTful: NanoJ-Programmupload behoben.
# NanoLib-Module Sampler: Richtiges Lesen von sampgeführte Boolesche Werte.
+ Java 11-Unterstützung für alle Plattformen. + Python 3.11/3.12-Unterstützung für alle Plattformen. + Neue Schnittstelle für Logging-Callbacks (siehe z. B.amples). + Callback-Sinks für NanoLib Logger. > Logger auf Version 1.12.0 aktualisieren. > NanoLib-Module Sampler: Unterstützung jetzt für Nanotec Controller Firmware v24xx. > NanoLib Module Sampler: Änderung der Struktur für sampler-Konfiguration. > NanoLib-Module Sampler: Der kontinuierliche Modus ist gleichbedeutend mit endlos; die Auslösebedingung wird einmal überprüft; die Anzahl der Sekundenamples muss 0 sein. > NanoLib Module Sampler: Normale Priorität für den Thread, der im Firmware-Modus Daten sammelt. > NanoLib-Module Sampler: Neu geschriebener Algorithmus zum Erkennen des Übergangs zwischen den Zuständen Bereit und Wird ausgeführt. # NanoLib Core: Keine Zugriffsverletzung (0xC0000005) mehr beim Schließen von 2 oder mehr Geräten, die dieselbe Bushardware verwenden. # NanoLib Core: Keine Segmentierungsfehler mehr beim Anschließen eines PEAK-Adapters unter Linux. # NanoLib-Module Sampler: Korrekte sampLED-Werte lesen im Firmware-Modus. # NanoLib Module Sampler: Korrekte Konfiguration von 502X:04. # NanoLib Modules Sampler: Richtiges Mischen von Puffern mit Kanälen. # NanoLib-Canopen: Erhöhte CAN-Timeouts für Robustheit und korrektes Scannen bei niedrigeren Baudraten. # NanoLib-Modbus: VCP-Erkennungsalgorithmus für spezielle Geräte (USB-DA-IO).
+ EtherCAT-Unterstützung.
+ Hinweis zu den VS-Projekteinstellungen unter „Konfigurieren Sie Ihr Projekt“.
+ getDeviceHardwareGroup (). + getProfinetDCP (isServiceAvailable). + getProfinetDCP (validateProfinetDeviceIp). + autoAssignObjectDictionary (). + getXmlFileName (). + const std::string & xmlFilePfad in addObjectDictionary(). + getSamplerInterface ().
Produkt 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)
Version: doc 1.4.2 / NanoLib 1.3.0
60
10 Impressum, Kontakt, Versionen
Dokumentieren
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
+ Hinzugefügt > Geändert # Behoben + rebootDevice (). + Fehlercode ResourceUnavailable für getDeviceBootloaderVersion (), ~VendorId (), ~HardwareVersion (), ~SerialNumber und ~Uid. > firmwareUploadFromFile jetzt hochladenFirmwareFromFile ().> FirmwareUpload () Jetzt Firmware hochladen ().> BootloaderUploadFromFile () jetzt hochladenBootloaderFromFile ().> bootloaderUpload () jetzt Bootloader hochladen ().> bootloaderFirmwareUploadFromFile () zum Hochladen von BootloaderFirmwareFromFile (). > bootloaderFirmwareUpload () jetzt ladeBootloaderFirmware hoch (). > nanojUploadFromFile () jetzt hochladenNanoJFromFile (). > nanojUpload () jetzt uploadNanoJ (). > objectDictionaryLibrary () jetzt getObjectDictionaryLibrary (). > String_String_Map jetzt StringStringMap. > NanoLib-Common: schnellere Ausführung von listAvailableBusHardware und openBusHardwareWithProtocol mit Ixxat-Adapter. > NanoLib-CANopen: Standardeinstellungen werden verwendet (1000k Baudrate, Ixxat-Busnummer 0), wenn die Bushardwareoptionen leer sind. > NanoLib-RESTful: Administratorberechtigung für die Kommunikation mit Ethernet-Bootloadern unter Windows veraltet, wenn der npcap-/winpcap-Treiber verfügbar ist. # NanoLib-CANopen: Bushardware wird jetzt mit leeren Optionen absturzfrei geöffnet. # NanoLib-Common: openBusHardwareWithProtocol () jetzt ohne Speicherverlust.
+ Linux ARM64-Unterstützung. + USB-Massenspeicher / REST / Profinet DCP-Unterstützung. + checkConnectionState (). + getDeviceBootloaderVersion (). + ResultProfinetDevices. + NlcErrorCode (ersetzt NanotecExceptions). + NanoLib Modbus: VCP / USB-Hub auf USB vereinheitlicht. > Modbus TCP-Scan gibt Ergebnisse zurück. < Modbus TCP-Kommunikationslatenz bleibt konstant.
+ Mehr ObjectEntryDataType (komplexe und professionellefile-spezifisch). + IOError-Rückgabe, wenn connectDevice() und scanDevices() keine finden. + Nur 100 ms nominelles Timeout für CanOpen/Modbus.
+ Modbus-Unterstützung (plus USB-Hub über VCP). + Kapitel Erstellen Ihres eigenen Linux-Projekts. + extraHardwareSpecifier zu BusHardwareId (). + extraId_ und extraStringId_ zu DeviceId ().
+ setBusState (). + getDeviceBootloaderBuildId (). + getDeviceFirmwareBuildId (). + getDeviceHardwareVersion (). # Fehlerbehebungen.
Ausgabe.
Produkt
0.8.0 0.7.1 0.7.0 0.5.1 0.5.1
Version: doc 1.4.2 / NanoLib 1.3.0
61
Dokumente / Ressourcen
![]() |
Nanotic NanoLib C++-Programmierung [pdf] Benutzerhandbuch NanoLib C-Programmierung, C-Programmierung, Programmierung |

