Professional Documents
Culture Documents
nZLOWS PDF
nZLOWS PDF
إعــداد
م .عـمـر صهيـب زعـرور
تحتوي هذه الرسالة على شرح مفصل لبروتوكول الـ OPCأحد أهم وأشهر بروتوكوالت الشبكات
الصناعية و من أكثرها انتشا اًر اليوم.
تم تقسيم هذه الرسالة إلى عدة فصول ،في الفصل األول تم التطرق لمشكلة انعدام التوافق بين
المكونة للشبكة الصناعية ،وتم إيضاح الركائز التي جعلت من هذه المشكلة سبباً لوالدة
ّ األجزاء
معيار الـ .OPC
في الفصل الثاني تم التعريف بمؤسسة الـ OPCوأهم األسس التي قامت عليها مع تعريف عام
بمعيار الـ OPCودالالت تسميته ،باإلضافة إلى تعريف بعض المفاهيم العامة التي يعتمد عليها
المعيار.
في الفصل الثالث تم الغوص في بنية المخدم/زبون التي قام عليها المعيار ومبدأ عمله .أما في
الفصل الرابع فقد تم التطرق للبنية البرمجية التي قام عليها معيار OPCواألنواع المختلفة لواجهاته،
وتم شرح سلبياته التي كانت فيما بعد سبباً في وضع معيار جديد للـ .OPC
ومن ثم تناولنا المعيار الجديد لبروتوكول الـ OPCبشيء من التفصيل وتم توضيح كل من بنيته
وطبقاته البرمجية ومواصفاته وميزاته.
في الفصل الخامس تم تناول الجانب العملي لمعيار الـ ،OPCحيث تم إيضاح كيفية وضع معيار
الـ OPCموضع التطبيق وشرح شقي العمل العتادي والبرمجي الالزم لتنفيذ شبكة صناعية باستخدام
البروتوكول ،ومن ثم تم الشرح وبشكل مفصل كيفية ربط البروتوكول مع أشهر برمجيات السكادا.
في الفصل السادس تم عرض بعض الدراسات المرجعية المهتمة بدراسة أداء بروتوكول الـ،OPC
وعلى ضوء هذه الدراسات ،تم إخضاع بروتوكول الـ OPCلتجارب إجهاد واختبارات أداء ُبغية
مؤيد باألرقام عن إمكانيات البروتوكول وقدرته على القيام بوظيفته في
الخروج بتصور ملموس ّ
بيئات المشاريع التحكمية المحلية والموزعة وتحديد أهم العوامل التي تؤثر على أدائه.
1
فهرس المحتويات
2
الفصل : 4أنواع بروتوكول الـ OPCوبنيته البرمجية44 .........................................
1-1-4واجهة النفاذ إلى البيانات اللحظية )41 ............OPC Data Access (OPC DA
2-1-4واجهة األحداث واإلنذارات (43 .......... OPC Alarms and Events)OPC A&E
3-1-4واجهة النفاذ إلى البيانات المخزنة 44 ........... OPC Historical Data Access
45 .....................................................................................
3-4عيوب معيار الـ OPC DAوالحافز الذي دفع باتجاه وضع معيار جديد للـ 54 .... OPC
4-4معيار الـ OPCذو البينة الموحدة )55 ....... OPC Unified Architecture (OPC UA
1-5كيف نبدأ تنفيذ مشروع باستخدام بروتوكول الـ 18 ...........................OPC DA
3
4-5بناء زبون OPCباستخدام الماتالب84 ...............................................
الفصل : 1إختبار أداء الـ OPCفي الشبكات المحلية والموزعة 93 .............................
1-1الدراسة األولى :اختبار كفاءة استخدام الموارد 93 ...... Resource Efficiency Testing
2-1الدراسة الثانية :اختبار األداء واالنتاجية 97 ......... Throughput Performance Tests
3-1اختبار أداء بروتوكول الـ OPCمن خالل قياس سرعة المخدم في تلبية طلبات زبائنه في
البيئات المحلية والموزعة141 ...............................................................
1-4-1التجربة األولى :اختبار أداء الـ OPCعلى حاسب واحد 141 .......... Localhost
2-4-1التجربة الثانية :اختبار أداء الـ OPCفي البيئة الموزعة 114 ......... Remote PCs
3-4-1مقارنة أداء البروتوكول الـ OPCفي البيئة المحلية مع أدائه في البيئة الموزعة113 .
5-1أداء األنظمة التي تعمل وفق بروتوكول الـ OPCمقارنة مع األنظمة التقليدية 114 ......
الملحقات121 .................................................................................
4
فهرس األشكال
الشكل :1-1تعريف متحكم يتصل بثالث برمجيات سكادا مختلفة قبل ظهور الـ13 .........OPC
الشكل :2-1آلية تعريف ثالث متحكمات منطقية تستخدم برمجية السكادا 14 ...................
الشكل :3-1بنية نظام تحكم هجين بدون استخدام الـ15 ..................................OPC
الشكل :4-1مشروع تحكم هجين يعمل وفق بروتوكل الـ 11 ..............................OPC
الشكل :1-2شعار مؤسسة الـ 18 ....................................................... OPC
الشكل :2-2التوزع الجغرافي ألعضاء مؤسسة الـ 19 .................................... OPC
الشكل :3-2الشعار الفضي لمنتج الـ 24 ................................................ OPC
الشكل 4-2الشعار الذهبي لمنتج الـ 21 ................................................. OPC
الشكل :5-2الطبقة التي يعمل فيها بروتوكول الـ 22 .....................................OPC
الشكل :1-2تسمية بروتوكول الـ 23 .....................................................OPC
الشكل :7-2التسمية الجديدة لمعيار الـ24 ............................................... OPC
الشكل :8-2اتصال المخدم والزبون باستخدام قناة 25 ...................................COM
الشكل :9-2اتصال المخدم والزبون باستخدام قناة 21 .................................DCOM
الشكل :1-3االتصال بين تطبيقات سكاد والمتحكمات قبل وبعد استخدام الـ 28 .......... OPC
الشكل :2-3بنية المخدم/زبون التي يعتمد عليها الـ 29 ...................................OPC
الشكل :3-3طريقة عمل مخدم الـ 31 .................................................... OPC
الشكل :4-3المجموعات ضمن مخدم 34 ............................................... OPC
الشكل :5-3واجهة 31 .......................................................... OPC Server
الشكل :1-3زبون متصل مع عدة مخدمات37 ...............................................
الشكل :7-3تشكيالت المخدم/زبون الممكنة وفق بروتوكول الـ38 ......................... OPC
الشكل :1-4مواصفات معيار الـ 44 .................................................... OPC
الشكل :2-4أجزاء واجهة النفاذ إلى البيانات 42 .................................... OPC DA
الشكل :3-4واجهة النفاذ إلى البيانات وواجهة األحداث واالنذارات 43 ..........................
الشكل :4-4واجهة 44 ..........................................................OPC HDA
الشكل :5-4المواصفات العام لبروتوكول الـ 41 ..........................................OPC
الشكل :1-4تبادل البيانات بين مخدمات الـ OPCمن خالل 47 .....................OPC DX
5
الشكل :7-4بنية الـ OPCالنموذجية(القياسية) 48 .............................................
الشكل :8-4توابع الواجهة المخصصة49 .....................................................
الشكل :9-4المخطط الزمني إلصدارات معيار الـ OPCبين عامين 51 ......... 2447 - 1995
الشكل :14-4شعار بروتوكول الـ OPCذو البنية الموحدة 55 .................................
الشكل :11-4البنية المعمارية خدمية التوجه التي يعتمد عليها معيار الـ 51 ........... OPC UA
الشكل :12-4الفرق بين الـ OPCالكالسيكي وال OPCذو البنية الموحدة57 ....................
الشكل :13-4الطبقات التي يعمل فيها بروتوكول الـ 58 ..............................OPC UA
الشكل :14-4الفارق في بنية المخدم/زبون بين الـ OPCالكالسيكي والموحد 58 .................
الشكل :15-4العقد والعالقات بينها في معيار الـ 14 .................................OPC UA
الشكل :11-4الطبقات البرمجية لمعيار الـ OPCذو البنية الموحدة 11 .........................
الشكل :17-4أجزاء مواصفات 13 .................................................. OPC UA
الشكل :18-4عملية المصافحة بين المخدم والزبون في معيار 15 .................... OPC UA
الشكل :1-5البنية العامة لشبكة صناعية تعمل وفق بروتوكول الـ 18 ................ OPC DA
الشكل :2-5مخدم OPCمن شركة OPCTechمخصص للمتحكم المنطقي 74 ....... DELTA
الشكل :3-5واجهة مخدم الـ OPCالمخصصة لتعريفه على المنفذ الفيزيائي 71 ................
الشكل :4-5واجهة مخدم الـ OPCالمخصصة لتعريفه على المتحكم المنظقي 71 ..............
الشكل :5-5واجهة مخدم الـ OPCالمخصصة لتعريف العناصر72 ...........................
المعرفة ضمن مخدم الـ 73 ........... OPC
ّ الشكل :1-5واجهة لعرض القيم اللحظية للعناصر
ضمنة داخل مخدم الـ 74 ............................ OPC الشكل :7-5واجهة زبون الـُ OPC
المتَ ّ
الشكل :8-5تحديد البيانات المطلوب عرضها ضمن زبون الـ74 .........................OPC
الشكل :9-5واجهة لزبون OPCمدمج مع المخدم تظهر فيها قيمة أحد العناصر75 ............
الشكل :14-5إنشاء مشروع جديد في برنامج 71 .................................... WINCC
الشكل :11-5إضافة قناة اتصال لبروتوكول الـ OPCفي برنامج 71 ..................WINCC
الشكل :12-5تعريف مجموعة ضمن قناة االتصال OPCفي برنامج 77 ............. WINCC
الشكل :13-5اختيار مخدم الـ OPCفي برنامج 77 .................................WINCC
الشكل :14-5تعريف متحول ضمن برنامج WINCCوربطه بمخدم الـ78 ................ OPC
الشكل :15-5انشاء صفحة رسومية ضمن برنامج 79 .............................. WINCC
الشكل :11-5تجهيز الواجهة الرسومية ضمن برنامج WINCCلعرض قيمة عنصر 79 . OPC
1
الشكل :17-5وضعية التشغيل بالزمن الحقيقي لبرنامج الـ 84 .......................... wincc
الشكل :18-5واجهة مخدم الـ OPCالخاص باألردوينو 81 .....................................
الشكل :19-5إضافة مكتبة الـOPCإلى برنامج األردوينو82 .................................. .
الشكل : :24-5زبون OPCيستعرض بيانات مخدم الـ83 ......................Arduino OPC
الشكل :21-5خوارزمية برمجة OPC Clientباستخدام الماتالب 84 ............................
الشكل :22-5واجهة زبون الـ OPCالمبرمجة باستخدام الـ91 ....................... MATLAB
الشكل :1-1اتصال المخدم بمصادر بيانات متنوعة ضمن اختبار كفاءة استخدام الموارد 94 ....
الشكل :2-1اتصال المخدم بأكثر من زبون ضمن اختبار كفاءة استخدام الموارد 94 .............
الشكل :3-1أنواع تجارب قطع االتصال في اختبار كفاءة استخدام الموارد91 ...................
الشكل :4-1اتصال الزبون مع عدة مخدمات في اختبار كفاءة استخدام الموارد91 ...............
الشكل :5-1واجهة أداة اختبار بروتوكول الـ143 ......................................... OPC
الشكل :1-1مهام واجهة أداة اختبار األداء144 ................................................
الشكل :7-1تعريف المتحوالت ضمن مخدم الـ OPCوضبطها على وضعية المحاكاة 145 ........
الشكل :8-1التجربة األولى :توزع المخدم والزبائن على حاسب وحيد147 ........................
الشكل :9-1أثر زيادة عدد المتحوالت وعدد الزبائن على زمن استجابة المخدم/حاسب وحيد 149 .
الشكل :14-1بنية المخدم/زبون في البيئة الموزعة 114 ........................................
الشكل :11-1أثر زيادة عدد المتحوالت وعدد الزبائن على زمن استجابة المخدم /عدة
حواسب 112 ..................................................................................
الشكل :12-1أثر زيادة عدد المتحوالت وعدد الزبائن على زمن استجابة المخدم /حاسب وحيد +
حواسب متعددة113 ...........................................................................
الشكل :13-1مقارنة بروتوكول الـ OPCمع بروتوكوالت أخرى من حيث زمن التنفيذ 114 .........
الشكل :14-1مقارنة بروتوكول الـ OPCمع بروتوكوالت أخرى من حيث الكلفة 115 ..............
الشكل :41تفعيل حساب الـ122 ........................................................Guest
الشكل :2تفعيل قناة 123 ............................................................ DCOM
الشكل :43منح سماحية النفاذ 124 ...........................................................
الشكل :44تفعيل وإطالق األذونات 124 ......................................................
7
فهرس الجداول
8
جدول تعريف المصطلحات
OPC : OLE For Processing Control ربط الكائنات وتضمينها للتحكم بالعمليات
PLC: Programmable Logic المتحكم المنطقي القابل للبرمجة ،تجهيزة لها مداخل
Controller ومخارج تبرمج للتحكم بالمشاريع.
نظام تحكم موزع يشبه الـ PLCلكن ذو مواصفات
DCS: Distributed Control System
أعلى ،يمتاز باالمتداد على بقع جغرافية كبيرة.
وحدة التحصيل البعيدة(الطرفية) وهي أي جهاز
يوضع في مكان بعيد ليقوم بعمليات التحكم أو
RTU: Remote Terminal Unit
المراقبة ليرسل بعدها هذه المعلومات لوحدة معالجة
مركزية.
9
الفصل األول
المقدمة
Introduction
يعرض هذا الفصل بعض المشاكل التي عانت منها أنظمة التحكم كمشكلة انعدام التوافقية وصعوبة
شكلت
المكونة للمنظومة التحكمية ،ويوضح كيف ّ
ّ النفاذ ومشاركة البيانات بين األجزاء المختلفة
هذه المشاكل حاف اًز لدى الباحثين دفعتهم للتوحد إليجاد حل تمّثل فيما بعد بوضع معيار عالمي
جديد اسمه الـ. OPC
14
المقدمة الفصل األول
الفصل : 1المقدمة
في مطلع التسعينات ،شهد استخدام الحاسب وبرمجيات األتمتة المعتمدة على الحاسب نمواً كبي ار
وباألخص الحواسب التي تعمل بنظام التشغيل ويندوز ،حيث تم توظيف تلك البرمجيات في عمليات
المنّفذة ،فانطلقت كل شركة ُمنتجة لتجهيزات أو لبرمجيات التحكم إلى
المراقبة والتحكم بالمشاريع ُ
المصممة وفقاً لرؤيتها وفلسفتها بدون
االستثمار في هذا المجال ،وبدأت بطرح منتجاتها الخاصة ُ
أي تنسيق مع الشركات األخرى العاملة في نفس المجال.
مع مرور الزمن ،أدى ذلك إلى ظهور مشكلة باتت تصنّف كواحدة من أكبر المشكالت التي واجهت
العاملين في مجال التحكم واألتمتة وهي مشكلة انعدام التوافق ،وما نتج عنها من صعوبة النفاذ
وتشارك البيانات ،وغدت من أكبر العقبات أمام التكامل واستمرار التطوير.
ونتيجة لذلك ظهرت أصوات نادت بضرورة وضع معايير موحدة تضبط العمل والعاملين في مجال
التحكم.
حولت جهود بناء أنظمة أتمته موحدة من ترف وخيار إلى حاجة إن أحد أهم المشكالت التي ّ
وضرورة ،هي مشكلة النفاذ إلى بيانات تجهيزات التحكم ،حيث أن فضاء التحكم غدا يحوي أعداد
ال تحصى من أنظمة التحكم المختلفة ،مضافاً إليها المئات من البروتوكوالت المتنوعة.
إن مشكلة النفاذ إلى البيانات -من حيث المبدأ -مشابهة تماما لما كانت تعاني منه التطبيقات
البرمجية في النفاذ إلى الطابعات في نظام التشغيل القديم ،DOSحيث كان كل تطبيق برمجي
يريد استخدام الطابعة ،يحتاج مطورو التطبيق لكتابة تعاريف خاصة به من أجل جميع الطابعات
التي يريد التطبيق التعامل معها ،استمرت هذه المشكلة إلى أن قامت شركة مايكروسوفت بإيجاد
حل تمثل بدعم تعريف الطابعات ودمجها في نظام التشغيل ،حيث قامت بإنشاء طبقة وسيطة
Interfaceضمن نظام التشغيل ،أٌسند إلى هذه الطبقة مسؤولية تخديم جميع التطبيقات التي ترغب
صنع الطابعة وليس من قبل
ؤمن من قبل ُم ّ
بالنفاذ إلى الطابعات ،وبالتالي أصبح تعريف الطابعة ُي ّ
مطوري البرمجيات.
صنع الطابعة في تأمين تعريف لطابعته على نظام التشغيل فقط،
بمعنى أخر ،انحصرت وظيفة ُم ّ
ووظيفة نظام التشغيل إتاحة وتنظيم استخدام هذه الطابعة بين مختلف التطبيقات ،وبالتالي لم يعد
المقدمة الفصل األول
على مطوري البرمجيات سوى التعامل مع الطبقة الوسيطة المسؤولة عن الطباعة في نظام التشغيل
بغض النظر عن نوع ومصدر الطابعة.
ذات المشكلة و بكل تفاصيلها ظهرت في مجال التحكم ،وبالتحديد لدى كل من الشركات المنتجة
لشاشات التخاطب البشري) Human Machine Interface (HMIوالشركات المطورة لبرمجيات
التحكم اإلشرافي وتحصيل البيانات )،Supervisory Control and Data Acquisition (SCADA
حيث أن كل برمجية سكادا تحتاج عند االتصال بمتحكم ما إلى كتابة تعريف Driverخاص ُيناسب
هذا المتحكم ،ونتيجة لذلك احتاج المطورون لشاشات وبرمجيات سكادا إلى كتابة تعاريف لجميع
المتحكمات الموجودة في فضاء التحكم ،وهذا أمر في غاية الصعوبة ،وشكل عبئاً و عائقا كبي ار
أمام عمليات التطوير وضاعف كثي اًر من كلف اإلنتاج.
وأيضا في الجهة المقابلة ،في كل وقت كانت شركة ما ترغب بإنتاج متحكم جديد ( PLCعلى سبيل
المثال) ،كان هناك وقت وجهد كبيران سيبذالن في التعاون مع الشركات المزودة للبرمجيات
الصناعية SCADAوشاشات التخاطب البشرية HMIبهدف بناء تعريف Driverللمتحكم الجديد
بحيث يصبح بمقدور هذه البرمجيات إنشاء اتصال وتناقل البيانات مع المتحكم الجديد.
وبهذا نستنتج أن المشكلة انعدام التوافقية مزدوجة ،عانى بسببها كل من مطوري برمجيات األتمتة
الصناعية ومصنعي التجهيزات الصناعية على ٍ
حد سواء.
إن الهدف الرئيسي من األبحاث في فترة التسعينات كان إلغاء الجهد المضاعف المبذول من قبل
مصنعي التجهيزات التحكمية من جهة ،وشركائهم المبرمجين العاملين في تطوير أنظمة سكادا من
جهة أخرى.
لمزيد من االيضاح وتسليط الضوء على مشكلة انعدام التوافق وصعوبة النفاذ وتشارك البيانات،
نستعرض المثالين التاليين ،كل مثال يتناول المشكلة من منظور معين:
المثال األول :من منظور الشركات المصنعة للمتحكمات الصناعية:
نفترض وجود شركة ما طورت المتحكم المنطقي Aوتريد تعريفه على ثالث برمجيات سكادا،
ولتكن:
Citect SCADAمن شركة Schneider
Wincc SCADAمن شركة Siemens
PcVue SCADAمن شركة ARC
12
المقدمة الفصل األول
ينبغي على مطوري الجهاز Aالتعاون مع مطورين من كل شركة من الشركات السابقة بهدف
التعرف على البنية البرمجية لكل منها ،هدفهم من ذلك كتابة ثالث تعاريف منفصلة للمتحكم
ّ
الصناعي ،Aتعريف واحد مخصص لكل برمجية كما يبين ذلك الشكل(.)1-1
الشكل :1-1تعريف متحكم يتصل بثالث برمجيات سكادا مختلفة قبل ظهور الـOPC
بفرض لدينا ثالثة متحكمات تنتمي لشركات مختلفة ،كما يبين الشكل( ،)2-1التجهيزات الثالث
تتحكم بمعمل ما ،لمراقبة المعمل والتحكم بعمله ينبغي أن تحوي برمجية المراقبة والتحكم SCADA
يوضح المثال السابق حجم العمل الملقى على كاهل مطوري برمجية تحكم SCADAتدعم ثالث
متحكمات فقط ،فلنا أن نتخيل حجم العمل على برمجية سكادا تلبي حاجة السوق و ُ
المتمثلة بدعم
مئات الشركات التي تنتج عشرات المتحكمات الصناعية تعمل ببروتوكوالت مختلفة.
يمكننا اجمال المشكالت التي عانت منها الشبكات الصناعية والتي دفعت الباحثين إلى السعي
إليجاد معيار موحد يضبط الفوضى السائدة في فضاء التحكم واألتمتة بما يلي:
.1ال يوجد برمجية سكادا –حتى المشهورة منها-قادرة على التعرف على جميع المتحكمات
الصناعية التي تنتجها شركات التحكم المختلفة نظ ار لعددها الهائل وتنوع اصداراتها.
.2لكل شركة أتمته منتجات خاصة فيها وبروتوكوالت من إنتاجها تدعمها مما أدى إلى
تضخم وتوالد عدد كبير من البروتوكوالت الخاصة.
.3بناء نظام تحكم اعتماداً على بروتوكول خاص من شركة معينة يجعل عمليات الصيانة
والتطوير حك اًر عليها وعلى المنتجات التي تدعمها ،الذي يؤدي بدوره لتكاليف باهظة
يدفعها أصحاب المصانع والمنشآت.
.4تدريب المهندسين والمستخدمين على جميع البروتوكوالت التي تربط بين المتحكمات
أمر في غاية الصعوبة.
وبرمجيات السكادا يعد اً
إن التعقيد الناتج عن تعدد البروتوكوالت جعل من إمكانية تنفيذ نظام تحكم ومراقبة هجين (متعدد
أمر صعباً وليس هيناً على مصممي
المتحكمات ومتعدد البرمجيات) لمشروع متوسط الحجم اً
المشروع ومهندسي التنفيذ.
14
المقدمة الفصل األول
يبين الشكل( )3-1بنية مشروع تحكم هجين مسؤول عن مراقبة محطة تحويل كهربائية ،يحوي
المشروع أربع أنواع من المتحكمات المنطقية ( ،)PLCsكل متحكمين موصولين مع برنامج مراقبة
وتحكم( ،)SCADAبرنامجي السكادا يتصالن مع غرفة مراقبة وتحكم مركزية ويخزنان البيانات
بقاعدة بيانات منفصلة ،يمكن مراقبة هذه المنشأة من مكان بعيد ( )Remote Accessعبر تطبيق
ويب ملحق.
في البنية السابقة ،هناك ما ال يقل عن 8بروتوكوالت مختلفة يتم من خاللها تبادل البيانات بين
تجهيزات الشبكة الصناعية وبرمجياتها ،تشكل في مجموعها الشبكة الصناعية العامة المسؤولة عن
إدارة المحطة والتحكم فيها ،وهنا قد يتبادر إلى األذهان األسئلة التالية:
يعدل عليها ،أي برمجية لها األولوية؟
.1البيانات في الشبكة الصناعية السابقة ،من ّ
.2ما الذي سيحدث عند توقف إحدى التجهيزات ،هل يمكن استبدالها بسهولة؟
.3هل يمكن إجراء صيانة لمكون من مكونات الشبكة بدون أن يؤثر ذلك على العمل
الكلي للمنشأة؟
.4هل يمكن إجراء عمليات التطوير والتوسعة بسهولة؟
.5هل من السهولة إعداد وتدريب كادر هندسي قادر على فهم كامل البنية السابقة؟
15
المقدمة الفصل األول
وض ح المثال السابق عينة من العقبات التي قد تظهر أثناء السعي لبناء نظام تحكم هجين قائم
ّ
على تكامل عدد من التجهيزات والبرمجيات التحكمية مختلفة المصادر.
إليضاح الفكرة التي اعتمد عليها معيار الـ OPCو باإلسقاط على المثال السابق ،نفترض أنه تم
اختيار عدد من الخبراء يتكلمون 8لغات مختلفة(بروتوكوالت) إلدارة شركة واحدة ،الحل البديهي
ليفهم بعضهم بعضا وينجحوا في إدارة الشركة هو تكلم لغة واحدة يفهمها الجميع ،اإلنكليزية مثال،
وهذا بالضبط ما فعله الـ .OPC
فهو بالتعريف "لغة معيارية بين المتحكمات الصناعية وبرمجيات التحكم والمراقبة وضعت باالتفاق
ليفهمها الجميع".
يبين الشكل( )4-1المثال السابق (محطة التحويل الكهربائية) في حال تم استخدام بروتوكول
الـ OPCللربط بين مكونات الشبكة الصناعية التي تدير المحطة ،نالحظ أن جميع التجهيزات في
الشبكة تتعامل وفق بروتوكول الـ.OPC
11
الفصل الثاني
يعرض هذا الفصل كيف نشأة المؤسسة الراعية لمعيار الـ ،OPCويوضح األطر الرئيسية التي
تساعد في فهم المعيار ،كما ويتناول أيضاً دالالت تسمية البروتوكول وتعريفه ،ويتطرق لمفاهيم
عامة يعتمد عليها المعيار.
تعريف بروتوكول الـ OPC الفصل الثاني
في مطلع عام 1995تم تشكيل فريق عمل من قبل الشركات العاملة في مجال التحكم والتكنولوجيا،
كان الهدف الرئيسي من فريق العمل هذا هو إيجاد معيار موحد لتعريف المتحكمات الصناعية
على شاشات التخاطب البشرية وبرمجيات سكادا ،بمعنى آخر كان الهدف هو السعي إليجاد معيار
عرف طريقة موحدة تسمح للبرمجيات التي تعمل بنظام التشغيل Windowsبالنفاذ إلى بيانات ُي ّ
العملية المؤتمتة.
تم االتفاق من قبل فريق العمل على تأسيس مؤسسة ترعى هذا المعيار ،واتُفق أيضا أن تكون هذه
وسميت بمؤسسة الـ ،)OPC Foundation( OPCتدريجياً أصبحت أغلب المؤسسة غير ربحية ُ
المصنعة ألنظمة األتمتة الصناعية أعضاء في هذه المؤسسة.
ّ الشركات
أول مخرجات هذه المؤسسة كانت مواصفات معيار الـ OPCالنافذ إلى البيانات
( )OPC Data Accessواختصاره ( )OPC DAوالذي صدر عام 1991أي بعد فترة قصيرة من
انطالق عمل المؤسسة ،والذي أصبح فيما بعد يعرف بالـ OPCالكالسيكي .Classic OPC
حددة مشهورة
عندما وضع المعيار عام 1991وضعت خصائصه لتتناسب مع بروتوكوالت ُم ّ
تدعمها تجهيزات الـ PLCمثل بروتكول ،Modbusوكان استخدام معيار الـ OPCمقيداً بأنظمة
تشغيل Windowsوذلك لكون شركة Microsoftهي المطور األساسي لتكنلوجيا التصال
COM/DOMالتي يعتمد عليها المعيار في تحقيق االتصال األمر الذي سنوضحه الحقاً بشكل
مفصل.
18
استطاعت مؤسسة الـ OPCوضع المعيار موضع التطبيق العملي متغلب ًة بذلك على الكثير من
المنظمات المنافسة و أحد أهم أسباب نجاحها في ذلك كان اعتمادها على تكنولوجيا ويندوز المعروفة
بـ تكنولوجيا COM/DCOMالتي تسمح بتحقيق االتصال بين البرمجيات.
إن التركيز على مشكلة النفاذ إلى البيانات وحلها وتوفير ميزات أخرى هامة يتطلع إليها السوق
التحكمي وتضمين كل ذلك في معيار واحد ،باإلضافة إلى الذي أشرنا إليه من استخدام تكنولوجيا
ويندوز الشائعة كقاعدة لالنطالق ،كل ذلك ساهم بشكل كبير في تبني المعيار من قبل الشركات
وانتشاره عالميا.
ونتيجة لخبرة مطوري المنتجات ،ساهمت الشركات المصنعة وورشات العمل بإصدار النسخة الثانية
من مواصفات معيار OPC Data Accessفي بدايات عام .1998
بعد اإلعالن عن هذا اإلصدار ،عدد كبير من الشركات الصناعية اعتمدت المعيار وقامت بتطبيقه،
وما يزال اإلصدار الثاني من الـ OPC DAحتى اآلن يعتبر من أهم اصدارات الـ. OPC DA
إن بروتوكول الـ OPCاليوم هو المعيار األكثر شيوعاً ونجاحاً ،وأثبت قدرته على تبادل البيانات
بين مختلف أنظمة األتمتة الصناعية أياً كان نوعها.
ضمت مؤسسة الـ OPCأكثر من 454عضو من ضمنهم أغلب بعد 12سنة من تأسيسهاّ ،
مزودي أنظمة التحكم واألتمتة حول العالم.
الشكل (ُ )2-2يظهر التوزع الجغرافي ألعضاء مؤسسة الـ OPCحول العالم.
قامت مؤسسة الـ OPCبإد ارج قائمة بمنتجات الـ OPCتحوي حوالي 1544منتج ،هذه القائمة
تحوي فقط المنتجات التي صدرت من شركات أعضاء في المؤسسة.
أما إجمالي سوق الـ ( OPCحتى عام )2449فهو يحوي 2544شركة مزودة ألنظمة تحكم،
صدر عنها أكثر من 15,444منتج يدعم بروتوكول الـ .OPC
هذا النجاح الكبير الذي حققه المعيار ،تطّلب آليات تَحّقق لضمان أن جميع منتجات الـ OPC
متوافقة مع بعضها البعض وتُحقق مستوى محدد من الكفاءة والجودة ،لهذا السبب تم تشكيل ما
يعرف "بقسم اإلمتثـال" Complianceضمن مؤسسة الـ ،OPCوهو القسم المعني بفحص مطابقة
منتج الـ OPCالجديد لمواصفات الـ OPCالقياسية المتفق عليها من قبل أعضاء المؤسسة ،وتم
التوافق على انشاء مستويين من شهادات المطابقة والكفاءة تُمنحان بعد مستويين من االختبارات.
المستوى األول من االختبارات تجريها الشركة المطورة لمنتج الـ OPCذاتياً ،حيث يعتمد على
فحص محلي ذاتي يقوم به المطورون للمنتج مستعينين بأدوات اختبار تقدمها مؤسسة الـ ،OPC
ومن ثم يتم إرسال نتائج االختبار إلى مؤسسة الـ OPCللتأكد من مطابقتها للمواصفات.
المنتج الذي يجتاز االختبار الذاتي تسمح له مؤسسة الـ OPCباستخدام شعار خاص ()Logo
فضي اللون ُيبين اجتياز المنتج لفحص االختبار الذاتي ،وأن المنتج قد نجح في تحقيق معاير
التوافق األساسية ،الحظ الشكل(.)3-2
24
تعريف بروتوكول الـ OPC الفصل الثاني
المنتجات التي تنجح باجتياز هذه االختبارات ،تحصل على شهادة المستوى الثاني وتسمح لها
المؤسسة بوضع شعار الـ OPCالذهبي المخصص لذلك ،مطمئنة بذلك مستخدمي هذا المنتج إلى
كونه ذو كفاءة عالية وحقق مستويات مرتفعة في الجودة والتوافقية.
من خالل الشهادات يتم تشجيع المستخدمين النهائيين على شراء منتجات OPCالمختبرة والمتوافقة
مع المواصفات القياسية ومع بقية الشركات في سوق األتمتة ،ساعين بذلك إلى الحد من مشاكل
انعدام التوافق في المشاريع مع ضمان اعتمادية المعيار وحسن انتشاره في فضاء التحكم.
مع العلم أنه وبشكل مستقل وسنوي تحدث اجتماعات و ورشات فحص توافقية في كل من أوروبا
وأمريكا الشمالية واليابان ،حيث تجتمع الشركات المصنعة لمنتجات الـ OPCوتختبر فيما بينها
توافقية منتجاتهم مع بعضهم البعض.
عند طلب شركة ما االنضمام لمؤسسة الـ OPCبهدف صناعة منتج ما ،وبعد الموافقة على شروط
المؤسسة ،تزود مؤسسة الـ OPCالشركة بمواد علمية OPC Materialتحوي على معلومات
تعبر عن ماهية وبنية الـ OPCو تساعد المطورين و المبرمجين العاملين في الشركة
وخصائص ّ
الجديدة على فهم تكنولوجيا Microsoftوالبنية البرمجية لمعيار الـ.OPC
المواد العلمية هذه تحوي على:
.1طريقة تعريف الـ PLCوالمتحكمات.
.2طريقة ربط الـ PLCمع الـ .OPC Server
.3خصائص الـ OPC Serverليعمل بشروط الزمن الحقيقي.
.4مواصفات أخرى عامة متعلقة بمعيار الـ .OPC
21
تعريف بروتوكول الـ OPC الفصل الثاني
يمكن تعريف معيار الـ OPCبأنه عبارة عن مجموعة من القواعد و المواصفات القياسية ،تُستخدم
في مجال الصناعات المؤتمتة وفي مجاالت أخرى .وضعت هذه المواصفات من قبل عدد من
الشركات الرائدة في مجال األتمتة من مصنعي المكونات الصلبة(العتاديات) ومصممي البرمجيات
على حد سواء و بالتعاون مع شركة مايكروسوفت ،حيث اتفقوا جميعا على وضع معيار موحد
سهل التواصل والتعاون بين الشركات ،وأسسوا لذلك مؤسسة وظيفتها رعاية المعيار الجديد ووضع
ُي ّ
الشروط الناظمة لعمله وأهدافه.
يمكن أن ُنطلق مصطلح الطبقة الوسيطة Interfaceعلى المواصفات التي ُوضعت من قبل
كونة لمؤسسة الـ ،OPCتعمل هذه الطبقة على تجهيز أرضية مشتركة
الم ّ
الشركات المتعاونة ُ
لالتصال بين تجهيزات التحكم الصلبة على اختالف أنواعها ومصادرها و التي تتحكم في مجموعها
بمشروع معين ،الهدف من هذه الطبقة يتمثل بمنع أنظمة المراقبة والتحكم SCADA /HMIمن
االعتماد المباشر على التجهيزات الصلبة للمشروع (المتحكمات من PLCوغيرها).
بالنسبة لهرم التحكم كما يظهر في الشكل( ،)5-2فإن الـ OPCموجود ضمن الطبقة الثالثة (طبقة
السكادا) وينقل البيانات بينها وبين الطبقة الثانية(المتحكمات).
يمكن في -حاالت خاصة -أن نجد الـ OPCضمن الطبقة الرابعة( طبقة إدارة وتنفيذ التصنيع
)Manufacturing Execution Systemأو ضمن الطبقة الخامسة (طبقة الشركات) وذلك عندما
يكون OPCمن النوع الذي يتعامل مع البيانات المؤرشفة OPC HDAكما سيتضح في فصول
قادمة.
OPC
22
تعريف بروتوكول الـ OPC الفصل الثاني
يمكن ترجمة اختصارات المعيار إلى " ربط النظـم وتضمينها للتحكم بالعمليـات ".
يتضح من خالل التسمية الهدف من إنشاء المعيار ووظيفته المتمثلة بدمج أنظمة التحكم المختلفة
بحيث تكون قادرة على التحكم بالمشاريع بشكل متكامل ،بحيث تبدو ككتلة واحدة متجانسة أثناء
أداء عملها.
أما اآلن فمعيار الـ OPCبإصداراته الجديدة أصبح أكثر تطو اًر ،و أصبح متاحاً على جميع أنظمة
التشغيل وليس فقط على نظام التشغيل Windowsكما في االصدارات األولى ،وبات المعيار
يتمت ع باعتماد كبير خارج مجال التحكم ودخل مجاالت جديدة مثل إدارة أنظمة المرور والهواتف
المحمولة وأنظمة التكييف وغيرها ،لذلك أصبح البعض يرى أن االختصار السابق لم يعد مواكبا
للتطور الهائل الذي حققه المعيار كونه يحصر عمل المعيار بالتحكم بالعمليات ،لذلك نجد اآلن
بعض المراجع المعنية بالمعيار باتوا يعتبرون أن الـ OPCأصبح كلمة قائمة بذاتها في قاموس
اللغة االنكليزية وليست اختصا ار ألي كلمة (مثل كلمة ،)Googleوبعض المراجع باتت تعتبر أن
23
تعريف بروتوكول الـ OPC الفصل الثاني
4-2مفاهيم عامة
قبل البدء بالغوص في بنية البروتوكول وأجزاءه وكيفية عمله ،هناك مفاهيم ومصطلحات يعتمد
عليها معيار الـ OPCمن الضروري التعريف بها لتساعدنا الحقا في فهم المعيار.
الـ OLEأو تقنية ربط الكائنات وتضمينها هي تقنية مدعومة من شركة مايكروسوفت تسمح بإنشاء
كائنات برمجية مركبة تحتوي على معلومات من مصادر مختلفة.
إليضاح مفهوم OLEنأخذ مثال من بيئة برامج الـ Officeالشائعة ،فمثال يمكن لملف اكسيل Excel
أن يحوي (أن يتضمن) بيانات مأخوذة من ملف أخر ،Wordميزة OLEهنا أن األمر مغاير تماماً
لعمليات "القص واللصق" فالربط هنا يكون ديناميكيا متغي اًر ،أي أن البيانات في التطبيق المتلقي
(االكسيل في مثالنا) ستتغير لحظة تغيرها في التطبيق األصلي (ملف الـ ،)Wordأي أن هناك
ربط للبيانات بين الملف المصدر وملف الوجهة ،وهناك تضمين للبيانات في ملف الوجهة ،ومن
هنا جاءت التسمية "ربط الكائنات وتضمينها".
شكلت تقنية OLEالحجر األساس التي بنت عليها شركة مايكروسوفت فلسفتها حين قررت دعم
تض ّمن بروتوكول الـ ،OPCفجعلت المحتوى الذي تم انشاؤه في برنامج الـ OPC Serverمرتبط ُ
وم َ
في برنامج أخر يدعى OPC Clientكما سيتضح معنا في الفصول القادمة.
اعتمد في تسمية معيار الـ OPCالجديد ،كما هو موضح في
ومن هذه التقنية أخذ أول حرف و ُ
الشكل( )1-2السابق.
24
تعريف بروتوكول الـ OPC الفصل الثاني
2-4-2تقنية COM/DCOM
يمكن تعريفها بأنها عبارة عن برمجية معيارية وسيطة تربط بين برمجيتين مختلفتين أنتجتها شركة
مايكروسوفت عام ،1993تستخدم لتمكين االتصال بين التطبيقات البرمجية.
COM/DCOMأساسا لعدد من تقنيات مايكروسوفت األخرى مثل OLE تعتبر تكنولوجيا
. DirectX، ActiveX،
كما سنوضح بشكل مفصل في الفصل الثالث ،فإن بروتوكول الـ OPCيعتمد على بنية مخدم/زبون،
حيث يتكون البروتكول من برمجيتين رئيسيتين ،الـمخدم OPC Serverوالـزبون ،OPC Client
ويستخدم بروتوكول الـ OPCتكنولوجيا COM/DCOMللربط بينهما ،حيث أن تموضع البرمجيتين
بالنسبة للحواسب يحدد نوع قناة االتصال المستخدمة.
ففي حال كان كل من برمجية OPC Serverو برمجية الـ OPC Clientمنصبتان على نفس
الحاسب ،سيتم االتصال بينهما عبر قناة الـ COMوالموجودة مسبقا ضمن نظام التشغيل ويندوز
الشكل(.)8-2
25
تعريف بروتوكول الـ OPC الفصل الثاني
اعتماد هذه التقنية ساهم في تقليل زمن تسويق معيار الـ OPCوكانت -في حينها -سبباً مهماً
في نجاح الـ .OPC
ر للكلمات التاليةComponent Object Model :
تشكل COMاختصا ا
ر للكلمات التالية Distributed Component Object Model
تشكل DCOMاختصا ا
لكن هناك سيئتين رئيسيتين لهذه التكنولوجيا ،األولى كون هذه التكنولوجيا من انتاج مايكروسوفت،
وبالتالي حصرت استخدام معيار الـ OPCبالحواسب التي تعمل على منصة التشغيل ويندوز بدون
أي دعم ألنظمة تشغيل أخرى ،والمشكلة الثانية ظهرت في صعوبة االتصال البعيد بالـ OPCعبر
قناة DCOMوذلك نظ ار لصعوبة ضبط إعداداتها ،عدا أنها ال تدعم االتصال باإلنترنت.
خطوات تفعيل قناة االتصال DCOMموضحة بالتفصيل ضمن الملحقات في أخر الرسالة .
21
الفصل الثالث
بنية وأجزاء بروتوكول
الـOPC
يوضح هذا الفصل مدى األثر الذي تركه بروتوكول الـ OPCعلى الشبكات الصناعية ،والمبدأ
العام لعمله ،ويتناول بنية المخدم /زبون بالتفصيل وجميع التشكيالت المتاحة لهذه البنية.
27
الفصل : 3بنية وأجزاء بروتوكول الـOPC
عندما اتفق المصنعون فيما بينهم على إنشاء معيار الـ OPCالموحد ،صار من السهل جدا على
برمجيات سكادا النفاذ إلى المتحكمات الصناعية والتجهيزات الحقلية والتخاطب معها وإدارتها وذلك
بعكس الواقع الذي كان سائدا قبل ذلك (الحظ الشكل ،)1-3حيث بات يكفي على برمجيات سكادا
اضافة كود برمجي بسيط إلى بنيتها يمثل تعريف لبروتوكول OPC Clientيسمح لها باالتصال مع
اء أكان منصب على نفس الحاسب أو على أي حاسب آخر.
أي ،OPC Serverسو ً
=
الشكل :1-3االتصال بين تطبيقات سكاد والمتحكمات قبل وبعد استخدام الـ OPC
في الواقع إن استخدام الـ OPCخفف الكثير من األعباء عن المصنعين وساهم أيضا بتقليص كلف
تصنيع العتاديات والبرمجيات والذي ال شك انعكس بدوره على سعر التجهيزات الصناعية ،عالوة
أمن درجة عالية من المرونة لمهندسي التحكم في اختيار تجهيزاتهم ومنحهم هامش جيد على أنه ّ
من الحرية في انتقاء المتحكمات والبرمجيات ،وهذا بكل تأكيد مّثل تقدما كبي ار في مجال التحكم
الصناعي واألتمتة وأدى لظهور مشاريع هجينة قوية ومتجانسة تحوي تنوعاً في التجهيزات
والبرمجيات.
يمكننا القول بأن الحاجة إلى الـ OPCكانت ضرورة ملحة للجميع ،للمصنعين والمهندسين
وللمستثمرين النهائيين على حد سواء.
أغلب أنظمة التحكم و المراقبة الحالية باتت تُخضع نفسها لقواعد الـ OPC Clientنظ ار النتشاره
28
بنية بروتوكول الـ OPC الفصل الثالث
الواسع ،عالوةً على أن بعض المصنعين باتوا يجعلون من الـ OPC Clientمكوناً أساسياً ضمن
برمجياتهم وبذلك أصبح االتصال مع الـ OPC Serverغاية بالسهولة.
منح بروتوكول الـ OPCبرمجيات سكادا القدرة على القيام بدور مدير للشبكة الصناعية ،حيث
سمح لهم بإدارة جميع التجهيزات الموصولة على الشبكة على اختالف أنواعها واختالف الشركات
الصانعة لها.
إضافة إلى أن مهندسي التحكم أصبح بإمكانهم تجنب األخطاء الناجمة عن تعقيد التجهيزات وأصبح
بإمكانهم بناء أنظمة معقدة بدون الحاجة إلى إضافة أي تجهيزات إضافية صلبة كانت أو برمجية.
يمكن بسهولة توظيف بنية OPC Server /OPC Clientبحيث نجعل أي تطبيق برمجي قادر على
ومنصب في بيئة
ّ العمل كـزبون ،OPC Clientبشرط أن يكون قادر على التعامل مع البيانات
تشغيل ويندوز.
من األمثلة على التطبيقات التي يمكن برمجتها كزبائن. Excel، MATLAB، VB،C++ :OPC
كما تم التوضيح سابقا ،فإن بروتكول الـ OPCبشقيه المخدم والزبون عبارة عن برمجيات ّ
تنصب
على حاسب واحد أو على عدة حواسب متصلة فيما بينها بشبكة ،وظيفة البروتوكول هي تحقيق
الربط بين المتحكمات المنطقية PLCsوبين برمجيات المراقبة والتحكم SCADAكما هو موضح
بالشكل( ،)2-3فالبروتوكول يعمل كجسر يربط بين المتحكم الصناعي من طرف وأنظمة
SCADA/HMIمن طرف أخر ،و يعتمد البروتوكول على بنية Server/Clientوعلى نظام التشغيل
ويندوز لتحقيق الربط السابق.
29
بنية بروتوكول الـ OPC الفصل الثالث
في البداية وبشكل مختصر ،فإن وظيفة الـ OPC Serverتنحصر في مخاطبة المتحكم المنطقي
بهدف القراءة منه والكتابة فيه ،حيث يقوم باالتصال بالمتحكم وفقا لبروتكول محدد يفهمه المتحكم
ويجعل البيانات التي قام بجلبها متاحة ألي OPC Clientمتصل معه.
المخدم المطلوب ومن ثم ينشأ اتصال معه ،فيستطيع عندها الزبون ّ يقوم OPC Clientبتحديد
عرفة ضمن المخدم وتحديد أي من هذه البيانات مطلوبة له لُيعرفها
الم ّ
االطالع على جميع البيانات ُ
كمتحوالت ضمن بنيته البرمجية (تضمين عناصر المخدم ضمن الزبون).
بعد نجاح االتصال بينهما ،يقوم الزبون باإلرسال إلى المخدم طالبا تحديث البيانات التي قام
باختيارهاُ ،يصطلح على تسمية هذه البيانات بالعناصر ،Itemsليقوم المخدم عند استقبال الطلب
من الزبون باالستجابة له وتحديث البيانات التي طلبها وفقاً لقيم كان المخدم قد قام مسبقاً بتحصيلها
من المتحكم المنطقي.
حدثة للمستخدم بأي شكل يريده (شكل رسومي– Graphics يقوم الزبون بعدها بعرض البيانات ُ
الم ّ
على شكل إنذارات- Alarmsعلى شكل منحنيات بيانية ... Trendsالخ) ويمكنه أيضاً تخزينها
لالستفادة منها الحقا.
عرفة مسبقاً ضمن الـ OPC
من الجدير بالذكر أنه ال يمكن للـ OPC Clientأن يطلب بيانات غير ُم ّ
.Server
يتبادل الـ OPC Clientالبيانات مع الـ OPC Serverوفق معيار الـ ،OPCأما الـ OPC Server
فهو يخاطب المتحكم المنطقي وفق بروتكول صناعي يدعمه المتحكم مثل ( Modbus, Profibus
.),CAN ..
من ذلك نستنج أن إنشاء وبرمجة OPC Serverيتطلب دراية ببنية البروتوكول الذي يعمل عليه
المتحكم و امتالك صالحية النفاذ إليه و معرفة بمواقع الذاكرة فيه ،وهو أمر غير متاح غالباً،
لذلك نجد أن أغلب مزودي OPC Serverهم ذات الشركات المصنعة للمتحكمات ،وهو أيضاً
سبب في كون الـ OPC Serverغير متوفر بشكل مجاني.
يجب التذكر دوماً منعاً لاللتباس ،أن الجانب المتعلق باتصال الـ OPC Serverمع المتحكمات ال
يخضع لبروتوكول الـ ،OPCأما اتصال OPC Clientمع الـ OPC Serverفهو معياري يخضع
لقواعد ومتطلبات لبروتوكول الـ .OPC
34
بنية بروتوكول الـ OPC الفصل الثالث
سنتناول في هذه الفقرة البنية التفصيلية لكل من ال ـ OPC Serverو الـ OPC Client
مخدم الـ OPCهو جزء من البروتوكول المسؤول عن تحقيق االتصال بالمتحكمات وتحصيل البيانات
منها أو التعديل عليها ،ويقوم بتلبية جميع طلبات الزبائن OPCالمتصلة معه.
يخاطب الـ OPC Serverالمتحكم المتصل معه وفق بروتوكول محدد مدعوم من قبل المتحكم،
ومن ثم يقوم بجلب البيانات المطلوبة من المتحكم ويترجمها لمعيار الـ ،OPCغالبا ما يكون الـ
OPC Serverمن انتاج الشركة المصنعة للتجهيزة الصناعية ( )PLCsويمكن أيضاً أن يكون من
انتاج شركات برمجية ربحية خاصة.
وفق معايير الـ OPCالذي وضعتها المؤسسة المعنية يمكن لـ OPC Serverوحيد ان يتصل بأكثر
خدم أكثر من زبون بنفس الوقت.
من متحكم بنفس الوقت ،ويمكن لـ OPC Serverواحد أن ُي ّ
يخزن الـ OPC Serverالبيانات التي قام بجلبها من المتحكمات المتصلة معه في قاعدة بيانات
خاصة به ويقوم بتحديث القيم المخزنة فيها بشكل دوري ،قاعدة البيانات هذه قد تكون عبارة عن
ملف Accessأو أي نوع أخر من أنواع قواعد البيانات المعروفة.
تقوم جميع الـ OPC Clientsالمتصلة مع المخدم بتحديث قيم عناصرها من قاعدة البيانات السابقة،
كما هو موضح بالشكل(.)3-3
31
بنية بروتوكول الـ OPC الفصل الثالث
وهنا يتبادر إلى الذهن السؤال التالي ،هل تملك جميع مخدمات الـ OPCبنية متشابهة وتؤدي نفس
الوظيفة؟
الجواب بالطبع ال ،فالمواصفات التي وضعتها مؤسسة الـ OPCتضمن أن جميع المخدمات تمّثل
البيانات بنفس الطريقة من جهة الـ ، OPCلكن ال يوجد شيء في المواصفات ُيحدد كيفية حصول
المخدم على البيانات من التجهيزات الحقلية.
إذا فمخدمات الـ OPCتختلف عن بعضها بعدة أمور ،أهمها:
يمكن أن نجد مخدم OPCيدعم نوع واحد فقط من المتحكمات ،ويمكن أن نجد مخدم OPCأخر
كل حسب طريقة برمجته ،فعلى سبيل المثال تُقدم شركةيدعم عشرات األنواع من التجهيزاتٌ ،
خصص للمتحكم المنطقي S7-200من Siemensمخدم OPCيدعى S7-200 PC Accessوهو ُم ّ
نفس الشركة ،ال يستطيع هذا المخدم االتصال بأي متحكم منطقي من نوع أخر ،إال أنه يمكنه
االتصال بأكثر من متحكم S7-200بنفس الوقت.
ورد سابقا أن الـ OPC Serverيخاطب المتحكم وفق البروتكول الذي يدعمه.
وغالبا ما نجد أن المتحكمات المنطقية تدعم أكثر من بروتوكول اتصال بنفس الوقت ،فمثال المتحكم
المنطقي S7-200يدعم بروتوكول PPIوبروتوكول الـ TCP/IPو بروتوكول الـ Modbusو
الـ ،Profibusلذلك قد نجد مخدمُ OPCمبرمج ليدعم االتصال بالمتحكم S7-200عن طريق بروتوكول
واحد أو أكثر من البروتوكوالت األربعة السابقة ،فمثال يستطيع مخدم S7-200 PC Accessالتخاطب
مع المتحكم S7-200باستخدام بروتوكول الـ PPIو بروتوكول الـ .TCP/IP
وهذا باب من أبواب االختالف والتنافس بين مخدمات الـ ،OPCويتعلق بالبنية البرمجية وقوتها
إضافة إلى سرعة استجابة المتحكمات المتصلة مع المخدم ،ومن الجدير بالذكر أن هناك عالقة
تربط سرعة تحديث البيانات بموقع المخدم بالنسبة للزبون(على نفس الحاسب مع الزبون أو على
32
بنية بروتوكول الـ OPC الفصل الثالث
عند الحاجة إلى OPC Serverلتنفيذ لمشروع ما ،ينبغي اختياره بحيث يدعم البروتوكوالت التي
تعمل عليها المتحكمات والتجهيزات المستخدمة في المشروع ،فمثال لو كانت المتحكمات الصناعية
التي تدير المشروع تعتمد بروتوكول الـ ،Modbusفينبغي حينها الحصول على Modbus OPC
Serverلنتمكن من ربط متحكمات المشروع ببرمجيات السكادا عن طريق بروتوكول الـ .OPC
هناك الكثير من الشركات الربحية التي تبيع مخدمات الـ ،OPCلذلك عند الشراء يجب المفاضلة
المخدمات المتاحة ،المفاضلة تكون من حيث السعة (عدد العناصر التي يتعامل معها المخدم)
ّ بين
واألداء والسعر بإضافة إلى العوامل التي سبق ذكرها.
تقوم الشركات المزودة لمخدمات الـ OPCبتزويد المستخدمين بأنواع المتحكمات التي تدعمها
مخدماتهم ،باإلضافة إلى مجال البيانات التي يمكن الوصول إليها وكيفية النفاذ إليها فيزيائياً.
معرف خاص ( )IDيتميز به عن غيره ،فعندما يرغب OPC Client
يملك كل ّ OPC Server
المنصبة على الحاسب المحلي Local المخدمات
ّ باالتصال بمخدم ما ،يقوم بعملية بحث عن جميع
ّ
PCأو على حواسب الشبكة المتصلة ،Remote PCفتظهر للمستخدم قائمة تحوي جميع
معرفات(األسماء) المخدمات التي تم العثور عليها.
ّ
بشكل تفصيلي ومن وجهة نظر برمجية فإن OPC Serverيتألف من ثالث مستويات هرمية من
المكونات البرمجية( )Objectsوهي المخدم والمجموعات والعناصر:
يحتوي هذا الجزء البرمجي على كافة المعلومات عن المخدم وعن معرفه الخاص ، IDكما يحتوي
ضمنه على المجموعات .Groups
ومن المالحظ أن هناك تشابه إلى حد بعيد بين مخدمات الـ OPCكونها تخضع لمعايير موحدة.
33
بنية بروتوكول الـ OPC الفصل الثالث
من أجل تهيئة مخدمات الـ OPCللعمل سنحتاج لضبط أمرين فقط ضمن : OPC Server
.1ضبط إعدادات االتصال مع المتحكم :هنا يتم ضبط الـ OPC Serverعلى اعدادات
االتصال مع المتحكم التي سيتصل معه ،تختلف هذه االعدادات بطبيعة الحال باختالف
البروتوكول الذي سيربط الـ OPC Serverمع المتحكم ،و عادة ما تحوي هذه
االعدادات على رقم منفذ االتصال ،نوع المتحكم وعنوانه ،معدل النقل.
.2تعريف المجموعات وتحديد العناصر المراد قراءتها أو كتابتها من المتحكم(.)Items
عرفة ضمن المخدم. يحتوي هذا الجزء البرمجي على كافة المعلومات عن المجموعات ُ
الم ّ
يكون لكل مجموعة ّ
معرفة ضمن المخدم اسم فريد حيث يمكن لـ OPC Serverواحد أن يحوي أكثر
من مجموعة.
تحوي المجموعات بداخلها على العناصر Itemsالمطلوب من المخدم تحصيل قيمها من المتحكمات
(قراءة) أو التعديل عليها (كتابة).
تستخدم المجموعات ألغراض تتعلق بالتصنيف واألولويات ،فهي تمنح المستخدمين طريقة عملية
لتنظيم بياناتهم.
يحتوي هذا الجزء البرمجي على كافة المعلومات عن عناصر مخدم الـ .OPC
إن العناصر بالتعريف هي القيم المراد قراءتها أو كتابتها في المتحكم ،يطلق عليها البعض اسم
المتحوالت .Tags
34
بنية بروتوكول الـ OPC الفصل الثالث
المعامل مؤشر منطقي على صحة قيمة العنصر ،يأخذ هذا ال ُمعامل أحد ثالث
ُيمثل هذا ُ
معرف .Uncertain
قيم :إما جيد Goodأو سيئ Badأو غير ّ
فمثال عند حدوث انقطاع في االتصال بين المخدم و المتحكم يصبح معامل الجودة لجميع
عناصر OPC Serverسيئ “."Bad
المعامل أخر لحظة تم فيها تحديث قيمة العنصر ،أي أخر لحظة قام
يتم التسجيل في هذا ُ
فيها الـ OPC Serverبتحديث قيمة العنصر من المتحكم.
35
بنية بروتوكول الـ OPC الفصل الثالث
الجزء الثاني من بروتوكول الـ ، OPCموجود في الغالب ضمن برمجيات السكادا ،يقوم بطلب
البيانات من الـ OPC Serverليقوم بعد جلبها بعرضها ضمن نظام السكادا بأشكال متعددة ،مع
التأكيد أن البيانات التي يمكن للزبون طلبها من المخدم ،هي البيانات التي سبق وتم تعريفها ضمن
الـ . OPC Server
ليتسنى لزبون ـ OPCما االطالع على بيانات متحكم ما ،يقوم زبون الـ OPCبالبحث عن جميع
مخدمات الـ OPCالمنصبة على نفس حاسبه أو على حواسب متصلة مع حاسبه ،ثم يقوم باالتصال
31
بنية بروتوكول الـ OPC الفصل الثالث
مع المخدم.
بعد نجاح االتصال يقوم الزبون بإنشاء مجموعات ليضم بداخلها العناصر التي سيقوم بجلبها من
المخدم.
تملك كل مجموعة من المجموعات ضمن زبون الـ OPCمتحول هام يدعى زمن التحديث ،يقوم
المستخدم بضبطه ُليحدد من خالله الزمن الدوري لتحديث قيم عناصر المجموعة من المخدم ،قيمة
ُ
تغيرها.
المعرفة ضمن المجموعة وطبيعتها وكيفية ُ
ّ هذا المتحول تَتحدد تبعاً ألهمية العناصر
فمثال لو كان لدينا مجموعة تحوي عناصر تُمثل حساسات ح اررة ،هنا ُيفضل أن يكون زمن التحديث
كبير نسبيا( مثال كل 3دقائق) وذلك نظ اًر لبطء تغير الحرارة ،الضبط الصحيح لهذا المتحول
يحسن بالطبع من أداء وعمل الشبكة الصناعية العاملة وفق بروتوكول الـ .OPC
سنسرد فيما يلي التشكيالت الممكن بناؤها في بروتوكول الـ OPCوفق بنية المخدم/زبون.
يمكن لـ OPC Clientوحيد أن يتصل بأكثر من OPC Serverمن شركات مختلفة كما هو موضح
بالشكل(.)1-3
تُظهر هذه التشكيلة أهمية استخدام بروتوكول الـ ،OPCألنه بعد تنجيز االتصال مع المخدمات،
المعرفة ضمن زبون الـ OPCكوحدة واحدة متجانسة بغض النظر عن ّ المخدمات
تَظهر بيانات ُ
مصدرها ،هنا بالضبط يكمن نجاح معيار الـ OPCفي إذابة الفوارق واالختالفات بين الشركات
المصنعة لتجهيزات التحكم.
ّ
37
بنية بروتوكول الـ OPC الفصل الثالث
يمكن تشكيل أي شبكة بين زبائن الـ OPCومخدماته بدون أي محدودية على أعداد المخدمات أو
أعداد الزبائن المتصلة بالشبكة.
الشكل (ُ )3-7يظهر البنى التي يمكن تشكيلها ضمن بروتوكول الـ OPCوفق بنية مخدم/زبون.
38
الفصل الرابع
يعرض هذا الفصل مواصفات معيار الـ OPC DAوأجزاءه وبنيته البرمجية ،ومن ثم يتناول المشاكل
التي شابت هذا اإلصدار والتي كانت سبباً في تطوير معيار جديد للـ .OPC
وبعد ذلك يتم التعريف بالمعيار الجديد وشرح بنيته البرمجية ومواصفاته المعيارية ومزاياه.
39
أنواع بروتوكول الـOPC الفصل الرابع
كما تم اإليضاح سابقاً ،فإن مؤسسة الـ OPCهي المسؤولة وعن وضع المعايير والمواصفات
الناظمة لعمل معيار الـ .OPC
قامت المؤسسة بوضع عدة مواصفات تصف كل واحدة منها أجزاء و مهام عمل بروتوكول الـ،OPC
فمعيار الـ OPCحسب مواصفات المؤسسة ال ينحصر عمله في تحصيل البيانات في الزمن
الحقيقي من المتحكمات فقط ،بل يتعداه إلى إمكانية تزويد المستخدم بواجهات لتوليد اإلنذارات
واألحداث ،وأيضا منح المستخدم القدرة على التعامل مع بيانات مخزنة في قواعد بيانات الستخدامها
في التحليل وتوليد التقارير ،وغيرها من المواصفات التي سنتناولها بنوع من التفصيل في هذا
الفصل.
الشكل ( )1-4يبين المواصفات العامة لمعيار الـ . OPC
بينا ،فإن مؤسسة الـ OPCحددت معايير لعدد من الواجهات البرمجية Software Interfaces
كما ّ
ضمن معيار الـ OPCبهدف توحيد صيغ تدفق المعلومات بين مستوى العملية Process levelو
مستوى التحكم والمراقبة SCADA levelفي هرم التحكم ،أكثر حاالت االستخدام لهذه الواجهات
كانت عبارة عن واجهات من أجل تطبيقات األتمتة الصناعية مثل شاشات التخاطب البشرية
44
أنواع بروتوكول الـOPC الفصل الرابع
( )HMIsوأنظمة المراقبة والتحكم ( )SCADAوذلك بهدف تحصيل البيانات في الزمن الحقيقي
من التجهيزات وتخزينها ألغراض تتعلق بالتحكم و التحليل و اإلدارة.
هناك عدة معايير ومواصفات وضعتها مؤسسة الـ OPCكإطار عام لمعيار الـ ،OPCكل مواصفة
توصف جزء برمجي ضمن المعيار ليؤدي وظيفة معينة.ّ
وبما أن معيار الـ OPCمفتوح المصدر ،يمكن ألي شركة االنضمام لمؤسسة الـ OPCواالطالع على
هذه المواصفات وتطوير OPC Serverخاص بها وبتجهيزاتها وفقاً لهذه المواصفات.
هذه المواصفات تعتبر دليل ومرجع يتبعه مصنعو منتجات الـ OPCفي تصميم الواجهات والبنية
البرمجية لبروتوكول الـ .OPC
نبين فيما يلي الواجهات البرمجية التي تنص عليها مواصفات الـ :OPC
1-1-4واجهة النفاذ إلى البيانات اللحظية )OPC Data Access (OPC DA
وهي الواجهة األكثر استخدماً في المعيار ،عندما ُيذكر الـ OPC Serverبدون أي إضافة أخرى
تكون هذه الواجهة البرمجية هي المقصودة ،وكل ما سبق ذكره حتى اآلن عن OPC Serverكانت
هذه الواجهة هي المقصودة.
هذا الواجهة هي المسؤولة عن عمليات القراءة والكتابة والمراقبة للمتغيرات ضمن المشروع المؤتمت.
إن وظيفة بروتوكول الـ OPC DAهو تحصيل البيانات في الزمن الحقيقي من وحدات التحكم
القابلة للبرمجة PLCsأو من أي جهاز تحكم أخر إلى برمجيات المراقبة والتحكم SCADAأو أي
برمجيات إظهار أخرى.
واجهة OPC DAهي أهم واجهات الـ ،OPCوهي مطبقة في %99من المنتجات التي تستخدم
تكنولوجيا الـ OPCاليوم ،وفي الغالب بقية واجهات الـ - OPCعندما تُستخدم -تكون مضافة إلى
هذه الواجهة.
المعرفة مسبقاً ضمن هذه الواجهة و التي تريد قراءتها أو الكتابة
زبائن الـ OPC DAتنتقي العناصر ّ
عرفة ضمنه .
الم ّ
فيها ،حيث أن الـ ُ OPC DAيقدم طريقة هرمية لتعريف العناصر ُ
41
أنواع بروتوكول الـOPC الفصل الرابع
يظهر في الشكل ( )2-4األجزاء المختلفة ضمن واجهة النفاذ إلى البيانات OPC DA
من أجل النفاذ الى البيانات بشكل منظم ،تساعد المجموعات على تجميع وتصنيف العناصر
المتشابهة في الوظيفة أو الطابع.
معرف ضمن الـ : OPC DAهي القيمة وجودة القيمة
هناك ثالث سمات Attributesلكل عنصر ّ
و الطابع الزمني الذي ُيسجل زمن حدوث أخر تحديث للقيمة.
تنص مواصفات الـ OPC DAعلى أن هذه المواصفات الثالث يجب أن تُعاد للزبون في كل مرة
يرسل فيها الزبون للمخدم طالباً منه تحديث عناصره.
إن العناصر المعرفة ضمن المخدم تحدث قيمها بشكل تلقائي وفي الزمن الحقيقي من المتحكم.
أما بالنسبة لتحديث قيم العناصر Itemsالتي اختارها الزبون من قائمة عناصر المخدم ،فالزبون هو
من يحدد أزمنة التحديث لكل مجموعة عناصر ،تستخدم هذه األزمنة من قبل المخدم من أجل
عمليات الفحص الدوري ،فبعد انقضاء الزمن المحدد يقوم المخدم بإرسال قيم العناصر و جودتها
والطابع الزمني إلى الزبون.
فمثالً المجموعات المعرفة ضمن الزبون والتي تحوي عناصر قيمها حرجة يمكن تقليل زمن الق ارءة
الدورية لها (مثال يمكن ضبط زمن القراءة الدورية للعناصر كل 1ثانية بدال من كل 14ثواني).
أفضل طريقة من أجل القراءة الدورية ( )Cyclic Readingللبيانات من قبل الزبون هي عن طريق
المعرفة ضمن المخدم ،حيث يقوم المخدم بإرسال قيم البيانات
ّ تغير في قيم البيانات
تحسس حدوث ّ
تح ّد من قراءة قيم لم يط أر عليها تغيير وتخفف من
التي تغيرت لحظة حدوث التغير ،هذه الطريقة ُ
احتمالية حدوث ضغط على الشبكة بين الـ OPC Serverو الـ . OPC Client
تقدم هذه الواجهة (أي الـ )OPC DAنفاذاً إلى البيانات بالزمن الحقيقي ،هذا النفاذ قد ال يكون
ممكنا دائما نتيجة لخلل ما في االتصال ،على سبيل المثال ،عند حدوث انقطاع في االتصال بين
مخدم الـ OPCو المتحكم الصناعي ،تعالج تكنولوجيا الـ OPCهذه القضية من خالل منح كل
عنصر ضمن مخدم الـ OPCمؤشرين(أو متحولين) ،األول يدعى الطابع الزمني Timestampو
42
أنواع بروتوكول الـOPC الفصل الرابع
واجهة االحداث واالنذارات ( )OPC A&Eهي الواجهة أو التي تسمح بتبادل األحداث واالنذارات
مع المشروع المنّفذ.
األحداث اصطالحاً هي إشعارات تحوي معلومات تُعلم الزبون بوقوع حدث في المشروع الذي يديره
(مثال لحظة اقالع مضخة ،كمية انتاج على خط سير ،انتهاء عملية ملء خزان .. ،الخ).
أما االنذارات فهي اشعارات تُعلم الزبون بوقوع حدث حرج قد يؤثر على سير العمل في المشروع
المؤتمت ،الحدث الحرج قد يكون مثالً ارتفاع ح اررة محرك ،انخفاض مستوى خزان عن الحد األدنى.
يمكن التفريق بين اإلنذار والحدث بأن اإلنذار غالبا ما يكون ناجم عن خطأ أو عن حالة غير
مرغوبة ،أما الحدث فهو تسجيل ألحداث وقعت ضمن المشروع بهدف االستفادة منها الحقا في
عملية االستنباط والتحليل.
43
أنواع بروتوكول الـOPC الفصل الرابع
تسمح هذه الواجهة للمستخدم بتأكيد تلقيه لإلنذارات Acknowledgedوتمكنه من إيقاف اإلنذار
عن العمل قبل زوال سبب االنذار.
غالبا ما تكون هذه الواجهة ُمدمجة ضمن الواجهة البرمجية للـ ،OPC DAوليس بالضرورة أن
يحوي كل OPC Severعلى واجهة االنذارات و األحداث.
تستخدم هذه الواجهة ـ OPC HDAللنفاذ إلى البيانات المؤرشفة والمخزنة في قواعد بيانات ،و ذلك
بخالف الـ OPC DAالذي يستخدم للنفاذ إلى بيانات في الزمن الحقيقي من متحكمات منطقية
وأشباهها.
المجمعة في قواعد بيانات
ّ تنص مواصفات OPC HDAإلى إمكانية نفاذه إلى البيانات الخام
منفصلة ،باإلضافة إلى إمكانية التعديل عليها أو استبدالها أو حذفها.
الهدف من مخدم OPC HDAهو إتاحة التعامل مع البيانات المؤرشفة وفق بروتوكول الـ،OPC
حيث يمكن ألي تطبيق OPC Clientيملك إمكانية رسم منحنيات بيانية أو جداول أن يتصل
مع OPC HDAويستعرض جميع البيانات المخزنة ويحولها إلى معلومات ويستنبط منها تحليالت
ويولد تقارير.
44
أنواع بروتوكول الـOPC الفصل الرابع
برنامج الـ OPC HDAالنافذ إلى البيانات المؤرشفة يمكن أن يأتي بشكل منفصل عن برنامج
الـ OPC DAالنافذ إلى بيانات الزمن الحقيقي أو بشكل مدمج ضمن برمجية واحدة وال يشترط على
كل منتجي OPC DAأن يقدموا . OPC HDA
الـ XMLيمكن ترجمتها بلغة التوصيف الموسعة ،وهي طريقة لتوصيف البيانات تحمل معنى جديد
وقواعد مختلفة تسمح بتناقل البيانات بين البرمجيات التي ترغب بالتعاون مع بعضها البعض.
الـ XMLتقنية تجعل من عملية تشارك البيانات بين التطبيقات سهلة وممكنة بغض النظر عن
نوع نظام التشغيل الذي تعمل عليه التطبيقات( )Windows, Unix, ..وذلك بعكس تقنية الـ
COM/DCOMالمحصورة فقط بأنظمة التشغيل ويندوز.
من عيوب معيار الـ OPCالتي ظهرت مع انتشار المعيار و ظهور أنظمة تشغيل جديدة ،هو
ارتباط المعيار بنظام التشغيل ويندوز كونه يعتمد كليا على تكنولوجيا COM/DCOMفي الربط
بين المخدم والزبون ،لذلك سعت مؤسسة الـ OPCلالنعتاق من شرط بيئة التشغيل ويندوز.
يمكننا االعتبار أن OPC XML-DAأول مواصفة لمعيار الـ OPCحاولت من خاللها المؤسسة
الراعية للمعيار التخلي عن تكنولوجيا COM/DCOMواستبدلتها بتكنولوجيا HTTP/SOAP
وتكنولوجيا الويب.
باستخدام هذه الواجهة تم تقديم منصة للتواصل محايدة (أي تعمل بدون أي شروط تتعلق بنظام
التشغيل) ومقبولة على نطاق واسع مع االحتفاظ بجميع وظائف الـ OPC DAفي النفاذ إلى
البيانات.
تم تصميم OPC XML-DAبحيث تدعم الوصول إلى اإلنترنت باالعتماد على منصته المستقلة،
أي يمكن لزبون الـ OPCاالتصال بمخدم OPC XML DAعن طريق االنترنت.
المضمنة وعلى أنظمة التشغيل التي ال تتبع لشركة
وتم استخدام هذا المخدم بشكل رئيسي في النظم ُ
مايكروسوفت ،ولكن نظ ار الستهالكه المرتفع للموارد ومحدودية أدائه لم ينجح مخدم
OPC XML-DAكما كان متوقعاً له.
45
أنواع بروتوكول الـOPC الفصل الرابع
.
حددت مؤسسة الـ OPCمواصفات أخرى تطال عدة جوانب في معيار الـ OPCغير التي ذكرناها
حتى اآلن ،الهدف منها تلبية االحتياجات الخاصة للمستخدمين يوضحها الشكل(.)5-4
ُ : OPC Complex Data .3يحدد من خاللها كيفية تعريف ونقل قيم البيانات ذات البنية المعقدة
أو المركبة (.)complex structured data types
عادة والمألوف لنا حتى اآلن أن االتصال يكون بين زبون OPCيرغب بتحديث بياناته مع مخدم
ً
OPCمالك لهذه للبيانات.
فإذا كان لدى المصممين رغبة أو حاجة في تحقيق اتصال بين بيانات مخدم أول مع بيانات مخدم
ثاني وفق بروتوكول الـ ،OPCهل من الممكن تحقيق هذا الربط؟
41
أنواع بروتوكول الـOPC الفصل الرابع
إن إمكانية اتصال OPC Serverمع أخر بشكل مباشر غير ممكنة ضمن مواصفات معيار الـ
،OPCلكن تفعيل االتصال بين مخدمات الـ OPCممكن ومتاح من خالل ما يعرف بمخدم تبادل
البيانات ،OPC DXكما هو واضح في الشكل(.)1-4
الشكل :6-4تبادل البيانات بين مخدمات الـ OPCمن خالل OPC DX
إن الـ OPC DXبالتعريف هو أحد المواصفات التي وضعتها مؤسسة الـ OPCيمكن من خاللها
تحديد آلية تبادل البيانات بين مخدمات النفاذ إلى البيانات (.)OPC DAs
يتم تحقيق االتصال السابق كما يلي ،حيث يقوم الـ ( OPC DXالذي يمثل وجهة البيانات) بتحصيل
OPC البيانات من مخدم آخر(يمثل مصدر البيانات) شرط أن يتضمن مخدم المصدر على
Clientبداخله ،حيث يتم ضمن مخدم تبادل البيانات OPC DXتعريف وضبط قناة اتصال أو
أكثر يطلق عليها DX Connectionوظيفتها تهيئة االتصال بين مخدمات الـ OPCالمصدر
والوجهة.
: OPC Batch .5امتداد للـ OPC DAيمكن من خالل هذه الواجهة تلبية االحتياجات الخاصة
المتمثلة بالقيام بعدة عمليات دفعة واحدة (.)Batch Processes
ُ :OPC Commands .6يعرف من خالل هذه المواصفة آليات تنفيذ برامج عبر الـ .OPC
صدرت هذه المواصفة بشكل متأخر وترافقت مع صدور النسخة الجديدة من معيار الـ OPC
47
أنواع بروتوكول الـOPC الفصل الرابع
خالصة:
صدر عن مؤسسة الـ OPCمواصفات لمعيار الـ OPCوقدمتها لجميع الراغبين بتطوير منتجات
تعمل وفق لبروتوكول الـ .OPC
هذه المواصفات تلبي وتغطي جميع متطلبات العاملين في مجال األتمتة والتحكم بالعمليات.
لم تطالب مؤسسة الـ OPCأعضائها بااللتزام بجميع المواصفات الصادرة عن المؤسسة والتي
تناولناها في الفقرات الماضية ،فكل ما ينبغي على الراغبين في تطوير مخدم OPCفعله هو أن
أخذ المواصفات التي تلبي حاجتهم ومن ثم ترجمتها إلى أكواد برمجية تنّفذ الوظيفة التي يرغبون
بها.
وفقاً لمعيار الـ OPCفإن مخدمات الـ OPCلها نوعين من واجهات التخاطب مع الزبون ،بمعنى
أن OPC Clientsيمكن أن يتصل مع الـ OPC Serverمن خالل نوعين من الواجهات:
أوالا :الواجهة المخصصة ( :)OPC Custom Interfaceوهي واجهات مخصصة لالستخدام من
قبل اللغات عالية المستوى مثل .C++
ثانيا :الواجهة المؤتمتة ( :)OPC Automation interfaceوهي واجهات مخصصة لالستخدام
من قبل اللغات األقل تعقيداً مثل Delphi, Excel،Visual Basic
يتصل الـ OPC Clientبمخدم الـ OPCمن خالل واحدة من الواجهات السابقة.
كل OPC Serverيجب أن يحوي بالضرورة على الواجهة المخصصة ،Custom Interfaceولكن
ال يشترط أن يحوي على الواجهة المؤتمتة .Automation interface
يبين الشكل ( )7-4البنية النموذجية لمخدم الـ .OPC
48
أنواع بروتوكول الـOPC الفصل الرابع
عرف الواجهة Interfaceبأنها مجموعة من التوابع واألغراض البرمجية التي تشكل في مجموعها
تُ ّ
برنامج محدد.
يمكن أن نجد التوصيف الدقيق لواجهة األتمتة ( )OPC Automation interfaceضمن اإلصدار
الثالث لمواصفات الـ OPCالصادر عن مؤسسة الـ )OPC DA 3.00 Specification( OPC
هذه الواجهة كما ذكرنا يمكن التعامل معها فقط من خالل لغة ،C++ويفضل أن يعمل بهذه الطبقة
فقط مبرمجين خبراء نظ ار لصعوبة التعامل معها.
يتصل الـ OPC Clientبـ OPC Serverمن خالل هذه الواجهة (الطبقة الوسيطة).
في الحقيقة فإن الـ OPC Clientالمبرمج وفق لغة C++ال يرى من مخدم الـ OPCسوى هذه التوابع
فقط ،حيث أنه وباستخدام هذه التوابع (توابع الواجهة المخصصة التي تظهر في الشكل() )8-4
فإن زبون الـ OPCيستطيع النفاذ إلى بيانات المخدم المتصل معه و جميع مجموعاته وعناصره.
49
أنواع بروتوكول الـOPC الفصل الرابع
3-4عيوب معيار الـ OPC DAوالحافز الذي دفع باتجاه وضع معيار جديد للـ OPC
يعتبر معيار الـ OPC Data Accessالذي تناولناه طوال هذا البحث أول وأنجح معيار للـ ،OPC
صمم ليكون واجهة اتصال مع المتحكمات سامحاً بتبادل البيانات في الزمن الحقيقي بينها
والذي ُ
منصبة على أنظمة تشغيل ويندوز.
وبين تطبيقات برمجية ّ
ويعتبر أيضاً الـ OPC DAمن أكثر المواصفات استخداما في معيار الـ OPCحيث تم توظيفه في
نفاذ أنظمة التحكم والمراقبة ( )SCADAإلى بيانات تجهيزات األتمتة المختلفة ليتم الحقا إصدار
بقية المواصفات مثل OPC A&Eو OPC HDAلتلبية بعض االحتياجات الخاصة لكنها بالمجمل
لم تكن شائعة كما كان .OPC DA
مع نجاح اعتماد الـ OPCفي آالف المنتجات ،بات ُيستخدم الـ OPCاليوم كواجهة موحدة في
األنظمة المؤتمتة ،حتى أنه جرى استخدامه وأثبت نجاحه في كثير من المجاالت التي لم يكن قد
صمم ألجلها.
ولكن بالمقابل أيضا ،هناك العديد من التطبيقات أراد فيها المصنعون استخدام الـ OPCلكن لم
يستطيعوا ذلك بسبب اعتماده على تكنولوجيا الـ COMالمخصصة فقط لشركة ويندوز أو بسبب
صعوبة ضبط قناة االتصال البعيدة .DCOM
كان معيار الـ OPC XML-DAالنهج التطويري األول الذي سلكته مؤسسة الـ OPCوالتي هدفت
من خالله إلى استخدام منصة اتصال محايدة بعيدة عن شركة مايكروسوفت وتكنولوجيا
COM/DCOMمع سعيها للحفاظ على الميزات الناجحة للـ ، OPC DAلكن كان هناك عدة أسباب
جعلت من استخدام هذا اإلصدار غير كافي لتغطية جميع المتطلبات للجيل الجديد من الـ ،OPC
أحد هذه األسباب كان البطء و ضعف األداء حيث اعتمد OPC XML-DAعلى تكنولوجيا
خدمات الويب مقارنة مع النسخة األصلية التي اعتمدت على تكنولوجيا . COM/DCOM
وإلى جانب إشكالية منصة تشغيل في الـ ،OPC DAأبدت الشركات األعضاء في مؤسسة الـOPC
حاجاتهم للتعامل مع بيانات وأنظمة أكثر تعقيدا ،وأظهروا رغبتهم في التخلص من القيود التي
يفرضها عليهم معيار OPC DAفي هذا المجال.
54
أنواع بروتوكول الـOPC الفصل الرابع
بالرغم من أن تقنية COM/DCOMساعدت على انتشار الـ OPC DAفي بداياته ،لكن مع تطور
المعيار وانتشاره وزيادة حاجات السوق برز لهذه التقنية عدة سلبيات ،نذكر منها:
الشكل :9-4المخطط الزمني إلصدارات معيار الـ OPCبين عامين 2007 - 1995
يبين المخطط الزمني السابق أن عام 2445شهد والدة معيار جديد للـ ،OPCيدعى معيار الـ
OPCذو البنية الموحدة ) OPC Unified Architecture(OPC UA
51
أنواع بروتوكول الـOPC الفصل الرابع
من لحظة والدة هذا المعيار الجديد ،أصبح يطلق على معيار الـ OPC DAالذي تناولناه طوال هذا
البحث بـ OPCالكالسيكي أو التقليدي (.)Classic OPC
ولد معيار الـ OPCذو البنية الموحدة من الحاجة لخلق بديل حقيقي ومستقل عن
تكنولوجيا COM/DCOMوبدون فقدان أي ميزة أو تراجع في أداء الـ OPCالكالسيكي ،وبحيث
يكون قادر أيضا على توصيف األنظمة المعقدة.
في الجدول ( )1-4تم جدولة أهم أسباب وضع المعيار الجديد وأغلب المتطلبات المهمة التي طالب
أعضاء مؤسسة الـ OPCبتحقيقها وضمها للمعيار الجديد.
يمكن تصنيف هذه المتطلبات إلى صنفين:
الصنف األول :متطلبات تطال جوانب االتصال بين مكونات الـ OPCبحيث تكون أكثر مرونة
وأكثر استقاللية وأكثر كفاءة.
الصنف الثاني :متطلبات تتعلق بنمذجة البيانات.
فيما يلي ،سنوضح أهم النقاط الواردة في جدول متطلبات إيجاد معيار الـ:OPC UA
52
أنواع بروتوكول الـOPC الفصل الرابع
-1الموثوقية(:)Reliability
صمم الـ OPCالكالسيكي كواجهة لمتحكم ما بهدف ربطه بأنظمة التحكم والمراقبة سكادا ،أما الـ
OPC UAالجديد فالمطلوب منه أن ُيستخدم كواجهة تحصيل بيانات ألنظمة متكاملة موزعة أكثر
تعقيداً وليس فقط لتجهيزات تحكمية كما كان بالسابق ،ولذلك فإن موثوقية االتصال مطلوبة ومهمة
جدا في المعيار الجديد.
-2دعم التك اررية(:)Redundancy
ألن شبكات االتصال ليست مضمونة بطبيعة الحال ،فإن المتانة والقدرة على تجاوز األخطاء هي
مطلب مهم في المعيار الجديد ،لذلك كان المطلوب من المعيار الجديد دعم التكرارية Redundancy
53
أنواع بروتوكول الـOPC الفصل الرابع
تُ ّعرف المعلومات الوصفية Meta informationعلى أنها البيانات التي تزود المستخدم بمعلومات
توصف حالة البيانات نفسها ،فمثال :توضح البيانات الوصفية الهدف من إنشاء البيانات،
إضافية ّ
وقت وتاريخ إنشاء البيانات ،الشخص الذي أنشئ البيانات ..الخ.
نمذجة البيانات كان محدود جدا في الـ OPCالكالسيكي ،لذلك كان هناك حاجة إلى تعزيز النمذجة
عن طريق إتاحة نموذج مشترك للبيانات يعتمد على البرمجة الكائنية غرضية التوجه Object-
Oriented Modelلجميع بيانات الـ ، OPCالمطلوب من هذا النموذج أن يكون قابل للتوسع ليكون
قادر على توصيف األنظمة األكثر تعقيداً.
تعزيز النمذجة مطلب مهم في المعيار الجديد ،ولكن من المهم أيضا بنفس القدر دعم النماذج
البسيطة مع المفاهيم البسيطة المجردة ليكون باإلمكان التوسع منها إلى النماذج األكثر تعقيداً.
أحد أهم األهداف التصميمية التي تم مراعاتها في المعيار الجديد ،هو السماح بانتقال سهل وسلسل
من المعيار ( OPC DAالكالسيكي) إلى معيار OPC UAوذلك لحماية االستثمارات الناجحة التي
حققها الـ OPCالكالسيكي واالستفادة من انتشاره الكبير.
من أهم الحوافز التي دعت لالنتقال إلى المعيار الجديد هو أن تكنولوجيا اإليثرنت أصبحت ناضجة
وغزت بشكل كبير مجاالت التحكم اآللي واألتمتة الصناعية ،فاالتجاه السائد اليوم للصناعات هو
جعل التجهيزات الحقلية Field Devicesقادرة على االتصال المباشر مع الشبكة الصناعية العامة
التي تدير المنظومة المؤتمتة ،نتيجة لهذا االتجاه أصبح لزاما على الشركات بذل مجهود أكبر في
إيجاد بيئة مناسبة إلدارة هذه التجهيزات والتعامل معها ضمن الطبقة العليا للشبكات ،هنا ظهرت
حاجة ملحة لتحقيق إمكانية تبادل المعلومات بين تجهيزات الشبكات الصناعية المختلفة ،وهذا كان
عامل مهم في ظهور معيار الـ OPCالجديد.
54
أنواع بروتوكول الـOPC الفصل الرابع
4-4معيار الـ OPCذو البينة الموحدة )OPC Unified Architecture (OPC UA
ولد معيار الـ OPCذو البنية الموحدة من الحاجة لخلق بديل حقيقي ومستقل عن تكنولوجيا
COM/DCOMباإلضافة إلى الرغبة في جعل الـ OPCمتاح على جميع أنظمة التشغيل وله القدرة
على توصيف األنظمة األكثر تعقيداً.
في الشكل(َ )14-4يظهر شعار المعيار الجديد لبروتوكول الـ.OPC
إن مجموعة العمل األولى التي قامت بوضع متطلبات وحاالت استخدام معيار الـ OPC UAو
التي ضمت أكثر من 44ممثال عن شركات مختلفة لم يكونوا جميعهم أعضاء في مؤسسة الـ
،OPCفهناك منظمات من خارج المؤسسة أبدت اهتماما في استخدام معيار الـ OPCالجديد كآلية
لنقل البيانات ،منها منظمة ( ) IECومنظمة ( )ISAوجميعهم شاركوا في وضع التصميم والمتطلبات
لمعيار الـ OPCالجديد.
في مجموعة العمل هذه قامت مؤسسة الـ OPCبتعريف كيفية توصيف ونقل البيانات ،وقامت
المنظمات المتعاونة معها بتعريف ما هي البيانات التي يرغبون في توصيفها ونقلها باالعتماد على
نماذج البيانات خاصتهم.
إن بروتوكول الـ OPC UAبالتعريف :هو الجيل الثاني من بروتوكول الـ ،OPCيستخدم لتبادل
البيانات في الشبكات الصناعية بحيث يضمن تدفق سلس للبيانات بين التجهيزات من مختلف
المصنعين.
أول إصدار له كان عام 2441من قبل مؤسسة ،OPCظهر كتحسين لإلصدار السابق الذي
أصبح يعرف فيما بعد بالـ OPCالكالسيكي ،يحوي البروتوكول ذو البنية الموحدة OPC UAعلى
جميع الوظائف المتوفرة في الـ OPCالكالسيكي مضافا إليها وظائف أخرى.
ُيعرف أيضا الـ OPC UAبالمعيار .IEC 62541
55
أنواع بروتوكول الـOPC الفصل الرابع
اعتمد الـ OPC UAفي بناءه البرمجي على تكنولوجيا جديدة تسمى
المعمارية خدمية التوجه ) Service-Oriented Architecture (SOAوهي طريقة تُبنى فيها هيكلية
البرنامج باالعتماد على عدد من المهام الجزئية Micro Servicesالتي تتعاون فيما بينها لتوليد
البرنامج النهائي ،الحظ الشكل (.)11-4
طريقة التجزئة هذه مختلفة عن العرف القديم السائد والتي تجعل من البرنامج ُكل متكامل ُيعامل
ككتلة واحدة.
في البنية السابقة المتالصقة كان كلما احتجنا إلجراء تغيير ما ،مهما كان بسيطا سنضطر للقيام
بتعديالت كبيرة قد تطال كامل البرنامج وذلك كون كل تغيير يؤثر بطريقة ما على جزئية أخرى
من البرنامج الكلي.
أما عند استخدام تقنية SOAفبناء البرنامج يتكون من أجزاء صغيرة و كل جزء يقوم بمهمة واحدة
محددة ،و هذه المكونات مستقلة بذاتها.
الشكل :11-4البنية المعمارية خدمية التوجه التي يعتمد عليها معيار الـ OPC UA
أهمية هذه التقنية كانت في جعل التعديل على جزء من البرنامج أو تطويره أو إضافة مكونات
أخرى أمر سهل وممكن ،مما ساهم كثي اًر في توفير الوقت والكلفة.
اعتماد OPC UAعلى تقنية SOAبدالً عن تقنية COM/DCOMالموجود في الـ OPCالكالسيكي
منحه الكثير من المزايا وزاد من إمكانية توظيفيه في المشاريع باإلضافة إلى الكثير من الخصائص
األخرى ،نذكر منها:
.1إمكانية بناء الـ OPC UAباستخدام لغات برمجية متعددة منها.NET ، Java ،ANSI C :
.2قابل للتوسع بشكل كبير( )Scalabilityحيث يمكن له أن يضم طيف واسع من المكونات
انتهاء بالمتحكمات المنطقية.
الصلبة ،بدءا من الحساسات الذكية و ً
.3ارتفاع الموثوقية واألمان ،حيث أنه يعتمد على معاير جديدة وموثوقة يسهل التعامل معها.
المشكلة للمعيار.
.4أصبح باإلمكان ضبط زمن فقدان االتصال لكل مهمة من المهام ُ
51
أنواع بروتوكول الـOPC الفصل الرابع
.5مخدم الـ OPC UAيمكن له وفق البنية الجديدة أن يكون متضمن داخل المتحكم وهي ميزة
أعطت مرونة كبيرة للمعيار حيث أصبح باإلمكان تحصيل البيانات من طبقة المتحكمات
إلى طبقة Enterpriseمباشرة.
كما هو واضح في الشكل ( ،)12-4فإن OPC UAتجاوز الحاجة الى مكونات ويندوز وأصبح
أكثر استقاللية ،حيث يمكن له أن يعمل على أي نظام تشغيل ( .) Windows, Linux, MAC..
أهم مزايا بروتوكول الـ OPC UAهو أنه بروتوكول يدعم اتصال آلة بآلة Machine To Machine
بمعنى أنه يسمح باالتصال المباشر بين المكونات الصناعية مع البرمجيات من أجل تحصيل
البيانات والتحكم.
المقصود باالتصال Machine To Machineهو إمكانية أن تتصل التجهيزات فيما بينها بشكل
مباشر ،بمعنى أنه يمكن لمتحكم منطقي أن يتصل بمتحكم آخر عبر هذا البروتوكول.
بناء على ما سبق ،يمكن للمخدم OPC UA Serverأن يكون برمجية على أي نظام تشغيل أو أن
ً
يكون ضمن المتحكم نفسه (ضمن برنامج ،)PLCأما زبائن OPC UA Clientفيمكن أن تكون
برمجيات على حاسب أو جزء من برامج شاشات التخاطب البشرية HMIsوممكن أن تكون ضمن
برنامج المتحكم المنطقي نفسه.
57
أنواع بروتوكول الـOPC الفصل الرابع
وبالتالي فإنه أصبح باإلمكان من خالل الـ OPC UAأن يتحقق اتصال أفقي ضمن طبقة
المتحكمات كما يظهر في الشكل( )13-4وهذا شيء لم يكن متاح في الـ OPC DAالكالسيكي.
يظهر في الشكل( )14-4بنية الـ OPC UAفي حال تم تضمين مخدمات الـ OPCداخل المتحكمات
المنطقية ،هذا التطور فتح الباب أمام تكنولوجيا جديدة في فضاء األتمتة شكلت نقلة نوعية في
العالقة بين مكونات الشبكة الصناعية.
إن معيار الـ OPC UAو المبني من خالل االجرائيات Processيسمح بعدة طرائق لتحقيق
ضمن معيار .OPC UA Transport layer االتصال تم توصيفها من خالل طبقة النقل
58
أنواع بروتوكول الـOPC الفصل الرابع
)1البروتكول الثنائي ( :)Binary Protocolيقدم أداء عالي باستخدام الحد األدنى من
الموارد ،ال يحتاج إلى XMLوال إلى HTTPSالتي نحتاجها في األجهزة المضمنة ،وهو
خيار جيد كون النظام الثنائي ()binaryواضح ويسمح بدرجات مقبولة من الحرية أثناء
البرمجة والتنفيذ.
يمكن التمييز بين البروتكولين واختيار أحدهما من خالل تغير عنوان االنترنت ( ،)URLحيث أن:
عنوان االنترنت من أجل البروتوكول الثنائيopc.tcp://Server :
عنوان االنترنت من أجل خدمة الويبhttp://Server :
بسبب ميزات بروتكول OPC UAالجديد ،توسع استخدامه في اتجاهات جديدة سواء في مجال
التحكم الصناعي أو في مجاالت جديدة أكثر خطورة وتعقيد مثل مجاالت الطاقة والنفط والغاز.
المعتمدة
صممت نماذج البيانات في معيار الـ OPCوفق شبكة التشابك الكامل ُ Full Mesh Network
ُ
على العقد ،Nodesهذه العقد يمكن أن تحوي أي نوع من البيانات أو التعاريف ،لتسهيل األمر
يمكن لنا أن نتخيل كل عقد عبارة عن غرض برمجي ،Objectوكل عقدة تملك عدة مواصفات
يبينها الشكل ( ،)15-4هذه المواصفات هي:
مواصفات عامة :تبين المعلومات االساسية للعقدة وتوصف األعمال التي تقوم بها العقدة.
مواصفات خاصة :مثل امكانية القراءة ، Read Accessإمكانية الكتابة،Commands
إمكانية قدح انذارات أو أحداث (.)Alarm &Event
مرجعيات العقدة :Referencesوتبين عالقة العقدة مع باقي العقد ،ويمكن للعقدة أن ترتبط
بعقد أخرى موجودة ضمن نفس المخدم أو ضمن مخدم أخر.
خصائص العقدة :وتحوي معلومات عامة يضيفها المستخدم مثل اسم العقدة الطويل،
وتوصيفها وكيف تستخدم.
59
أنواع بروتوكول الـOPC الفصل الرابع
كما ذكرنا سابقا أن الـ OPCالكالسيكي يدعم خاصية النفاذ إلى البيانات بالزمن الحقيقي ،ويدعم
كل من خاصية االنذارات واألحداث Alarm & Eventوالنفاذ إلى البيانات المؤرشفة Historical
، Data Accessوبالنسبة للمعيار الجديد OPC UAفهو يدعم جميع الميزات السابقة باإلضافية
للميزات التالية:
يدعم التك اررية .Redundancy
يدعم ميزة نبض القلب في االتصال Heartbeatفي كال االتجاهين :وهي ميزة َيلحظ فيها
كل طرف من أطراف االتصال بأن الطرف األخر متصل بالشبكة (يراقب نبض الطرف
األخر) ،وهذا يعني أن كل من المخدم والزبون يمكنهما مالحظة حدوث االنقطاع في
االتصال.
يدعم التخزين المؤقت للبيانات المرسلة :وهذا يعني أن خسارة االتصال لم تعد تؤدي أبدا إلى
فقدان البيانات ،يمكن الحقا عند استعادة االتصال استرجاع كامل البيانات ،فهناك تزامن بين
الزبون والمخدم ،كالهما يتحسس انقطاع االتصال ،وعند عودته يرسل المخدم للزبون كل
عرف موجود لدى الزبون والمخدم ،فمثال عند
البيانات التي فقدها ،يتم ذلك من خالل رقم ُم ّ
المخدم قد بلغ 34 انقطاع االتصال عن الزبون يكون عنده الرقم 24وعند عودته يكون ّ
معرف ُ
والزبون ما زال عند الرقم ، 24عندها يطلب الزبون كتل البيانات العشرة المفقودة.
14
أنواع بروتوكول الـOPC الفصل الرابع
يستخدم OPC UAبنية المخدم /زبون تماما كالـ OPC DAالكالسيكي ،التطبيق الذي يشارك
معلوماته مع التطبيقات األخرى هو المخدم ،OPC UA Serverوالتطبيق الذي يأخذ معلوماته من
التطبيقات األخرى هو الزبون ،OPC UA Clientولكن من المرجح أن أغلب التطبيقات التي
ستظهر للعلن ستكون مخدم وزبون في آن واحد بخالف الـ OPCالكالسيكي ،ويرجع ذلك كون أن
أغلب OPC UA serversستكون متضمنة مباشرًة في التجهيزات (ضمن المتحكمات المنطقية PLC
ُ
وأشباهها) كون معيار UAيسمح بإنشاء اتصال بين التجهيزات فيما بينها.
وسبب أخر لجمع المخدم والزبون في برنامج واحد هو امكانية أن يقوم البرنامج بوظيفة مخدم
لمجموعة من الزبائن وفي نفس الوقت يكون هذا البرنامج زبون لمخدم آخر يطلب منه بعض
البيانات.
معيار OPC UAمن وجهة نظر برمجية يتألف من ثالث طبقات تظهر في الشكل(،)11-4
الطبقات الثالث يمكن برمجتها باستخدام .JAVA , C/C++, .NET
معيار OPC UAال يحدد هذه اللغات كمنصات حصرية للتطوير ،لكن البيئات البرمجية هذه هي
المستخدمة حاليا من قبل مؤسسة الـ OPCفي عمليات التطوير.
11
أنواع بروتوكول الـOPC الفصل الرابع
الستخدام معيار الـ OPC UAفي منتج ما ،هناك مواصفات وضعتها مؤسسة الـ OPCيجب
مراعاتها.
الشكل ( )17-4يعطي نظرة عامة على جميع أجزاء مواصفات ، OPC UAحيث تم تصنيف
وتعرف
مواصفات معيار الـ OPC UAإلى صنفين :مواصفات أساسية ّ Core Specifications
أساسيات معيار ،OPC UAومواصفات أنواع النفاذ المتاحة Access Type Specificationsوالتي
تحدد بشكل أساسي طرائق نمذجة البيانات في معيار .OPC UA
قبل العمل على توظيف معيار الـ OPC UAفي منتج ما ،ينبغي على المبرمجين االطالع على
مفصل من مؤسسة الـ :OPC
المواصفات التالية والتي يمكن الحصول عليها بشكل ّ
12
أنواع بروتوكول الـOPC الفصل الرابع
الجزء الثالث والرابع /نموذج فضاء العناوين والخدمات ( :)Address Space Model& Services
يشرحان كيفية نمذجة المعلومات والنفاذ إليها ،هذين الجزئيين هما األهم لفهم كيفية تصميم وتطوير
تطبيق يعمل وفق معيار .OPC UA
الجزء الخامس /نموذج المعلومات (:)Information Model
يوصف نموذج المعلومات األساسية حيث يضع اإلطار العام لجميع نماذج المعلومات التي تستخدم
في OPC UA
13
أنواع بروتوكول الـOPC الفصل الرابع
أحد أهم الفوائد التي جناها بروتكول OPC UAحين استغنى عن تكنولوجيا COM /DCOMهي
كبير أماما
اً توسيع ميزات األمان في االتصال ،حيث شكلت تكنولوجيا COM /DCOMعائقا
المطورين نظ ار لصعوبة وتعقيد ضبطها ،حيث كان من الشائع جدا تجاوز ضبط DCOMوإلغاء
تفعيلها ،وهذا ما كان يؤدي إلى حدوث فجوات في األمان على الشبكة الصناعية.
استخدم معيار الـ OPC UAتكنولوجيا الويب القياسية كأساس في اجرائيات األمان والتي تتضمن
السماحيات Authenticationوالتشفير Encryptionعلى البيانات .
يوضح الشكل( )18-4أن OPC UAيحتاج إلى أجراء مصافحة بين المخدم والزبون إلنشاء
( X.509 Web المستخدم في الويب الشهادات X.509 ويحقق ذلك باستخدام معيار
االتصال بينهماُ ،
.)standard certificates
14
أنواع بروتوكول الـOPC الفصل الرابع
ليتم االتصال بين المخدم والزبون ،يمكن للمستخدم االختيار بين ثالث أنواع من أنماط الرسائل
اتصال بدون أي عملية تسجيل أو تشفير (.)None
اتصال يخضع للتسجيل (.)Sign
اتصال يخضع لعمليات التسجيل والتشفير ).)Sign and Encrypt
إضافة إلى أنه بإمكان المستخدم تفعيل إحدى سياسات األمان ،إما Basic256أو Basic128Rsa15
حيث أن سياساتي األمان هاتين تشكالن أساساً لخوارزمية التسجيل Signو التشفير Encrypt
إن مواصفات معيار الـ OPCذو البنية الموحدة ( )OPC UAأكثر مرونة وميزاته أكثر بكثير من
جميع مواصفات الـ OPCالكالسيكي مجتمعة ،لكنه حوى جميع المواصفات الناجحة لـ OPC
الكالسيكي ،وتم اصالح المشاكل المعروفة فيه وإضافة معايير حديثة لكثير من حاالت االستخدام
الجديدة.
كان هناك هدف مهم جدا هو السماح بانتقال سهل من الـ OPC أثناء تصميم معيار UA
الكالسيكي إلى ال OPC UAذو البينية الموحدة ،لهذا السبب فأغلب الميزات المعروفة في الـ OPC
الكالسيكي يمكن ايجادها في الـ OPC UAذو البينية الموسعة ،وإن كان هناك بعض االختالف
في التسميات أحيانا.
15
أنواع بروتوكول الـOPC الفصل الرابع
وبالمقابل ،فإنه من غير الممكن تصدير جميع ميزات معيار UAوجعلها تالئم العمل في بنية
الـ OPCالكالسيكي.
إن معيار OPC UAالجديد قدم استراتيجية انتقال سهلة تهدف لضم واستيعاب منتجات الـ OPC
11
الفصل الخامس
الدراسة العملية
The Practical Study
يوضح هذا الفصل الجانب العملي التطبيقي لبروتوكول الـ ،OPCويوضح متطلبات البدء بتنفيذ
مفصل ،كما يتناول أيضاً
مشروع تحكم يستخدم بروتوكول الـ OPC DAوخطوات العمل بشكل ّ
طرائق ضبط أشهر برمجيات الـ SCADAللسماح لها بالتعامل مع بروتوكول الـ ،OPCباإلضافة
إلى ربط متحكم األردوينو مع الـ.OPC
17
الدراسة العملية الفصل الخامس
ذكرنا سابقاً أن أغلب استخدامات بروتوكول الـ OPCتكون بغرض السماح لبرمجيات المراقبة
والتحكم SCADAبالنفاذ إلى بيانات المتحكمات المنطقية القابلة للبرمجة PLCsوأمثالها ،سنحاول
في هذا الفصل توضيح االعدادات الالزمة لتوظيف بروتوكول الـ OPCبشقيه المخدم والزبون في
تطبيق ما.
سنستخدم في هذا التطبيق العملي الـ OPCالكالسيكي نظ ار النتشاره الكبير واستحواذه على أغلب
منتجات سوق األتمتة وذلك بالرغم من صدور نسخة الجيل الثاني من البروتوكول ( .) OPC UA
لبدء مشروع تحكم يربط بين متحكم منطقي ما وبرمجية تحكم ومراقبة SCADAباستخدام بروتوكول
الـ OPCيلزم شقين من العمل ،األول عتادي عملي و اآلخر برمجي ،سنتناول كل منهما بالتفصيل،
الشكل ( )1-5يبين البنية العامة التي سنعمل على تنفيذها.
الشكل :1-5البنية العامة لشبكة صناعية تعمل وفق بروتوكول الـ OPC DA
هناك العديد من المكونات الصلبة Hardwareوالتي تشكل في مجموعها البنية التحتية للشبكة
الصناعية العاملة وفق بروتوكول الـ OPCوهي:
.1متحكم منطقي قابل للبرمجة PLCمتصل من جهة مع العملية الصناعية التي ُيديرها عبر مداخله
ومخارجه الرقمية والتماثلية ،ومن جهة أخرى متصل مع حاسب وفق بروتوكول ما يدعمه المتحكم.
لن نتناول في هذا البحث البرنامج السلمي Ladder Diagramللـمتحكم المنطقي ،سنفترض أن
18
الدراسة العملية الفصل الخامس
في هذا المشروع العملي تم استخدام متحكم منطقي قابل للبرمجة PLCمن شركة Deltaنوعه،SA
يدعم هذا النوع من المتحكمات المنطقية بروتوكول الـ Modbusعبر منفذ RS232التسلسلي ،تم
ضبط إعدادات االتصال كما يلي:
رقم منفذ االتصال ضمن الحاسب (Com 3:)Com Port
الندية(Even :)Parity
ّ
.2حاسب يعمل بنظام التشغيل ويندوز متصل فيزيائيا مع المتحكم المنطقي عبر أحد منافذ الحاسب
( ، )RS232,Ethernet..etcفي هذا المشروع تم استخدام منفذ ،RS232رقم المنفذ 3
بإتمام الخطوات السابقة تكون البنية التحتية لشبكة صناعية بسيطة تعمل وفق بروتوكول الـ OPCقد
تمت.
يشمل الجزء البرمجي ضبط اإلعدادات لكل من الـ OPC Serverو الـ .OPC Client
سبق وشرحنا بالتفصيل أن مخدم الـ OPC DAهو برنامج حاسوبي يعمل على تحصيل البيانات
من متحكم منطقي والتعديل عليها وفق بروتوكول يفهمه المتحكم.
المصنعة
ّ يمكن الحصول على الـ OPC Serverألي متحكم منطقي من خالل شراءه من الشركة
للمتحكم أو عن طريقة شركات مستقلة ربحية ،حيث أن مخدمات الـ OPCهي برامج غير مجانية.
19
الدراسة العملية الفصل الخامس
من الجدير بالذكر أن ضبط إعدادات مخدمات الـ OPCمتشابهة فيما بينها إلى حد بعيد وذلك
بغض النظر عن الشركة المنتجة للـ OPC Serverكونها مبرمجة وفقاً لمواصفات معيارية موحدة.
74
الدراسة العملية الفصل الخامس
71
الدراسة العملية الفصل الخامس
يمكن تحديد صالحية النفاذ إلى العنصر ،قراءة فقط ،أو ق ارءة وكتابة (أي ممكن التعديل على
قيمته).
العناصر التي نقوم بتعريفها ضمن المخدم هي فقط العناصر التي يمكن للـ OPC Clientطلبها
فيما بعد.
بتعريف العناصر ضمن المخدم ،يصبح األخير جاهز لتحصيل البيانات من المتحكم المنطقي،
نقوم بحفظ المشروع ومن ثم نجعله بحالة فعالية (من قائمة Fileنختار .)Make Active
المعرفة
ّ عرف( )Com3وتحديث قيم العناصر
الم ّ
يقوم المخدم باالتصال بـ PLCعبر منفذ االتصال ُ
ضمنه بشكل دوري.
مخدم الـ OPCيعمل في الخلفية كإجرائية Processوبتالي حتى بعد اغالق واجهة البرنامج يستمر
72
الدراسة العملية الفصل الخامس
الشكل :6-5واجهة لعرض القيم اللحظية للعناصر المعرفة ضمن مخدم الـ OPC
زبائن الـ OPCتكون في الغالب جزء من المكون البرمجي لبرمجيات التحكم والمراقبة(.)SCADA
وأيضاً تحوي أغلب مخدمات الـ OPCعلى زبون OPCمتضمن داخلها بهدف التقييم السريع لجودة
االتصال وصحة ضبط اعداداته ،إضافة إلى أنه يمكن التأكد من صحة القراءات اللحظية للعناصر
وعناوينها قبل االنتقال وتعريفها ضمن برمجيات السكادا ،الشكل ( )7-5يبين ذلك ،حيث يقوم
73
الدراسة العملية الفصل الخامس
عند الضغط على زر تشغيل برنامج الـ OPC Clientتظهر قائمة تحوي ّ
معرفات( ) IDsلجميع
عرف الخاص بمخدم الـ OPCالذي
الم ّ
نصبة على الحاسب ،في مثالنا نختار ُ
الم ّ
مخدمات الـُ OPC
قمنا سابقا بتنصيبه وهو". "OPCTechs.Delta30DA
بعد ذلك تظهر لنا جميع العناصر التي سبق وعرفناها ضمن المخدم ،نحدد أي من هذه العناصر
نرغب بعرض قيمها أو التعديل عليها ،الشكل ()8-5
74
الدراسة العملية الفصل الخامس
الشكل (ُ )9-5يظهر واجهة زبون الـ OPCوفيه تظهر قيمة العنصر الذي سبق وعرفناه في مخدم
الـ ، OPCهذه القيمة تتغير بالزمن الحقيقي تبعا لحالة المخرج األول في المتحكم المنطقي
DELTA-SAالمتصل مع مخدم الـ . OPC
الشكل :9-5واجهة لزبون OPCمدمج مع المخدم تظهر فيها قيمة أحد العناصر
في هذه الفقرة سنتناول كيفية ربط واحدة من أشهر برمجيات التحكم والمراقبة SCADAبمتحكم
منطقي عن طريق بروتوكول الـ ،OPCتمثل برمجية التحكم والمراقبة OPC Clientوالتي يمكن
ربطها بأي .OPC Server
هناك 7خطوات ينبغي القيام بها لتهيئة برنامج الـ Winccالستقبال البيانات من مخدم الـ،OPC
الخطوات هي على النحو التالي:
75
الدراسة العملية الفصل الخامس
.2تعريف قناة اتصال جديدة :من إدارة المتحوالت ،Tag Managementنختار نوع قناة االتصال
الجديدة ،في حالتنا نختار ” ،“OPC.chnكما يوضح الشكل (.)11-5
71
الدراسة العملية الفصل الخامس
.3تعريف المجموعات :نُنشأ مجموعة واحدة على األقل ،نختر لها اسم ما وليكن اسمها ،OPC
ضمن هذه المجموعة يمكن لنا انشاء العدد الذي نرغب له من قنوات االتصال ،كل قناة
صبة على نفس الحاسب أو على مخصصة لالتصال مع مخدم واحد من مخدمات الـ OPCالمن ّ
حواسب متصلة بالحاسب الذي نعمل عليه ،نضغط على زر خصائص Propertiesلتحديد
اسم مخدم الـ OPCالذي نرغب باالتصال به ،الشكل (.)12-5
.5تعريف متحول ( )Tagضمن برنامج :WINCCتحت قناة االتصال التي قمنا بإنشائها ،نقوم
بتعريف متحول وليكون اسمه ،OUTPUT1ثم من قائمة الخصائص الخاصة به نختار الحقل
Addressوندخل فيه االسم الكامل للعنصر بالطريقة التي عرفناها سابقاً ضمن OPC
،Serverالمقصود باالسم الكامل هو اسم المنفذ ،يليه اسم المتحكم ،يليه اسم المجموعة ،يليه
اسم العنصر ،نفصل بين مكونات االسم السابقة بنقطة (. ).
مثال :
"" Port N_COM3 . PLC_N Delta SA . GROUP1 Digital Signals . output1
في هذه الخطوة قمنا بربط المتحول الـ OUTPUT1المعرف ضمن برنامج الـ WINCCبالمتحول
عرف سابقاً ضمن مخدم الـ ،OPCيوضح ذلك الشكل (.)14-5
الم ّ
ُ
باالنتهاء من هذه الخطوة ،تكون الخطوات الالزمة لتهيئة OPC Clientضمن برنامج الـ WINCC
قد انتهت ،كل الذي تبقى هو ربط المتحول OUTPUT1بإظهار رسومي لعرض قيمته.
78
الدراسة العملية الفصل الخامس
.1إنشاء صفحة رسومية :من قائمة تصميم الرسومات ُ ،Graphics Designerننشئ صفحة جديدة،
الشكل ( )15-5يوضح ذلك.
.7نقوم بإدراج عنصر I/Oبغرض إظهار قيمة المتحول ،OUTPUT1بعد سحب و إفالت العنصر
تظهر نافذة نستطيع من خاللها الوصول إلى جميع المتحوالت المعرفة ضمن برنامج ،WINCC
نختار المتحول .OUTPUT1
الشكل :16-5تجهيز الواجهة الرسومية ضمن برنامج WINCCلعرض قيمة عنصر OPC
79
الدراسة العملية الفصل الخامس
نقوم بحفظ الصفحة وتشغيل البرنامج ،نالحظ أن القيمة التي تمثل حالة المخرج األول OUTPUT1
القيمة التي نراها في الواجهة الرسومية مأخوذة من OPC Clientالذي ضبطنا إعداداته ضمن
برنامج WINCCوالذي بدوره يأخذها من برنامج OPC Serverوالذي بدوره يأخذها من المخرج
األول للمتحكم المنطقي .DELTA SA
إن النجاح الكبير الذي حققه معيار الـ OPCجعل أنظار جميع العاملين في مجال األتمتة تتجه
نحوه ،ما لبث هذا االهتمام أن تحول لمحاوالت جدية لالستفادة من هذا المعيار لجعله متوافقاً مع
منتجاتهم محاولين بذلك االستفادة من شعبية المعيار وانتشاره.
سنشرح في هذا الفقرة إحدى هذه المحاوالت في توظيف بروتوكول الـ OPCمع متحكمات األردوينو.
طريقة ربط األردوينو التي سنستعرضها فيما يلي هي محاولة قيد الدراسة وغير ناضجة بعد بشكل
كامل ،حيث سنالحظ أنها غير متطابقة مع مواصفات معيار الـ OPCالتي تناولناها سابقاً وذلك
من حيث وظيفة المخدم والزبون.
ينقسم العمل الذي سنقوم به إلى قسمين:
1-3-5تنصيب مخدم الـ OPCالخاص باألردوينو وضبطه
يمكن تحميل مخدم الـ OPCالخاص باألردوينو من الرابط التالي:
https://www.st4makers.com/download-opc-server-for-arduino
بعد تحميل الملف نقوم بفك ضغطه في مكانه النهائي على القرص الصلب ،ال ينبغي أن نغير
84
الدراسة العملية الفصل الخامس
االن سنقوم بالخطوة األخيرة في عملية التنصيب وهي تسجيل الـ Arduino OPCضمن قائمة
مخدمات الـ OPCفي نظام التشغيل ،لتنفيذ ذلك نقوم بتشغيل الملف ،register.batيجب تشغيل هذا
Run As الملف بصالحيات مسؤول (نضغط بالفأرة اليمين ومن ثم تشغيل كمسؤول
)Administrator
مكتبة الـ OPCالخاصة باألردوينو هي مكتبة تستخدم من قبل Arduino OPC Serverليستطيع من
خاللها الوصول إلى بيانات األردوينو.
قدم المكتبة طريقة سهلة لتبادل البيانات مع األردوينو من خالل بروتوكول الـ ،OPCتدعم المكتبة
تُ ّ
81
الدراسة العملية الفصل الخامس
طريقتين للوصول لألردوينو ،الطريقة التسلسلية عن طريق المنفذ التسلسلي Serialأو الطريقة
الشبكية Ethernetبعد وصل األردوينو مع موديول .Ethernet
يمكن تحميل مكتبة الـ OPCالخاصة باألردوينو من الرابط التالي:
https://github.com/SoftwareTools4Makers/OPC
بعد تحميل المكتبة ،نقوم بإضافتها إلى البرنامج كما يبين الشكل ()19-5
كل عنصر Itemضمن األردوينو نرغب بالوصول إليه من خالل بروتوكول الـ OPCيجب أن
نقوم بالتصريح عنه ( )Publishمن خالل بعض التوابع التي تقدمها مكتبة الـ OPCهذه.
82
الدراسة العملية الفصل الخامس
بعد كتابة البرنامج نقوم بتحميله ضمن األردوينو ،ومن ثم نقوم بتشغيل ،Arduino OPC Server
عندها سيكون باإلمكان الوصول لجميع العناصر التي تم التصريح عنها ضمن برنامج األردوينو
من خالل أي زبون للـ .OPC
يمكن بذات الطريقة التي شرحناها في فقرة ضبط إعدادات الـ OPC Clientأن نستعرض جميع
المتحوالت التي قمنا بالتصريح عنها ضمن برنامج األردوينو.
83
الدراسة العملية الفصل الخامس
يقدم الماتالب مكتبة تدعم بروتوكول الـ ،OPC DAتسمح هذه المكتبة ببناء OPC Clientمتكامل.
تم باالعتماد على هذه المكتبة وعلى واجهات الماتالب الرسومية Matlab GUIتصميم زبون
OPCمتكامل .
الخوارزمية التي تم اتباعها في كتابة األكواد البرمجية لزبون الـ OPCوتصميم واجهة الماتالب تظهر
في الشكل(.)21-5
84
الدراسة العملية الفصل الخامس
سنقوم فيما يلي بشرح أهم توابع مكتبة الـ OPCالمستخدمة في برمجة زبون الـ:OPC
الخطوة األولى :البحث عن جميع مخدمات الـ OPC DAالمنصبة على الحاسب المحلي أو على
الحواسب البعيدة
عملية البحث هذه تتم من خالل استدعاء التابع التالي:
بنية التابعopcserverinfo('computer Name or IP') :
المنصب عليه مخدم الـ ،OPCوفي حال كان نفس الحاسب
ّ نمرر لهذا التابع االسم الشبكي للحاسب
الذي يعمل عليه الماتالب ،نمرر للتابع القيمة '.'localhost
المضيف لمخدم
يعيد هذا التابع جزئيين من المعلومات ،الجزء األول يشير إلى اسم الحاسب ُ
الـ ،OPCالقيمة المعادة هي اسم الحاسب على الشبكة ،ألنه بالنسبة ألي زبون OPCمن الضروري
نصب عليه المخدم لتحقيق االتصال معه. جدا تحديد اسم الحاسب الم ّ
نصبة
الم ّ
الجزء الثاني من المعلومات التي ُيعيدها هذا التابع هي مصفوفة بأسماء مخدمات الـُ OPC
على الحاسب ،حيث أن كل مخدم OPCيملك اسم فريد على الحاسب المضيف يدعى
Server IDوأحيانا يدعى Program IDأو .ProgID
فيما يلي مثال على كيفية استخدام هذا التابع مع تبيان ُمخرجاته:
)'HostInfo = opcserverinfo ('localhost
= HostInfo
Host:
''localhost الجزء األول من المعلومات ُيشير إلى اسم الحاسب المضيف.
منصب على نفس حاسب
' 'Localhostداللة على أن مخدم الـّ OPC
الزبون
}ServerID: {1x3 cell
'allServers = hostInfo.ServerID من خالل هذا التابع تم اكتشاف وجود ثالث مخدمات للـ OPC
''Matrikon.OPC.Simulation.1
منصبة على ذات الحاسب الذي يعمل عليه الماتالب ،أسماء
''OPCTechs.Delta30DA.3
''ArduinoOPCServer.2 (معرفات)هذه المخدمات هي الظاهرة في المثال.
85
الدراسة العملية الفصل الخامس
إنشاء زبون اسمه daObj1من أجل النفاذ إلى بيانات مخدم ArduinoOPCServer.2منصب
على نفس حاسب الزبون
إنشاء زبون اسمه daObj2من أجل النفاذ إلى بيانات مخدم Matrikon.OPC.Modbus
منصب على حاسب غير حاسب الزبون ،اسم الحاسب. ServerHost1
81
الدراسة العملية الفصل الخامس
بنفس الطريقة في حال رغبنا بقطع االتصال بين زبون الـ OPCومخدمه ،نقوم باستخدام
التابع)disconnect(Obj
;)disconnect(daObj1
)'get(daObj1, 'Status
يمكن تعريف مجموعة ضمن زبون الـ OPCبدون تحديد اسم للمجموعة ،فتكون بنية التابع السابق
على الشكل التاليGrpObj = addgroup(DAObj) :
في هذه الحالة عندما يكون DAObjمتصل بمخدم الـ OPCيتم طلب اسم المجموعة منه ،أما عندما
87
الدراسة العملية الفصل الخامس
يضيف هذا التابع عنصر أو عناصر' 'INameإلى المجموعة ، GObjحيث يُنشأ هذا التابع
غرض IObjله اتصال مع متحوالت ّ
معرفة في مخدم الـ.OPC
التابع يمكن ان ُينشأ غرض أو أكثر ،يحدد ذلك نوع المتحول' 'INameهل هو عنصر وحيد أو
مصفوفة خلوية من العناصر.
معرف ضمن زبون الـ OPCله عدة خصائص ،أهمها القيمة ValueوالجودةQuality
كل عنصر ّ
والطابع الزمني( Time Stampلحظة أخذ العينة) والفعالية Activeوحقوق النفاذ. Access
فيما يلي مثال عن طريقة الوصول إلى خصائص كل عنصر itemمعرف ضمن زبون الـOPC
ومن الجدير بالذكر أنه ال يمكن إضافة نفس العنصر إلى مجموعة ما أكثر من مرة ،لكن باإلمكان
أضافة عنصر ما إلى أكثر من مجموعة.
يمكن أيضا استخدام التابع بالبنية التالية serveritems(DAObj,ItemID):حينها يعيد التابع قيمة
88
الدراسة العملية الفصل الخامس
العنصر .ItemID
ويمكن أيضا استخدام التابع مع عملية فلترة للعناصر عندها تصبح بنية التابع كما يلي:
)'*serveritems(DAObj, ''*Real
حيث سيعيد التابع هنا جميع العناصر الحاوية على الكلمة .Real
فيما يلي مثال على طريقة استخدام التابع:
;)'da = opcda('localhost', 'Matrikon.OPC.Simulation
;)connect(da
تعريف زبون للمخدم ' 'Matrikon.OPC.Simulationواالتصال به
;)item = additem(grp,ItmID
Itemv=item.Value
Itemq=itm.Quality إضافة العنصر ItmIDإلى المجموعة الجديدة .
Itemc= itm.Accsess
عرض كل من قيمة العنصر وجودته وصالحيات النفاذ إليه
بذلك يكون زبون الـ OPCالمنشأ باستخدام الماتالب قد استطاع االتصال مع مخدم و تحصيل
بيانات منه عبر بروتوكول الـ.OPC
توابع إضافية:
في تصميم واجهات الماتالب تم أيضاً استخدام بعض التوابع ،نذكر منها:
89
الدراسة العملية الفصل الخامس
هذا التابع يقوم بقراءة البيانات من أحد مصدرين يحدد ذلك المتحول ، Sourceحيث يمكن لهذا
المتحول أن يأخذ إحدى قيمتين إما الجهاز ” ”deviceأو الذاكرة كاش لمخدم الـ.“cache” OPC
إذا كان المصدر هو الجهاز ،البيانات تأتي مباشرة من الجهاز الفيزيائي دون تخزينها في ذاكرة
الكاش الخاصة بمخدم الـ.OPC
أما إذا كان المصدر هو الكاش ،فالبيانات تأتي من ذاكرة الكاش المخصصة للـ.OPC Server
البيانات ضمن ذاكرة الكاش هي نسخة عن بيانات الجهاز.
في حال لم ُيمرر للتابع قيمة هذا المتحول فالمصدر االفتراضي لجميع عمليات القراءة هو الكاش
وليس الجهاز.
لكن يجب اإلشارة أنه عندما يكون مصدر البيانات هو الجهاز ،ممكن أن يكون االتصال أبطأ ألن
استجابة الجهاز قد تكون بطيئة ويتوجب علينا انتظار الجهاز ليستجيب للطلب ،وفي هذه الحالة
أيضا تصبح خاصية التفعيل Activeلكل من المجموعة والعنصر مهملة بال معنى.
من الممكن القراءة من الكاش في حالة كانت خاصية التفعيل Activeفي وضعية تشغيل لكل من
العنصر وللمجموعة التي تحويه.
عندما تنجح عملية القراءة ،كل من خصائص القيمة والجودة والطابع الزمني لجميع العناصر
المحصلة من الجهاز.
حدث قيمها بحيث تعكس حالة البيانات ُ
المقروءة تُ ّ
يقوم هذا التابع بكتابة المتحول Valuesفي جميع العناصر المعرفة ضمن المجموعة .GObj
يمثل المتحول Valuesمصفوفة خاليا تحوي قيم ،قيمة واحدة مخصصة لكل عنصر.
94
الدراسة العملية الفصل الخامس
فيما يلي مثال عام يحوي أغلب التوابع التي سبق ذكرها:
;)'a = opcda('localhost', 'Matrikon.OPC.Simulation.1
;)connect (da
;)grp = addgroup(da
;)'itm1 = additem (grp, 'Random.Real8
)r = read (itm1
=r
'ItemID: 'Random.Real8
Value: 4.3252e+003
'Quality: 'Good: Non-specific
]TimeStamp: [2004 3 2 9 50 26.6710
' ' Error:
;)'itm2 = additem(grp, 'Bucket Brigade.Real8
)write (itm2, 10.34
باالستعانة بمكتبة الواجهات الرسومية في الماتالب وباالعتماد على التوابع التي سبق شرحها ،تم
بناء الواجهة الرسومية التالية لتكون واجهة تخاطب للمستخدم مع أي مخدم OPCمنصب على
نفس الحاسب.
91
الفصل السادس
يبدأ هذا الفصل بعرض طرق اختبار أداء بروتوكول الـ OPCالتي اعتمدتها بعض الدراسات
المرجعية ويوضح ماهية البارامترات التي اهتمت بها كل دراسة في تقيم أداء بروتوكول الـ.OPC
ومن ثم يتناول البحث مجموعة من االختبارات والتجارب قمنا بإجرائها الختبار أداء بروتوكول
المعرفة ضمن
ّ الـ OPCبهدف تحديد أثر كل من زيادة عدد الزبائن وموضعها وعدد المتحوالت
المخدم على سرعة استجابة المخدم في تلبية طلبات الزبائن المتصلة معه.
اختبارات األداء الفصل السادس
قبل البدء بشرح الطريقة الذي سنتبعها في اختبار أداء بروتوكول ال ،OPCسنستعرض بعض
الدراسات السابقة التي قامت بعمليات اختبار ألداء بروتوكول الـ.OPC
االختبارات التي سنقوم بها أو التي قامت بها الدراسات السابقة تهدف بمجموعها إلى بناء مرجعية
عامة و رسم صورة واضحة عن أداء بروتوكول الـ OPCوكفاءته وامكانياته في ظروف العمل
المختلفة.
.)UA
تقدم هذه الورقة البحثية الخطوات التي يجب تحقيقها للنجاح في اختبار كفاءة استخدام الموارد
ومن ثم الحصول على شهادة اعتماد لمنتج ما من منتجات الـ ،OPCعلماً أن هذا االختبار موجه
بالدرجة األولى ألعضاء منظمة الـ.OPC
معظم المنتجات التي ال تنجح في اختبار الحصول على شهادة اعتماد من قبل المؤسسة يكون
تسرب في الموارد ( Resource Leaksتحدث عندما ال يقوم البرنامج بتحرير
بسبب حدوث مشكلة ّ
مصادر الموارد التي اكتسبها) أو ُيعذى الفشل لحدوث خلل في الحفاظ على سالمة االتصال لمدة
31ساعة متواصلة وهي مدة االختبار.
.)Leaks
93
اختبارات األداء الفصل السادس
المبدأ العام لخطوات االختبار متشابهة إلى حد كبير سواء كان المنتج مخدم OPCأو زبون OPC
ً
مع وجود بعض نقاط االختالف الطفيفة بينهما ،سنبينها فيما يلي:
ليجتاز مخدم الـ OPCاختبار كفاءة استخدام الموارد ،يحتاج إلى تحقيق ما يلي:
-1االتصال بمصادر متنوعة للبيانات :يجب أن يتصل المخدم مع أكثر من مصدر من مصادر
البيانات ،أي يتصل مثالً مع أكثر من جهاز ،PLCأو مع برنامج أو أكثر لمحاكاة بروتوكول
الـ ،Modbusالحظ الشكل ( .)1-1
تنص شروط االختبار على أن اثنين من مصادر البيانات على األقل يجب أن تكون بعيدة (على
حاسب غير حاسب المخدم).
الشكل :1-6اتصال المخدم بمصادر بيانات متنوعة ضمن اختبار كفاءة استخدام الموارد
الشكل :2-6اتصال المخدم بأكثر من زبون ضمن اختبار كفاءة استخدام الموارد
94
اختبارات األداء الفصل السادس
جدول :1-6قائمة بأشهر زبائن الـ OPCالمستخدمة في اختبار كفاءة استخدام الموارد
هي أداة موجودة ضمن حزمة نظام التشغيل ويندوز ،تساعد في عمليات قياس األداء للتطبيقات
البرمجية ،يمكن الوصول إليها من خالل كتابة التعليمة ” "Perfmon.mscضمن النافذة Runفي
ويندوز.
الختبار أداء المخدم ،نقوم بضبط هذه األداة بحيث تقوم بتسجيل البيانات لمدة 31ساعة (مدة
االختبار) ونختار بعض القيم المحددة المتعلقة بتطبيق مخدم الـ OPCلتقوم األداة بتخزين قيمها،
من األمثلة على القيم التي ستراقبها األداة :زمن التنفيذ على المعالج Processor Timeو زمن
المستخدم User Timeوغيرها من القيم.
95
اختبارات األداء الفصل السادس
ليجتاز زبون الـ OPCالختبار "كفاءة استخدام الموارد" ،يحتاج إلى تحقيق الشروط التالية:
-1يجب أن يتصل الزبون بعدة مخدمات بنفس الوقت ،خمس مخدمات على األقل ،يوضح ذلك
الشكل ( ،)4-1ويجب أن يحوي كل مخدم على 1444عنصر على األقل.
91
اختبارات األداء الفصل السادس
-2بشكل مشابه في اختبار مخدم الـ ،OPCيجب تفعيل برمجية مراقبة األداء من شركة ويندوز
Windows Performance Monitorوضبطها لتقوم بتسجيل البيانات المتبادلة بين المخدم والزبائن.
قدم من مخبر االختبار في
الم ّ
-3محاكاة حدوث انقطاع في الشبكة من خالل ملف الـ ُ Batch
وبينا.
مؤسسة الـ OPCكما سبق ّ
منذ نشأة بروتوكول الـ OPCكان هناك الكثير من المشككين في قدرة الـOPCعلى توفير مستوى
عالي من األداء في تبادل البيانات بين التطبيقات(مخدمات/زبائن) ،لذلك فغاية هذه الدراسة كانت
دحض هذه الشكوك من خالل تجارب علمية مثبتة باألرقام .
المعرفة ضمن المخدم(أو المخدمات) بحيث تكون إما
ّ في هذه الدراسة تم اختيار جميع العناصر
عبارة عن كلمة( )Word 16 bitأو مصفوفة من الكلمات( )Array Of Wordsوذلك لضمان إجراء
االختبارات في الحالة األسوء.Worst case
اعتمدت التجارب التي تم القيام بها خالل هذه الدراسة على منتجات الـ OPCلشركة Rockwell
األمريكية
في هذه الدراسة تم اجراء االختبارات على بنى مختلفة لشبكات الـ OPCبحيث تشمل أغلب
الحاالت الممكنة ،هذه البنى هي :
.1المخدمات والزبائن على حواسب مختلفة (بنية موزعة).
.2عدة زبائن تتصل مع مخدم وحيد.
.3زبون وحيد يتصل مع عدة مخدمات.
.4زبون ومخدم على نفس الحاسب ()Local
.5عدة زبائن تتصل مع عدة مخدمات.
97
اختبارات األداء الفصل السادس
لتقيم أداء الـ OPCفي البيئة الموزعة واختبار انتاجيته ،تم استخدام 1حواسب ذات معالجات بنتيوم،
خمس حواسب منها تقوم بتشغيل تطبيقات زبائن ،OPCوحاسب وحيد يعمل عليه تطبيق مخدم
.OPC
ضمن تطبيق المخدم تم تعريف وتخصيص 10,000عنصر لكل زبون ،وتم ضبط الزبائن لتقوم
بطلب تحديث بياناتها بشكل دوري كل 254ميلي ثانية ( 4مرات في الثانية الواحدة) ،وتم برمجة
مصدر البيانات Data Sourceبشكل مقصود بحيث تتغير جميع قيم العناصر باستمرار (أسوء
سيناريو).
النتيجة :المخدم كان قاد اًر على تحديث قيم 200,000عنصر في كل ثانية بشكل متواصل.
نتائج هذه التجربة مبينة في الجدول أداناه:
Items Changes / second Items / second
Client 1 10,000 4 40,000
Client 2 10,000 4 40,000
Client 3 10,000 4 40,000
Client 4 10,000 4 40,000
Client 5 10,000 4 40,000
Server Total 200,000
لتقيم أداء الـ OPCفي البيئة الموزعة مع حجوم كبيرة من البيانات ،تم استخدام 1حواسب ذات
معالجات بنتيوم ،خمس حواسب منها تقوم بتشغيل تطبيقات زبائن ،وحاسب وحيد يعمل عليه تطبيق
مخدم .OPC
في هذا االختبار ،تم تخصيص 144عنصر ضمن المخدم لكل زبون ،كل عنصر عبارة عن
244كلمة( )Wordمن البيانات.
تم ضبط الزبائن لتقوم بطلب تحديث قيم عناصرها بشكل دوري كل 70ميلي ثانية لكل عنصر(14مرة
في كل ثانية).
98
اختبارات األداء الفصل السادس
النتيجة :المخدم كان قاد اًر على تحديث قيم 1,400,000كلمة في كل ثانية وبشكل مستمر طوال
فترة االختبار.
Words / Changes / Items
Items Words / second
Item second /second
Client 1 100 200 14 1400 280,000
Client 2 100 200 14 1400 280,000
Client 3 100 200 14 1400 280,000
Client 4 100 200 14 1400 280,000
Client 5 100 200 14 1400 280,000
Server
7000 1,400,000
Total
جدول :3-6إنتاجية مخدم في بيئة موزعة وأكثر من زبون مع مليون و 400ألف متحول
في هذه التجربة قام الزبون بتعريف 100عنصر ضمن المخدم ،كل عنصر عبارة عن 544كلمة
من البيانات ،يطلب الزبون من المخدم تحديث قيم عناصره كل 14ميلي ثانية لكل عنصر ( 16
99
اختبارات األداء الفصل السادس
النتيجة :المخدم كان قاد اًر على تحديث قيم 800,000كلمة في كل ثانية و بشكل مستمر طوال
فترة االختبار
في جميع االختبارات التي قامت بها هذه الدراسة كان التركيز على تقييم وقياس إنتاجية مخدمات
الـ OPCالتي من الممكن الوصول إليها باستخدام بروتوكول تبادل البيانات .OPC DA
ما أثبتته الدراسة أن كمية البيانات التي يستطيع مخدم الـ OPCتأمينها لزبائنه دوما أكبر من كمية
اء كانت الزبائن موجودة على نفس حاسب المخدم
البيانات التي يمكن أن للزبائن أن تعالجها ،سو ً
أو على حواسب أخرى.
بشكل عام ،فإن األداء واإلنتاجية تعتمد بشكل كبير على كمية البيانات التي من الممكن لمخدم
الـ OPCتحصيلها من مصدر البيانات األولي .Underlying Data Source
قد تختلف األرقام والنتائج المبينة في هذه الدراسة باختالف مخدمات و زبائن الـOPC
سننتقل في الفقرة القادمة إلى شرح األسلوب الذي قمنا من خالله بتجارب قياس األداء لبروتوكول
الـ. OPC
144
اختبارات األداء الفصل السادس
3-6اختبار أداء بروتوكول الـ OPCمن خالل قياس سرعة المخدم في تلبية طلبات زبائنه في
البيئات المحلية والموزعة
إن الغاية الرئيسية التي صيغ من أجلها هذا الفصل هي المساهمة في رسم إطار عام يساعد على
فهم بروتوكول الـ OPCواختبار أدائه وتحديد البارامترات التي تؤثر في سلوكه بهدف تحسين أداءه
وضمان استقرار الشبكة الصناعية التي يعمل بها.
رأينا من خالل الدراسات السابقة التي استعرضناها تركيزها على جوانب معينة في تقيمها ألداء
بروتوكول الـ ،OPCفبالنسبة لمؤسسة الـ OPCما يهمها بالدرجة األولى هو ضمان توافق المنتج
الجديد مع المعايير التي وضعتها وكفاءته في استخدام الموارد المتاحة ،ووضحنا كيف أن الدراسة
الثانية سعت إلثبات قدرة المخدم على تلبية طلبات الزبائن أياً كانت الظروف.
أما ما سنقوم به نحن خالل هذا البحث فسيكون تحديد أهم العوامل التي تؤثر على سرعة المخدم
في االستجابة لطلبات الزبائن.
من خالل الخبرة العملية والتطبيقات الواقعية و الدراسات المرجعية ،وقع اختيارنا على ثالثة بارامترات
يادة أو نقصاناً على سرعة استجابة
سنعتمدها كمتغيرات خالل هذه الدراسة ونقيس أثر تَغيرها ز ً
المخدم لطلبات الزبائن.
.1عدد الزبائن المتصلة بالمخدم :سنحاول قياس أثر زيادة عدد الزبائن على سرعة ُمخدم
الـ OPCفي تأمين البيانات.
.2عدد العناصر المعرفة ضمن المخدم :من خالل الزيادة المتتالية لعدد العناصر أو
معرفة ضمن المخدم سنحاول قياس أثر هذه الزيادة على سرعة المخدم في
المتحوالت ال ّ
تأمين البيانات للزبائن.
.3موضع المخدم بالنسبة للزبون :ذكرنا سابقاً أنه يمكن للمخدم و للزبون أن يكونا على
حاسب واحد ( )Localأو على أكثر من حاسب( ،)Remoteسنحاول من خالل التجارب
تغير تموضع المخدم/زبون على سرعة ُمخدم الـ OPCفي تأمين طلبات الزبائن.
تحديد أثر ّ
141
اختبارات األداء الفصل السادس
ما نريد معرفته وتسطيره في هذا البحث هو أثر هذه المتغيرات الثالث على سرعة تحصيل البيانات
من المخدم ،أو بشكل أخر ُنريد دراسة تأثير هذه المتغيرات على سرعة المخدم في تأمين طلبات
الزبائن المتصلة به ،حيث أن سرعة نقل البيانات هي من المؤشرات التي يمكن من خاللها المفاضلة
بين البروتوكوالت الصناعية.
ضمن معيار الـ OPCال يوجد أي ُمحدد لعدد الزبائن المتصلة مع المخدم ،إذاّ من حيث المبدأ
يمكن أن يتصل عدد النهائي من الزبائن مع مخدم ما ،لكن كنتيجة منطقية متوقعة فإن زيادة عدد
الزبائن سينتج عنه زيادة في عدد الطلبات المطلوب من المخدم تلبيتها ،هذا سيؤدي بشكل أو بآخر
لبطء في أداء الشبكة الصناعية (شبكة المخدم/زبون) ،انطالقاً من هذه الفرضية تم اختيار عدد
الزبائن كأحد المتحوالت ضمن تجارب قياس األداء ،في التجارب التي سنجريها ،سنضيف ثالث
زبائن بشكل متتالي ونقيس سرعة المخدم في تلبية طلبات الزبائن بعد كل زبون نضيفه.
المعرفة
هذا بالنسبة لعدد الزبائن ،أما بالنسبة لعدد المتحوالت ،فمن خالل زيادة عدد المتحوالت ُ
ضمن مخدم الـ OPCسنحاول دفع المخدم للعمل عند القيم الحدية من خالل تعامله مع حجوم كبيرة
من البيانات وقياس أدائه وسرعته في تلبية الطلبات عند ذلك ،في التجارب التي سنقوم بها سنزيد
عدد المتحوالت بشكل تدريجي متسلسل كما يلي (.)1,100,1000,5000,10000
وأخي اًر ،من المتوقع أن موضع المخدم بالنسبة للزبون سيؤثر على سرعة نقل البيانات بينهما لذلك
تم اختياره كأحد المتغيرات ،بمعنى أننا سنقارن أداء بروتوكول الـ OPCفي البيئة المحلية مع أدائه
في البيئة الموزعة
للقيام بالتجارب السابقة سنحتاج لوسيلة ما تساعدنا في قياس األداء وتدعم كل من المتغيرات الثالث
السابقة.
لذلك وباستخدام الواجهات الرسومية لبرنامج الماتالب ،Matlab GUIتم تصميم و برمجة
"أداة اختبار أداء بروتوكول الـ. OPC
واجهة االختبار تظهر في الشكل (.)5-1
142
اختبارات األداء الفصل السادس
تقوم هذه الواجهة بوظيفتين في آن واحد ،األولى تقوم بدور زبون OPCحيث تستطيع أن تتصل مع
نصب على حاسب محلي أو بعيد ،والثانية تُمثل أداة لتقييم أداء بروتوكول الـ. OPC
أي مخدم ُم ّ
تم بناء أداة االختبار هذه بأبسط شكل ممكن ،بحيث تراعي المتطلبات التالية:
143
اختبارات األداء الفصل السادس
.1إمكانية تغيير زمن انتظار الزبون للمخدم ليستجيب لطلبه في إنشاء االتصال( Timeout
.)Time
.7إمكانية قياس الزمن الالزم لقراءة قيم العناصر المعرفة ضمن مخدم الـ ،OPCوهي التي
سنستخدمها في تجارب األداء.
الشكل ( )6-6يسلط الضوء على أجزاء ووظائف واجهة أداة اختبار األداء.
تم برمجة هذه األداة باستخدام التوابع التي سبق شرحها في الفصل الخامس باإلضافة إلى مكتبة
الواجهات الرسومية GUIفي برنامج الماتالب.
144
اختبارات األداء الفصل السادس
4-6التجارب والنتائج
قبل البدء بالتجارب ،البد من التعريف بالبيئة التي تم فيها إجراء التجارب:
سرعة معالج الحاسب الذي تمت بواسطته عمليات القياس هي. i3 /2.4 GHz
تم استخدام مخدم OPCمن شركة OPCTechمخصص للمتحكمات المنطقية ،Delta
عرف(اسم) هذا المخدم هو . OPCTechs.Delta30DA.3: ُم ّ
في هذا الفصل نحن نختبر أداء بروتوكول الـ OPC DAالذي يعمل وفق بنية المخدم/زبون
فال يهم مصدر بيانات المخدم ،لذلك وألخذ الحالة األسوء Worse caseتم ضبط جميع
المتحوالت على وضعية المحاكاة Simulateبحيث تتغير قيمها بشكل مستمر وعشوائي،
المعرفة ضمنه عن
ّ حيث أنه عند اختيار وضعية المحاكاة يقوم المخدم بعزل المتحوالت
الجهاز الفيزيائي ( )PLCويقوم بإسناد قيم لهذه المتحوالت وفق توابع عشوائية يمكن اختيار
مجالها ونوعها ،كما يبين ذلك الشكل ()7-1
الشكل :7-6تعريف المتحوالت ضمن مخدم الـ OPCوضبطها على وضعية المحاكاة
145
اختبارات األداء الفصل السادس
ألخذ الحالة األسوء تم تعريف جميع المتحوالت ضمن مخدم الـ OPCمن النوع INT/16
،bit
ضمن برنامج مخدم الـ OPCتم إنشاء 5برامج مختلفة ،تختلف عن بعضها بعدد
المتحوالت ،في كل مرة نقوم بتشغيل واحد من هذه البرامج
البرامج وعدد متحوالتها مبينة في الجدول :1-1
معرف ضمنه 144متحول ،كل مثالً :البرنامج Pro100هو اسم لمشروع ضمن مخدم الـّ OPC
متحول من هذه المتحوالت مضبوط على وضعية المحاكاة حيث يقوم المخدم بإسناد قيم عشوائية
لها في كل لحظة زمنية.
خالل التجارب التالية ،سنقوم بتشغيل واحد من البرامج السابقة بهدف قياس أثر زيادة عدد المتحوالت
على سرعة المخدم في تلبية طلبات الزبائن المتصلة معه.
تم استخدام برمجيات زبائن الـ OPCالمبينة في الجدول التالي ،تم اختيار هذه الزبائن
كونها تعود ألشهر الشركات المنتجة لبرمجيات الـ.OPC
MATLAB GIU
Cogent Matrikon OPC Kepware-OPC اسم البرنامج
DataHub Explorer Quick
141
اختبارات األداء الفصل السادس
-1نعرف متحول واحد ضمن مخدم الـ( OPCالبرنامج Pro1في حالة تفعيل).
-2نسمح لزبون واحد باالتصال مع المخدم هو الماتالب (من خالل برمجية قياس األداء التي
تم بناؤها وسبق ذكرها).
-3نقيس الزمن الذي استغرقه قراءة هذا المتحول من خالل برمجية قياس األداء.
-4نقوم بإدخال زبون ثاني إلى الشبكة الصناعية حيث نسمح له باالتصال مع مخدم الـOPC
147
اختبارات األداء الفصل السادس
النتائج في الجدول أدناه تبين أداء بروتوكول الـ OPCعلى حاسب وحيد مع أثر زيادة عدد
المتحوالت وعدد الزبائن على الزمن الذي يحتاجه المخدم لتلبية طلبات الزبائن.
Localhost
Variable Numb One OPC Client Two OPC Clients Three OPC Clients
1 1.31 ms 1.50 1.61
100 2.64 2.70 3.33
1000 12.28 12.59 16.38
5000 55.42 60.58 75.38
10000 148.27 197.60 256.11
جدول :8-6أداء بروتوكول الـOPCعلى حاسب وحيد مع زيادة عدد المتحوالت و الزبائن
148
اختبارات األداء الفصل السادس
الشكل :9-6أثر زيادة عدد المتحوالت وعدد الزبائن على زمن استجابة المخدم/حاسب وحيد
بشكل عام ،من جدول النتائج يمكن أن نستنج بشكل حاسم أن زيادة عدد زبائن الـ OPCينتج -
عنه زيادة في الزمن الذي يستغرقه المخدم لتلبية الطلبات ،وهذا ما يعني بالضرورة بطء في
أداء الشبكة الصناعية.
-لوحظ أيضاً أن الزمن الذي يستغرقه المخدم لتلبية طلبات زبونان كان متقارباً جدا مع الزمن
الذي يستغرقه لتلبية طلبات زبون وحيد وخاصة ما قبل 5444متحول ،لكنه شهد تباطؤ
ملحوظ عند إضافة الزبون الثالث ،يمكن لنا مالحظة ذلك من خالل تقارب منحني الزبون
الوحيد مع منحني الزبونان وتباعد منحني الثالث زبائن عنهما.
-النتائج تبين أن زيادة عدد المتحوالت ينتج عنه زيادة في الزمن الذي يحتاجه المخدم لتلبية
الطلبات ،ومن خالل المنحنيات البيانية يمكن أن نلحظ أن نقطة 5444متحول شكلت نقطة
انعطاف للمنحنيات الثالث ،حيث بدءاَ من هذه النقطة لوحظ زيادة أكبر في زمن استجابة
المخدم وهذا يعني بطء في الشبكة الصناعية ،بمعنى أن أداء مخدم الـ OPCعلى حاسب
وحيد يكون أفضل عندما يكون عدد المتحوالت أقل من 5444متحول.
149
اختبارات األداء الفصل السادس
2-4-6التجربة الثانية :اختبار أداء الـ OPCفي البيئة الموزعة Remote PCs
في هذه التجربة ،تم تنصيب برمجية المخدم على حاسب ،وتنصيب برمجيات الزبائن الثالث على
حاسب أخر ،كما يبين الشكل ()14-1
-1نقوم بتفعيل قناة االتصال الـ DCOMمن خالل تغيير في إعدادات نظام التشغيل،
التفعيل يجب أن يتم على الحاسب المحلي والبعيد علماً أن طريقة تفعيل قناة الـ DCOMموضحة
بالتفصيل في الملحقات.
عند تفعيل القناة يجب الحذر كونها تالمس إعدادات حرجة في نظام التشغيل ويندوز ،والخطأ قد
يسبب إشكاليات تطال كامل نظام التشغيل.
-2نصل الحاسب المحلي مع الحاسب البعيد بواسطة شبكة اتصال سلكية( )Ethernetونضبط
عناوين االتصال IPsلكال الحاسبين بحيث يكونان في نطاق شبكة واحدة.
-3نعرف متحول واحد ضمن مخدم الـ (OPCنستخدم البرنامج Pro1ونضعه في حالة
تفعيل.)Active
-4نسمح لزبون واحد باالتصال مع المخدم (الزبون هو الماتالب المتمثل ببرمجية قياس األداء
التي سبق شرحها).
-5نحسب الزمن الذي استغرقه قراءة هذا المتحول من خالل برمجية قياس األداء.
114
اختبارات األداء الفصل السادس
-1نقوم بإدخال زبون ثاني إلى الشبكة الصناعية حيث نسمح له باالتصال مع المخدم واستعراض
قيمة المتحول.
-7نعود إلى برمجية قياس األداء (الزبون األول) ونقيس الزمن المستغرق لقراءة المتحول.
-8نضيف الزبون الثالث واألخير ،ونقيس الزمن المستغرق لقراءة المتحول.
المعرفة ضمن المخدم فنحصل على النتائج المبينة
نكرر الخطوات السابقة مع زيادة عدد المتحوالت ّ
في الجدول (.)9-1
Remote PCs
Variable Numb One OPC Client Two OPC Clients Three OPC Clients
1 2.12 ms 2.34 2.36
100 4.35 4.70 4.80
1000 25.90 26.45 26.72
5000 89.71 96.31 107.66
10000 199.45 224.87 270.74
النتائج في الجدول 9-6تبين أداء بروتوكول الـ OPCفي بيئة موزعة (حاسبين) مع أثر زيادة
عدد المتحوالت وعدد الزبائن على زمن الذي يحتاجه المخدم لتلبية طلبات الزبائن علماً أن أزمنة
القراءة مقاسة بواحدة الميلي ثانية( ،)msوبهدف زيادة الدقة فجميع النتائج الظاهرة في الجدول تمثل
وسطي لثالث عمليات قراءة.
نق أر قيم الجدول السابق بالشكل التالي:
مثال :1في شبكة صناعية تعمل وفق بروتوكول الـ ،OPCتحوي هذه الشبكة على مخدم
مثال :2في شبكة صناعية تعمل وفق بروتوكول الـ ،OPCتحوي هذه الشبكة على مخدم
منصب على حاسب والزبائن على حاسب أخر ،سنحتاج لزمن
وحيد وثالث زبائن ،المخدم ّ
قدره 107.66ميلي ثانية لقراءة 5000متحول.
111
اختبارات األداء الفصل السادس
نرسم ثالث منحنيات بيانية لتوضيح الجدول السابق ،منحني واحد لكل زبون كما يظهر في الشكل
( ،)11-1يمثل المحور Xعدد المتحوالت ،ويمثل المحور Yزمن قراءة المتحوالت
الشكل :11-6أثر زيادة عدد المتحوالت وعدد الزبائن على زمن استجابة المخدم /عدة حواسب
تأتي نتائج هذه التجربة في سياق النتائج التي أظهرتها التجربة السابقة ومتوافقة معها.
فمن جدول النتائج يمكن أن نستنتج أن زيادة عدد زبائن الـ OPCنتج عنه بطء في أداء الشبكة
الصناعية و أن الزمن الذي يستغرقه المخدم لتلبية طلبات زبونان كان متقارباً جدا مع الزمن الذي
يستغرقه لتلبية طلبات زبون وحيد ،لكنه شهد تباطؤ ملحوظ عند إضافة الزبون الثالث.
وكذلك أيضا بالنسبة لزيادة عدد المتحوالت نالحظ أنه نتج عنه زيادة في الزمن الذي يحتاجه المخدم
لتلبية الطلبات.
وتبين النتائج أيضاً أنه في حالة أن المخدم يحوي ألف متحول وما دون فإن تأثير زيادة عدد الزبائن
نصبة على حواسب بعيدة) تكاد تكون معدومة.
الم ّ
من المعطيات السابقة ممكن أن نستنتج أن نظام يحوي أكثر من زبون في بيئة موزعة يكون ذو
كفاءة عالية عندما يكون عدد المتحوالت دون األلف.
112
اختبارات األداء الفصل السادس
3-4-6مقارنة أداء البروتوكول الـ OPCفي البيئة المحلية مع أدائه في البيئة الموزعة
للمقارنة بين أداء بروتوكول الـ OPCعندما يعمل على حاسب محلي وحيد مع حالته عندما يعمل
على أكثر من حاسب ،قمنا بدمج نتائج التجربتين األولى والثانية ،لنحصل على المخطط المبين
بالشكل ()12-1
Localhost+Remote
300.00
256.11
250.00
200.00 197.60
150.00
148.27
100.00
50.00
16.38
55.42
0.00
12.28
0 2000 4000 6000 8000 10000 12000
الشكل :12-6أثر زيادة عدد المتحوالت وعدد الزبائن على زمن استجابة المخدم /حاسب وحيد +
-بشكل عام يتضح من المخطط أن أداء بروتوكول الـ OPCفي البيئة المحلية كان أفضل من
أدائه في البيئة الموزعة ،حيث تبين النتائج أن األزمنة التي لزمت للمخدم لتلبية طلبات
الزبائن كانت أقل عما كانت عليه عندما كانت الزبائن والمخدم على حاسب وحيد.
-لم تكن قيمة 5444متحول نقطة انعطاف كبيرة في البيئة الموزعة مقارنة بما كانت عليه في
البيئة المحلية ،بمعنى أن تأثير زيادة عدد المتحوالت على أداء بروتوكول الـ OPCفي البيئة
الموزعة كان أقل من تأثيره في البيئة المحلية.
-نالحظ تقارب المنحنيات البيانية فيما دون نقطة 5444متحول سواء في البيئة المحلية أو
في البيئة الموزعة ،بمعنى أن زيادة عدد الزبائن في حالة 5444متحول وما دون ال يؤثر
اء كان تموضع المخدم مع الزبائن محلياً على
بشكل ملحوظ على أداء الشبكة الصناعية سو ً
حاسب وحيد أو موزعاً على عدة حواسب.
113
اختبارات األداء الفصل السادس
-نالحظ من المخطط ،عند نقطة 1444متحول تقريبا يتقاطع منحني الزبون الوحيد على
حاسب بعيد ،مع منحني الثالث الزبائن المحلية ،بمعنى أنه عندما فاق عدد
المتحوالت 1444أصبح الزمن الالزم للمخدم ليلبي طلبات زبون متموضع على حاسب أخر
نصبة على نفس حاسبه.
أقل من الزمن الذي يلزمه لتلبية طلبات ثالث زبائن محلية ُم ّ
5-6أداء األنظمة التي تعمل وفق بروتوكول الـ OPCمقارنة مع األنظمة التقليدية
من خالل التجارب السابقة كنا نحاول استقراء العوامل التي تؤثر على قدرة المخدم في تلبية طلبات
زبائنه .في هذه الفقرة نسعى لمقارنة أداء األنظمة التي تعمل وفق بروتوكول الـ OPCمع األنظمة
التي تعتمد بروتوكوالت تحكم تقليدية مثل .CAN ،Profibus،Modbus
للقيام بهذه المقارنة ،قام أحد الباحثين ببناء نظام تحكم بطريقتين :األولى باستخدام بروتوكوالت
تقليدية والثانية باستخدام بروتوكول الـ ،OPCالمقارنة أخذت بعين االعتبار عاملين رئيسين هما
زمن التنفيذ والتكلفة.
فكانت النتائج التالية:
الشكل :13-6مقارنة بروتوكول الـ OPCمع بروتوكوالت أخرى من حيث زمن التنفيذ
114
اختبارات األداء الفصل السادس
بينت التجربة أيضاً أن كلفة تنفيذ الشبكة الصناعية بدون استخدام الـ OPCوصل إلى ،$ 75,444
بينما لم تتجاوز تكلفة تنفيذ نفس الشبكة باستخدام بروتوكول الـ OPCهو $13,444كما يبين
الشكل(.)14-1
ُيعزى انخفاض زمن التنفيذ في بروتوكول الـ OPCإلى أسباب عديدة منها عدم الحاجة الستخدام
تجهيزات تقوم بالتحويل بين البروتكوالت ( )Protocols Converterوالتي كانت تُستخدم مع
البروتوكوالت التقليدية للربط بين المتحكمات وبرمجيات التحكم والمراقبة.SCADA
وأيضا من العوامل التي ساهمت في انخفاض التكلفة هو كسر احتكار الشركات المصنعة للتجهيزات
لعقود الصيانة وما يترتب عليها من كلف ،حيث أنه في حال حدوث خلل في أحد المتحكمات
للتقيد بنفس نوع المتحكم
المكونة للشبكة الصناعية ولزم استبداله ،فال حاجة مع بروتوكول الـ ّ OPC
السابق.
وأيضاً يمكن القول بأن انخفاض زمن التنفيذ أدى إلى توفير في أجور الورشات المنفذة والعاملين
في المشروع مما ساهم أيضاً في انخفاض الكلف المالية.
115
الفصل السابع
1-7نتائج البحث
أوالا :أداء بروتوكول الـ OPCفي البيئة المحلية (المخدم والزبائن على نفس الحاسب)
من خالل التجارب التي تم إجراؤها على بروتوكول الـ OPCفي البيئة المحلية (المخدم والزبائن
على نفس الحاسب) تم التوصل إلى النتائج التالية:
-زيادة عدد الزبائن ينتج عنه زيادة الزمن الذي يستغرقه المخدم لتلبية طلبات الزبائن وبالتالي
بطء عام في الشبكة الصناعية.
-في شبكة صناعية تحوي مخدم OPCواحد وزبونان ،الزمن الذي احتاجه المخدم لتلبية طلبات
الزبونان كان متقارب جداً مع الزمن الذي احتاجه لتلبية طلبات زبون واحد ،لكن عند إضافة
زبون ثالث لوحظ زيادة كبيرة نسبياً في زمن استجابة المخدم.
عرفة ضمن مخدم الـ OPCنتج عنه زيادة في الزمن الذي يحتاجه
الم ّ
-زيادة عدد المتحوالت ُ
المخدم لتلبية الطلبات ،وعند 5444متحول لوحظ ازدياد كبير في زمن استجابة المخدم
لطلبات الزبائن وهذا ما يعني بطء في أداء الشبكة الصناعية.
ثانيا :أداء بروتوكول الـ OPCفي البيئة الموزعة (المخدم والزبائن على حواسب مختلفة)
من خالل التجارب التي تم إجراؤها على بروتوكول الـ OPCفي البيئة الموزعة (المخدم والزبائن
على أكثر من حاسب) تم التوصل إلى النتائج التالية:
-زيادة عدد زبائن الـ OPCنتج عنه بطء في أداء الشبكة الصناعية ،والزمن الذي احتاجه المخدم
لتلبية طلبات زبونان كان متقارباً جدا مع الزمن الذي احتاجه لتلبية طلبات زبون وحيد ،لكن
استجابة المخدم شهدت تباطؤ ملحوظ عند إضافة الزبون الثالث.
-زيادة عدد المتحوالت نتج عنه زيادة في الزمن الذي يحتاجه المخدم لتلبية الطلبات.
-من خالل النتائج ظهر أنه في حال احتوى المخدم على ألف متحول وما دون فإن تأثير زيادة
117
نصبة على حواسب بعيدة) تكاد تكون معدومة ،من هذا نستنتج أن نظام عدد الزبائن (الم ّ
يحوي أكثر من زبون في بيئة موزعة يكون ذو كفاءة عالية عندما يكون عدد المتحوالت دون
األلف.
-أداء بروتوكول الـ OPCفي البيئة المحلية كان أفضل من أدائه في البيئة الموزعة ،حيث تُبين
النتائج أن األزمنة التي احتاجها المخدم لتلبية طلبات الزبائن كانت أقل في البيئة المحلية عنها
في البيئة الموزعة.
-تأثير زيادة عدد المتحوالت على أداء بروتوكول الـ OPCفي البيئة الموزعة كان أقل من تأثير
زياداتها في البيئة المحلية.
-في حال كان المخدم يحوي 5444متحول وما دون ،فإن زيادة عدد الزبائن ال يؤثر بشكل
اء كان تموضع المخدم مع الزبائن محلياً على حاسب
ملحوظ على أداء الشبكة الصناعية سو ً
وحيد أو موزعاً على عدة حواسب.
2-7اآلفاق المستقبلية
أوالا :جميع االختبارات على أداء بروتوكول الـ OPCالتي قمنا بها خالل هذا البحث كانت تفترض
بناء على هذه الفرضية تم ن
وجود مخدم وحيد مع زبو أو أكثر كونها الحالة األكثر شيوعاً ،و ً
تصميم وبرمجة "أداة اختبار األداء".
مستقبالً يمكن تطوير "أداة اختبار األداء" و السماح لها باالتصال مع أكثر من مخدم للـ OPCبنفس
الوقت وتوظيف ذلك في إجراء اختبارات على أداء بروتوكول الـ OPCفي شبكات صناعية أكثر
تعقيداً .
ثاني ا :في هذا البحث تم إجراء اختبارات األداء على بروتوكول OPCالنافذ إلى البيانات ( OPC
118
إصدار الجيل الثاني من بروتوكول الـ OPCوهو .OPC UA
يمكن القيام بما يلي:
اختبار أداء الـ OPC UAفي الشبكات المحلية والموزعة ومقارنتها مع أداء OPC -
DAفي نفس البيئة.
-مقارنة أداء OPC DAمع OPC UAمن حيث التكلفة وزمن التنفيذ وسهولة العمل
ومدى االنتشار.
119
الملحقات
ُ
124
الملحقات
برنامج تقدمه مؤسسة الـ ،OPCيحوي على جميع المكونات الالزمة للسماح لتطبيقات الـOPC DA
بالعمل.
تنصب هذا البرنامج ة،
يجب على جميع الحواسب الراغبة بالتعامل مع بروتوكول الـ OPC DAأن ّ
لن تستطيع مخدمات وال زبائن الـ OPCالعمل بصورة صحيحة بدون تنصيب نواة الـ.OPC
هناك إصداران من هذه النواة ،اإلصدار األول مخصص ألنظمة التشغيل 32بت ،والثاني
ألنظمة التشغيل 14بت.
يمكن الحصول على هذه النواة من موقع مؤسسة الـ OPCمن خالل الرابط التالي:
https://opcfoundation.org/developer-tools/developer-kits-classic/core-components
121
- 2خطوات تفعيل قناة الـ DCOM
122
:DCOM تفعيل قناة-2
: نتبع المسار التالي،لتفعيل القناة
Control panel - Administrative tool- Component Services- Computers-My Computer
(Right-click) and select Properties-Default Properties tab.
)2( نقوم بتفعيل القناة ونضبط بقية اإلعدادات كما هي هو موضحة بالشكل
123
الشكل :03منح سماحية النفاذ
124
المراجع
[30] https://opcfoundation.org/about/opc-technologies/opc-classic/
[31] https://opcfoundation.org/developer-tools/developer-kits-
classic/automation-wrapper/
[32] https://opcfoundation.org/about/opc-technologies/opc-net-4-0/
[33] https://opcfoundation.org/about/opc-technologies/opc-ua/
[34] http://www.opctechs.com.
[35] https://en.wikipedia.org/wiki/Open_Platform_Communications
[36] https://opcfoundation.org/developer-tools/specifications-classic/data-
access/
121