البرمجة النانوية NanoLib C++
معلومات المنتج
تحديد
- اسم المنتج: NanoLib
- برمجة اللغة: C++
- إصدار المنتج: 1.3.0
- إصدار دليل المستخدم: 1.4.2
تم تصميم مكتبة NanoLib لبرمجة برامج التحكم لوحدات التحكم Nanotec. وهي توفر واجهة مستخدم ووظائف أساسية ومكتبات اتصال لتسهيل تطوير تطبيقات التحكم.
تعليمات استخدام المنتج
- قبل أن تبدأ:
- تأكد من أن نظامك يلبي متطلبات الأجهزة المحددة في الدليل. الجمهور المستهدف لهذا المنتج يشمل المطورين الذين يتطلعون إلى إنشاء برامج تحكم لوحدات التحكم Nanotec.
- ابدء:
- للبدء في استخدام NanoLib، اتبع الخطوات التالية:
- ابدأ باستيراد NanoLib إلى مشروعك.
- قم بتكوين إعدادات مشروعك حسب الحاجة.
- قم ببناء مشروعك لدمج وظائف NanoLib.
- إنشاء المشاريع:
- يمكنك إنشاء مشاريع لكل من بيئات Windows وLinux. اتبع الإرشادات المحددة الواردة في الدليل لكل منصة.
- مرجع الفئات/الوظائف:
- راجع دليل المستخدم للحصول على دليل مفصل حول الفئات والوظائف المتوفرة في NanoLib لبرمجة برامج التحكم.
الأسئلة الشائعة
- س: ما هو الغرض من NanoLib؟
- A: NanoLib هي مكتبة لبرمجة برامج التحكم لوحدات تحكم Nanotec، وتوفر الوظائف الأساسية وقدرات الاتصال.
- س: كيف يمكنني البدء باستخدام NanoLib؟
- A: ابدأ باستيراد NanoLib إلى مشروعك، وتكوين إعدادات المشروع، وبناء مشروعك للاستفادة من ميزات NanoLib.
"
دليل المستخدم NanoLib
سي++
صالح مع إصدار المنتج 1.3.0
إصدار دليل المستخدم: 1.4.2
وثيقة الهدف والاتفاقيات
يصف هذا المستند إعداد واستخدام مكتبة NanoLib ويحتوي على مرجع لجميع الفئات والوظائف لبرمجة برنامج التحكم الخاص بك لوحدات تحكم Nanotec. نستخدم الخطوط التالية:
يشير النص المسطر إلى مرجع ترافقي أو ارتباط تشعبي.
Exampلو 1: للحصول على الإرشادات الدقيقة حول NanoLibAccessor، راجع الإعداد. السابقampلو 2: قم بتثبيت برنامج تشغيل Ixxat وقم بتوصيل محول CAN-to-USB. النص المائل يعني: هذا كائن مسمى، مسار/عنصر قائمة، علامة تبويب/ file اسم أو (إذا لزم الأمر) تعبير لغة أجنبية.
Exampلو 1: اختر File > جديد > مستند فارغ. افتح علامة التبويب "الأداة" وحدد "تعليق". السابقample 2: يقسم هذا المستند المستخدمين (= Nutzer; usuario; utente; utilisateur; utente وما إلى ذلك) من:
– مستخدم طرف ثالث (= Drittnutzer; tercero usuario; terceiro utente; tiers utilisateur; terzo utente وما إلى ذلك). - المستخدم النهائي (= Endnutzer؛ usuario Final؛ utente Final؛ utilisateur Final؛ utente Finale وما إلى ذلك).
يقوم الساعي بوضع علامات على كتل التعليمات البرمجية أو أوامر البرمجة. السابقample 1: عبر Bash، اتصل بـ sudo make install لنسخ الكائنات المشتركة؛ ثم اتصل بـ ldconfig. السابقampلو 2: استخدم وظيفة NanoLibAccessor التالية لتغيير مستوى التسجيل في NanoLib:
// ***** متغير C++ *****
void setLoggingLevel(مستوى LogLevel);
يؤكد النص الغامق على الكلمات الفردية ذات الأهمية الحاسمة. وبدلاً من ذلك، تؤكد علامات التعجب بين قوسين على الأهمية الحاسمة (!).
Exampلو 1: احمِ نفسك والآخرين ومعداتك. اتبع ملاحظات السلامة العامة الخاصة بنا والتي تنطبق عمومًا على جميع منتجات Nanotec.
Example 2: من أجل حمايتك، اتبع أيضًا ملاحظات السلامة المحددة التي تنطبق على هذا المنتج المحدد. الفعل "النقر المشترك" يعني النقر عبر مفتاح الماوس الثانوي لفتح قائمة السياق وما إلى ذلك.
Exampلو 1: انقر على file، وحدد إعادة تسمية، وأعد تسمية file. السابقampلو 2: للتحقق من الخصائص، انقر فوق الزر file وحدد خصائص.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
4
قبل أن تبدأ
قبل البدء في استخدام NanoLib، قم بإعداد جهاز الكمبيوتر الخاص بك وأطلع نفسك على الاستخدام المقصود وقيود المكتبة.
2.1 متطلبات النظام والأجهزة
ملاحظة: عطل ناتج عن تشغيل 32 بت أو توقف النظام! استخدم نظام 64 بت وحافظ عليه باستمرار. اتبع تعليمات وإرشادات الشركة المصنعة للمعدات الأصلية.
يدعم NanoLib 1.3.0 جميع منتجات Nanotec التي تحتوي على CANopen وModbus RTU (كما يدعم USB على منفذ COM افتراضي) وModbus TCP وEtherCat وProfinet. بالنسبة لمكتبات NanoLibs القديمة: راجع سجل التغييرات في النسخة المطبوعة. على مسؤوليتك الخاصة فقط: الاستخدام على نظام قديم. ملاحظة: اتبع تعليمات OEM الصالحة لضبط زمن الوصول إلى أدنى حد ممكن إذا واجهت مشاكل عند استخدام محول USB قائم على FTDI.
المتطلبات (نظام 64 بت إلزامي)
Windows 10 أو 11 مع Visual Studio 2019 الإصدار 16.8 أو أحدث وWindows SDK 10.0.20348.0 (الإصدار 2104) أو أحدث
ملفات C++ القابلة لإعادة التوزيع 2017 أو أعلى CANopen: برنامج تشغيل أساسي Ixxat VCI أو PCAN (اختياري) وحدة EtherCat / Profinet DCP: وحدة RESTful Npcap أو WinPcap: إذن Npcap أو WinPcap أو المسؤول
التواصل مع أجهزة تحميل التمهيد Ethernet
Linux مع Ubuntu 20.04 LTS إلى 24 (جميع x64 وarm64)
رؤوس النواة وحزمة libpopt-dev Profinet DCP: CAP_NET_ADMIN وCAP_NET_RAW
روابط CANopen: برنامج تشغيل Ixxat ECI أو محول Peak PCAN-USB EtherCat: CAP_NET_ADMIN وCAP_NET_RAW و
قدرات CAP_SYS_NICE RESTful: قدرة CAP_NET_ADMIN على التواصل مع Eth-
محملات التمهيد ernet (الموصى بها أيضًا: CAP_NET_RAW)
اللغة، ومحولات الحافلة الميدانية، والكابلات
C++ GCC 7 أو أعلى (لينكس)
EtherCAT: كابل إيثرنت VCP / موزع USB: USB موحد الآن تخزين USB الشامل: كابل USB REST: كابل إيثرنت CANopen: Ixxat USB-to-CAN V2؛ Na-
notec ZK-USB-CAN-1، محول Peak PCANUSB لا يدعم Ixxat لنظام التشغيل Ubuntu على arm64
Modbus RTU: Nanotec ZK-USB-RS485-1 أو محول مكافئ؛ كابل USB على منفذ الاتصال الافتراضي (VCP)
Modbus TCP: كابل Ethernet وفقًا لورقة بيانات المنتج
2.2 الاستخدام المقصود والجمهور
NanoLib عبارة عن مكتبة برامج ومكون برمجي لتشغيل وحدات تحكم Nanotec والتواصل معها في نطاق واسع من التطبيقات الصناعية وللمبرمجين ذوي المهارات الواجبة فقط.
نظرًا لعدم قدرة الأجهزة (الكمبيوتر الشخصي) ونظام التشغيل على العمل في الوقت الفعلي، فإن NanoLib غير مخصص للاستخدام في التطبيقات التي تحتاج إلى حركة متزامنة متعددة المحاور أو التي تكون حساسة للوقت بشكل عام.
لا يجوز لك بأي حال من الأحوال دمج NanoLib كمكون أمان في منتج أو نظام. عند التسليم للمستخدمين النهائيين، يجب عليك إضافة إشعارات تحذيرية وتعليمات للاستخدام الآمن والتشغيل الآمن لكل منتج يحتوي على مكون من إنتاج Nanotec. يجب عليك تمرير جميع إشعارات التحذير الصادرة عن Nanotec مباشرة إلى المستخدم النهائي.
2.3 نطاق التسليم والضمان
يأتي NanoLib كمجلد *.zip من التنزيل الخاص بنا webموقع إما لأوروبا والشرق الأوسط وأفريقيا وآسيا والمحيط الهادئ أو أمريكا. قم بتخزين التنزيل وفك ضغطه حسب الأصول قبل الإعداد. تحتوي حزمة NanoLib على:
الإصدار: doc 1.4.2 / NanoLib 1.3.0
5
2 قبل أن تبدأ
عناوين الواجهة ككود مصدر (API)
الوظائف الأساسية كمكتبات بتنسيق ثنائي: nano-
المكتبات التي تسهل التواصل: nanolibm_ lib.dll
[yourfieldbus].dll وما إلى ذلك.Exampالمشروع: السابقample.sln (فيجوال ستوديو
المشروع) و السابقample.cpp (الرئيسي file)
بالنسبة لنطاق الضمان، يرجى مراعاة أ) شروطنا وأحكامنا الخاصة بمنطقة أوروبا والشرق الأوسط وأفريقيا/آسيا والمحيط الهادئ أو أمريكا و ب) جميع شروط الترخيص. ملاحظة: لا تتحمل شركة Nanotec المسؤولية عن الجودة المعيبة أو غير اللائقة أو المناولة أو التركيب أو التشغيل أو الاستخدام أو الصيانة غير اللائقة لمعدات الطرف الثالث! من أجل السلامة الواجبة، اتبع دائمًا تعليمات الشركة المصنعة الأصلية الصالحة.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
6
بنية NanoLib
يتيح لك هيكل برنامج NanoLib المعياري ترتيب وظائف وحدة التحكم في المحرك / ناقل المجال القابلة للتخصيص بحرية حول نواة تم إنشاؤها مسبقًا بشكل صارم. يحتوي NanoLib على الوحدات التالية:
واجهة المستخدم (API)
نانو ليب الأساسية
واجهة والفئات المساعدة التي المكتبات التي
مكتبات الاتصالات: المكتبات الخاصة بـ Fieldbus
يمكنك الوصول إلى وحدة التحكم الخاصة بك وتنفيذ وظيفة واجهة برمجة التطبيقات (API) بين NanoLib
التطوير التنظيمي (قاموس الكائنات)
التفاعل مع مكتبات الحافلات.
الأجهزة الأساسية والحافلة.
قاعدة على وظيفة NanoLib الأساسية
القوميات.
3.1 واجهة المستخدم
تتكون واجهة المستخدم من واجهة الرأس fileيمكنك استخدامها للوصول إلى معلمات وحدة التحكم. تتيح لك فئات واجهة المستخدم كما هو موضح في مرجع الفئات/الوظائف ما يلي:
قم بالاتصال بكل من الأجهزة (محول ناقل الحقل) وجهاز التحكم. قم بالوصول إلى OD الخاص بالجهاز لقراءة/كتابة معلمات وحدة التحكم.
3.2 نانو ليب الأساسية
يأتي جوهر NanoLib مع مكتبة الاستيراد nanolib.lib. وهي تنفذ وظيفة واجهة المستخدم وهي مسؤولة عن:
تحميل وإدارة مكتبات الاتصالات. توفير وظائف واجهة المستخدم في NanoLibAccessor. توفر نقطة دخول الاتصالات هذه
يفرض مجموعة من العمليات التي يمكنك تنفيذها على مكتبات NanoLib الأساسية ومكتبات الاتصالات.
3.3 مكتبات الاتصالات
بالإضافة إلى nanotec.services.nanolib.dll (المفيد لاستوديو Plug & Drive الاختياري)، يقدم NanoLib مكتبات الاتصالات التالية:
nanolibm_canopen.dll nanolibm_modbus.dll
nanolibm_ethercat.dll nanolibm_restful-api.dll
ملف nanolibm_usbmmsc.dll
تضع جميع المكتبات طبقة تجريد الأجهزة بين النواة ووحدة التحكم. يقوم النواة بتحميلها عند بدء التشغيل من مجلد المشروع المعين ويستخدمها لإنشاء اتصال مع وحدة التحكم من خلال البروتوكول المقابل.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
7
ابدء
اقرأ كيفية إعداد NanoLib لنظام التشغيل الخاص بك على النحو الواجب وكيفية توصيل الأجهزة حسب الحاجة.
4.1 تحضير النظام الخاص بك
قبل تثبيت برامج تشغيل المحول، قم بإعداد جهاز الكمبيوتر الخاص بك مع نظام التشغيل أولاً. لإعداد جهاز الكمبيوتر الخاص بك مع نظام التشغيل Windows، قم بتثبيت MS Visual Studio مع ملحقات C++. لتثبيت make وgcc بواسطة Linux Bash، اتصل بـ sudo apt install build-essentials. ثم قم بتمكين قدرات CAP_NET_ADMIN وCAP_NET_RAW وCAP_SYS_NICE للتطبيق الذي يستخدم NanoLib: 1. اتصل بـ sudo setcap 'cap_net_admin,cap_net_raw,cap_sys_nice+eip'
الاسم>. 2. عندها فقط، قم بتثبيت برامج تشغيل المحول.
4.2 قم بتثبيت برنامج تشغيل محول Ixxat لنظام Windows
لا يجوز لك استخدام محول USB-to-CAN V2 من Ixxat إلا بعد تثبيت برنامج التشغيل المناسب. اقرأ دليل منتج محركات أقراص USB، لمعرفة ما إذا كان بإمكانك تنشيط التوافق الظاهري (VCP) وكيفية القيام بذلك. 1. قم بتنزيل برنامج تشغيل VCI 4 من Ixxat وتثبيته لنظام التشغيل Windows من www.ixxat.com2. قم بتوصيل محول USB-to-CAN V2 المدمج من Ixxat بالكمبيوتر الشخصي عبر USB. 3. من خلال "إدارة الأجهزة": تحقق مما إذا كان كل من برنامج التشغيل والمحول مثبتين/معترف بهما بشكل صحيح.
4.3 قم بتثبيت برنامج تشغيل محول Peak لنظام Windows
لا يجوز لك استخدام محول Peak's PCAN-USB إلا بعد تثبيت برنامج التشغيل المناسب. اقرأ دليل منتج محركات أقراص USB، لمعرفة ما إذا كان يجب تنشيط التوافق الظاهري (VCP) وكيفية القيام بذلك. 1. قم بتنزيل وتثبيت برنامج تشغيل جهاز Windows (= حزمة التثبيت مع برامج تشغيل الجهاز والأدوات والبرامج)
(APIs) من http://www.peak-system.com2. قم بتوصيل محول PCAN-USB الخاص بـ Peak بالكمبيوتر الشخصي عبر USB. 3. من خلال "إدارة الأجهزة": تحقق مما إذا كان كل من برنامج التشغيل والمحول مثبتين/معترف بهما بشكل صحيح.
4.4 قم بتثبيت برنامج تشغيل محول Ixxat لنظام Linux
لا يجوز لك استخدام محول USB-to-CAN V2 من Ixxat إلا بعد تثبيت برنامج التشغيل المناسب. ملاحظة: تحتاج المحولات الأخرى المدعومة إلى أذوناتك من خلال sudo chmod +777/dev/ttyACM* (* رقم الجهاز). اقرأ دليل منتج محركات أقراص USB، لمعرفة ما إذا كان يجب تنشيط التوافق الظاهري (VCP) وكيفية القيام بذلك. 1. قم بتثبيت البرنامج المطلوب لبرنامج تشغيل ECI وتطبيق العرض التوضيحي:
sudo apt-get update apt-get install libusb-1.0-0-dev libusb-0.1-4 libc6 libstdc++6 libgcc1 buildessential
2. قم بتنزيل برنامج تشغيل ECI-for-Linux من www.ixxat.com. قم بفك ضغطه عبر:
فك ضغط eci_driver_linux_amd64.zip
3. قم بتثبيت برنامج التشغيل عبر:
cd /EciLinux_amd/src/KernelModule sudo make install-usb
4. تحقق من نجاح تثبيت برنامج التشغيل عن طريق تجميع تطبيق العرض التوضيحي وبدء تشغيله:
cd /EciLinux_amd/src/EciDemos/ sudo make cd /EciLinux_amd/bin/release/ ./LinuxEciDemo
الإصدار: doc 1.4.2 / NanoLib 1.3.0
8
4 البدء
4.5 تثبيت برنامج تشغيل محول Peak لنظام Linux
لا يجوز لك استخدام محول Peak's PCAN-USB إلا بعد تثبيت برنامج التشغيل المناسب. ملاحظة: تحتاج المحولات الأخرى المدعومة إلى أذوناتك من خلال sudo chmod +777/dev/ttyACM* (* رقم الجهاز). اقرأ دليل منتج محركات أقراص USB، لمعرفة ما إذا كان يجب تنشيط التوافق الظاهري (VCP) وكيفية القيام بذلك. 1. تحقق مما إذا كان نظام Linux لديك يحتوي على رؤوس نواة: ls /usr/src/linux-headers-`uname -r`. إذا لم يكن كذلك، فقم بتثبيت
2. الآن فقط، قم بتثبيت حزمة libpopt-dev: sudo apt-get install libpopt-dev 3. قم بتنزيل حزمة برنامج التشغيل المطلوبة (peak-linux-driver-xxx.tar.gz) من www.peak-system.com. 4. لفك ضغطها، استخدم: tar xzf peak-linux-driver-xxx.tar.gz 5. في المجلد الذي تم فك ضغطه: قم بتجميع برامج التشغيل ومكتبة PCAN الأساسية وما إلى ذلك وتثبيتها: قم بعمل كل شيء في نفس المجلد.
6. للتحقق من الوظيفة، قم بتوصيل محول PCAN-USB.
أ) التحقق من وحدة النواة:
lsmod | grep pcan ب) … والمكتبة المشتركة:
ls -l /usr/lib/libpcan*
ملاحظة: إذا حدثت مشكلات في USB3، فاستخدم منفذ USB2.
4.6 قم بتوصيل أجهزتك
لتتمكن من تشغيل مشروع NanoLib، قم بتوصيل وحدة تحكم Nanotec متوافقة بالكمبيوتر باستخدام المحول الخاص بك. 1. باستخدام كابل مناسب، قم بتوصيل المحول بوحدة التحكم. 2. قم بتوصيل المحول بالكمبيوتر وفقًا لورقة بيانات المحول. 3. قم بتشغيل وحدة التحكم باستخدام مصدر طاقة مناسب. 4. إذا لزم الأمر، قم بتغيير إعدادات الاتصال الخاصة بوحدة التحكم Nanotec وفقًا للإرشادات الواردة في دليل المنتج الخاص بها.
4.7 تحميل NanoLib
كبداية أولى بالأساسيات السريعة والسهلة، يمكنك (لكن لا يجب عليك) استخدام شريكنا السابقampالمشروع لو. 1. حسب منطقتك: قم بتنزيل NanoLib من موقعنا webموقع إما لأوروبا والشرق الأوسط وأفريقيا وآسيا والمحيط الهادئ أو أمريكا. 2. قم بفك ضغط الحزمة files / المجلدات وحدد خيارًا واحدًا: للحصول على الأساسيات السريعة والسهلة: راجع بدء الملف السابقampالمشروع. للتخصيص المتقدم في Windows: راجع إنشاء مشروع Windows الخاص بك. للتخصيص المتقدم في Linux: راجع إنشاء مشروع Linux الخاص بك.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
9
بدء السابقينampلو المشروع
مع تحميل NanoLib حسب الأصول، السابقampيوضح لك المشروع كيفية استخدام NanoLib مع وحدة تحكم Nanotec. ملاحظة: لكل خطوة، التعليقات في المثال المقدمampيشرح الكود الوظائف المستخدمة. السابقampيتكون المشروع من: `*_functions_exampليه.*' files، والتي تحتوي على التنفيذات لوظائف واجهة NanoLib `*_callback_exampليه.*' files، والتي تحتوي على تنفيذات لعمليات الاسترجاع المختلفة (المسح والبيانات و
(التسجيل) `menu_*.*' file، والذي يحتوي على منطق القائمة والرمز الخاص بـ Exampجنيه * file، وهو البرنامج الرئيسي الذي يقوم بإنشاء القائمة وتهيئة جميع المعلمات المستخدمةampلير_اكسampجنيه * file، والذي يحتوي على السابقampتنفيذ لـ sampيمكنك العثور على المزيد من الأمثلة.ampتتوفر مجموعة من الأوامر الحركية لأنماط تشغيل مختلفة في قاعدة المعرفة على موقع nanotec.com. ويمكن استخدام جميع هذه الأوامر في أنظمة Windows أو Linux.
في نظام التشغيل Windows مع Visual Studio 1. افتح ملف Example.sln file2. افتح الملف السابقample.cpp. 3. قم بتجميع وتشغيل exampالرمز.
في Linux عبر Bash 1. فك ضغط المصدر fileانتقل إلى المجلد الذي يحتوي على المحتوى غير المضغوط. الملف الرئيسي file للسابقينampليه هو
examp2. في bash، اتصل بـ:
أ. "sudo make install" لنسخ الكائنات المشتركة واستدعاء ldconfig. ب. "make all" لبناء ملف قابل للتنفيذ للاختبار. 3. يحتوي مجلد bin على ملف قابل للتنفيذ مثلample file. بواسطة bash: انتقل إلى مجلد الإخراج واكتب ./exampإذا لم يحدث أي خطأ، فسيتم الآن تثبيت الكائنات المشتركة بشكل صحيح، وستكون مكتبتك جاهزة للاستخدام. إذا كان الخطأ يقرأ ./example: خطأ أثناء تحميل المكتبات المشتركة: libnanolib.so: لا يمكن فتح الكائن المشترك file:لا يوجد مثل هذا file أو الدليل، فشل تثبيت الكائنات المشتركة. في هذه الحالة، اتبع الخطوات التالية. 4. أنشئ مجلدًا جديدًا داخل /usr/local/lib (مطلوب حقوق المسؤول). في bash، اكتب:
sudo mkdir /usr/local/lib/nanotec
5. انسخ جميع الكائنات المشتركة من الملف المضغوط fileمجلد lib الخاص بـ:
تثبيت ./lib/*.so /usr/local/lib/nanotec/
6. تحقق من محتوى المجلد المستهدف باستخدام:
ls -al /usr/local/lib/nanotec/
ينبغي أن يسرد الكائن المشترك files من مجلد lib. 7. قم بتشغيل ldconfig على هذا المجلد:
sudo ldconfig /usr/local/lib/nanotec/
السابقampيتم تنفيذ le كتطبيق CLI ويوفر واجهة قائمة. تعتمد إدخالات القائمة على السياق وسيتم تمكينها أو تعطيلها، حسب حالة السياق. إنها توفر لك إمكانية تحديد وتنفيذ وظائف مكتبة مختلفة باتباع سير العمل النموذجي للتعامل مع وحدة تحكم: 1. تحقق من جهاز الكمبيوتر بحثًا عن الأجهزة المتصلة (المحولات) وقم بإدراجها. 2. إنشاء اتصال بمحول. 3. مسح الناقل بحثًا عن أجهزة وحدة تحكم متصلة. 4. الاتصال بجهاز.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
10
5 بدء السابقينampلو المشروع
5. اختبار واحدة أو أكثر من وظائف المكتبة: القراءة/الكتابة من/إلى قاموس كائنات وحدة التحكم، وتحديث البرامج الثابتة، وتحميل وتشغيل برنامج NanoJ، وتشغيل المحرك وضبطه، وتكوين واستخدام التسجيل/التسجيلات.ampلير.
6. أغلق الاتصال، أولاً بالجهاز، ثم بالمحول.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
11
إنشاء مشروع Windows الخاص بك
قم بإنشاء وتجميع وتشغيل مشروع Windows الخاص بك لاستخدام NanoLib.
6.1 استيراد NanoLib
استيراد رأس NanoLib fileالبرامج والمكتبات عبر MS Visual Studio.
1. افتح Visual Studio. 2. عبر إنشاء مشروع جديد > تطبيق وحدة التحكم C++ > التالي: حدد نوع المشروع. 3. قم بتسمية مشروعك (هنا: NanolibTest) لإنشاء مجلد مشروع في مستكشف الحلول. 4. حدد إنهاء. 5. افتح النوافذ file افتح مستكشف الملفات وانتقل إلى مجلد المشروع الجديد الذي تم إنشاؤه. 6. أنشئ مجلدين جديدين، inc وlib. 7. افتح مجلد حزمة NanoLib. 8. من هناك: انسخ العنوان fileقم بنقل s من مجلد التضمين إلى مجلد المشروع الخاص بك inc وجميع ملفات .lib و.dll
files إلى مجلد المشروع الجديد الخاص بك lib. 9. تحقق من مجلد المشروع الخاص بك لمعرفة الهيكل المناسب، على سبيل المثالampعلى:
مجلد ect للهيكل المستحق:
. NanolibTest inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result_od_entry.hpp lib nanolibm_canopen.dll nanolib.dll … nanolib.lib NanolibTest.cpp NanolibTest.vcxproj NanolibTest.vcxproj.filters NanolibTest.vcxproj.user NanolibTest.sln
6.2 قم بتكوين مشروعك
استخدم مستكشف الحلول في MS Visual Studio لإعداد مشاريع NanoLib. ملاحظة: لتشغيل NanoLib بشكل صحيح، حدد تكوين الإصدار (وليس التصحيح!) في إعدادات مشروع Visual C++؛ ثم قم ببناء المشروع وربطه ببيئات تشغيل VC لتوزيعات C++ القابلة لإعادة التوزيع [2022].
1. في مستكشف الحلول: انتقل إلى مجلد المشروع الخاص بك (هنا: NanolibTest). 2. انقر نقرًا مزدوجًا فوق المجلد لفتح قائمة السياق. 3. حدد خصائص. 4. قم بتنشيط جميع التكوينات وجميع المنصات. 5. حدد C/C++ وانتقل إلى أدلة التضمين الإضافية. 6. أدخل: $(ProjectDir)Nanolib/includes;%(AdditionalIncludeDirectories) 7. حدد Linker وانتقل إلى أدلة المكتبة الإضافية. 8. أدخل: $(ProjectDir)Nanolib;%(AdditionalLibraryDirectories) 9. قم بتوسيع Linker وحدد إدخال. 10. انتقل إلى التبعيات الإضافية وأدخل: nanolib.lib;%(AdditionalDependencies) 11. أكد عبر موافق.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
12
6 إنشاء مشروع Windows الخاص بك
12.انتقل إلى التكوين > C++ > اللغة > معيار اللغة > معيار ISO C++17 وقم بتعيين معيار اللغة إلى C++17 (/std:c++17).
6.3 قم ببناء مشروعك
قم ببناء مشروع NanoLib الخاص بك في MS Visual Studio. 1. افتح ملف *.cpp الرئيسي file (هنا: nanolib_example.cpp) وحرر الكود، إذا لزم الأمر. 2. حدد Build > Configuration Manager. 3. غيّر منصات الحلول النشطة إلى x64. 4. أكِّد عبر Close. 5. حدد Build > Build solution. 6. لا يوجد خطأ؟ تحقق مما إذا كان ناتج التجميع الخاص بك يبلغ عن:
1>—— تم بدء التنظيف: المشروع: NanolibTest، التكوين: تصحيح أخطاء x64 —–========== التنظيف: 1 نجح، 0 فشل، 0 تم تخطيه ==========
الإصدار: doc 1.4.2 / NanoLib 1.3.0
13
7 إنشاء مشروع لينكس الخاص بك
7 إنشاء مشروع لينكس الخاص بك
قم بإنشاء وتجميع وتشغيل مشروع Linux الخاص بك لاستخدام NanoLib. 1. في مجموعة تثبيت NanoLib غير المضغوطة: افتح /nanotec_nanolib. 2. ابحث عن جميع الكائنات المشتركة في tar.gz file3. حدد خيارًا واحدًا: قم بتثبيت كل مكتبة إما باستخدام Makefile أو باليد.
7.1 قم بتثبيت الكائنات المشتركة باستخدام Makefile
استخدم Makefile مع Linux Bash لتثبيت جميع ملفات *.so الافتراضية تلقائيًا fileس. 1. عبر Bash: انتقل إلى المجلد الذي يحتوي على ملف makefile2. انسخ الكائنات المشتركة عبر:
sudo make install 3. تأكيد عبر:
ldconfig
7.2 قم بتثبيت الكائنات المشتركة يدويًا
استخدم Bash لتثبيت كافة ملفات *.so fileقم بإنشاء مجلد جديد داخل /usr/local/lib. 1. عبر Bash: قم بإنشاء مجلد جديد داخل /usr/local/lib. 2. حقوق المسؤول مطلوبة! النوع:
sudo mkdir /usr/local/lib/nanotec 3. انتقل إلى مجلد حزمة التثبيت غير المضغوط. 4. انسخ جميع الكائنات المشتركة من مجلد lib عبر:
5. تحقق من محتوى المجلد المستهدف عبر:
ls -al /usr/local/lib/nanotec/ 6. تحقق مما إذا كانت جميع الكائنات المشتركة من مجلد lib مدرجة. 7. قم بتشغيل ldconfig على هذا المجلد عبر:
sudo ldconfig /usr/local/lib/nanotec/
7.3 قم بإنشاء مشروعك
بعد تثبيت الكائنات المشتركة الخاصة بك: قم بإنشاء مشروع جديد لمكتبة NanoLib الخاصة بك على نظام Linux. 1. عبر Bash: قم بإنشاء مجلد مشروع جديد (هنا: NanoLibTest) عبر:
mkdir NanoLibTest cd NanoLibTest
2. انسخ العنوان fileانتقل إلى مجلد التضمين (هنا: inc) عبر: mkdir inc cp / FILE IS>/nanotec_nanolib/inc/*.hpp inc
3. إنشاء ملف رئيسي file (NanoLibTest.cpp) عبر: #include “accessor_factory.hpp” #include
الإصدار: doc 1.4.2 / NanoLib 1.3.0
14
7 إنشاء مشروع لينكس الخاص بك
int main(){ nlc::NanoLibAccessor *accessor = getNanoLibAccessor();
nlc::ResultBusHwIds النتيجة = accessor->listAvailableBusHardware();
إذا (النتيجة. لديها خطأ()) { std::cout << النتيجة. خطأ() << std::endl؛ }
وإلا {std::cout << “نجاح” << std::endl؛ }
حذف الوصول؛ إرجاع 0؛ }
4. تحقق من مجلد المشروع الخاص بك لمعرفة الهيكل المناسب:
. اختبار نانوليب
inc accessor_factory.hpp bus_hardware_id.hpp … od_index.hpp result.hpp NanoLibTest.cpp
7.4 قم بتجميع مشروعك واختباره
اجعل Linux NanoLib الخاص بك جاهزًا للاستخدام عبر Bash.
1. عبر Bash: قم بتجميع الملف الرئيسي file عبر:
g++ -Wall -Wextra -pedantic -I./inc -c NanoLibTest.cpp -o NanoLibTest
2. ربط الملفات القابلة للتنفيذ معًا عبر:
g++ -Wall -Wextra -pedantic -I./inc -o test NanoLibTest.o L/usr/local/lib/nanotec -lnanolib -ldl
3. قم بتشغيل برنامج الاختبار عبر:
./امتحان
4. تحقق مما إذا كان Bash الخاص بك يقوم بالإبلاغ بشكل صحيح عن:
نجاح
الإصدار: doc 1.4.2 / NanoLib 1.3.0
15
8 فئات / وظائف مرجعية
8 فئات / وظائف مرجعية
يمكنك العثور هنا على قائمة بفئات واجهة مستخدم NanoLib ووظائف أعضائها. يتضمن الوصف النموذجي للوظيفة مقدمة قصيرة وتعريف الوظيفة وقائمة المعلمات/الإرجاع:
ExampleFunction () يخبرك باختصار بما تفعله الوظيفة.
الفراغ الافتراضي nlc::NanoLibAccessor::Exampالدالة (المعلمة a ثابتة ومعلمة a، والمعلمة b ثابتة ومعلمة B)
المعلمات param_a param_b
إرجاع النتيجةVoid
تعليق إضافي إذا لزم الأمر. تعليق إضافي إذا لزم الأمر.
8.1 NanoLibAccessor
فئة الواجهة المستخدمة كنقطة دخول إلى NanoLib. يبدو سير العمل النموذجي كما يلي:
1. ابدأ بالبحث عن الأجهزة باستخدام NanoLibAccessor.listAvailableBusHardware (). 2. اضبط إعدادات الاتصال باستخدام BusHardwareOptions (). 3. افتح اتصال الأجهزة باستخدام NanoLibAccessor.openBusHardwareWithProtocol (). 4. قم بمسح الناقل بحثًا عن الأجهزة المتصلة باستخدام NanoLibAccessor.scanDevices (). 5. أضف جهازًا باستخدام NanoLibAccessor.addDevice (). 6. قم بالاتصال بالجهاز باستخدام NanoLibAccessor.connectDevice (). 7. بعد الانتهاء من العملية، افصل الجهاز باستخدام NanoLibAccessor.disconnectDevice (). 8. قم بإزالة الجهاز باستخدام NanoLibAccessor.removeDevice (). 9. أغلق اتصال الأجهزة بـ NanoLibAccessor.CloseBusHardware ().
يحتوي NanoLibAccessor على وظائف الأعضاء العامة التالية:
listAvailableBusHardware () استخدم هذه الوظيفة لسرد أجهزة ناقل المجال المتوفرة.
نتائج BusHwIds الافتراضية nlc::NanoLibAccessor::listAvailableBusHardware ()
إرجاع ResultBusHwIds
يسلم مجموعة معرف fieldbus.
openBusHardwareWithProtocol () استخدم هذه الوظيفة لتوصيل أجهزة الناقل.
النتيجة الافتراضية ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (BusHardwareId const & busHwId، BusHardwareOptions const & busHwOpt)
المعلمات busHwId busHwOpt
إرجاع النتيجةVoid
يحدد fieldbus لفتحه. يحدد خيارات فتح ناقل المجال. يؤكد تشغيل وظيفة باطلة.
isBusHardwareOpen () استخدم هذه الوظيفة للتحقق مما إذا كان اتصال جهاز fieldbus مفتوحًا.
نتيجة افتراضية ResultVoid nlc::NanoLibAccessor::openBusHardwareWithProtocol (ثابت BusHardwareId & busHwId، ثابت BusHardwareOptions & busHwOpt)
الإصدار: doc 1.4.2 / NanoLib 1.3.0
16
8 فئات / وظائف مرجعية
المعلمات BusHardwareId تُرجع صحيحًا
خطأ شنيع
يحدد كل ناقل حقل لفتحه. الأجهزة مفتوحة. الأجهزة مغلقة.
getProtocolSpecificAccessor () استخدم هذه الوظيفة للحصول على كائن الوصول الخاص بالبروتوكول.
افتراضي ResultVoid nlc::NanoLibAccessor::getProtocolSpecificAccessor (BusHardwareId const & busHwId)
المعلمات busHwId ترجع ResultVoid
يحدد ناقل المجال للحصول على الملحق الخاص به. يؤكد تشغيل وظيفة باطلة.
getProfinetDCP () استخدم هذه الوظيفة لإرجاع مرجع إلى واجهة Profinet DCP.
ProfinetDCP الافتراضي & getProfinetDCP ()
إرجاع ProfinetDCP
يحصل علىamplerInterface () استخدم هذه الوظيفة للحصول على مرجع إلى sampواجهة لير.
افتراضية سampواجهة المستخدم وgetSampواجهة لير ()
يعود سamplerInterface
يشير إلى سampفئة الواجهة.
setBusState () استخدم هذه الوظيفة لتعيين الحالة الخاصة ببروتوكول الناقل.
افتراضي ResultVoid nlc::NanoLibAccessor::setBusState (ثابت BusHardwareId & busHwId، ثابت std::string & state)
معلمات حالة busHwId
إرجاع النتيجةVoid
يحدد fieldbus لفتحه. يعين حالة خاصة بالحافلة كقيمة سلسلة. يؤكد تشغيل وظيفة باطلة.
scanDevices () استخدم هذه الوظيفة للبحث عن الأجهزة الموجودة في الشبكة.
معرفات جهاز النتيجة الافتراضية nlc::NanoLibAccessor::scanDevices (معرف BusHardwareId وbusHwId الثابت، استدعاء NlcScanBusCallback*)
معلمات رد الاتصال busHwId
إرجاع معرفات جهاز النتيجة IOError
يحدد ناقل المجال المراد مسحه. NlcScanBusCallback تتبع التقدم. يسلم مجموعة معرف الجهاز. يعلم أنه لم يتم العثور على الجهاز.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
17
8 فئات / وظائف مرجعية
إضافة الجهاز ()
استخدم هذه الوظيفة لإضافة جهاز ناقل موصوف بواسطة deviceId إلى قائمة الأجهزة الداخلية في NanoLib، ولإرجاع deviceHandle له.
ResultDeviceHandle الافتراضي nlc::NanoLibAccessor::addDevice (معرف الجهاز الثابت ومعرف الجهاز)
معلمات معرف الجهاز ترجع نتيجة جهاز الجهاز
يحدد الجهاز المراد إضافته إلى القائمة. يسلم مقبض الجهاز.
ConnectDevice () استخدم هذه الوظيفة لتوصيل جهاز عن طريق DeviceHandle.
النتيجة الافتراضية ResultVoid nlc::NanoLibAccessor::connectDevice (DeviceHandle const deviceHandle)
معلمات جهاز التعامل مع إرجاع النتيجة Void
خطأ في الإدخال
يحدد جهاز الناقل الذي يتصل به NanoLib. يؤكد تشغيل وظيفة باطلة. يعلم أنه لم يتم العثور على الجهاز.
getDeviceName () استخدم هذه الوظيفة للحصول على اسم الجهاز من خلال DeviceHandle.
سلسلة النتائج الافتراضية nlc::NanoLibAccessor::getDeviceName (DeviceHandle const deviceHandle)
معلمات DeviceHandle تُرجع ResultString
يحدد جهاز الناقل NanoLib الذي حصل على اسمه. يسلم أسماء الأجهزة كسلسلة.
getDeviceProductCode () استخدم هذه الوظيفة للحصول على رمز منتج الجهاز عن طريق DeviceHandle.
النتيجة الافتراضية nlc::NanoLibAccessor::getDeviceProductCode (DeviceHandle const deviceHandle)
معلمات DeviceHandle تُرجع ResultInt
يحدد جهاز الناقل NanoLib الذي يحصل على رمز المنتج الخاص به. يسلم رموز المنتج كعدد صحيح.
getDeviceVendorId () استخدم هذه الوظيفة للحصول على معرف بائع الجهاز بواسطة DeviceHandle.
النتيجة الافتراضية nlc::NanoLibAccessor::getDeviceVendorId (DeviceHandle const deviceHandle)
معلمات DeviceHandle تُرجع ResultInt
الموارد غير متاحة
يحدد جهاز الناقل NanoLib الذي يحصل على معرف البائع له. يسلم معرف البائع كعدد صحيح. يعلم أنه لم يتم العثور على أي بيانات.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
18
8 فئات / وظائف مرجعية
getDeviceId () استخدم هذه الوظيفة للحصول على معرف جهاز معين من قائمة NanoLib الداخلية.
معرف جهاز النتيجة الافتراضي nlc::NanoLibAccessor::getDeviceId (مقبض الجهاز الثابت deviceHandle)
معلمات جهاز التعامل مع إرجاع النتيجة معرف الجهاز
يحدد جهاز الناقل NanoLib الذي يحصل على معرف الجهاز الخاص به. يسلم معرف الجهاز.
getDeviceIds () استخدم هذه الوظيفة للحصول على معرف جميع الأجهزة من قائمة NanoLib الداخلية.
معرفات جهاز النتيجة الافتراضية nlc::NanoLibAccessor::getDeviceIds ()
إرجاع معرفات الأجهزة النتيجة
يسلم قائمة معرف الجهاز.
getDeviceUid () استخدم هذه الوظيفة للحصول على المعرف الفريد للجهاز (96 بت / 12 بايت) بواسطة DeviceHandle.
ResultArrayByte افتراضي nlc::NanoLibAccessor::getDeviceUid (DeviceHandle const deviceHandle)
معلمات جهاز التعامل مع إرجاع النتيجة ArrayByte
الموارد غير متاحة
يحدد جهاز الناقل NanoLib الذي يحصل على المعرف الفريد له. يسلم معرف فريد كمصفوفة بايت. يعلم أنه لم يتم العثور على أي بيانات.
getDeviceSerialNumber () استخدم هذه الوظيفة للحصول على الرقم التسلسلي للجهاز عن طريق DeviceHandle.
سلسلة النتائج الافتراضية NanolibAccessor::getDeviceSerialNumber (DeviceHandle const deviceHandle)
معلمات DeviceHandle تُرجع ResultString
الموارد غير متاحة
يحدد جهاز الناقل NanoLib الذي يحصل على الرقم التسلسلي له. يسلم الأرقام التسلسلية كسلسلة. يعلم أنه لم يتم العثور على أي بيانات.
getDeviceHardwareGroup () استخدم هذه الوظيفة للحصول على مجموعة أجهزة جهاز الناقل بواسطة DeviceHandle.
معرف جهاز النتيجة الافتراضي nlc::NanoLibAccessor::getDeviceHardwareGroup (مقبض الجهاز الثابت deviceHandle)
معلمات DeviceHandle تُرجع ResultInt
يحدد جهاز الناقل NanoLib الذي يحصل على مجموعة الأجهزة من أجله.
يسلم مجموعات الأجهزة كعدد صحيح.
getDeviceHardwareVersion () استخدم هذه الوظيفة للحصول على إصدار الأجهزة لجهاز الناقل عن طريق DeviceHandle.
معرف جهاز النتيجة الافتراضي nlc::NanoLibAccessor::getDeviceHardwareVersion (مقبض الجهاز الثابت deviceHandle)
الإصدار: doc 1.4.2 / NanoLib 1.3.0
19
8 فئات / وظائف مرجعية
معلمات مقبض الجهاز
الإرجاعات
مورد سلسلة النتيجة غير متاح
يحدد جهاز الناقل الذي يحصل NanoLib على إصدار الجهاز له. يسلم أسماء الأجهزة كسلسلة. يعلم أنه لم يتم العثور على أي بيانات.
getDeviceFirmwareBuildId () استخدم هذه الوظيفة للحصول على معرف بناء البرنامج الثابت لجهاز الناقل بواسطة DeviceHandle.
معرف الجهاز الافتراضي ResultDeviceId nlc::NanoLibAccessor::getDeviceFirmwareBuildId (مقبض الجهاز الثابت deviceHandle)
معلمات DeviceHandle تُرجع ResultString
يحدد جهاز الناقل NanoLib الذي يحصل على معرف بناء البرنامج الثابت له.
يسلم أسماء الأجهزة كسلسلة.
getDeviceBootloaderVersion () استخدم هذه الوظيفة للحصول على إصدار أداة تحميل التشغيل لجهاز الناقل بواسطة DeviceHandle.
النتيجة الافتراضية nlc::NanoLibAccessor::getDeviceBootloaderVersion (DeviceHandle const deviceHandle)
معلمات مقبض الجهاز
الإرجاعات
ResultInt Resource غير متاح
يحدد جهاز الناقل NanoLib الذي يحصل على إصدار أداة تحميل التشغيل له. يسلم إصدارات أداة تحميل التشغيل كعدد صحيح. يعلم أنه لم يتم العثور على أي بيانات.
getDeviceBootloaderBuildId () استخدم هذه الوظيفة للحصول على معرف إنشاء أداة تحميل التشغيل لجهاز الناقل بواسطة DeviceHandle.
معرف جهاز النتيجة الافتراضي nlc::NanoLibAccessor:: (مقبض الجهاز الثابت deviceHandle)
معلمات DeviceHandle تُرجع ResultString
يحدد جهاز الناقل NanoLib الذي يحصل على معرف إنشاء أداة تحميل التشغيل.
يسلم أسماء الأجهزة كسلسلة.
rebootDevice () استخدم هذه الوظيفة لإعادة تشغيل الجهاز عن طريق DeviceHandle.
افتراضي ResultVoid nlc::NanoLibAccessor::rebootDevice (const DeviceHandle deviceHandle)
معلمات جهاز التعامل مع إرجاع النتيجة Void
يحدد fieldbus لإعادة التشغيل. يؤكد تشغيل وظيفة باطلة.
getDeviceState () استخدم هذه الوظيفة للحصول على الحالة الخاصة ببروتوكول الجهاز.
سلسلة النتائج الافتراضية nlc::NanoLibAccessor::getDeviceState (DeviceHandle const deviceHandle)
معلمات مقبض الجهاز
يقوم بتحديد جهاز الحافلة الذي يحصل NanoLib على الحالة الخاصة به.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
20
8 فئات / وظائف مرجعية
إرجاع سلسلة النتيجة
يسلم أسماء الأجهزة كسلسلة.
setDeviceState () استخدم هذه الوظيفة لتعيين الحالة الخاصة ببروتوكول الجهاز.
افتراضي ResultVoid nlc::NanoLibAccessor::setDeviceState (const DeviceHandle deviceHandle، const std::string & state)
معلمات حالة التعامل مع الجهاز
إرجاع النتيجةVoid
يحدد جهاز الناقل NanoLib الذي يقوم بتعيين الحالة له. يعين حالة خاصة بالحافلة كقيمة سلسلة. يؤكد تشغيل وظيفة باطلة.
الحصول على حالة الاتصال ()
استخدم هذه الوظيفة للحصول على حالة الاتصال الأخيرة المعروفة لجهاز معين بواسطة deviceHandle (= غير متصل، متصل، متصل بأداة تحميل التشغيل)
حالة ResultConnectionState الافتراضية nlc::NanoLibAccessor::getConnectionState (DeviceHandle const deviceHandle)
معلمات DeviceHandle تُرجع ResultConnectionState
يحدد جهاز الناقل NanoLib الذي يحصل على حالة الاتصال له.
يسلم حالة الاتصال (= قطع الاتصال، متصل، ConnectedBootloader).
التحقق من حالة الاتصال ()
فقط إذا لم تكن الحالة المعروفة الأخيرة هي "غير متصل": استخدم هذه الوظيفة للتحقق من حالة اتصال جهاز معين وتحديثها من خلال deviceHandle واختبار العديد من العمليات الخاصة بالوضع.
حالة ResultConnectionState الافتراضية nlc::NanoLibAccessor::checkConnectionState (DeviceHandle const deviceHandle)
معلمات DeviceHandle تُرجع ResultConnectionState
يحدد جهاز الناقل NanoLib الذي يتحقق من حالة الاتصال.
يسلم حالة الاتصال (= غير متصل).
signObjectDictionary () استخدم هذه الوظيفة اليدوية لتعيين قاموس كائن (OD) إلى DeviceHandle بنفسك.
قاموس ResultObjectDictionary الافتراضي nlc::NanoLibAccessor::assignObjectDictionary (DeviceHandle const deviceHandle، ObjectDictionary const & objectDictionary)
معلمات DeviceHandle objectDictionary
إرجاع قاموس كائن النتيجة
يحدد جهاز الناقل الذي يقوم NanoLib بتعيين OD له. إظهار خصائص قاموس الكائنات.
autoAssignObjectDictionary ()
استخدم هذه الآلية للسماح لـ NanoLib بتعيين قاموس كائن (OD) إلى DeviceHandle. عند العثور على OD مناسب وتحميله، يقوم NanoLib تلقائيًا بتعيينه للجهاز. ملاحظة: إذا تم بالفعل تحميل OD متوافق في مكتبة الكائنات، فسيستخدمه NanoLib تلقائيًا دون فحص الدليل المقدم.
قاموس ResultObjectDictionary الافتراضي nlc::NanoLibAccessor::autoAssignObjectDictionary (DeviceHandle const deviceHandle، const std::string & dictionariesLocationPath)
الإصدار: doc 1.4.2 / NanoLib 1.3.0
21
8 فئات / وظائف مرجعية
معلمات مقبض الجهاز
الإرجاعات
القواميسLocationPath ResultObjectDictionary
يحدد جهاز الناقل الذي يجب أن يقوم NanoLib بفحصه تلقائيًا بحثًا عن OD المناسب. يحدد المسار إلى دليل OD. إظهار خصائص قاموس الكائنات.
الحصول على قاموس الكائنات المخصصة ()
استخدم هذه الوظيفة للحصول على قاموس الكائنات المخصص لجهاز بواسطة deviceHandle.
قاموس ResultObjectDictionary الافتراضي nlc::NanoLibAccessor::getAssignedObjectDictionary (DeviceHandle const device
مقبض)
معلمات DeviceHandle ترجع ResultObjectDictionary
يحدد جهاز الناقل NanoLib الذي يحصل على OD المخصص له. إظهار خصائص قاموس الكائنات.
getObjectDictionaryLibrary () تقوم هذه الوظيفة بإرجاع مرجع OdLibrary.
مكتبة OdLibrary الافتراضية&nlc::NanoLibAccessor::getObjectDictionaryLibrary ()
إرجاع OdLibrary&
يفتح مكتبة OD بأكملها وقواميس الكائنات الخاصة بها.
setLoggingLevel () استخدم هذه الوظيفة لتعيين تفاصيل السجل المطلوبة (وlog file مقاس). المستوى الافتراضي هو المعلومات.
void افتراضي nlc::NanoLibAccessor::setLoggingLevel (مستوى LogLevel)
مستوى المعلمات
تفاصيل السجل التالية ممكنة:
0 = تتبع 1 = تصحيح 2 = معلومات 3 = تحذير 4 = خطأ 5 = حرج 6 = إيقاف
أدنى مستوى (أكبر سجل file); يسجل أي تفاصيل ممكنة، بالإضافة إلى بدء/إيقاف البرنامج. سجلات تصحيح الأخطاء (= النتائج المؤقتة، المحتوى المرسل أو المستلم، إلخ.) المستوى الافتراضي؛ يسجل الرسائل الإعلامية. تسجيل المشاكل التي حدثت ولكنها لن توقف الخوارزمية الحالية. السجلات مجرد مشكلة خطيرة أدت إلى إيقاف الخوارزمية. أعلى مستوى (أصغر سجل file); يتحول إلى تسجيل الخروج؛ لا مزيد من السجل على الإطلاق. لا يوجد تسجيل على الإطلاق.
setLoggingCallback ()
استخدم هذه الوظيفة لتعيين مؤشر استدعاء التسجيل ووحدة التسجيل (= المكتبة) لاستدعاء التسجيل هذا (وليس للمسجل نفسه).
void افتراضي nlc::NanoLibAccessor::setLoggingCallback (استدعاء NlcLoggingCallback*، ثابت nlc::LogModule & logModule)
المعلمات *callback logModule
تعيين مؤشر معاودة الاتصال. ضبط معاودة الاتصال (وليس المسجل!) على مكتبتك.
0 = NanolibCore 1 = NanolibCANopen 2 = NanolibModbus 3 = NanolibEtherCAT
يقوم بتنشيط معاودة الاتصال لنواة NanoLib فقط. يقوم بتنشيط معاودة الاتصال الخاصة بـ CANopen فقط. يقوم بتنشيط معاودة الاتصال الخاصة بـ Modbus فقط. يقوم بتنشيط معاودة الاتصال الخاصة بـ EtherCAT فقط.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
22
8 فئات / وظائف مرجعية
4 = NanolibRest 5 = NanolibUSB
يقوم بتنشيط معاودة الاتصال الخاصة بـ REST فقط. يقوم بتنشيط معاودة الاتصال الخاصة بـ USB فقط.
unsetLoggingCallback () استخدم هذه الوظيفة لإلغاء مؤشر رد الاتصال الخاص بالتسجيل.
الفراغ الافتراضي nlc::NanoLibAccessor::unsetLoggingCallback ()
readNumber () استخدم هذه الوظيفة لقراءة قيمة رقمية من قاموس الكائنات.
النتيجة الافتراضية nlc::NanoLibAccessor::readNumber (const DeviceHandle deviceHandle، const OdIndex odIndex)
معلمات جهاز التعامل مع odIndex
إرجاع النتيجة
يحدد جهاز الناقل الذي يقرأ منه NanoLib. يحدد الفهرس (الفرعي) الذي سيتم القراءة منه. يسلم قيمة رقمية غير مفسرة (يمكن أن تكون موقعة، غير موقعة، إصلاح قيم 16.16 بت).
readNumberArray () استخدم هذه الوظيفة لقراءة المصفوفات الرقمية من قاموس الكائنات.
افتراضي ResultArrayInt nlc::NanoLibAccessor::readNumberArray (const DeviceHandle deviceHandle، const uint16_t index)
معلمات مؤشر التعامل مع الجهاز
إرجاع نتيجة ArrayInt
يحدد جهاز الناقل الذي يقرأ منه NanoLib. فهرس كائن الصفيف. يسلم مجموعة صحيحة.
readBytes () استخدم هذه الوظيفة لقراءة البايتات العشوائية (بيانات كائن المجال) من قاموس الكائنات.
ResultArrayByte افتراضية nlc::NanoLibAccessor::readBytes (const DeviceHandle deviceHandle، const OdIndex odIndex)
معلمات جهاز التعامل مع odIndex
إرجاع النتيجة ArrayByte
يحدد جهاز الناقل الذي يقرأ منه NanoLib. يحدد الفهرس (الفرعي) الذي سيتم القراءة منه. يسلم مجموعة بايت.
readString () استخدم هذه الوظيفة لقراءة السلاسل من دليل الكائن.
سلسلة النتائج الافتراضية nlc::NanoLibAccessor::readString (const DeviceHandle deviceHandle، const OdIndex odIndex)
معلمات جهاز التعامل مع odIndex
إرجاع سلسلة النتيجة
يحدد جهاز الناقل الذي يقرأ منه NanoLib. يحدد الفهرس (الفرعي) الذي سيتم القراءة منه. يسلم أسماء الأجهزة كسلسلة.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
23
8 فئات / وظائف مرجعية
writeNumber () استخدم هذه الوظيفة لكتابة قيم رقمية إلى دليل الكائن.
افتراضي ResultVoid nlc::NanoLibAccessor::writeNumber (const DeviceHandle deviceHandle، int64_t value، const OdIndex odIndex، unsigned int bitLength)
معلمات قيمة مقبض الجهاز odIndex bitLength
إرجاع النتيجةVoid
يحدد جهاز الناقل الذي يكتب إليه NanoLib. القيمة غير المفسرة (يمكن توقيعها، غير موقعة، إصلاح 16.16). يحدد الفهرس (الفرعي) الذي سيتم القراءة منه. الطول بالبت. يؤكد تشغيل وظيفة باطلة.
writeBytes () استخدم هذه الوظيفة لكتابة بايتات عشوائية (بيانات كائن المجال) إلى دليل الكائن.
النتيجة الافتراضية ResultVoid nlc::NanoLibAccessor::writeBytes (const DeviceHandle deviceHandle، const std::vector & البيانات، ثابت OdIndex odIndex)
معلمات جهاز التعامل مع البيانات odIndex
إرجاع النتيجةVoid
يحدد جهاز الناقل الذي يكتب إليه NanoLib. ناقل البايت / الصفيف. يحدد الفهرس (الفرعي) الذي سيتم القراءة منه. يؤكد تشغيل وظيفة باطلة.
تحميل البرامج الثابتة ()
استخدم هذه الوظيفة لتحديث البرامج الثابتة لجهاز التحكم الخاص بك.
النتيجة الافتراضية ResultVoid nlc::NanoLibAccessor::uploadFirmware (const DeviceHandle deviceHandle، const std::vector &fwData، NlcDataTransferCallback* استدعاء)
معلمات الجهاز التعامل مع fwData NlcDataTransferCallback
إرجاع النتيجةVoid
يحدد ما هي تحديثات NanoLib لجهاز الناقل. صفيف يحتوي على بيانات البرامج الثابتة. أداة تتبع تقدم البيانات. يؤكد تشغيل وظيفة باطلة.
تحميل البرامج الثابتة منFile ()
استخدم هذه الوظيفة لتحديث البرامج الثابتة لوحدة التحكم الخاصة بك عن طريق تحميلها file.
النتيجة الافتراضية Void nlc::NanoLibAccessor::uploadFirmwareFromFile (const DeviceHandle deviceHandle، const std::string & absoluteFileالمسار، استدعاء NlcDataTransferCallback*
معلمات جهاز التعامل مع المطلقFileمسار NlcDataTransferCallback
إرجاع النتيجةVoid
يحدد ما هي تحديثات NanoLib لجهاز الناقل. الطريق إلى file يحتوي على بيانات البرامج الثابتة (std::string). متتبع تقدم البيانات. يؤكد تشغيل وظيفة فارغة.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
24
8 فئات / وظائف مرجعية
تحميل برنامج Bootloader ()
استخدم هذه الوظيفة لتحديث أداة تحميل التشغيل الخاصة بوحدة التحكم الخاصة بك.
النتيجة الافتراضية ResultVoid nlc::NanoLibAccessor::uploadBootloader (const DeviceHandle deviceHandle، const std::vector &btData، NlcDataTransferCallback* استدعاء)
معلمات الجهاز التعامل مع btData NlcDataTransferCallback
إرجاع النتيجةVoid
يحدد ما هي تحديثات NanoLib لجهاز الناقل. مصفوفة تحتوي على بيانات أداة تحميل التشغيل. أداة تتبع تقدم البيانات. يؤكد تشغيل وظيفة باطلة.
تحميل BootloaderFromFile ()
استخدم هذه الوظيفة لتحديث محمل التشغيل الخاص بوحدة التحكم الخاصة بك عن طريق تحميله file.
نتيجة افتراضية Void nlc::NanoLibAccessor::uploadBootloaderFromFile (const DeviceHandle deviceHandle، const std::string & bootloaderAbsoluteFileالمسار، استدعاء NlcDataTransferCallback*
معلمات الجهاز التعامل مع محمل الإقلاع المطلقFileمسار NlcDataTransferCallback
إرجاع النتيجةVoid
يحدد ما هي تحديثات NanoLib لجهاز الناقل. الطريق إلى file يحتوي على بيانات أداة تحميل التشغيل (std::string). متتبع تقدم البيانات. يؤكد تشغيل وظيفة فارغة.
تحميل برنامج BootloaderFirmware ()
استخدم هذه الوظيفة لتحديث أداة تحميل التشغيل الخاصة بجهاز التحكم والبرامج الثابتة لديك.
النتيجة الافتراضية Void nlc::NanoLibAccessor::uploadBootloaderFirmware (const DeviceHandle deviceHandle، const std::vector &btData، ثابت std::vector &fwData، NlcDataTransferCallback* استدعاء)
معلمات الجهاز التعامل مع btData fwData NlcDataTransferCallback
إرجاع النتيجةVoid
يحدد ما هي تحديثات NanoLib لجهاز الناقل. مصفوفة تحتوي على بيانات أداة تحميل التشغيل. صفيف يحتوي على بيانات البرامج الثابتة. أداة تتبع تقدم البيانات. يؤكد تشغيل وظيفة باطلة.
تحميل BootloaderFirmwareFromFile ()
استخدم هذه الوظيفة لتحديث أداة تحميل التشغيل والبرامج الثابتة لوحدة التحكم الخاصة بك عن طريق تحميل ملف files.
النتيجة الافتراضية Void nlc::NanoLibAccessor::uploadBootloaderFirmwareFromFile (const DeviceHandle deviceHandle، const std::string & bootloaderAbsoluteFileالمسار، ثابت std::string ومطلقFileالمسار، استدعاء NlcDataTransferCallback*
معلمات الجهاز التعامل مع محمل الإقلاع المطلقFileالمسار مطلقFileمسار NlcDataTransferCallback
إرجاع النتيجةVoid
يحدد ما هي تحديثات NanoLib لجهاز الناقل. الطريق إلى file يحتوي على بيانات أداة تحميل التشغيل (std::string). المسار إلى file تحتوي على بيانات البرامج الثابتة (uint8_t). أداة تتبع تقدم البيانات. يؤكد تشغيل وظيفة باطلة.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
25
8 فئات / وظائف مرجعية
تحميلNanoJ ()
استخدم هذه الوظيفة العامة لتحميل برنامج NanoJ إلى وحدة التحكم الخاصة بك.
النتيجة الافتراضية ResultVoid nlc::NanoLibAccessor::uploadNanoJ (DeviceHandle const deviceHandle، std::vector const & vmmData، NlcDataTransferCallback* callback)
معلمات جهاز التعامل مع vmmData NlcDataTransferCallback
إرجاع النتيجةVoid
يحدد جهاز الناقل الذي يقوم NanoLib بالتحميل إليه. صفيف يحتوي على بيانات NanoJ. أداة تتبع تقدم البيانات. يؤكد تشغيل وظيفة باطلة.
تحميل NanoJFromFile ()
استخدم هذه الوظيفة العامة لتحميل برنامج NanoJ إلى وحدة التحكم الخاصة بك عن طريق تحميل file.
النتيجة الافتراضية Void nlc::NanoLibAccessor::uploadNanoJFromFile (const DeviceHandle deviceHandle، const std::string & absoluteFileالمسار، استدعاء NlcDataTransferCallback*
معلمات جهاز التعامل مع المطلقFileمسار NlcDataTransferCallback
إرجاع النتيجةVoid
يحدد جهاز الناقل الذي يقوم NanoLib بالتحميل إليه. الطريق إلى file يحتوي على بيانات NanoJ (std::string). متتبع تقدم البيانات. يؤكد تشغيل وظيفة void.
DisconnectDevice () استخدم هذه الوظيفة لفصل جهازك عن طريق DeviceHandle.
افتراضي ResultVoid nlc::NanoLibAccessor::disconnectDevice (DeviceHandle const deviceHandle)
معلمات جهاز التعامل مع إرجاع النتيجة Void
يحدد جهاز الناقل الذي يتم قطع اتصال NanoLib به. يؤكد تشغيل وظيفة باطلة.
RemoveDevice () استخدم هذه الوظيفة لإزالة جهازك من قائمة الأجهزة الداخلية لـ NanoLib.
النتيجة الافتراضية ResultVoid nlc::NanoLibAccessor::removeDevice (const DeviceHandle deviceHandle)
معلمات جهاز التعامل مع إرجاع النتيجة Void
يحدد جهاز الناقل NanoLib الذي يقوم بإزالته. يؤكد تشغيل وظيفة باطلة.
CloseBusHardware () استخدم هذه الوظيفة لقطع الاتصال بجهاز fieldbus الخاص بك.
افتراضي ResultVoid nlc::NanoLibAccessor::closeBusHardware (BusHardwareId const & busHwId)
المعلمات busHwId ترجع ResultVoid
يحدد ناقل المجال الذي سيتم قطع الاتصال به. يؤكد تشغيل وظيفة باطلة.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
26
8 فئات / وظائف مرجعية
8.2 معرف BusHardware
استخدم هذه الفئة للتعرف على أجهزة الناقل واحد لواحد أو لتمييز أجهزة الناقل المختلفة عن بعضها البعض. تحتوي هذه الفئة (دون أن تكون وظائف الضبط غير قابلة للتغيير منذ الإنشاء) أيضًا على معلومات حول:
الأجهزة (= اسم المحول، محول الشبكة وما إلى ذلك) بروتوكول الاستخدام (= Modbus TCP، CANopen وما إلى ذلك) محدد أجهزة الناقل (= اسم المنفذ التسلسلي، الاسم المألوف لـ MAC
العنوان الخ.)
BusHardwareId () [1/3] منشئ يقوم بإنشاء كائن معرف أجهزة ناقل جديد.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_، std::string const & protocol_، std::string const & hardwareSpecifier_، std::string const & name_)
المعلمات busHardware_ Protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
نوع الجهاز (= ZK-USB-CAN-1 وما إلى ذلك). بروتوكول اتصال الناقل (= CANopen وما إلى ذلك). محدد الجهاز (= COM3 وما إلى ذلك). المحدد الإضافي للجهاز (على سبيل المثال، معلومات موقع USB). اسم مألوف (= اسم المحول (المنفذ) وما إلى ذلك).
BusHardwareId () [2/3] منشئ يقوم بإنشاء كائن معرف أجهزة ناقل جديد، مع خيار لمحدد أجهزة إضافي.
nlc::BusHardwareId::BusHardwareId (std::string const & busHardware_، std::string const & protocol_، std::string const & hardwareSpecifier_، std::string const & extraHardwareSpecifier_، std::string const & name_)
المعلمات busHardware_ Protocol_ hardwareSpecifier_ extraHardwareSpecifier_ name_
نوع الجهاز (= ZK-USB-CAN-1 وما إلى ذلك). بروتوكول اتصال الناقل (= CANopen وما إلى ذلك). محدد الجهاز (= COM3 وما إلى ذلك). المحدد الإضافي للجهاز (على سبيل المثال، معلومات موقع USB). اسم مألوف (= اسم المحول (المنفذ) وما إلى ذلك).
BusHardwareId () [3/3] مُنشئ يقوم بنسخ busHardwareId الموجود.
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)
nlc::BusHardwareId::BusHardwareId (BusHardwareId const &)
معرف ناقل المعلمات
يقوم بتسمية معرف جهاز الناقل للنسخ منه.
يساوي () يقارن معرف جهاز الناقل الجديد بالمعرف الموجود.
bool nlc::BusHardwareId::equals (BusHardwareId ثابت وغيره) ثابت
معلمات أخرى إرجاع صحيح
كائن آخر من نفس الفئة. إذا كان كلاهما متساويين في جميع القيم.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
27
8 فئات / وظائف مرجعية
خطأ شنيع
إذا كانت القيم تختلف.
getBusHardware () يقرأ سلسلة أجهزة الناقل.
std::string nlc::BusHardwareId::getBusHardware() ثابت
إرجاع السلسلة
getHardwareSpecifier () يقرأ سلسلة مواصفات الأجهزة الناقلة (= اسم الشبكة وما إلى ذلك).
std::string nlc::BusHardwareId::getHardwareSpecifier () ثابت
إرجاع السلسلة
getExtraHardwareSpecifier () يقرأ سلسلة مواصفات الأجهزة الإضافية للحافلة (= عنوان MAC وما إلى ذلك).
std::string nlc::BusHardwareId::getExtraHardwareSpecifier () const
إرجاع السلسلة
getName () يقرأ الاسم المألوف للأجهزة الناقلة.
std::string nlc::BusHardwareId::getName () ثابت
إرجاع السلسلة
getProtocol () يقرأ سلسلة بروتوكول الناقل.
std::string nlc::BusHardwareId::getProtocol() ثابت
إرجاع السلسلة
toString() تقوم بإرجاع معرف الأجهزة الناقلة كسلسلة.
std::string nlc::BusHardwareId::toString () ثابت
إرجاع السلسلة
8.3 خيارات الأجهزة الناقلة
ابحث في هذه الفئة، في قائمة قيمة المفتاح للسلاسل، عن جميع الخيارات اللازمة لفتح أجهزة الحافلة.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
28
8 فئات / وظائف مرجعية
BusHardwareOptions () [1/2] يقوم بإنشاء كائن خيار أجهزة ناقل جديد.
nlc::BusHardwareOptions::BusHardwareOptions () استخدم الدالة addOption () لإضافة أزواج مفتاح-قيمة.
BusHardwareOptions () [2/2] ينشئ كائن خيارات جهاز ناقل جديد مع وجود خريطة قيمة المفتاح بالفعل.
nlc::BusHardwareOptions::BusHardwareOptions (std::map (الثابت والخيارات)
خيارات المعلمات
خريطة تحتوي على خيارات لتشغيل أجهزة الحافلة.
addOption () ينشئ مفاتيح وقيم إضافية.
void nlc::BusHardwareOptions::addOption (std::string const & key، std::string const & value)
المعلمات القيمة الرئيسية
Example: BAUD_RATE_OPTIONS_NAME، راجع إعدادات bus_hw_options_ الافتراضية
Exampلو: BAUD_RATE_1000K، راجع bus_hw_options_defaults
يساوي () يقارن خيارات BusHardwareOptions بتلك الموجودة.
bool nlc::BusHardwareOptions::equals (BusHardwareOptions ثابت وأخرى) ثابت
معلمات أخرى إرجاع صحيح
خطأ شنيع
كائن آخر من نفس الفئة. إذا كان الكائن الآخر لديه نفس الخيارات تمامًا. إذا كان الكائن الآخر يحتوي على مفاتيح أو قيم مختلفة.
getOptions () يقرأ جميع أزواج القيمة الرئيسية المضافة.
std::خريطة nlc::BusHardwareOptions::getOptions () ثابت
إرجاع خريطة السلسلة
toString () يُرجع كافة المفاتيح/القيم كسلسلة.
std::string nlc::BusHardwareId::toString () ثابت
إرجاع السلسلة
8.4 BusHwOptionsDefault
تحتوي فئة خيارات التكوين الافتراضية هذه على السمات العامة التالية:
الإصدار: doc 1.4.2 / NanoLib 1.3.0
29
8 فئات / وظائف مرجعية
const CanBus const Serial const RESTfulBus const EtherCATBus
canBus = CanBus () serial = Serial () RestfulBus = RESTfulBus() ethercatBus = EtherCATBus()
8.5 معدل كانباود
البنية التي تحتوي على معدل باودات ناقل CAN في السمات العامة التالية:
ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت 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 = "50 20k" BAUD_RATE_20K = "10k" BAUD_RATE_10K = "5k" BAUD_RATE_5K = "XNUMXk"
8.6 كان باص
فئة خيارات التكوين الافتراضية مع السمات العامة التالية:
ثابت std::string ثابت CanBaudRate ثابت Ixxat
BAUD_RATE_OPTIONS_NAME = "يمكن محول معدل الباود" baudRate = CanBaudRate () ixxat = Ixxat ()
8.7 كان أوبن نمتسيرفيس
بالنسبة لخدمة NMT، تحتوي هذه البنية على حالات CANopen NMT كقيم سلسلة في السمات العامة التالية:
ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string
START = "START" STOP = "STOP" PRE_OPERATIONAL = "PRE_OPERATIONAL" RESET = "RESET" RESET_COMMUNICATION = "RESET_COMMUNICATION"
8.8 كانوبينمتستات
تحتوي هذه البنية على حالات CANopen NMT كقيم سلسلة في السمات العامة التالية:
ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string
STOPPED = "STOPPED" PRE_OPERATIONAL = "PRE_OPERATIONAL" OPERATIONAL = "OPERATIONAL" التهيئة = "INITIALIZATION" غير معروف = "غير معروف"
8.9 هيكل EtherCATBus
تحتوي هذه البنية على خيارات تكوين اتصال EtherCAT في السمات العامة التالية:
الإصدار: doc 1.4.2 / NanoLib 1.3.0
30
8 فئات / وظائف مرجعية
const std::string NETWORK_FIRMWARE_STATE_OP- يتم التعامل مع حالة الشبكة كوضع البرامج الثابتة. مقبول
TION_NAME = "حالة البرامج الثابتة للشبكة"
القيم (الافتراضي = PRE_OPERATIONAL):
EtherCATState::PRE_OPERATIONAL EtherCATState::SAFE_OPERATIONAL EtherCATState::OPERATIONAL
ثابت std::string DEFAULT_NETWORK_FIRMWARE_ STATE = “PRE_OPERATIONAL”
const std::string EXCLUSIVE_LOCK_TIMEOUT_OP- مهلة زمنية بالمللي ثانية للحصول على قفل حصري على
TION_NAME = "مهلة قفل مشتركة"
الشبكة (الافتراضي = 500 مللي ثانية).
ثابت غير موقع int DEFAULT_EXCLUSIVE_LOCK_ TIMEOUT = "500"
const std::string SHARED_LOCK_TIMEOUT_OPTION_ مهلة زمنية بالمللي ثانية للحصول على قفل مشترك على
الاسم = "مهلة قفل مشتركة"
الشبكة (الافتراضي = 250 مللي ثانية).
ثابت غير موقع int DEFAULT_SHARED_LOCK_TIMEOUT = "250"
const std::string READ_TIMEOUT_OPTION_NAME = مهلة زمنية بالمللي ثانية لعملية القراءة (افتراضي
"انتهاء مهلة القراءة"
= 700 مللي ثانية).
ثابت غير موقع int DEFAULT_READ_TIMEOUT = "700"
const std::string WRITE_TIMEOUT_OPTION_NAME = مهلة زمنية بالمللي ثانية لعملية الكتابة (افتراضي
"مهلة الكتابة"
= 200 مللي ثانية).
ثابت غير موقع int DEFAULT_WRITE_TIMEOUT = "200"
const std::string READ_WRITE_ATTEMPTS_OPTION_ أقصى محاولات القراءة أو الكتابة (قيم غير صفرية)
الاسم = "محاولات القراءة/الكتابة"
فقط؛ الافتراضي = 5).
ثابت غير موقع int DEFAULT_READ_WRITE_ATTEMPTS = "5"
const std::string CHANGE_NETWORK_STATE_ATTEMPTS_OPTION_NAME = “محاولات تغيير حالة الشبكة”
الحد الأقصى لعدد المحاولات لتغيير حالة الشبكة (القيم غير الصفرية فقط؛ الافتراضي = 10).
ثابت غير موقع int DEFAULT_CHANGE_NETWORK_ STATE_ATTEMPTS = "10"
const std::string PDO_IO_ENABLED_OPTION_NAME يمكّن أو يعطل معالجة PDO للإدخال الرقمي /
= "تمكين PDO IO"
المخرجات ("صحيح" أو "خطأ" فقط؛ الافتراضي = "صحيح").
ثابت std::string DEFAULT_PDO_IO_ENABLED = "صحيح"
8.10 بنية EtherCATState
تحتوي هذه البنية على حالات الرقيق/الشبكة EtherCAT كقيم سلسلة في السمات العامة التالية. ملاحظة: الحالة الافتراضية عند التشغيل هي PRE_OPERATIONAL؛ لا يمكن لـ NanoLib توفير حالة "تشغيلية" موثوقة في نظام تشغيل غير الوقت الفعلي:
ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string
NONE = "NONE" INIT = "INIT" PRE_OPERATIONAL = "PRE_OPERATIONAL" BOOT = "BOOT" SAFE_OPERATIONAL = "SAFE_OPERATIONAL" OPERATIONAL = "OPERATIONAL"
الإصدار: doc 1.4.2 / NanoLib 1.3.0
31
8 فئات / وظائف مرجعية
8.11 إكسات
يحتوي هذا الهيكل على جميع المعلومات الخاصة بـ Ixxat usb-to-can في السمات العامة التالية:
ثابت std::سلسلة
ADAPTER_BUS_NUMBER_OPTIONS_NAME = "رقم ناقل محول ixxat"
const IxxatAdapterBusNumber محولBusNumber = IxxatAdapterBusNumber ()
8.12 رقم IxxatAdapterBus
يحتوي هذا الهيكل على رقم الناقل لـ Ixxat usb-to-can في السمات العامة التالية:
ثابت std::string ثابت std::string ثابت std::string ثابت std::string
BUS_NUMBER_0_DEFAULT = "0" BUS_NUMBER_1 = "1" BUS_NUMBER_2 = "2" BUS_NUMBER_3 = "3"
8.13 الذروة
يحتوي هذا الهيكل على جميع المعلومات الخاصة بـ Peak usb-to-can في السمات العامة التالية:
ثابت std::سلسلة
ADAPTER_BUS_NUMBER_OPTIONS_NAME = "رقم ناقل المحول الأقصى"
ثابت PeakAdapterBusNumber محول حافلة رقم = PeakAdapterBusNumber ()
8.14 رقم ناقل الذروة
يحتوي هذا الهيكل على رقم الناقل لـ Peak usb-to-can في السمات العامة التالية:
ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت 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 = رقم BUS_NUMBER_10 = رقم BUS_NUMBER_11 = رقم BUS_NUMBER_11 = رقم BUS_NUMBER_12 = رقم BUS_NUMBER_12 = رقم BUS_NUMBER_13 = رقم BUS_NUMBER_13
8.15 مقبض الجهاز
تمثل هذه الفئة مؤشرًا للتحكم في جهاز على الناقل ولها وظائف الأعضاء العامة التالية.
DeviceHandle () DeviceHandle (مقبض uint32_t)
الإصدار: doc 1.4.2 / NanoLib 1.3.0
32
8 فئات / وظائف مرجعية
يساوي () يقارن نفسه بمقبض جهاز معين.
bool يساوي (DeviceHandle const other) const (uint32_t handle)
toString () يُرجع تمثيل سلسلة لمقبض الجهاز.
std::string toString() ثابت
get () يقوم بإرجاع معرف الجهاز.
uint32_t الحصول على () ثابت
8.16 معرف الجهاز
استخدم هذه الفئة (غير قابلة للتغيير منذ الإنشاء) لتحديد وتمييز الأجهزة الموجودة على الناقل:
معرف محول الأجهزة
معرف الجهاز
وصف
يعتمد معنى قيم معرف/وصف الجهاز على الناقل. على سبيل المثالample، قد يستخدم ناقل CAN معرف العدد الصحيح.
DeviceId () [1/3] يقوم بإنشاء كائن معرف جهاز جديد.
nlc::DeviceId::DeviceId (معرف الأجهزة الثابتة وbusHardwareId_، معرف الجهاز غير الموقّع، std::string الثابت والوصف_)
المعلمات busHardwareId_deviceId_ description_
معرف الحافلة. مؤشر؛ يخضع للحافلة (= معرف العقدة CANopen وما إلى ذلك). وصف (قد يكون فارغاً)؛ تخضع للحافلة.
DeviceId () [2/3] يقوم بإنشاء كائن معرف جهاز جديد مع خيارات معرف ممتدة.
nlc::DeviceId::DeviceId (BusHardwareId ثابت وbusHardwareId، int غير موقّع deviceId_، std::string ثابت وdescription_ std::vector ثابت و extraId_، std::string ثابت و extraStringId_)
المعلمات busHardwareId_ deviceId_ description_ extraId_ extraStringId_
معرف الحافلة. فهرس؛ يخضع للحافلة (= معرف عقدة CANopen وما إلى ذلك). وصف (قد يكون فارغًا)؛ يخضع للحافلة. معرف إضافي (قد يكون فارغًا)؛ يعتمد المعنى على الحافلة. معرف سلسلة إضافي (قد يكون فارغًا)؛ يعتمد المعنى على الحافلة.
DeviceId () [3/3] يقوم بإنشاء نسخة من كائن معرف الجهاز.
nlc::DeviceId::DeviceId (معرف الجهاز ثابت &)
الإصدار: doc 1.4.2 / NanoLib 1.3.0
33
8 فئات / وظائف مرجعية
معرف الجهاز_ المعلمات
معرف الجهاز للنسخ منه.
يساوي () يقارن الجديد بالكائنات الموجودة.
bool nlc::DeviceId::equals (DeviceId ثابت وغيره) ثابت
ترجع منطقية
getBusHardwareId () يقرأ معرف جهاز الناقل.
معرف أجهزة الحافلة nlc::معرف الجهاز::getBusHardwareId () ثابت
إرجاع BusHardwareId
getDescription () يقرأ وصف الجهاز (ربما غير مستخدم).
std::string nlc::DeviceId::getDescription () ثابت
إرجاع السلسلة
getDeviceId () يقرأ معرف الجهاز (ربما غير مستخدم).
غير موقّع int nlc::DeviceId::getDeviceId () ثابت
إرجاع كثافة العمليات غير الموقعة
toString () يُرجع الكائن كسلسلة.
std::string nlc::DeviceId::toString () ثابت
إرجاع السلسلة
getExtraId () يقرأ المعرف الإضافي للجهاز (قد يكون غير مستخدم).
ثابت std::vector &getExtraId() ثابت
إرجاع المتجه
متجه للمعرفات الإضافية الإضافية (قد يكون فارغًا)؛ المعنى يعتمد على الحافلة.
getExtraStringId () يقرأ معرف السلسلة الإضافية للجهاز (قد يكون غير مستخدم).
std::string getExtraStringId () const
الإصدار: doc 1.4.2 / NanoLib 1.3.0
34
8 فئات / وظائف مرجعية
إرجاع السلسلة
معرف السلسلة الإضافية (قد يكون فارغاً)؛ المعنى يعتمد على الحافلة.
8.17 LogLevelConverter
تعيد هذه الفئة مستوى السجل الخاص بك كسلسلة. static std::string toString (nlc::LogLevel logLevel)
8.18 محول وحدة تسجيل الدخول
تعيد هذه الفئة سجل المكتبة المحدد الخاص بك modulesetLoggingLevel () كسلسلة.
ثابت std::string
toString (nlc::LogModule logModule)
ثابت std::string toString (nlc::LogModule logModule)
8.19 قاموس الكائنات
تمثل هذه الفئة قاموس كائن لوحدة التحكم ولها وظائف العضو العامة التالية: getDeviceHandle ()
Virtual ResultDeviceHandle getDeviceHandle () const يعيد ResultDeviceHandle
getObject () virtual ResultObjectSubEntry getObject (OdIndex const odIndex) يعيد ResultObjectSubEntry
getObjectEntry () افتراضي ResultObjectEntry getObjectEntry (uint16_t index)
إرجاع ResultObjectEntry
يبلغ عن خصائص الكائن.
getXmlFileالاسم () النتيجة الافتراضية getXmlFileالاسم () ثابت
إرجاع سلسلة النتيجة
إرجاع XML file الاسم كسلسلة.
readNumber () افتراضي ResultInt readNumber (OdIndex const odIndex) يعيد ResultInt
readNumberArray() افتراضي ResultArrayInt readNumberArray (uint16_t const index)
الإصدار: doc 1.4.2 / NanoLib 1.3.0
35
8 فئات / وظائف مرجعية
إرجاع ResultArrayInt readString ()
افتراضي ResultString readString (OdIndex const odIndex) يعيد ResultString readBytes () افتراضي ResultArrayByte readBytes (OdIndex const odIndex) يعيد ResultArrayByte writeNumber () افتراضي ResultVoid writeNumber (OdIndex const odIndex, const int64_t value) يعيد ResultVoid writeBytes () افتراضي ResultVoid writeBytes (OdIndex const OdIndex, std::vector
const & data) إرجاع ResultVoid روابط ذات صلة OdIndex
8.20 إدخال الكائن
تمثل هذه الفئة إدخالاً كائنيًا لقاموس الكائنات، ولديها السمة المحمية الثابتة التالية ووظائف الأعضاء العامة:
ثابت nlc::ObjectSubEntry غير صالح للكائن
getName () يقرأ اسم الكائن كسلسلة.
افتراضي std::string getName() const
getPrivate () يتحقق مما إذا كان الكائن خاصًا.
bool افتراضي getPrivate() ثابت
getIndex () يقرأ عنوان فهرس الكائن.
افتراضي uint16_t getIndex () ثابت
الإصدار: doc 1.4.2 / NanoLib 1.3.0
36
8 فئات / وظائف مرجعية
getDataType () يقرأ نوع بيانات الكائن.
افتراضي nlc::ObjectEntryDataType getDataType () ثابت
getObjectCode () يقرأ كود الكائن:
Null Deftype Defstruct var Array Record
0x00 0x05 0x06 0x07 0x08 0x09
افتراضي nlc::ObjectCode getObjectCode () const
getObjectSaveable () يتحقق مما إذا كان الكائن قابلاً للحفظ وفئته (راجع دليل المنتج لمزيد من التفاصيل): APPLICATION، COMMUNICATION، DRIVE، MISC_CONFIG، MODBUS_RTU، NO، TUNING، CUSTOMER، ETHERNET، CANOPEN، VERIFY1020، UNKNOWN_SAVEABLE_TYPE
افتراضي nlc::ObjectSaveable getObjectSaveable () const
getMaxSubIndex () يقرأ عدد المؤشرات الفرعية التي يدعمها هذا الكائن.
افتراضي uint8_t getMaxSubIndex () ثابت
getSubEntry () nlc::ObjectSubEntry الظاهرية & getSubEntry (uint8_t subIndex)
انظر أيضًا ObjectSubEntry.
8.21 إدخال الكائن الفرعي
تمثل هذه الفئة إدخالًا فرعيًا للكائن (فهرس فرعي) لقاموس الكائنات ولها وظائف العضو العامة التالية:
getName () يقرأ اسم الكائن كسلسلة.
افتراضي std::string getName() const
getSubIndex () يقرأ عنوان الفهرس الفرعي.
افتراضي uint8_t getSubIndex () ثابت
الإصدار: doc 1.4.2 / NanoLib 1.3.0
37
8 فئات / وظائف مرجعية
getDataType () يقرأ نوع بيانات الكائن.
افتراضي nlc::ObjectEntryDataType getDataType () ثابت
يتحقق getSdoAccess () من إمكانية الوصول إلى الفهرس الفرعي عبر SDO:
للقراءة فقط
1
اكتب فقط
2
قراءة وكتابة
3
ممنوع الدخول
0
افتراضي nlc::ObjectSdoAccessAttribute getSdoAccess () const
يتحقق getPdoAccess () مما إذا كان يمكن الوصول إلى الفهرس الفرعي/قابل للتعيين عبر PDO:
Tx
1
Rx
2
تكس ار اكس
3
لا
0
افتراضي nlc::ObjectPdoAccessAttribute getPdoAccess () const
getBitLength () يتحقق من طول الفهرس الفرعي.
uint32_t افتراضي getBitLength () ثابت
getDefaultValueAsNumeric () يقرأ القيمة الافتراضية للفهرس الفرعي لأنواع البيانات الرقمية.
النتيجة الافتراضية getDefaultValueAsNumeric (std::string const & key) const
getDefaultValueAsString () يقرأ القيمة الافتراضية للفهرس الفرعي لأنواع بيانات السلسلة.
سلسلة النتيجة الافتراضية getDefaultValueAsString (std::string const & key) const
getDefaultValues () يقرأ القيم الافتراضية للفهرس الفرعي.
خريطة افتراضية std:: الحصول على القيم الافتراضية () ثابت
الإصدار: doc 1.4.2 / NanoLib 1.3.0
38
8 فئات / وظائف مرجعية
readNumber () يقرأ القيمة الرقمية الفعلية للفهرس الفرعي.
النتيجة الافتراضية readNumber() ثابتة
readString () يقرأ القيمة الفعلية للسلسلة للفهرس الفرعي.
سلسلة النتيجة الافتراضية readString () const
readBytes () يقرأ القيمة الفعلية للفهرس الفرعي بالبايت.
قراءة ResultArrayByte الافتراضية () const
writeNumber () يكتب قيمة رقمية في الفهرس الفرعي.
نتيجة افتراضية Void writeNumber (قيمة ثابتة int64_t) ثابتة
writeBytes () يكتب قيمة في الفهرس الفرعي بالبايت.
نتيجة افتراضية للكتابة عن طريق Void (std::vector ثابت وبيانات) ثابت
8.22 الفهرس
استخدم هذه الفئة (غير قابلة للتغيير منذ الإنشاء) لتغليف وتحديد موقع مؤشرات دليل الكائنات/المؤشرات الفرعية. يحتوي OD الخاص بالجهاز على ما يصل إلى 65535 صفًا (0xFFFF) و255 عمودًا (0xFF)؛ مع وجود فجوات بين الصفوف المتقطعة. راجع معيار CANopen ودليل المنتج الخاص بك لمزيد من التفاصيل.
OdIndex () ينشئ كائن OdIndex جديد.
nlc::OdIndex::OdIndex (فهرس uint16_t، فهرس فرعي uint8_t)
فهرس المعلمات الفرعي
من 0 إلى 65535 (0xFFFF) متضمنًا. من 0 إلى 255 (0xFF) متضمنًا.
getIndex () يقرأ الفهرس (من 0x0000 إلى 0xFFFF).
uint16_t nlc::OdIndex::getIndex() ثابت
إرجاع uint16_t
getSubindex () يقرأ الفهرس الفرعي (من 0x00 إلى 0xFF)
uint8_t nlc::OdIndex::getSubIndex() ثابت
الإصدار: doc 1.4.2 / NanoLib 1.3.0
39
8 فئات / وظائف مرجعية
إرجاع uint8_t
toString () يُرجع الفهرس والفهرس الفرعي كسلسلة. تقرأ السلسلة الافتراضية 0xIIII:0xSS كما يلي:
I = الفهرس من 0x0000 إلى 0xFFFF
S = الفهرس الفرعي من 0x00 إلى 0xFF
std::string nlc::OdIndex::toString () const
إرجاع 0xIIII:0xSS
تمثيل السلسلة الافتراضية
8.23 مكتبة أود
استخدم واجهة البرمجة هذه لإنشاء مثيلات لفئة ObjectDictionary من XML. من خلال signObjectDictionary، يمكنك بعد ذلك ربط كل مثيل بجهاز معين بسبب معرف تم إنشاؤه بشكل فريد. يتم تخزين مثيلات ObjectDictionary التي تم إنشاؤها بهذه الطريقة في كائن OdLibrary ليتم الوصول إليها بواسطة الفهرس. تقوم فئة ODLibrary بتحميل عناصر ObjectDictionary من file أو المصفوفة، ويقوم بتخزينها، ويحتوي على وظائف الأعضاء العامة التالية:
getObjectDictionaryCount () افتراضي uint32_t getObjectDictionaryCount () ثابت
getObjectDictionary () نتيجة افتراضية لـ ResultObjectDictionary getObjectDictionary (uint32_t odIndex)
إرجاع قاموس كائن النتيجة
addObjectDictionaryFromFile ()
إضافة كائن قاموس افتراضي ResultObjectDictionaryFromFile (std::string const & absoluteXmlFileطريق)
إرجاع قاموس كائن النتيجة
إضافة قاموس كائني ()
قاموس ResultObjectDictionary الافتراضي addObjectDictionary (std::vector ثابت و odXmlData، ثابت std::string &xmlFileالمسار = الأمراض المنقولة جنسيا::سلسلة ())
إرجاع قاموس كائن النتيجة
8.24 OdTypesHelper
بالإضافة إلى وظائف الأعضاء العامة التالية، تحتوي هذه الفئة على أنواع بيانات مخصصة. ملاحظة: للتحقق من أنواع البيانات المخصصة لديك، ابحث عن فئة enum ObjectEntryDataType في od_types.hpp.
uintToObjectCode () يحول الأعداد الصحيحة غير الموقعة إلى رمز الكائن:
نوع تعريف فارغ
0x00 0x05
الإصدار: doc 1.4.2 / NanoLib 1.3.0
40
8 فئات / وظائف مرجعية
Defstruct سجل مجموعة Var
0x06 0x07 0x08 0x09
static ObjectCode uintToObjectCode (unsigned int objectCode)
isNumericDataType () يُعلم ما إذا كان نوع البيانات رقميًا أم لا.
ثابت bool isNumericDataType (ObjectEntryDataType dataType)
isDefstructIndex () يُعلم ما إذا كان الكائن عبارة عن فهرس بنية تعريف أم لا.
المنطق المنطقي الثابت هوDefstructIndex (uint16_t typeNum)
isDeftypeIndex () يُعلم ما إذا كان الكائن هو فهرس نوع التعريف أم لا.
المنطق المنطقي الثابت هوDeftypeIndex (uint16_t typeNum)
isComplexDataType () يُعلم ما إذا كان نوع البيانات معقدًا أم لا.
ثابت bool isComplexDataType (ObjectEntryDataType dataType)
uintToObjectEntryDataType () يحول الأعداد الصحيحة غير الموقعة إلى نوع بيانات OD.
sstatic ObjectEntryDataType uintToObjectEntryDataType (uint16_t objectDataType)
objectEntryDataTypeToString () يحول نوع بيانات OD إلى سلسلة.
ثابت std::string objectEntryDataTypeToString (ObjectEntryDataType odDataType)
stringToObjectEntryDatatype () يحول السلسلة إلى نوع بيانات OD إن أمكن. وإلا، فسيتم إرجاع UNKNOWN_DATATYPE.
ثابت ObjectEntryDataType stringToObjectEntryDatatype (std::string dataTypeString)
الإصدار: doc 1.4.2 / NanoLib 1.3.0
41
8 فئات / وظائف مرجعية
objectEntryDataTypeBitLength () يُعلم بطول البت لنوع بيانات إدخال الكائن.
ثابت uint32_t objectEntryDataTypeBitLength (ObjectEntryDataType ثابت ونوع البيانات)
8.25 هيكل RESTfulBus
تحتوي هذه البنية على خيارات تكوين الاتصال لواجهة RESTful (عبر Ethernet). ويحتوي على السمات العامة التالية:
const std::string const غير موقعة طويلة const std::string const غير موقعة طويلة const std::string const غير موقعة طويلة
CONNECT_TIMEOUT_OPTION_NAME = "مهلة الاتصال المريحة" DEFAULT_CONNECT_TIMEOUT = 200 REQUEST_TIMEOUT_OPTION_NAME = "مهلة الطلب المريحة" DEFAULT_REQUEST_TIMEOUT = 200 RESPONSE_TIMEOUT_OPTION_NAME = "مهلة الاستجابة المريحة" DEFAULT_RESPONSE_TIMEOUT = 750
8.26 بروفينتDCP
في نظام التشغيل Linux، يحتاج تطبيق الاتصال إلى إمكانات CAP_NET_ADMIN وCAP_NET_RAW. للتمكين: sudo setcap 'cap_net_admin,cap_net_raw+eip' ./executable. في نظام التشغيل Windows، تستخدم واجهة ProfinetDCP برنامج WinPcap (الذي تم اختباره باستخدام الإصدار 4.1.3) أو Npcap (الذي تم اختباره باستخدام الإصدارين 1.60 و1.30). وبالتالي فإنه يبحث في مكتبة wpcap.dll المحملة ديناميكيًا بالترتيب التالي (ملاحظة: لا يوجد دعم Win10Pcap حاليًا):
1. دليل Nanolib.dll 2. دليل نظام Windows SystemRoot%System32 3. دليل تثبيت Npcap SystemRoot%System32Npcap 4. مسار البيئة
تمثل هذه الفئة واجهة Profinet DCP ولها وظائف الأعضاء العامة التالية:
يُعلم getScanTimeout () انتهاء مهلة فحص الجهاز (الافتراضي = 2000 مللي ثانية).
افتراضي uint32_t nlc::ProfinetDCP::getScanTimeout () ثابت
setScanTimeout () يضبط مهلة فحص الجهاز (الافتراضي = 2000 مللي ثانية).
الفراغ الافتراضي nlc::setScanTimeout (uint32_t timeoutMsec)
getResponseTimeout () يُبلغ عن انتهاء مهلة استجابة الجهاز لعمليات الإعداد وإعادة التعيين والوميض (الافتراضي = 1000 مللي ثانية).
افتراضي uint32_t nlc::ProfinetDCP::getResponseTimeout () ثابت
setResponseTimeout () يُبلغ عن انتهاء مهلة استجابة الجهاز لعمليات الإعداد وإعادة التعيين والوميض (الافتراضي = 1000 مللي ثانية).
الفراغ الافتراضي nlc::ProfinetDCP::setResponseTimeout (uint32_t timeoutMsec)
الإصدار: doc 1.4.2 / NanoLib 1.3.0
42
8 فئات / وظائف مرجعية
الخدمة متاحة ()
استخدم هذه الوظيفة للتحقق من توفر خدمة Profinet DCP.
صلاحية/توفر محول الشبكة Windows: توفر WinPcap / Npcap Linux: إمكانيات CAP_NET_ADMIN / CAP_NET_RAW
النتيجة الافتراضيةVoid nlc::ProfinetDCP::isServiceAvailable (const BusHardwareId & busHardwareId)
المعلمات BusHardwareId تُرجع صحيحًا
خطأ شنيع
معرف الجهاز لخدمة Profinet DCP للتحقق. الخدمة متاحة. الخدمة غير متاحة.
scanProfinetDevices () استخدم هذه الوظيفة لفحص ناقل الأجهزة بحثًا عن وجود أجهزة Profinet.
نتائج افتراضية لفحص ProfinetDevices ProfinetDevices (معرف BusHardwareId ومعرف busHardwareId الثابت)
المعلمات BusHardwareId ترجع ResultProfinetDevices
يحدد كل ناقل حقل لفتحه. الأجهزة مفتوحة.
setupProfinetDevice () يحدد إعدادات الجهاز التالية:
اسم الجهاز
عنوان IP
قناع الشبكة
البوابة الافتراضية
افتراضي ResultVoid nlc::setupProfinetDevice (const BusHardwareId & busHardwareId، const ProfinetDevice struct & profinetDevice، bool savePermanent)
ResetProfinetDevice () يوقف الجهاز ويعيد ضبطه على إعدادات المصنع الافتراضية.
افتراضي ResultVoid nlc::resetProfinetDevice (const BusHardwareId & busHardwareId، const ProfinetDevice & profinetDevice)
blinkProfinetDevice () يأمر جهاز Profinet بالبدء في وميض مصباح Profinet الخاص به.
النتيجة الافتراضية nlc::blinkProfinetDevice (const BusHardwareId & busHardwareId، const ProfinetDevice &profinetDevice)
validateProfinetDeviceIp () استخدم هذه الوظيفة للتحقق من عنوان IP الخاص بالجهاز.
نتيجة افتراضية Void validateProfinetDeviceIp (const BusHardwareId &busHardwareId، const ProfinetDevice & profinetDevice)
معلمات BusHardwareId ProfinetDevice
يحدد معرف الجهاز للتحقق. يحدد جهاز Profinet للتحقق من صحته.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
43
8 فئات / وظائف مرجعية
إرجاع النتيجةVoid
8.27 بنية ProfinetDevice
تحتوي بيانات جهاز Profinet على السمات العامة التالية:
std::string std::string std::array< uint8_t, 6 > uint32_t uint32_t uint32_t
اسم الجهاز بائع الجهاز عنوان macعنوان ipقناع الشبكةالبوابة الافتراضية
يتم توفير عنوان MAC كمصفوفة بالتنسيق macAddress = {xx, xx, xx, xx, xx, xx}; بينما يتم تفسير كل من عنوان IP وقناع الشبكة والبوابة على أنها أرقام ست عشرية نهايةية كبيرة، مثل:
عنوان IP: 192.168.0.2 قناع الشبكة: 255.255.0.0 البوابة: 192.168.0.1
0xC0A80002 0xFFFF0000 0xC0A80001
8.28 فئات النتائج
استخدم قيم الإرجاع "الاختيارية" لهذه الفئات للتحقق مما إذا كان استدعاء الوظيفة ناجحًا أم لا، وكذلك تحديد أسباب الفشل. عند النجاح، تقوم الدالة hasError () بإرجاع خطأ. بواسطة getResult ()، يمكنك قراءة قيمة النتيجة حسب النوع (ResultInt وما إلى ذلك). إذا فشلت المكالمة، فاقرأ السبب عن طريق getError ().
السمات المحمية
سلسلة NlcErrorCode uint32_t
ErrorString رمز الخطأ exErrorCode
أيضًا، تحتوي هذه الفئة على وظائف الأعضاء العامة التالية:
hasError () يقرأ نجاح استدعاء الوظيفة.
bool nlc::Result::hasError () ثابت
الإرجاعات
صواب خطأ
مكالمة فاشلة. استخدم getError () لقراءة القيمة. مكالمة ناجحة. استخدم getResult () لقراءة القيمة.
getError () يقرأ السبب في حالة فشل استدعاء الوظيفة.
ثابت std::string nlc::Result::getError () ثابت
إرجاع سلسلة const
الإصدار: doc 1.4.2 / NanoLib 1.3.0
44
8 فئات / وظائف مرجعية
النتيجة () تساعد الوظائف التالية في تحديد النتائج الدقيقة:
النتيجة (std::string const & errorString_)
النتيجة (NlcErrorCode const & errCode، std::string const & errorString_)
النتيجة (NlcErrorCode const & errCode، const uint32_t exErrCode، std::string const & errorString_)
النتيجة (النتيجة ثابتة و النتيجة)
getErrorCode () اقرأ NlcErrorCode.
NlcErrorCode getErrorCode () ثابت
getExErrorCode () uint32_t getExErrorCode () ثابت
8.28.1 النتيجة باطل
يرسل لك NanoLib مثيلًا لهذه الفئة إذا كانت الوظيفة فارغة. يرث الفصل الوظائف العامة والسمات المحمية من فئة النتيجة ولديه وظائف العضو العامة التالية:
ResultVoid () تساعد الوظائف التالية في تحديد نتيجة الفراغ الدقيقة:
النتيجة فارغة (std::string const &errorString_)
ResultVoid (NlcErrorCode ثابت و errCode، std::string ثابت و errorString_)
ResultVoid (NlcErrorCode ثابت و errCode، ثابت uint32_t exErrCode، std:: سلسلة ثابتة و errorString_)
ResultVoid (نتيجة ثابتة و النتيجة)
8.28.2 كثافة النتائج
يرسل لك NanoLib مثيلًا لهذه الفئة إذا قامت الدالة بإرجاع عدد صحيح. يرث الفصل الوظائف العامة/السمات المحمية من فئة النتيجة ولديه وظائف العضو العامة التالية:
getResult () يُرجع النتيجة الصحيحة في حالة نجاح استدعاء الوظيفة.
int64_t getResult() ثابت
إرجاع int64_t
الإصدار: doc 1.4.2 / NanoLib 1.3.0
45
8 فئات / وظائف مرجعية
ResultInt () تساعد الوظائف التالية في تحديد النتيجة الصحيحة الدقيقة:
النتيجةInt (int64_t النتيجة_)
النتيجة (std::string const & errorString_)
النتيجة (NlcErrorCode ثابت و errCode، std::string ثابت و errorString_)
النتيجة (NlcErrorCode ثابت و errCode، ثابت uint32_t exErrCode، std::string ثابت و errorString_)
ResultInt (النتيجة ثابتة والنتيجة)
8.28.3 سلسلة النتائج
يرسل لك NanoLib مثيلًا لهذه الفئة إذا قامت الدالة بإرجاع سلسلة. يرث الفصل الوظائف العامة/السمات المحمية من فئة النتيجة ولديه وظائف العضو العامة التالية:
getResult () يقرأ نتيجة السلسلة في حالة نجاح استدعاء الوظيفة.
ثابت std::string nlc::ResultString::getResult () ثابت
إرجاع سلسلة const
ResultString () تساعد الوظائف التالية في تحديد نتيجة السلسلة الدقيقة:
ResultString (std::string const & message، bool hasError_)
ResultString (NlcErrorCode ثابت و errCode، std::string ثابت و errorString_)
ResultString (NlcErrorCode ثابت و errCode، ثابت uint32_t exErrCode، std:: سلسلة ثابتة و errorString_)
ResultString (نتيجة ثابتة و النتيجة)
8.28.4 ResultArrayByte
ترسل لك NanoLib مثيلًا لهذه الفئة إذا أرجعت الوظيفة مصفوفة بايتات. ترث الفئة الدوال العامة / السمات المحمية من فئة النتيجة ولديها الدوال العامة التالية:
getResult () يقرأ متجه البايت إذا كان استدعاء الوظيفة ناجحًا.
ثابت std::vector nlc::ResultArrayByte::getResult() ثابت
إرجاع متجه ثابت
الإصدار: doc 1.4.2 / NanoLib 1.3.0
46
8 فئات / وظائف مرجعية
ResultArrayByte () تساعد الوظائف التالية في تحديد نتيجة صفيف البايت الدقيق:
ResultArrayByte (std::vector ثابت و النتيجة_)
ResultArrayByte (std::string const & errorString_)
ResultArrayByte (NlcErrorCode ثابت و errCode، std::string ثابت وخطأ String_)
ResultArrayByte (NlcErrorCode ثابت و errCode، ثابت uint32_t exErrCode، std:: سلسلة ثابتة و errorString_)
ResultArrayByte (نتيجة ثابتة ونتيجة)
8.28.5 ResultArrayInt
ترسل لك NanoLib مثيلًا لهذه الفئة إذا أرجعت الوظيفة مصفوفة عدد صحيح. ترث الفئة الدوال العامة / السمات المحمية من فئة النتيجة ولديها الدوال العامة التالية:
getResult () يقرأ متجه العدد الصحيح إذا كان استدعاء الوظيفة ناجحًا.
ثابت std::vector nlc::ResultArrayInt::getResult () ثابت
إرجاع متجه ثابت
ResultArrayInt () تساعد الوظائف التالية في تحديد نتيجة صفيف الأعداد الصحيحة الدقيقة:
ResultArrayInt (std::vector ثابت و النتيجة_)
ResultArrayInt (std::string const & errorString_)
ResultArrayInt (NlcErrorCode ثابت و errCode، std::string ثابت وخطأ String_)
ResultArrayInt (NlcErrorCode ثابت و errCode، ثابت uint32_t exErrCode، std:: سلسلة ثابتة و errorString_)
ResultArrayInt (النتيجة ثابتة والنتيجة)
8.28.6 معرفات حافلة النتائج
ترسل لك NanoLib مثيلًا لهذه الفئة إذا أرجعت الوظيفة مجموعة معرفات أجهزة ناقل. ترث الفئة الوظائف العامة / السمات المحمية من فئة النتيجة ولديها وظائف الأعضاء العامة التالية:
getResult () يقرأ متجه معرف الأجهزة والحافلات إذا كان استدعاء الوظيفة ناجحًا.
ثابت std::vector nlc::ResultBusHwIds::getResult() ثابت
معلمات ثابت ناقلات
الإصدار: doc 1.4.2 / NanoLib 1.3.0
47
8 فئات / وظائف مرجعية
ResultBusHwIds () تساعد الوظائف التالية في تحديد نتيجة صفيف معرّف الأجهزة الناقلة بالضبط:
ResultBusHwIds (std::vector ثابت و النتيجة_)
ResultBusHwIds (std::string const & errorString_)
ResultBusHwIds (NlcErrorCode ثابت و errCode، std::string ثابت و errorString_)
ResultBusHwIds (NlcErrorCode ثابت و errCode، ثابت uint32_t exErrCode، std::string ثابت و errorString_)
ResultBusHwIds (نتيجة ثابتة ونتائج)
8.28.7 معرف جهاز النتيجة
يرسل لك NanoLib مثيلًا لهذه الفئة إذا أرجعت الوظيفة معرف جهاز. ترث الفئة الوظائف العامة / السمات المحمية من فئة النتيجة ولديها وظائف الأعضاء العامة التالية:
getResult () يقرأ متجه معرف الجهاز في حالة نجاح استدعاء الوظيفة.
معرف الجهاز nlc::ResultDeviceId::getResult () ثابت
إرجاع ناقل ثابت
ResultDeviceId () تساعد الوظائف التالية في تحديد نتيجة معرف الجهاز الدقيقة:
ResultDeviceId (معرف الجهاز ثابت و result_)
معرف الجهاز النتيجة (std::string const & errorString_)
معرف الجهاز النتيجة (رمز الخطأ NlcErrorCode الثابت ورمز الخطأ، std::string الثابت وerrorString_)
معرف الجهاز النتيجة (رمز الخطأ NlcErrorCode الثابت ورمز الخطأ، رمز الخطأ uint32_t exErrCode الثابت، سلسلة الخطأ std::string_)
ResultDeviceId (نتيجة ثابتة ونتيجة)
8.28.8 معرفات جهاز النتيجة
ترسل لك NanoLib مثيلًا لهذه الفئة إذا أرجعت الوظيفة مجموعة معرفات جهاز. ترث الفئة الوظائف العامة / السمات المحمية من فئة النتيجة ولديها وظائف الأعضاء العامة التالية:
getResult () يقوم بإرجاع متجه معرف الجهاز إذا كانت مكالمة الوظيفة ناجحة.
معرف الجهاز nlc::ResultDeviceIds::getResult () ثابت
إرجاع ناقل ثابت
الإصدار: doc 1.4.2 / NanoLib 1.3.0
48
8 فئات / وظائف مرجعية
ResultDeviceIds () تساعد الوظائف التالية في تحديد نتيجة صفيف معرف الجهاز الدقيق:
معرفات جهاز النتيجة (std::vector ثابت و النتيجة_)
معرفات جهاز النتيجة (std::string const & errorString_)
معرفات جهاز النتيجة (NlcErrorCode ثابت و errCode، std::string ثابت و errorString_)
معرفات جهاز النتيجة (رمز الخطأ NlcErrorCode الثابت ورمز الخطأ، رمز الخطأ uint32_t exErrCode الثابت، std::string الثابت ورمز الخطأ errorString_)
ResultDeviceIds (نتيجة ثابتة ونتيجة)
8.28.9 ResultDeviceHandle
ترسل لك NanoLib مثيلًا لهذه الفئة إذا أرجعت الوظيفة قيمة معرّف جهاز. ترث الفئة الوظائف العامة / السمات المحمية من فئة النتيجة ولديها وظائف الأعضاء العامة التالية:
getResult () يقرأ مقبض الجهاز في حالة نجاح استدعاء الوظيفة.
DeviceHandle nlc::ResultDeviceHandle::getResult () ثابت
إرجاع مقبض الجهاز
ResultDeviceHandle () تساعد الوظائف التالية في تحديد النتيجة الدقيقة لمقبض الجهاز:
ResultDeviceHandle (DeviceHandle ثابت و result_)
ResultDeviceHandle (std::string const & errorString_)
ResultDeviceHandle (NlcErrorCode ثابت و errCode، std::string ثابت و errorString_)
ResultDeviceHandle (NlcErrorCode ثابت و errCode، ثابت uint32_t exErrCode، std::string ثابت و errorString_)
ResultDeviceHandle (نتيجة ثابتة ونتيجة)
8.28.10 قاموس كائن النتيجة
يرسل لك NanoLib مثيلًا لهذه الفئة إذا قامت الوظيفة بإرجاع محتوى قاموس الكائنات. يرث الفصل الوظائف العامة/السمات المحمية من فئة النتيجة ولديه وظائف العضو العامة التالية:
getResult () يقرأ متجه معرف الجهاز في حالة نجاح استدعاء الوظيفة.
ثابت nlc::ObjectDictionary & nlc::ResultObjectDictionary::getResult () ثابت
الإصدار: doc 1.4.2 / NanoLib 1.3.0
49
8 فئات / وظائف مرجعية
الإرجاعات
ناقل ثابت
ResultObjectDictionary () تساعد الوظائف التالية في تحديد نتيجة قاموس الكائن بدقة:
ResultObjectDictionary (nlc::ObjectDictionary ثابت و result_)
قاموس ResultObjectDictionary (std::string const & errorString_)
قاموس ResultObjectDictionary (NlcErrorCode ثابت و errCode، std::string ثابت و errorString_)
قاموس ResultObjectDictionary (NlcErrorCode const & errCode، const uint32_t exErrCode، std::string const & errorString_)
قاموس ResultObjectDictionary (نتيجة ثابتة و النتيجة)
8.28.11 حالة اتصال النتيجة
يرسل لك NanoLib مثيلًا لهذه الفئة إذا قامت الوظيفة بإرجاع معلومات حالة اتصال الجهاز. يرث الفصل الوظائف العامة/السمات المحمية من فئة النتيجة ولديه وظائف العضو العامة التالية:
getResult () يقرأ مقبض الجهاز في حالة نجاح استدعاء الوظيفة.
DeviceConnectionStateInfo nlc::ResultConnectionState::getResult () ثابت
إرجاع DeviceConnectionStateInfo متصل / غير متصل / ConnectedBootloader
ResultConnectionState () تساعد الوظائف التالية في تحديد نتيجة حالة الاتصال الدقيقة:
ResultConnectionState (معلومات حالة اتصال الجهاز ثابتة و result_)
حالة الاتصال الناتجة (std::string const & errorString_)
حالة اتصال النتيجة (NlcErrorCode ثابت و errCode، std::string ثابت و errorString_)
حالة اتصال النتيجة (رمز الخطأ NlcErrorCode ثابت ورمز الخطأ، رمز الخطأ uint32_t exErrCode ثابت ورمز الخطأ std::string ثابت ورمز الخطأ errorString_)
ResultConnectionState (نتيجة ثابتة ونتيجة)
8.28.12 ResultObjectEntry
ترسل لك NanoLib مثيلًا لهذه الفئة إذا أرجعت الوظيفة إدخال كائن. ترث الفئة الوظائف العامة / السمات المحمية من فئة النتيجة ولديها وظائف الأعضاء العامة التالية:
الإصدار: doc 1.4.2 / NanoLib 1.3.0
50
8 فئات / وظائف مرجعية
getResult () يقوم بإرجاع متجه معرف الجهاز إذا كانت مكالمة الوظيفة ناجحة.
nlc::ObjectEntry const& nlc::ResultObjectEntry::getResult () const
إرجاع Const ObjectEntry
ResultObjectEntry () تساعد الوظائف التالية في تحديد نتيجة إدخال الكائن بالضبط:
ResultObjectEntry (nlc::ObjectEntry ثابت و result_)
ResultObjectEntry (std::string const & errorString_)
ResultObjectEntry (NlcErrorCode ثابت و errCode، std::string ثابت و errorString_)
إدخال كائن النتيجة (NlcErrorCode ثابت و errCode، ثابت uint32_t exErrCode، std::string ثابت و errorString_)
ResultObjectEntry (نتيجة ثابتة ونتيجة)
8.28.13 ResultObjectSubEntry
ترسل لك NanoLib مثيلًا لهذه الفئة إذا أرجعت الوظيفة إدخالًا فرعيًا للكائن. ترث الفئة الوظائف العامة / السمات المحمية من فئة النتيجة ولديها وظائف الأعضاء العامة التالية:
getResult () يقوم بإرجاع متجه معرف الجهاز إذا كانت مكالمة الوظيفة ناجحة.
nlc::ObjectSubEntry ثابت & nlc::ResultObjectSubEntry::getResult () ثابت
تقوم بإرجاع const ObjectSubEntry
ResultObjectSubEntry () تساعد الوظائف التالية في تحديد نتيجة الإدخال الفرعي للكائن بالضبط:
ResultObjectSubEntry (nlc::ObjectEntry ثابت و result_)
ResultObjectSubEntry (std::string const & errorString_)
ResultObjectSubEntry (NlcErrorCode ثابت و errCode، std::string ثابت و errorString_)
ResultObjectSubEntry (NlcErrorCode ثابت و errCode، ثابت uint32_t exErrCode، std::string ثابت و errorString_)
ResultObjectSubEntry (نتيجة ثابتة ونتيجة)
8.28.14 النتيجةProfinetDevices
يرسل لك NanoLib مثيلًا لهذه الفئة إذا قامت الدالة بإرجاع جهاز Profinet. يرث الفصل الوظائف العامة/السمات المحمية من فئة النتيجة ولديه وظائف العضو العامة التالية:
الإصدار: doc 1.4.2 / NanoLib 1.3.0
51
8 فئات / وظائف مرجعية
getResult () يقرأ متجه جهاز Profinet في حالة نجاح استدعاء الوظيفة.
ثابت std::vector &getResult() ثابت
ResultProfinetDevices () تساعد الوظائف التالية في تحديد أجهزة Profinet الدقيقة.
ResultProfinetDevices (ثابت std::vector &أجهزة بروفينيت)
ResultProfinetDevices (نتيجة ثابتة و النتيجة)
ResultProfinetDevices (const std::string &errorText، NlcErrorCode errorCode = NlcErrorCode::GeneralError، uint32_t extendedErrorCode = 0)
8.28.15 النتائجampcom.leDataArray
يرسل لك NanoLib مثيلًا لهذه الفئة إذا عادت الوظيفة كـampمصفوفة البيانات لو يرث الفصل الوظائف العامة/السمات المحمية من فئة النتيجة ولديه وظائف العضو العامة التالية:
getResult () يقرأ مصفوفة البيانات في حالة نجاح استدعاء الوظيفة.
ثابت std::vector <SampleData> & getResult() ثابت
نتائجampleDataArray () تساعد الوظائف التالية في تحديد أجهزة Profinet الدقيقة.
نتائجampleDataArray (ثابت std::vector <Sampالبيانات> & dataArray)
نتائجampleDataArray (ثابت std::string &errorDesc، ثابت NlcErrorCode errorCode = NlcErrorCode::GeneralError، ثابت uint32_t extendedErrorCode = 0)
نتائجampleDataArray (نتائج ثابتةamp(leDataArray وغيرها)
نتائجampleDataArray (نتيجة ثابتة و النتيجة)
8.28.16 النتائجamplerState
يرسل لك NanoLib مثيلًا لهذه الفئة إذا عادت الوظيفة كـampler State.ترث هذه الفئة الوظائف العامة/السمات المحمية من فئة النتيجة ولها وظائف العضو العامة التالية:
getResult () يقرأ sampناقل الحالة إذا نجح استدعاء الوظيفة.
SamplerState getResult () ثابت
يعود سamplerState>
غير مكون / مكون / جاهز / قيد التشغيل / مكتمل / فشل / تم الإلغاء
الإصدار: doc 1.4.2 / NanoLib 1.3.0
52
8 فئات / وظائف مرجعية
نتائجamplerState () تساعد الوظائف التالية في تحديد s بدقةampالدولة لير.
نتائجampحالة (ثابتة Sampحالة ليرستات)
نتائجampحالة lerState (ثابتة std::string & errorDesc، ثابت NlcErrorCode errorCode = NlcErrorCode::GeneralError، ثابت uint32_t
رمز الخطأ الممتد = 0)
نتائجampحالة (نتيجة ثابتةamp(الدولة وغيرها)
نتائجampحالة (نتيجة ثابتة و النتيجة)
8.29 نلكيروركود
إذا حدث خطأ ما، فإن فئات النتائج تبلغ عن أحد رموز الخطأ المدرجة في هذا التعداد.
رمز الخطأ النجاح خطأ عام عدم توفر الحافلة خطأ الاتصال خطأ البروتوكول
ODDoesNotExist ODInvalidAccess ODTypeMismatch OperationAborted OperationNotSupported InvalidOperation
الوصول إلى الوسائط غير صالح، رفض المورد، لم يتم العثور على المورد، خطأ مهلة نفاد الذاكرة متاح
C: الفئة D: الوصف R: السبب C: لا شيء. د: لا خطأ. رد: تمت العملية بنجاح
ج: غير محدد. د: خطأ غير محدد. رد: الفشل الذي لا يناسب أي فئة أخرى.
ج: الحافلة. د: ناقل الأجهزة غير متوفر. رد: الحافلة غير موجودة أو مقطوعة أو بها خلل.
ج: الاتصالات. د: الاتصالات غير موثوقة. R: بيانات غير متوقعة، أو CRC خاطئة، أو أخطاء في الإطار أو التكافؤ، وما إلى ذلك.
ج: البروتوكول. د: خطأ في البروتوكول. R: الاستجابة بعد خيار البروتوكول غير المدعوم، تقرير الجهاز عن البروتوكول غير المدعوم، خطأ في البروتوكول (على سبيل المثال، بت مزامنة مقطع SDO)، وما إلى ذلك. R: استجابة أو تقرير جهاز لبروتوكول غير مدعوم (خيارات) أو أخطاء في البروتوكول (على سبيل المثال، SDO) بت مزامنة المقطع)، وما إلى ذلك. R: بروتوكول غير مدعوم (خيارات) أو خطأ في البروتوكول (على سبيل المثال، بت مزامنة مقطع SDO)، وما إلى ذلك.
ج: قاموس الكائنات. د: عنوان OD غير موجود. ر: لا يوجد مثل هذا العنوان في قاموس الكائنات.
ج: قاموس الكائنات. D: الوصول إلى عنوان OD غير صالح. R: محاولة كتابة عنوان للقراءة فقط، أو القراءة من عنوان للكتابة فقط.
ج: قاموس الكائنات. د: عدم تطابق النوع. R: قيمة لم يتم تحويلها إلى نوع محدد، على سبيل المثال، في محاولة للتعامل مع سلسلة كرقم.
ج: التطبيق. د: تم إحباط العملية. R: قطع العملية حسب طلب التطبيق. يُرجع فقط عند مقاطعة العملية عن طريق وظيفة رد الاتصال، على سبيل المثال، من فحص الناقل.
ج: عام. د: العملية غير مدعومة. R: لا يوجد دعم للأجهزة/الأجهزة.
ج: عام. D: العملية غير صحيحة في السياق الحالي، أو غير صالحة مع الوسيطة الحالية. R: محاولة إعادة الاتصال بالحافلات/الأجهزة المتصلة بالفعل. محاولة قطع الاتصال بتلك التي تم قطع اتصالها بالفعل. محاولة تشغيل أداة تحميل التشغيل في وضع البرنامج الثابت أو العكس.
ج: عام. د: الوسيطة غير صالحة. رد: منطق أو بناء جملة خاطئ.
ج: عام. د: تم رفض الوصول. R: عدم وجود حقوق أو إمكانيات لتنفيذ العملية المطلوبة.
ج: عام. د: لم يتم العثور على العنصر المحدد. R: ناقل الأجهزة أو البروتوكول أو الجهاز أو عنوان OD على الجهاز أو file لم يتم العثور عليه.
ج: عام. د: لم يتم العثور على العنصر المحدد. رد: مشغول أو غير موجود أو منقطع أو عيب.
ج: عام. د: الذاكرة غير كافية. R: الذاكرة قليلة جدًا لمعالجة هذا الأمر.
ج: عام. د: انتهت مهلة العملية. رد: العودة بعد انتهاء المهلة قد تكون المهلة عبارة عن وقت استجابة للجهاز، أو وقت للحصول على وصول مشترك أو حصري إلى الموارد، أو وقت لتبديل الناقل/الجهاز إلى حالة مناسبة.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
53
8 فئات / وظائف مرجعية
8.30 نلك رد الاتصال
تحتوي فئة الوالد الخاصة بعمليات الاسترجاع على دالة العضو العامة التالية: callback ()
استدعاء ResultVoid الافتراضي ()
الإرجاعات
نتيجةVoid
8.31 NlcDataTransferCallback
استخدم فئة الاستدعاء هذه لنقل البيانات (تحديث البرامج الثابتة، وتحميل NanoJ وما إلى ذلك). 1. لتحميل البرامج الثابتة: قم بتعريف "فئة مشتركة" لتوسيع هذه الفئة باستخدام طريقة استدعاء مخصصة
2. استخدم مثيلات "co-class's" في استدعاءات NanoLibAccessor.uploadFirmware (). تحتوي الفئة الرئيسية نفسها على دالة العضو العامة التالية:
callback () استدعاء افتراضي ResultVoid (nlc::DataTransferInfo info، int32_t data)
الإرجاعات
نتيجةVoid
8.32 رد اتصال NlcScanBus
استخدم فئة الاستدعاء هذه لمسح الحافلة. 1. قم بتعريف "فئة مشتركة" تمتد إلى هذه الفئة باستخدام تنفيذ طريقة الاستدعاء المخصصة. 2. استخدم مثيلات "الفئة المشتركة" في استدعاءات NanoLibAccessor.scanDevices (). تحتوي الفئة الرئيسية نفسها على دالة العضو العامة التالية.
أتصل مرة أخرى ()
استدعاء ResultVoid الافتراضي (nlc::BusScanInfo info، std::vector const & devicesFound، int32_t data)
إرجاع النتيجةVoid
8.33 NlcLoggingCallback
استخدم فئة رد الاتصال هذه لتسجيل عمليات الاسترجاعات. 1. حدد فئة تعمل على توسيع هذه الفئة باستخدام طريقة رد اتصال مخصصة 2. استخدم مؤشرًا لمثيلاتها لتعيين رد اتصال بواسطة NanoLibAccessor >
setLoggingCallback (...).
استدعاء فارغ افتراضي (ثابت std::string & payload_str، ثابت std::string & formatted_str، ثابت std::string & logger_name، ثابت غير موقّع int log_level، ثابت std::uint64_t time_since_epoch، ثابت size_t thread_id)
8.34 ثانيةamplerInterface
استخدم هذه الفئة لتكوين وبدء وإيقاف sampلير، أو للحصول على الصورةampالبيانات بقيادة وجلب كماampحالة لير أو الخطأ الأخير. يحتوي الفصل على وظائف الأعضاء العامة التالية.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
54
8 فئات / وظائف مرجعية
تكوين () تكوين كampلير.
النتيجة الافتراضية void nlc::SamplerInterface::configure (const DeviceHandle deviceHandle، const Sampالتكوين و sampالتكوين)
المعلمات [في] مقبض الجهاز [في] samplerConfiguration
إرجاع النتيجةVoid
يحدد الجهاز الذي سيتم تكوينهampلير ل. يحدد قيم سمات التكوين. يؤكد تشغيل وظيفة باطلة.
getData () يحصل على sampبيانات الصمام.
النتائج الافتراضيةampمجموعة البيانات nlc::SamplerInterface::getData (const DeviceHandle deviceHandle)
المعلمات [في] DeviceHandle تُرجع النتائجampcom.leDataArray
يحدد الجهاز الذي سيتم الحصول على البيانات له.
يسلم قampبيانات led، والتي يمكن أن تكون مصفوفة فارغة إذا كانت samplerNotify نشط في البداية.
getLastError () يحصل علىampالخطأ الأخير لير.
النتيجة الافتراضية void nlc::SamplerInterface::getLastError (const DeviceHandle deviceHandle)
إرجاع النتيجةVoid
يؤكد تشغيل وظيفة باطلة.
getState () يحصل علىampحالة لير.
النتائج الافتراضيةampحالة nlc::SamplerInterface::getState (const DeviceHandle deviceHandle)
إرجاع النتيجةamplerState
يسلم قampالدولة لير.
ابدأ () يبدأ كـampلير.
النتيجة الافتراضية void nlc::SamplerInterface::start (const DeviceHandle deviceHandle، Sampإشعار* samplerNotify، int64_t applicationData)
المعلمات [في] مقبض الجهاز [في] SamplerNotify [في] applicationData
إرجاع النتيجةVoid
يحدد الجهاز الذي سيبدأ تشغيلهampلير ل.
يحدد المعلومات الاختيارية المطلوب الإبلاغ عنها (يمكن أن تكون nullptr).
الخيار: إعادة توجيه البيانات المتعلقة بالتطبيق (مصفوفة ذات 8 بتات محددة من قبل المستخدم للقيمة / معرف الجهاز / الفهرس، أو التاريخ والوقت، ومؤشر المتغير / الوظيفة، وما إلى ذلك) إلى samplerNotify.
يؤكد تشغيل وظيفة باطلة.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
55
8 فئات / وظائف مرجعية
توقف () توقف كماampلير.
النتيجة الافتراضية void nlc::SamplerInterface::stop (const DeviceHandle deviceHandle)
المعلمات [في] DeviceHandle ترجع ResultVoid
يحدد الجهاز الذي سيتم إيقافهampلير ل. يؤكد تشغيل وظيفة باطلة.
8.35 ثانيةampبنية lerConfiguration
يحتوي هذا الهيكل على البياناتampخيارات تكوين ler (ثابتة أم لا).
الصفات العامة
الأمراض المنقولة جنسيا::ناقل TrackedAddresses
ما يصل إلى 12 عنوان OD لتكون sampيؤدى.
uint32_t
إصدار
نسخة الهيكل.
uint32_t
المدة ميلي ثانية
Sampمدة ling بالمللي ثانية، من 1 إلى 65535
uint16_t
فترة ميلي ثانية
Sampفترة لينغ في مللي ثانية.
uint16_t
numberOfSampليه
Sampالمبلغ.
uint16_t
preTriggerNumberOfSampليه
Sampكمية الزناد المسبق.
منطقي
useSoftwareImplementation
استخدام تنفيذ البرمجيات.
منطقي
باستخدامNewFWSamplerImplementation استخدم تطبيق FW للأجهزة ذات
إصدار FW v24xx أو أحدث.
SamplerMode
وضع
عادية أو متكررة أو مستمرةampلينغ.
SamplerTriggerCondition TriggerCondition
شروط بدء التشغيل: TC_FALSE = 0x00 TC_TRUE = 0x01 TC_SET = 0x10 TC_CLEAR = 0x11 TC_RISING_EDGE = 0x12 TC_FALLING_EDGE = 0x13 TC_BIT_TOGGLE = 0x14 TC_GREATER = 0x15 TC_GREATER_OR_EQUAL = 0x16 TC_LESS = 0x17 TC_LESS_OR_EQUAL = 0x18 TC_EQUAL = 0x19 TC_NOT_EQUAL = 0x1A TC_ONE_EDGE = 0x1B TC_MULTI_EDGE = 0x1C، OdIndex، triggerValue
SamplerTrigger
SamplerTrigger
الزناد للبدء كماampلير؟
السمات العامة الثابتة
ثابت constexpr size_t SAMPLER_CONFIGURATION_VERSION = 0x01000000 حجم ثابت ثابت size_t MAX_TRACKED_ADDRESSES = 12
8.36 ثانيةamplerNotify
استخدم هذه الفئة لتنشيط sampإشعارات عند البدء كـampلير. يحتوي الفصل على وظيفة العضو العام التالية.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
56
8 فئات / وظائف مرجعية
إعلام ()
يسلم إدخال الإشعار.
الفراغ الافتراضي nlc::SamplerNotify::notify (const ResultVoid & lastError، const Sampليرستات سampحالة lerState، ثابت std::vector <Sampالبيانات> & sampleDatas، int64_t applicationData)
المعلمات [في] lastError [في] samplerState
[في] قampleDatas [في] applicationData
يُبلغ عن الخطأ الأخير الذي حدث أثناء sampلينغ. تقارير قampحالة الجهاز في وقت الإشعار: غير مكون / مكون / جاهز / قيد التشغيل / مكتمل / فشل / تم الإلغاء. تقارير قampمجموعة بيانات LED. تقارير البيانات الخاصة بالتطبيق.
8.37 ثانيةampبنية البيانات
يحتوي هذا الهيكل على sampبيانات الصمام.
uin64_t رقم التكرار
يبدأ عند 0 ويزداد فقط في الوضع المتكرر.
الأمراض المنقولة جنسيا::ناقل<SampledValues> يحتوي على مجموعة من sampالقيم التي تقودها.
8.38 ثانيةampهيكل قيمة led
يحتوي هذا الهيكل على sampالقيم التي تقودها.
قيمة in64_t uin64_t CollectTimeMsec
يحتوي على قيمة عنوان OD المتعقب.
يحتوي على وقت التجميع بالمللي ثانية، نسبة إلى sampلو البداية.
8.39 ثانيةampبنية lerTrigger
تحتوي هذه البنية على إعدادات المشغل الخاصة بـ sampلير.
Sampحالة lerTriggerCondition
قيمة OdIndex uin32_t
شرط التشغيل:TC_FALSE = 0x00 TC_TRUE = 0x01 TC_SET = 0x10 TC_CLEAR = 0x11 TC_RISING_EDGE = 0x12 TC_FALLING_EDGE = 0x13 TC_BIT_TOGGLE = 0x14 TC_GREATER = 0x15 TC_GREATER_OR_EQUAL = 0x16 TC_LESS = 0x17 TC_LESS_OR_EQUAL = 0x18 TC_EQUAL = 0x19 TC_NOT_EQUAL = 0x1A TC_ONE_EDGE = 0x1B TC_MULTI_EDGE = 0x1C
OdIndex الخاص بالمشغل (العنوان).
قيمة الشرط أو رقم البت (يبدأ من البت صفر).
8.40 البنية التسلسلية
ابحث هنا عن خيارات الاتصال التسلسلي والسمات العامة التالية:
ثابت std::string ثابت SerialBaudRate
BAUD_RATE_OPTIONS_NAME = "معدل الباود التسلسلي" baudRate =SerialBaudRate struct
الإصدار: doc 1.4.2 / NanoLib 1.3.0
57
8 فئات / وظائف مرجعية
ثابت std::string ثابت SerialParity
PARITY_OPTIONS_NAME = "التكافؤ التسلسلي" التكافؤ = هيكل التكافؤ التسلسلي
8.41 بنية معدل الباود التسلسلي
ابحث هنا عن معدل الباود للاتصال التسلسلي والسمات العامة التالية:
ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت 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" 57600 = "57600" BAUD_RATE_115200 = "115200" BAUD_RATE_128000 = "128000" BAUD_RATE_256000 = "256000"
8.42 بنية التكافؤ التسلسلي
ابحث هنا عن خيارات التكافؤ التسلسلي والسمات العامة التالية:
ثابت std::string ثابت std::string ثابت std::string ثابت std::string ثابت std::string
لا شيء = "لا شيء" ODD = "فردي" EVEN = "زوجي" علامة = "علامة" مسافة = "مسافة"
الإصدار: doc 1.4.2 / NanoLib 1.3.0
58
9 رخصة
9 رخصة
رؤوس واجهة API NanoLib والملفات الإضافيةampتم ترخيص كود المصدر من قبل Nanotec Electronic GmbH & Co. KG بموجب ترخيص Creative Commons Attribution 3.0 Unported (CC BY). أجزاء المكتبة المتوفرة بتنسيق ثنائي (مكتبات الاتصالات الأساسية ومكتبات ناقل المجال) مرخصة بموجب ترخيص Creative Commons AttributionNoDerivatives 4.0 International License (CC BY ND).
المشاع الإبداعي
لن يحل الملخص التالي الذي يمكن قراءته محل الترخيص (التراخيص) نفسه. يمكنك العثور على الترخيص المعني على موقع Creativecommons.org ورابطه أدناه. أنت حر في:
CC BY 3.0
مشاركة: انظر الحق. التكيف: إعادة المزج والتحويل والبناء على
المواد لأي غرض، حتى تجاريا.
CC BY-ND 4.0
المشاركة: انسخ المادة وأعد توزيعها بأي وسيلة أو تنسيق.
لا يمكن للمرخص إلغاء الحريات المذكورة أعلاه طالما أنك تلتزم بشروط الترخيص التالية:
CC BY 3.0
CC BY-ND 4.0
الإسناد: يجب عليك منح الاعتماد المناسب، الإسناد: انظر اليسار. ولكن: تقديم رابط لهذا
توفير رابط للترخيص، والإشارة إلى ما إذا كان
ترخيص آخر.
تم إجراء التغييرات. يمكنك القيام بذلك في أي
لا توجد مشتقات: إذا قمت بإعادة المزج أو التحويل أو البناء
بطريقة معقولة، ولكن ليس بأي طريقة توحي
على المادة، لا يجوز لك توزيع
يشير إلى أن المرخص يؤيدك أو يؤيد استخدامك.
المواد المعدلة.
لا توجد قيود إضافية: لا يجوز لك التقديم لا توجد قيود إضافية: انظر اليسار. المصطلحات القانونية أو التدابير التكنولوجية التي من الناحية القانونية
منع الآخرين من القيام بأي شيء الترخيص
تصاريح.
ملاحظة: لا يلزمك الالتزام بالترخيص الخاص بعناصر المادة الموجودة في المجال العام أو عندما يكون استخدامك مسموحًا به بموجب استثناء أو تقييد معمول به.
ملاحظة: لا توجد ضمانات معينة. قد لا يمنحك الترخيص جميع الأذونات اللازمة للاستخدام المقصود. على سبيل المثالampقد تحد الحقوق الأخرى مثل الدعاية أو الخصوصية أو الحقوق الأخلاقية من كيفية استخدامك للمادة.
الإصدار: doc 1.4.2 / NanoLib 1.3.0
59
بصمة، جهة اتصال، إصدارات
©2024 Nanotec Electronic GmbH & Co.KGKapellenstr.685622 FeldkirchenGermanyTel.+49(0) 89 900 686-0Fax+49(0)89 900 686-50 info@nanotec.dewww.nanotec.com جميع الحقوق محفوظة. قد يحدث خطأ أو إغفال أو تغيير فني أو محتوى دون إشعار مسبق. العلامات التجارية/المنتجات المذكورة هي علامات تجارية لأصحابها ويجب التعامل معها على هذا النحو. النسخة الأصلية.
الوثيقة 1.4.2 2024.12 1.4.1 2024.10 1.4.0 2024.09 1.3.3 2024.07
1.3.2 2024.05 1.3.1 2024.04 1.3.0 2024.02
1.2.2 2022.09 1.2.1 2022.08 1.2.0 2022.08
+ تمت الإضافة > تم التغيير # تم الإصلاح > إعادة العمل على النموذج المقدمampليز.
+ NanoLib Modbus: تمت إضافة آلية قفل الجهاز لـ Modbus VCP. # NanoLib Core: تم إصلاح فحص حالة الاتصال. # NanoLib Code: تم تصحيح إزالة مرجع أجهزة الناقل.
+ NanoLib-CANopen: دعم محول Peak PCAN-USB (IPEH-002021/002022).
> NanoLib Core: تم تغيير واجهة استدعاء التسجيل (تم استبدال LogLevel بـ LogModule). # NanoLib Logger: تم تصحيح الفصل بين النواة والوحدات النمطية. # Modbus TCP: تم إصلاح تحديث البرامج الثابتة لـ FW4. # EtherCAT: تم إصلاح تحميل برنامج NanoJ لـ Core5. # EtherCAT: تم إصلاح تحديث البرامج الثابتة لـ Core5.
# Modbus RTU: تم إصلاح مشكلات التوقيت مع انخفاض معدلات البث بالباود أثناء تحديث البرنامج الثابت. # RESTful: تم إصلاح تحميل برنامج NanoJ.
# وحدات NanoLib Sampلير: القراءة الصحيحة لـ sampالقيم المنطقية بقيادة.
+ دعم Java 11 لجميع الأنظمة الأساسية. + دعم Python 3.11/3.12 لجميع الأنظمة الأساسية. + واجهة رد الاتصال الجديدة للتسجيل (انظر على سبيل المثالampليه). + أحواض رد الاتصال لـ NanoLib Logger. > تحديث المسجل إلى الإصدار 1.12.0. > وحدات NanoLib Sampler: الدعم الآن للبرامج الثابتة لوحدة التحكم Nanotec v24xx. > وحدات NanoLib Sampler: التغيير في البنية المستخدمة لـ sampتكوين لير. > وحدات NanoLib Sampler: الوضع المستمر مرادف لللا نهاية؛ يتم فحص حالة الزناد مرة واحدة؛ عدد سampيجب أن تكون الملفات 0.> وحدات NanoLib Sampler: الأولوية العادية للخيط الذي يجمع البيانات في وضع البرنامج الثابت. > وحدات NanoLib Sampler: خوارزمية مُعاد كتابتها لاكتشاف الانتقال بين حالة الاستعداد والتشغيل. # NanoLib Core: لا مزيد من انتهاك الوصول (0xC0000005) عند إغلاق جهازين أو أكثر باستخدام نفس جهاز الناقل. # NanoLib Core: لا مزيد من أخطاء التجزئة عند توصيل محول PEAK ضمن Linux. # وحدات NanoLib Sampلير: صحيحampقراءة قيم LED في وضع البرامج الثابتة. # وحدات NanoLib Sampler: التكوين الصحيح لـ 502X:04. # وحدات NanoLib Sampler: الخلط الصحيح للمخازن المؤقتة مع القنوات. # NanoLib-Canopen: زيادة مهلات CAN من أجل المتانة والمسح الصحيح بمعدلات الباود المنخفضة. # NanoLib-Modbus: خوارزمية الكشف عن VCP للأجهزة الخاصة (USB-DA-IO).
+ دعم EtherCAT.
+ ملاحظة حول إعدادات مشروع VS في تكوين مشروعك.
+ getDeviceHardwareGroup (). + getProfinetDCP (isServiceAvailable). + getProfinetDCP (validateProfinetDeviceIp). + autoAssignObjectDictionary (). + getXmlFileالاسم (). + ثابت std::string & xmlFileالمسار في addObjectDictionary (). + getSampواجهة المستخدم ().
المنتج 1.3.0 1.2.1 1.2.0 1.1.3
1.1.2 1.1.1 1.1.0
1.0.1 (B349) 1.0.0 (B344) 1.0.0 (B341)
الإصدار: doc 1.4.2 / NanoLib 1.3.0
60
10 البصمة، الاتصال، الإصدارات
وثيقة
1.1.2 2022.03 1.1.1 2021.11 1.1.0 2021.06 1.0.1 2021.06 1.0.0 2021.05
+ تمت الإضافة > تم تغيير # تم الإصلاح + rebootDevice (). + رمز الخطأ ResourceUnavailable لـ getDeviceBootloaderVersion ()، و~VendorId ()، و~HardwareVersion ()، و~SerialNumber، و~Uid. > firmwareUploadFromFile الآن قم بتحميل البرنامج الثابت منFile (). > firmwareUpload () الآن uploadFirmware (). > bootloaderUploadFromFile () الآن قم بتحميل BootloaderFromFile (). > bootloaderUpload () الآن uploadBootloader (). > bootloaderFirmwareUploadFromFile () لتحميل برنامج BootloaderFirmware منFile (). > bootloaderFirmwareUpload () الآن uploadBootloaderFirmware (). > nanojUploadFromFile () قم الآن بتحميل NanoJFromFile > nanojUpload () الآن uploadNanoJ (). > objectDictionaryLibrary () الآن getObjectDictionaryLibrary (). > String_String_Map الآن StringStringMap. > NanoLib-Common: تنفيذ أسرع لـ listAvailableBusHardware و openBusHardwareWithProtocol مع محول Ixxat. > NanoLib-CANopen: الإعدادات الافتراضية المستخدمة (معدل بود 1000 كيلو بايت، رقم ناقل Ixxat 0) إذا كانت خيارات أجهزة الناقل فارغة. > NanoLib-RESTful: إذن المسؤول أصبح قديمًا للتواصل مع محملات التمهيد Ethernet ضمن Windows إذا كان برنامج التشغيل npcap / winpcap متاحًا. # NanoLib-CANopen: تفتح أجهزة الناقل الآن دون تعطل مع خيارات فارغة. # NanoLib-Common: openBusHardwareWithProtocol () بدون تسرب للذاكرة الآن.
+ دعم Linux ARM64. + دعم تخزين USB الشامل / REST / Profinet DCP. + checkConnectionState (). + getDeviceBootloaderVersion (). + ResultProfinetDevices. + NlcErrorCode (تم استبدال NanotecExceptions). + NanoLib Modbus: تم توحيد VCP / موزع USB إلى USB. > تعيد عملية فحص Modbus TCP النتائج. < يظل زمن انتقال اتصال Modbus TCP ثابتًا.
+ المزيد من ObjectEntryDataType (معقدة واحترافيةfile-محدد). + يتم إرجاع IOError إذا لم يجد connectDevice () وscanDevices () أي شيء. + مهلة اسمية تبلغ 100 مللي ثانية فقط لـ CanOpen / Modbus.
+ دعم Modbus (بالإضافة إلى USB Hub عبر VCP). + الفصل إنشاء مشروع Linux الخاص بك. + extraHardwareSpecifier إلى BusHardwareId (). + extraId_ و extraStringId_ إلى DeviceId ().
+ setBusState (). + getDeviceBootloaderBuildId (). + getDeviceFirmwareBuildId (). + getDeviceHardwareVersion (). # إصلاحات الأخطاء.
طبعة.
منتج
0.8.0 0.7.1 0.7.0 0.5.1 0.5.1
الإصدار: doc 1.4.2 / NanoLib 1.3.0
61
المستندات / الموارد
![]() |
البرمجة النانوية NanoLib C++ [بي دي اف] دليل المستخدم NanoLib برمجة C، برمجة C، برمجة |