ModbusMaster
تطبيق Windows مستقل يدعم بروتوكولات Modbus RTU
و TCP
و UDP
و RTUoverTCP
و RTUoverUDP
و ASCIIoverRTU
و ASCIIoverTCP
و ASCIIoverUDP
.
تم أيضًا تضمين إصدارات Mono لنظامي التشغيل Linux وMac OS X، وهي إصدارات VB Net، لذا:
- بالنسبة لنظام التشغيل Linux، سيتعين عليك تثبيت الحزم
mono-complete
mono-vbnc
- قد يكون نظام Mac مختلفًا اعتمادًا على إصدار OS X، وربما يتم تثبيت حزم
mono
mono-basic
إذا تم تمكين جدار الحماية، فقد يطالبك بالسماح لهذا التطبيق بالاتصال على الشبكة:
- عادةً يجب السماح له بالاتصال على الشبكة الخاصة وإلا فقد لا يعمل بشكل صحيح
- لا تسمح بالوصول العام إلا إذا كنت تعرف ما تفعله
- بمجرد الانتهاء من الاختبار، تذكر إزالة هذا التطبيق من قائمة التطبيقات المسموح بها لجدار الحماية
تم تصميم التطبيق للسماح بتشغيل مثيلات متعددة من التطبيق في نفس الوقت، على سبيل المثال:
- استخدم نفس البروتوكول لكل مثيل ولكن بأرقام منافذ مختلفة، على غرار:
- IP 127.0.0.1 منفذ TCP 501 و IP 127.0.0.1 منفذ TCP 502
- استخدم مزيجًا من البروتوكولات المختلفة بمساعدة أدوات أخرى (مثل com0com لبروتوكول RTU على نظام التشغيل Windows)
يعتمد كل هذا على مكتبات nModbus .NET 3.5 المعدلة، حقوق الطبع والنشر (ج) لعام 2006 لسكوت ألكساندر:
- يتم تضمينها كمورد لإصدار Windows ولكنها منفصلة لإصدار Mono
مخصص للاستخدام كأداة اختبار سريعة:
- يمكن اختباره باستخدام نظيره ModbusSlaveSimulation (راجع الفيديو أدناه)
سيكون البديل السهل للاستخدام بدلاً من ذلك هو برنامج AdvancedHMI نظرًا لأنه فعال للغاية ومجاني.
لقطة الشاشة
![صفحة البداية](https://images.downcodes.com/uploads/20250104/img_677955262abcb30.png)
الوظيفة
- اقرأ التعليقات الموجودة داخل النموذج وقم أيضًا بتحريك الماوس فوق التسميات للحصول على تلميحات.
- لا يوجد عنونة إزاحة (حيث ينتقل xxxxx من 00000 إلى 65534):
- الملفات = 0xxxxxx
- المدخلات المنفصلة = 1xxxxxx
- سجلات الإدخال = 3xxxxxx
- سجلات القابضة = 4xxxxxx
- بصرف النظر عن
Int16
، وهو عنوان التسجيل فقط بدون تعديل، يدعم هذا التطبيق أيضًا:- معدّلات
U
و F
و L
و UL
و S
(المستخدمة في UInt16
و Float32
و Int32
و UInt32
و String
)
- تمت إضافة دعم لقيم 64 بت - Float64، Integer64 الموقع وغير الموقع:
- استخدم معدلات
FQ
و LQ
و UQ
(حيث تشير Q
إلى Quad Word)
- تمت إضافة دعم تجريبي لقيم 128 بت - Integer128 الموقعة وغير الموقعة:
- استخدم معدّلات
LO
و UO
(حيث يشير O
إلى Octa Word)
- كما أنه يدعم قراءة/كتابة البت/الأحرف:
- حدد إما البتات/الأحرف المتتالية ضمن عنصر واحد أو البت/الحرف الفردي الدقيق من كل عنصر من العناصر المتعددة
- ستكون هناك حاجة إما إلى قيمة واحدة أو العدد الدقيق للقيم المفصولة بفواصل للكتابة إذا كان عدد
Points
> 1
- بالنسبة للبروتوكولات المستندة إلى RTU، على جهاز كمبيوتر واحد، يمكن لهذا التطبيق استخدام المساعدة من:
- برنامج com0com Windows لتوفير أزواج المنافذ التسلسلية الافتراضية
- يتيح TextBox الإضافي الإدخال اليدوي للمنفذ التسلسلي، المخصص لنظام التشغيل Linux، بحيث يمكن الوصول إلى أزواج المنافذ الافتراضية tty0tty، مثل
/dev/tnt0
<=> /dev/tnt1
- تمت إزالة هذا المربع في إصدار Mac Mono
- تدعم المكتبة
Masked Bit Write
، رمز الوظيفة 22 (0x16H أو FC22) - يتضمن التطبيق أيضًا الكود المدمج للأجهزة التابعة التي لا تدعم
FC22
:- يستلزم ذلك عملية
read-modify-write
والتي يمكن أن تستغرق بعض الوقت ويمكن أن تحل محل القيم التي تغيرت أثناء تشغيلها
هام: توخي الحذر عند محاولة كتابة أي قيمة إلى PLC.
الاستخدام
-> لنظام التشغيل Windows
- إما أن تستخدم ملفات Windows القابلة للتنفيذ من مجلد
exe
أو اتبع الإرشادات الموضحة أدناه لإنشائها بنفسك:- تنزيل وتثبيت إصدار مجتمع Visual Studio (من الأفضل 2019)
- قم بتنزيل واستخراج الملف المضغوط لهذا المشروع
- افتح هذا كمشروع موجود في Visual Studio، ومن القائمة، قم بما يلي:
- بناء/إنشاء الحل (أو اضغط على Ctrl-Shift-B)
- التصحيح/بدء التصحيح (أو اضغط على F5) لتشغيل التطبيق
- حدد موقع ملف EXE الذي تم إنشاؤه في المجلد
/bin/Debug
وانسخه إلى المجلد المفضل لديك أو إلى سطح المكتب
-> للمونو
- تأكد من تثبيت Mono على جهاز الكمبيوتر الخاص بك:
- كل من الحزم
mono-complete
mono-vbnc
لنظام التشغيل Linux - بالنسبة لنظام التشغيل Mac، قد تحتاج إلى التجربة، وربما تثبيت حزم
mono
mono-basic
- قم بتنزيل واستخراج الملف المضغوط لهذا المشروع وحدد موقع أرشيف Mono zip في المجلد
Mono
- قم باستخراج 4 ملفات ومن المحتمل إعادة تسمية المجلد و/أو ملف exe الذي تم إنشاؤه حديثًا إلى شيء أقصر إذا كنت ترغب في ذلك، فقط لجعل التنقل في الوحدة الطرفية أسرع
- افتح الوحدة الطرفية، وانتقل إلى المجلد واكتب:
sudo mono ModbusMaster.exe
:- على نظام Mac، قد تحتاج إلى التبديل إلى حساب المستخدم المتميز
su
- لاختبار بروتوكولات RTU، على Linux، يمكنك تثبيت واستخدام أزواج المنافذ الافتراضية tty0tty بينما يبدو أن إصدارات OS X الأحدث على Mac تحتوي على محطات طرفية زائفة - أزواج من الأجهزة مثل
/dev/ptyp3
<=> /dev/ttyp3
ملاحظة لمستخدمي Mac: تم اختبار ذلك على كمبيوتر iMac G5 PowerPC القديم المزود بإصدار Mono v2.10.2. كانت بعض السلوكيات الغريبة موجودة بمعنى أن التطبيق كان يفقد التركيز وبالتالي تعطل اتصال TCP في وضع القراءة التلقائية. يوجد مربع نص به علامة X حمراء يمكنك النقر فوقه لمحاولة الحفاظ على التركيز (إذا قمت بشيء آخر بعد ذلك، فانقر فوقه مرة أخرى). وبما أنني لا أستطيع اختباره بأي طريقة أخرى، فالأمر متروك لك للتجربة.
فيديو
Modbus.TCP.Communication.mp4
رخصة
مرخص بموجب ترخيص MIT - راجع ملف README.txt داخل مجلد الموارد.
العلامات التجارية
أي وجميع العلامات التجارية، سواء بشكل مباشر أو غير مباشر في هذا المشروع، مملوكة لأصحابها.
موارد مفيدة
منتدى موقع AdvancedHMI، وهو مشروع آخر مفتوح المصدر.