Professional Documents
Culture Documents
Training Course
"Master-K Family"
V2.0
إعداد
أمجد ســنوبر.م
https://www.electrobrahim.com
https://www.facebook.com/AB.Electromecanique
فهرس الموضوعات
الملحق
إن مصطلح الـ PLCهو نحت من الكلمات Programmable Logic Controllerأي المتحكم المنطقي
القابل للبرمجة .
و هو عبارة عن حاسب مخصص لألغراض الصناعية يستخدم للتحكم باآلالت بهدف أتمتة عملها ،حيث
يستخدم ذاكرة قابلة للبرمجة لتخزين تعليمات باإلضافة إلى وظائف خاصة تتضمن التحكم ، On/Off
مؤقتات ،عدادات ،العمليات الحسابية ،و معالجة البيانات .
يمكن أيضاً –كما هو الحال لدى المداخل -أن تكون المخارج رقمية أو تشابهية .
و عاد ًة ما تكون المخارج الرقمية أحد ثالثة أنواع :
ريليه : Relayيمثل الخيار قياسي في معظم التطبيقات .
ترانزستور : Transistorيستخدم للتطبيقات التي تحتاج إلى سرعة تغيير حالة الخرج .
ريليه الحالة الصلبة : Solid State Relayيجمع بين مزايا الريليه و الترانزستور .
إن كال ً من المداخل و المخارج معزولين عزال ً كهربائياً عن المعالج بواسطة العوازل الضوئية ألن المعالج
يعمل على جهد مستمر صغير من رتبة الـ 5 Vdcو ال يستطيع التعامل مباشر ًة مع إشارة المداخل التي
قد تكون 24 Vdcأو حتى إشارة جهد متناوب ، ACو أيضاً تكون المخارج معزولة عن المعالج حتى ال
تؤدي مشاكل في األحمال التي يقودها المعالج إلى مرور قيم عالية للتيار قد تؤدي إلى إتالف وحدة
المعالج و بالتالي إلى تلف جهاز الـ PLCبالكامل .
عندما يحتاج البرنامج لمعرفة حالة الدخل ،يقوم باسترجاع حالته كما تم تخزينها في الذاكرة و ال يقوم
بفحص القيمة الحقيقية للمدخل لحظة تنفيذ البرنامج .
مالحظة :
قد تكون هناك مداخل ذات بنية كهربائية داخلية تسمح بكال النوعين من التوصيل .
يمتاز هذا النوع بالمرونة العالية في تعديل و توسيع منظومة التحكم ودعمه لطيف واسع من
شبكات االتصال التي يمكن أن تستثمر من قبل المعالج بشكل متزامن .
لقد أنتجت شركة LSISالعديد من المتحكمات التي تنتمي لعائلة Master-Kو من أهمها :
: MK200s .1و هو من النوع Modular PLCيتمتع بمواصفات متقدمة تؤهله للعمل في المشاريع
المتوسطة و الكبيرة .
: MK120s .2و هو من النوع Compact PLCذو مواصفات عالية و عاد ًة ما يستخدم في المشاريع
الصغيرة و المتوسطة .
: MK80s .3له نفس مواصفات MK120sبشكل عام لكنهما يختلفان ببعض القدرات البرمجية و
المكونات الصلبة فمثال ً ذاكرة البرنامج للمعالج MK80sأقل من ذاكرة .. MK120sو عاد ًة ما
يستخدم في المشاريع الصغيرة فقط .
توسعات دخل /خرج تشابهية للتعامل مع اإلشارات ( . ) 0~10 V , 0~20 mA
توسعات ذات وظائف خاصة للتعامل مع تطبيقات مثل المالئمة مع حساسات الحرارة ،قراءة
نبضات عالية السرعة ( )Encoderو مخارج نبضية عالية السرعة ألغراض التحكم بالموضع .
توسعات تدعم شبكات االتصال المختلفة ( … ) RS232, RS485, Fnet, Dnet
يبين الشكل التالي المخطط الصندوقي للمتحكم MK120sمع توضيح آللية التوسع .
: PWR LEDمؤشر الطاقة ،و يضئ في حال كون تغذية المعالج موجودة و طبيعية .
: Run LEDمؤشر العمل ،أي أن المعالج في يعمل نمط تنفيذ البرنامج .
: ERR LEDمؤشر الخطأ ،حيث يومض في حال اكتشاف وجود خطأ ما .
إن المميزات األساسية للمتحكم بشكل عام ترتبط بشكل عام بأداء المعالج و إمكاناته ،و هذه المميزات
هي التي ستحدد اختيارنا لمتحكم معين دون آخر و ذلك بانتقاء المعالج الذي يحقق أعلى أداء ممكن
لتشغيل التطبيق المطروح و بنفس الوقت المحافظة على كلفة اقتصادية معقولة .
يجب على المبرمج دراسة التطبيق المراد بناؤه بدقة ،مع األخذ بعين االعتبار النقاط المذكورة ،و من ثم
اختيار المتحكم المناسب .
... وفق عدد المداخل و المخارجMK120s فيما يلي جدول يوضح األحجام المختلفة للمعالج
... MK120s Economic أما الجدول التالي فيوضح األحجام المختلفة للمعالج االقتصادي
... وفق عدد المداخل و المخارجMK80s فيما يلي جدول يوضح األحجام المختلفة للمعالج
هناك أربع أنظمة عد مستخدمة في برمجة المتحكمات المنطقية ..و يوضح الجدول التالي طريقة
تسلسل العد في كل منها :
للتحويل من أي نظام عد إلى النظام العشري نطبق صيغة المجموع التالية :
∑𝑛=i
𝑛=0(D) × B
n
= iعدد خانات العدد – 1 حيث أن :
= Dقيمة خانة العدد ( ) Digit Value
= Bأساس نظام العد ( ) Numeric System Base
= nوزن الخانة ( 0من أجل الخانة األقل أهمية 1 ،للخانة التالية . ) ...
بفرض أنه لدينا العدد ... ] 100110 [2عندئذ لتحويله للنظام العشري نكتب :
يلعب النظام الثنائي دوراً كبيراً في األنظمة الرقمية التي تقوم بتخزين و معالجة البيانات ..حيث يتسم
بسهولة تمثيله بواسطة العناصر اإللكترونية ،و سهولة نقل المعطيات و إمكانية استردادها بالرغم من
تعرضها لعوامل الضجيج و التشويش .
إن النظام الثنائي مبني على العددين ( ) 1و ( ) 0الذين يعبران عن حالتين منطقيتين ( ) Trueأو
( ) Falseو بالتالي هذا النظام مناسب للتعبير عن حالة المداخل و المخارج في منظومة التحكم فعلى
سبيل المثال يمكن التعبير عن حالة وجود إشارة من مفتاح على أنها الحالة 1أو ،Onأو يمكن التعبير
عن حالة كون أحد مخارج المتحكم في حالة الفصل على أنها الحالة 0أو . Off
و باجتماع عدة خانات من األعداد الثنائية يمكن لنا أن نشفر األرقام و نجري عليها العمليات الحسابية و
المنطقية كما يمكن تشفير األحرف األبجدية و الرموز .
يمكن التعبير عن األرقام الموجبة و السالبة باستخدام الخانة األكثر أهمية MSBلمجموعة الخانات
المكونة للعدد ..ففي حال كونها ذات قيمة " "0فالعدد موجب ،و إذا كانت ذات قيمة " "1فالعدد سالب .
و الجدول التالي يبين التشفير الموافق لتمثيل األعداد المؤشرة و غير المؤشرة .
هناك خمسة وحدات تخزين أساسية في النظام الثنائي و التي تستخدم في برمجة المتحكمات
المنطقية و هي:
F E D C B A 9 8 7 6 5 4 3 2 1 0
MSB LSB
عاد ًة ما تكون ذاكرة المتحكمات مبنية بشكل أساسي على الـ Bitمن أجل تمثيل المداخل و المخارج،
و الـ Wordو الـ Double Wordمن أجل تمثيل األعداد و األحرف ...حيث تكون تعليمات المعالج مصممة
للولوج إلى هذه المناطق ،بينما قد تكون بقية أنواع الوحدات مدعومة ببعض التعليمات بشكل غير مباشر
أو غير مدعومة على اإلطالق .
X Y X and Y يكون ناتج هذه العملية " "1منطقي إذا كانت جميع دخول
0 0 0 هذه العملية لها الحالة المنطقية ". "1
0 1 0
1 0 0 أي أن خرج العملية "محقق" إذا كانت "جميع" مداخلها بدون
1 1 1 استثناء محققة ،و في حال كون أحدها غير محقق يصبح خرج
هذه العملية غير محقق .
X Y X or Y يكون ناتج هذه العملية " "1منطقي إذا كانت أحد دخول هذه
0 0 0 العملية لها الحالة المنطقية ". "1
0 1 1
1 0 1 أي أن خرج العملية "محقق" إذا كان "أحد" المداخل على
1 1 1 األقل محقق ،و في حال كون جميعها غير محقق يصبح خرج
هذه العملية غير محقق .
X Y X xor Y يكون ناتج هذه العملية " "1منطقي إذا كان دخليها غير
0 0 0 متماثلين .
0 1 1
1 0 1 و لهذا السبب تدعى هذه العملية أيضاً بعملية عدم التماثل
1 1 0 المنطقي .
X NOT X يكون ناتج هذه العملية معاكساً لدخلها .
0 1
1 0 أي أن خرج العملية هو "النفي" المنطقي لحالة دخلها .
مالحظة:
العمليتين ANDو ORيمكن أن يكون لهما أكثر من دخلين ،بينما عملية XORلها دخلين فقط ..
أما عملية NOTفلها دخل واحد حصراً .
: Pخاصة بعنونة المداخل و المخارج ..حيث يتم التمييز بينهما وفقاً لمجال العنونة . المنطقة
: Mخانات الذاكرة المساعدة لخزين حاالت برمجية معينة . المنطقة
: Kخانات ذاكرة مساعدة لها نفس وظيفة Mلكنها تحافظ على قيمها بانقطاع التغذية . المنطقة
: Fخانات الوظائف الخاصة ،منها للقراءة و منها للكتابة . المنطقة
: Cخاصة بتعليمات العدادات ،يمكن الوصول إليها كخانة أو كلمة . المنطقة
: Tخاصة بتعليمات المؤقتات ،يمكن الوصول إليها كخانة أو كلمة . المنطقة
: Dمنطقة البيانات يمكن الوصول إليها ككلمة فقط . المنطقة
: Sخانات الذاكرة المستخدمة في البرمجة الخطوية . المنطقة
: Lخاصة بتعليمات وظائف االتصال التسلسلي . المنطقة
مخطط ذاكرة المعالج MK80sله نفس مخطط ذاكرة المعالج MK120sباستثناء منطقة المؤقتات T
حيث ال يدعم المعالج 80sمؤقت ذو قاعدة زمنية . 1 mSec
يوضح الجدول التالي طريقة حجز عناوين الذاكرة الخاصة بنقاط الدخل و الخرج في كل من المعالج و
التوسعات من أجل المتحكمات من النوع : Compact PLC
باالعتماد على المبادئ األساسية للعمليات المنطقية ،و مفهوم تماسات الكونتاكتور المساعدة
المستخدمة في عمليات التحكم التقليدي سابقاً ،و طرق رسم المخططات الكهربائية تم وضع
أسس لغة البرمجة السلمية أو ما يدعى بلغة . Ladder
أنه لدينا مضخة ( ) Pumpنريد لها أن تعمل وفق الشروط التالية : بفرض
ف للقيام بعملية الضخ .
وجود مستوى ماء ( ) Waterكا ٍ
مفتاح تشغيل المضخة ( ) SL_Pumpفي الوضعية ". "On
كباس الطوارئ ( ) EMGغير مضغوط .
تماس مغلق ( : ) Closed Contactيقصر نقطتي التماس عند عدم تغذيته .
وشيعة خرج ( : ) Output Coilتعبر عن خرج ما ..و في مثالنا :محرك المضخة .
بتطبيق هذه المفاهيم على المثال المطروح يمكن رسم المخطط السلمي التالي :
فإذا وصلنا مداخل نظام التحكم للمثال السابق إلى المداخل ( ) P0, P1, P2على الترتيب ،و قمنا
بتغذية محرك المضخة عبر المخرج ( ) P40عندئذ يمكن إعادة الرسم كما يلي:
بفرض أننا نريد إضافة "مدخل" جديد ( ) Testالختبار عمل المضخة بدون أية شروط ..عندئذ يصبح
البرنامج كما في الشكل أدناه :
: Project Window )1نافذة المشروع ،و تستخدم للتنقل بين أربعة نوافذ هي
: Toolbars )2شريط األدوات الذي يحوي اختصارات ألهم األوامر المستخدمة .
: Message Window )4نافذة الرسائل ،و التي تظهر معلومات عند تنفيذ أوامر معينة أو تظهر رسائل
األخطاء عند حدوث خلل ما في البرنامج أو المتحكم .
) .فتظهر: لبدء مشروع جديد ننفذ األمر من القائمة ( ) Project \ New Projectأو نضغط األيقونة (
نختار "مشروع فارغ" ( ) Blank Projectو نضغط الزر " "Okفتظهر :
نختار نوع المعالج من ضمن قائمة معالجات العائلة .. Master-Kثم نضغط زر ". "Ok
). مالحظة :لفتح برنامج موجود مسبقاً ننفذ األمر ( ) Project \ Open Projectأو نضغط األيقونة (
) فيظهر مربع إدخال التعليمات المبين في الشكل أدناه : رابعاً -نضغط " "F10أو األيقونة (
ندخل التعليمة في حقل اإلدخال الموجود في أعلى النافذة و في حالتنا نكتبSET K0007 :
نالحظ أنه يمكن الحصول على معلومات عن بارامترات التعليمة أسفل النافذة و ذلك في الحقل
.. Valid Devicesنضغط زر " "OKإلغالق النافذة .
خامساً -ننتقل بمربع اإلدخال إلى السطر التالي و نضغط زر " "F10إلدخال تعليمة " "ENDإلنهاء
البرنامج ثم نضغط زر ". "OK
ننقر الرمز " "Parameterفي نافذة البرنامج " "Project Windowفتظهر النافذة التالية :
تمكننا هذه النافذة من ضبط العديد من إعدادات المتحكم التي تغير من سلوك المتحكم أو تقوم بتفعيل
وظائف معينة بأنماط عمل معينة ...و فيما يلي وصف لصفحات البارامترات :
: Basic .1البارامترات األساسية ،حيث تمكننا من تحديد مناطق الذاكرة من النوع Latchو التي
تحافظ على قيمتها بانقطاع التغذية الكهربائية عن المتحكم ..كما تمكننا من تحدد مجاالت
المؤقتات و القاعدة الزمنية الموافقة لكل منها .
: Comm. CH0/1 .3لتفعيل منافذ االتصال للمتحكم و تحديد نمط العمل الخاص بها .
: Position .5لتفعيل أنماط التحكم بالموضع و تعريف المداخل و المخارج المرتبطة بها .
: HSC Ch0/1/2/3 .6لتفعيل العدادات عالية السرعة و تعريف المداخل و المخارج المرتبطة بها .
) بعد ضبط البارامترات وفق الحاجة إليها ،ننفذ األمر ( ) Project \ Save Projectأو بضغط األيقونة (
حتى يقوم البرنامج بحفظ التعديالت التي قمنا بإجرائها .
بعد تثبيت كبل االتصال RS-232بين المتحكم و الحاسب ننفذ األمر ( ) Online \ Connectأو نضغط على
) لتبدأ عملية الوصل .في حال كون برنامج المتحكم محمي بكلمة مرور مسبقاً ستظهر األيقونة (
الرسالة المبينة في الشكل أدناه و التي تطالب بإدخال كلمة المرور " "Passwordحتى يتم الوصل .
نختار منها ما سيتم تحميله إلى ذاكرة المتحكم ،ثم نضغط الزر " "OKلتبدأ عملية التحميل .
: Parameter يتم تحميل كتلة البارامترات إلى المتحكم .
: Program يتم تحميل البرنامج إلى المتحكم .
مالحظة:
يتم الوصل بين المتحكم و الحاسب عن طريق المنفذ التسلسلي ( ) COMو الذي يمكن تحديده من
خالل تنفيذ األمر ( ) Project \ Optionsفتظهر النافذة التالية :
نختار الصفحة " "Connection Optionو منها يمكن أن ننتقي أحد منافذ الـ COMالمتاحة .
-1إدخال سطر تعليق على البرنامج :و ذلك بتنفيذ األمر ( ) Edit \ Rung Commentأو باستعمال
االختصار ( ) Ctrl + Eفيظهر صندوق نصي ،ندخل التعليق المطلوب و نضغط زر ". "Enter
حيث يمكن إضافة خلية الذاكرة و كتابة اسم المتحول الخاص بها ( ) Variable Nameو كذلك تعليق
يصف دور هذه الخلية في البرنامج ،ثم عرض هذه المعلومات في صفحة البرنامج بواسطة خيارات العرض
الموضحة في شريط األدوات .
يستخدم كشرط لتنفيذ التعليمات التي ترتبط معه بشرط كون البت Sفي الحالة المنطقية . ON
يستخدم كشرط لتنفيذ التعليمات التي ترتبط معه بشرط كون البت Sفي الحالة المنطقية . OFF
يستخدم لعكس النتيجة المنطقية لجميع الشروط (التماسات) التي تسبقه .
تستخدم لمسك الحالة المنطقية للبت Dعلى الحالة ONحتى بعد زوال تحقق الشروط التي تسبق
هذه التعليمة .
تستخدم لمسك الحالة المنطقية للبت Dعلى الحالة OFFحتى بعد زوال تحقق الشروط التي تسبق
هذه التعليمة .
تستخدم لجعل البت Dفي الحالة ONخالل دورة مسح واحدة عند تحقق الشرط .
تستخدم لجعل البت Dفي الحالة ONخالل دورة مسح واحدة عند زوال الشرط .
تستخدم لتحديد موقع انتهاء البرنامج في ذاكرة المتحكم كي يتوقف المعالج عند هذه التعليمة و يعاود
تنفيذ البرنامج من التعليمة األولى .
يستخدم كشرط لتنفيذ التعليمات التي ترتبط معه بشرط كون عملية المقارنة بين العدد S1و العدد S2
محققة وفق نوع عملية المقارنة سوا ًء أكانت مساواة أو غير ذلك .
مالحظة :
الرمز ( )Dيعني أن معامالت التعليمة بحجم Double Wordو يصبح رمز التعليمة . LoadD
الرمز ( )Pبعني أن التعليمة ستنفذ مرة واحدة ( )Pulseعند تحقق الشرط الخاص بها .
تستخدم لمقارنة العددين S1و S2على أن يتم تخزين نتيجة المقارنة في خاليا الذاكرة الخاصة المبينة
في الجدول أدناه .
يعمل تماس المؤقت Tonبعد مرور زمن محدد بالبارامتر SVعلى تفعيل شرط عمل المؤقت .
مالحظة:
تتحد القاعدة الزمنية للمؤقت ( ) 1mSec, 10mSec, 100mSecبحسب رقم المؤقت وفق مجاالت معينة
يمكن تعديلها بواسطة برنامج المتحكم .
يعمل تماس المؤقت Toffبمجرد تفعيل شرط عمل لمؤقت ،و بعد زوال هذا الشرط يبدأ المؤقت بعد
تنازلي من الزمن المحدد بالبارامتر SVحتى القيمة صفر و عندئذ يصبح تماس المؤقت . Off
له نفس مبدأ عمل المؤقت ، Tonو لكنه يتمتع بمميزة المسك أي أنه يحافظ على قيمته الحالية بالرغم
من زوال شرط المؤقت ..فقط تعليمة RSTهي التي تستطيع تصفير القيمة الحالية لهذا المؤقت .
له نفس مبدأ عمل المؤقت ، Toffو لكنه يتمتع بمميزة تجاهل تغيرات شرط المؤقت طالما أن عملية
العد قد بدأت .
له نفس مبدأ عمل المؤقت ، Toffو لكنه قابل إلعادة القدح ..أي يعيد العد من جديد عند ورود نبضة
على دخله .
يقوم بزيادة القيمة الحالية للعداد بمقدار 1عند كل حافة صاعدة لشرط مدخل العد ،و عندما تصبح
القيمة الحالية للعداد مساوية للقيمة الهدف تصبح خانة العداد في الوضعية . On
للعداد مدخل ) Reset ( Rلتصفير العداد أي يجعل القيمة الحالية للعداد مساوي ًة للصفر .
يقوم بإنقاص القيمة الحالية للعداد بمقدار 1عند كل حافة صاعدة لشرط مدخل العد ،و عندما تصبح
القيمة الحالية للعداد مساوية للصفر تصبح خانة العداد في الوضعية . On
للعداد مدخل ) Reset ( Rلتهيئة العداد أي يجعل القيمة الحالية للعداد مساوي ًة للقيمة الهدف .
يقوم بالعد تصاعدياً أو تنازلياً و ذلك بحسب الحافة الصاعدة المطبقة على مدخل العد التصاعدي أو
التنازلي على الترتيب ..و عندما يصل العداد لقيمة أكبر أو تساوي القيمة الهدف تصبح خانة العداد
في الوضعية . On
للعداد مدخل ) Reset ( Rلتصفير العداد أي يجعل القيمة الحالية للعداد مساوي ًة للصفر .
يقوم بزيادة القيمة الحالية للعداد بمقدار 1عند كل حافة صاعدة لشرط مدخل العد ،و عندما تصبح
القيمة الحالية للعداد مساوية للقيمة الهدف تصبح خانة العداد في الوضعية .. Onلكن في حال ورود
نبضة جديدة على مدخل العد يتم تصفير خانة العداد و قيمته الحالية ،ليبدأ العد من جديد .
للعداد مدخل ) Reset ( Rلتصفير العداد أي يجعل القيمة الحالية للعداد مساوي ًة للصفر .
تعليمة ADDتجمع العددين S1و ( S2كل منها بطول 16بت ) و تخزن الناتج في خلية الذاكرة Dو التي
تكون بطول 16بت أيضاً .
تعليمة DADDتجمع العددين S1و ( S2كل منها بطول 32بت ) و تخزن الناتج في خليتي الذاكرة
المتتاليتين Dو .. D+1أي أن الناتج بطول ( 32بت ) أيضاً .
تعليمة SUBتطرح العدد S2من العدد ( S1كل منها بطول 16بت ) و تخزن الناتج في خلية الذاكرة Dو
التي تكون بطول 16بت أيضاً .
تعليمة DSUBتطرح العدد S2من العدد ( S1كل منها بطول 32بت ) و تخزن الناتج في خليتي الذاكرة
المتتاليتين Dو .. D+1أي أن الناتج بطول ( 32بت ) أيضاً .
تعليمة MULتضرب العدد S1بالعدد ( S2كل منها بطول 16بت ) و تخزن الناتج في خليتي الذاكرة
المتتاليتين Dو .. D+1أي أن الناتج بطول ( 32بت ) .
تعليمة DIVتقسم العدد S1على العدد ( S2كل منها بطول 16بت ) و تخزن ناتج القسمة في خلية
الذاكرة Dو باقي القسمة في خلية الذاكرة . D+1
تعليمة DDIVتقسم العدد S1على العدد ( S2كل منها بطول 32بت ) و تخزن ناتج القسمة في
خليتي الذاكرة المتتاليتين ( D, D+1بطول 32بت ) ،كما تخزن باقي القسمة في خليتي الذاكرة
المتتاليتين ( D+2, D+3بطول 32بت ) .
مالحظة:
هناك تعليمات حسابية على األعداد ذات التشفير BCDمناظرة للعمليات السابق ذكرها و هي:
ADDB , SUBB , MULB, DIVBو تقوم بنفس الوظائف التي تم شرحها آنفاً .
تعليمة INCتقوم بزيادة العدد Dبمقدار واحد ( العدد بطول 16بت ) و تخزن ناتج الزيادة في خلية
الذاكرة Dنفسها .
تعليمة DINCتقوم بزيادة العدد Dبمقدار واحد ( العدد بطول 32بت ) و تخزن ناتج الزيادة في خلية
الذاكرة Dنفسها .
تعليمة DECتقوم بإنقاص العدد Dبمقدار واحد ( العدد بطول 16بت ) و تخزن ناتج الزيادة في خلية
الذاكرة Dنفسها .
تقوم تعليمة WANDبتنفيذ عملية ANDالمنطقية بين جميع الخانات الثنائية الممثلة للعدد ( S1بطول
16بت ) مع جميع الخانات المناظرة لها للعدد ( S2بطول 16بت ) و تضع الناتج في خلية الذاكرة Dو
التي تكون بطول 16بت أيضاً .
تقوم تعليمة DWANDبتنفيذ عملية ANDالمنطقية بين جميع الخانات الثنائية الممثلة للعدد ( S1بطول
32بت ) مع جميع الخانات المناظرة لها للعدد ( S2بطول 32بت ) و تضع الناتج في خلية الذاكرة Dو
التي تكون بطول 32بت أيضاً .
مثال:
تقوم تعليمة DWORبتنفيذ عملية ORالمنطقية بين جميع الخانات الثنائية الممثلة للعدد ( S1بطول 32
بت ) مع جميع الخانات المناظرة لها للعدد ( S2بطول 32بت ) و تضع الناتج في خلية الذاكرة Dو التي
تكون بطول 32بت أيضاً .
تقوم تعليمة WXORبتنفيذ عملية XORالمنطقية بين جميع الخانات الثنائية الممثلة للعدد ( S1بطول
16بت ) مع جميع الخانات المناظرة لها للعدد ( S2بطول 16بت ) و تضع الناتج في خلية الذاكرة Dو
التي تكون بطول 16بت أيضاً .
مثال:
تقوم تعليمة DWXORبتنفيذ عملية XORالمنطقية بين جميع الخانات الثنائية الممثلة للعدد ( S1بطول
32بت ) مع جميع الخانات المناظرة لها للعدد ( S2بطول 32بت ) و تضع الناتج في خلية الذاكرة Dو
التي تكون بطول 32بت أيضاً .
تقوم تعليمة ROLبتنفيذ عملية تدوير الخانات الثنائية المخزنة في خلية الذاكرة Dابتدا ًء من الخانة MSB
حيث تنتقل للخانة ( LSBبعد أن يتم نسخها لخانة الحمل ) و تستمر عملية الدوران على باقي الخاليا
بنفس اتجاه االنزياح ..و من ثم تخزن الناتج في الخلية Dنفسها .
مالحظة :التعليمة DROLتقوم بنفس آلية العمل السابقة لكنها تتعامل مع خليتين متتاليتين هما
D, D+1أي عدد بطول 32بت .
مثال:
تقوم تعليمة RORبتنفيذ عملية تدوير الخانات الثنائية المخزنة في خلية الذاكرة Dابتدا ًء من الخانة LSB
حيث تنتقل للخانة ( MSBبعد أن يتم نسخها لخانة الحمل ) و تستمر عملية الدوران على باقي الخاليا
بنفس اتجاه االنزياح ..و من ثم تخزن الناتج في الخلية Dنفسها .
مالحظة :التعليمة DRORتقوم بنفس آلية العمل السابقة لكنها تتعامل مع خليتين متتاليتين هما
D, D+1أي عدد بطول 32بت .
مثال:
تقوم تعليمة RCLبتنفيذ عملية تدوير الخانات الثنائية المخزنة في خلية الذاكرة Dابتدا ًء من نقل خانة
الحمل إلى الخانة ، LSBثم نقل الخانة MSBإلى خانة الحمل ،و تستمر عملية الدوران على باقي
الخاليا بنفس اتجاه االنزياح ..و من ثم تخزن الناتج في الخلية Dنفسها .
مالحظة :التعليمة DRCLتقوم بنفس آلية العمل السابقة لكنها تتعامل مع خليتين متتاليتين هما
D, D+1أي عدد بطول 32بت .
مثال:
تقوم تعليمة RCRبتنفيذ عملية تدوير الخانات الثنائية المخزنة في خلية الذاكرة Dابتدا ًء من نقل الخانة
LSBإلى خانة الحمل ،ثم نقل خانة الحمل إلى الخانة ، MSBو تستمر عملية الدوران على باقي
الخاليا بنفس اتجاه االنزياح ..و من ثم تخزن الناتج في الخلية Dنفسها .
مالحظة :التعليمة DRCRتقوم بنفس آلية العمل السابقة لكنها تتعامل مع خليتين متتاليتين هما
D, D+1أي عدد بطول 32بت .
مثال:
تقوم هذه التعليمة بنقل عدد ثابت أو محتويات الخلية المصدر Sإلى محتويات الخلية الهدف . D
تقوم هذه التعليمة بنقل عدد ثابت أو محتويات الخلية المصدر Sإلى جميع خاليا كتلة من الذاكرة تبدأ
من العنوان Dو لها الطول . n
مثال:
تقوم هذه التعليمة بنقل كتلة ذاكرة ابتدا ًء من الخلية المصدر Sو التي طولها " nكلمة" ( ) Wordإلى
كتلة ذاكرة ابتدا ًء من العنوان . D
مثال:
عند تحقق شرط تعليمة القفز JMPينقل المعالج مؤشر تنفيذ البرنامج إلى أول تعليمة تلي التعليمة
التي تحدد موقع القفز و التي هي . JME
مثال:
عند تحقق شرط تعليمة استدعاء البرنامج الفرعي CALLينقل المعالج مؤشر تنفيذ البرنامج إلى أول
تعليمة تلي التعليمة التي تحدد موقع بداية البرنامج الفرعي و التي هي ، SBRTو عند يصل مؤشر
التنفيذ إلى التعليمة RETالتي تمثل نهاية البرنامج الفرعي ،يعود مؤشر التنفيذ إل التعليمة التي تلي
مباشر ًة التعليمة CALLأي التعليمة التي تلي نقطة التفرع .
مثال:
عند تحقق شرط هذه التعليمة يدخل المعالج في نمط التوقف ،أي يتوقف عن تنفيذ البرنامج المخزن.
عند تحقق شرط هذه التعليمة ال يقوم المعالج بتفعيل مخارج المتحكم حتى لو كان مسجل الخرج يشير
إلى تفعيل هذه المخارج .
هناك العديد من األدوات في الحياة العملية التي تولد قطاراً من النبضات الذي يعبر عن قيم معينة مثل
حساس التدفق الذي تعبر نبضات الخرج الخاصة به عن معدل تدفق السوائل المارة به ،و اإلنكودر الذي
تعبر نبضاته عن موقع معين ...
عاد ًة ما يكون تردد هذا القطار النبضي سريعاً جداً بحيث تتغير حالة الدخل الذي ترد عليه هذه النبضات
أكثر من مرة خالل دورة مسح واحدة للمعالج ،و بالتالي لن يستطيع المعالج "تحسس" هذه التغيرات
أي ستضيع هذه النبضات و لن يتم قراءة القيم التي تعبر عنها بدقة و بشكل صحيح .
تم حل هذه المشكلة بفكرة إيجاد عداد عالي السرعة له داراته المستقلة عن المعالج بحيث يستطيع
مالحقة السرعة العالية للقطار النبضي على أن يقوم بنقل قيمة العد للمعالج وفق آليات معينة تضمن
سرعة استجابة البرنامج لقيم معينة لهذا العداد .
حيث يتم العد عند الحواف الصاعدة للقطار النبضي على مدخل المتحكم .
مشابه للنمط السابق ،و لكن مع وجود مدخل إضافي لتحديد اتجاه العد :تصاعدي /تنازلي .
. حيث يتحدد اتجاه العد بحسب المدخل الذي ترد منه النبضات
. حيث يتحدد اتجاه العد من خالل فرق الطور بين المدخلين النبضيين
: يبين الجدول التالي المواصفات الكهربائية للعداد عالي السرعة في هذا المعالج
Items Specification
Types A-phase, B-phase, Preset
Input
Rated Level 24VDC (15mA)
Signal
Signal Type Voltage input
Counting Range 0 ~ 16,777,215 (Binary 24 bits)
Max. Count Speed 1-phase 16kHz/ 2-phase 8kHz
Up/Down 1-Phase Sequence program or B-phase input
Selection 2-Phase Auto-select by phase difference of A-phase and B
Multiplication 1, 2, or 4
Preset Input Sequence program or external preset input
: ENمدخل تمكين العداد ،و في حال كونه غير فعال يتم تجاهل نبضات الدخل .
: U/Dمدخل تحديد اتجاه العد ( : 0تصاعدي :1 ،تنازلي ) .
: PRعند يكون المدخل في حالة Onيتم جعل القيمة الحالية مساوية لقيمة الضبط .
: PVقيمة الضبط . Preset Value
: SVالقيمة الهدف Set Valueو هي القيمة التي يتفعل عندها الخانة الخاصة F170و ذلك
عندما تصل القيمة الحالية للعداد إلى القيمة الهدف أي تحقق المتراجحة :
𝑉 𝐶. 𝑉 ≥ 𝑆.
:مثال
وF18 ) للعداد من حجرة لذاكرة الخاصةCurrent Value ( و الجدير بالذكر أنه يمكن قراءة القيمة الحالية
. Double Word بطول
يتم ضبط نمط العد والعديد من الخيارات اإلضافية بواسطة صفحة البارامترات الخاصة بالعداد .. HSC
عند وصول القيمة الحالية إلى القيمة الهدف يقوم المعالج بجعل أحد خانات الوظائف الخاصة في
الوضعية Onو ذلك بحسب قناة العد ( رقم العداد ) المستخدمة .
يلخص الجدول التالي المداخل المخصصة للعداد عالي السرعة في هذا المعالج ...
HSC Mode P0 P1 P2 P3 P4 P5 P6 P7
Clock Clock Clock Clock Ch0 Ch1 Ch2 Ch3
1 Phase Input Input Input Input Preset Preset Preset Preset
HSC#1 HSC#2
2 Phase A B A B Preset
-
Preset
-
أما الجدول أدناه فيبين اختالفات العداد عالي السرعة بين المعالجين 120sو ... 80s
تستخدم وحدات التوسعة التشابهية للتعامل مع اإلشارات التشابهية ضمن المجال ( ) 0 ~ 10 V
كجهد و ضمن المجال ( ) 0 ~ 20 mAكتيار ..حيث يمكن للمعالج أن يحول قيمة اإلشارة التشابهية
على دخله إلى قيمة رقمية ،أو يمكن أن يولد إشارة تشابهية مكافئة لقيمة رقمية يحددها المبرمج .
يتم قراءة قيمة الدخل التشابهي أو تحديد قيمة الخرج التشابهي من خالل مواقع خاصة لخاليا الذاكرة
المبينة في الجدول التالي :
العناصر خاليا
الذاكرة
توسعات D/A A/D التوسعات المختلطة
موقع التوسعة
G7F-DA2V G7F-DA2I G7F-AD2A G7F-ADHB G7F-ADHA
1 2 3
CH0 CH0 CH0 CH0 CH0
D/A value D/A value A/D value A/D value A/D value
D4980 D4984 D4988
CH1 CH1 CH1 CH1 CH1
D/A value D/A value A/D value A/D value A/D value
D4981 D4985 D4989
CH2 CH2 CH2 CH0 CH0
D/A value D/A value A/D value D/A value D/A value
D4982 D4986 D4990
CH3 CH3 CH3 CH1
- D4983 D4987 D4991
D/A value D/A value A/D value D/A value
يتم تحديد نوع الدخل ( تيار /جهد ) من خالل القصرات ( ) Jumpersعلى سطح التوسعة :
مثال:
المطلوب قراءة القناة التشابهية الثالثة من التوسعة ، G7F-AD2Aو تفعيل المخرج P40إذا كانت قيمة إشارة
الجهد على هذه القناة ضمن المجال ( ) 5 ~ 7.5 Voltsو ذلك بافتراض أن ترتيب التوسعة هو . 2
مالحظة هامة:
يجب تعريف نوع و ترتيب كل توسعة تشابهية متصلة مع المعالج ،و ذلك من خالل صفحة الـ Analog
ضمن قوائم البارامترات في برنامج . KGL-Win
تستخدم للحصول على قيمة درجة الحرارة حيث تعمل هذه التوسعة كدارة مالئمة مع الحساس
الحراري و تحول الحرارة لقيمة رقمية يتم تخزينها في مواقع ذاكرة ثابتة مبينة في الجدول التالي :
درجة مسجل
الحرارة الحالة
G7F-RD2A
موقع التوسعة موقع التوسعة
1 2 3 1 2 3
CH0
D4980 D4984 D4988
Temperature
D4880 D4882 D4884
CH1
D4981 D4985 D4989
Temperature
CH2
D4982 D4986 D4990
Temperature
D4881 D4883 D4885
CH3
D4983 D4987 D4991
Temperature
قيمة الحرارة المقروءة من المسجالت الخاصة تكون بدقة ( ) 0.1و مجال الحرارة المسموح هو
( ) -200 ~ +600 Cأي مجال القراءة هو ( . ) -2000 ~ + 6000 C
يتم تحديد موقع التوسعة بالنسبة للمعالج ،و كذلك وحدة قياس الحرارة ( ) C / Fمن خالل صفحة
Analogضمن قوائم البارامترات .
يتكون مسجل الحالة من كلمة مقسومة إلى بايتين ،كل بايت يزود المبرمج بمعلومات العطل عن إحدى
قنوات التوسعة الحرارية ..و الشكل التالي يوضح بنية هذا المسجل :
أما الجدول التالي فيوضح كيف يتم ترميز كل يوم من األسبوع برقم معين ..
الوصف مسجل
البايت األعلى البايت األدنى الذاكرة
ننفذ األمر ( ) Set PLC Clockمن القائمة ( ) Online \ Write Informationفتظهر النافذة التالية:
بفرض أنه لدينا ثالث سيور متتالية يمر عليها منتج ما ،كما في الشكل التالي :
عند مرور المنتج أمام الحساس الضوئي ( ) P00يقوم المتحكم بتفعيل السير األوسط آلياً عبر المخرج
( ) P40و عند مرور المنتج أمام حساس الخروج ( ) P01يتم إيقاف السير .
وظيفة :
ع ّ
دل البرنامج بحيث يتم إضافة حساس "تحميل زائد على المحرك" على المدخل ( ) P02بحيث يقوم
المتحكم بفصل محرك السير عند ورود إشارة على هذا المدخل .
بفرض أنه لدينا عربة متحركة على سكة أفقية كما في الشكل التالي :
عندما يضغط المستخدم على زر البدء " "Startيقوم المتحكم بتحريك العربة جيئة و ذهاباً على السكة
باالعتماد على حساسي نهاية الشوط عند كل طرف للسكة مع تشغيل أمر النفخ ..و عند الضغط على
زر اإليقاف " ، "Stopتقف العربة مباشر ًة .
وظيفة :
دل البرنامج بحيث يتم إضافة حساس ضوئي "الكتشاف وجود جسم على السكة " على المدخل ع ّ
( ) P04يعمل كتماس ( ) NOبحيث يقوم المتحكم بإيقاف العربة حتى زوال الجسم ثم يتابع تحريك
العربة بنفس االتجاه التي كانت تتجه إليه .
بفرض أنه لدينا عربة متحركة على سكة أفقية كما في الشكل التالي :
عندما يضغط المستخدم على زر البدء " "Startيقوم المتحكم بفتح بوابة تفريغ الخزان G1و ذلك لتعبئة
العربة ،و عندما ترد إشارة على المدخل ( ) P02التي تدل على امتالء العربة،تغلق البوابة G1ثم تتحرك
العربة باتجاه نقطة التفريغ المحددة بالحساس ( ، ) P03و عندها يتم فتح بوابة تفريغ العربة G2حتى
ورود إشارة الحساس ( ) P01التي تدل على أن العربة أصبحت فارغة ،فيتم إغالق بوابة التفريغ G2ثم
يعود المتحكم بالعربة إلى نقطة التعبئة من جديد باالستفادة من حساس موقع بدء الحركة ( ) Z-Point
على المدخل ( . ) P00
وظيفة :
دل البرنامج بحيث يتم إضافة حساس "مستوى تعبئة "2-على المدخل ( ) P04يمثل مستوى تعبئة ع ّ
فوق المستوى المحدد بالحساس ( ، ) P02و عند بدء عملية التعبئة يفحص المتحكم خانة الذاكرة K1
التي تمثل رغبة المستخدم في التعبئة إلى أحد المستويين .
عندما يضغط المستخدم على زر البدء " "Startيقوم المتحكم بتشغيل الكونتاكتور الرئيسي Kmو
كونتاكتور التوصيل النجمي .. Ksو بعد تأخير زمني قدره 5 Secيتم فصل Ksو انتظار 0.5 Secيليه وصل
كونتاكتور التوصيل المثلثي . kd
وظيفة :
ع ّ
دل البرنامج بحيث يتم إضافة المميزات التالية:
وصل التماسات المساعدة للكونتاكتورات ( ) Km, Ks, Kdإلى المداخل ( ) P2, P3, P4على
الترتيب ..وفي حال عدم استجابة أحد الكونتاكتورات ألمر التشغيل يتم فصل جميع األوامر .
بافتراض وجود ريليه حرارية تعمل كعنصر حماية بين المحرك و الكونتاكتور الرئيسي و تم وصل
تماسها ( بوضعية ) NCإلى المدخل ( .. ) P5استفد من هذا المدخل كأمر فصل لجميع
الكونتاكتورات المستخدمة .
بفرض أنه لدينا سيارة تحمل صهريج ماء يراد تعبئتها بكمية معينة من الماء كما في الشكل :
عندما يضغط المستخدم على زر البدء " "Startيقوم المتحكم بفتح بوابة تفريغ خزان الماء G1ليمر
التدفق المائي عبر حساس التدفق ( ) P02و الذي يعطي قطار نبضي على خرجه متناسب مع عدد
اللترات المتدفقة ( افرض كل 1نبضة تعادل مرور 1لتر ) ..و عند مرور 75لتر تتوقف عملية التعبئة.
وظيفة :
ع ّ
دل البرنامج بحيث يتم إضافة المميزات التالية:
إضافة حساس تأكيد إغالق البوابة ( ) P04فإذا لم تستجب البوابة ألمر اإلغالق ( لمدة 3ثا )
يتم تفعيل مخرج التنبيه الصوتي . ) P42 ( Buzzer
بافتراض أن سعة الخزان باللتر مخزنة ضمن الذاكرة ( ،) D7المطلوب تنبيه المستخدم إذا لم
يبق في الخزان سوى 25لتر و ذلك بتفعيل اللمبة على المخرج ( . ) P43
بفرض أنه لدينا سير مزود بخلية وزن كما في الشكل التالي :
عندما يضغط المستخدم على زر البدء " "Startيقوم المتحكم بتشغيل محرك السير ( ) P40و عندما يمر
المنتج أمام الحساس ( ) P00تبدأ عملية وزن المنتج ،و تعطي الخلية إشارة على المدخل ( ) P01تدل
على أن الوزن صحيح و ذلك خالل زمن ال يتجاوز ( .. ) 2 Secو إذا لم تعطي هذه اإلشارة يقوم المتحكم
بتشغيل الدفاش Ejectorوذلك بتفعيل المخرج ( ) P41لمدة . 650 mSec
مع مالحظة أن يقوم المتحكم بعد القطع ذات الوزن الصحيح و تخزينها في حجرة ذاكرة يختارها المبرمج .
وظيفة :
ع ّ
دل البرنامج بحيث يتم إضافة المميزة التالية:
إذا تجاوز عدد القطع ذات الوزن الخاطئ ( ) 50قطعة يقوم المتحكم بـ :
بفرض أنه لدينا فرن يراد تنظيم درجة حرارته عند قيمة معينة ...
عندما يضغط المستخدم على زر البدء " "Startيقوم المتحكم بتشغيل الحرّاق بتفعيل المخرج ( ) P40و
يبدأ عملية تنظيم الحرارة وفق الخوارزمية التالية:
يجب أن تستمر عملية التنظيم لمدة نصف الساعة ،بعدها يقوم المتحكم بإطفاء الحرّاق .
عند ضغط كباس اإليقاف " "Stopتتوقف عملية التسخين مباشر ًة .
مالحظة:
يجب أن يحافظ المتحكم على زمن التسخين حتى لو تم ضغط كباس التوقف ..و يتم تصفير هذا الزمن
المتراكم عن طريق كباس التصفير " "Resetأو عندما ينتهي زمن التسخين بالكامل .
وظيفة :
ع ّ
دل البرنامج بحيث يتم إضافة المميزة التالية:
إذا تجاوزت الحرارة القيمة ( ) S.V. + 10 Cيقوم المتحكم بتفعيل لمبة التنبيه على شكل
وميض على المخرج ( ) P41بحيث زمن الـ 2 = Onثا ،و زمن الـ 1 = Offثا .
بفرض أنه لدينا محرك ما نريد قياس سرعته ( دورة /الدقيقة ) وذلك بوصل إنكودر مع محور المحرك
يعطي على خرجه قطار نبضي متناسب مع دوران المحرك .
على أن يقوم المتحكم بتفعيل لمبتين ( )P41و ( )P42عند السرعة المنخفضة و العالية على الترتيب .
بفرض أنه لدينا مبنى مكون من ( ) 12غرفة ،كل غرفة تحوي حساس يعطي إشارة في حال ارتفاع
درجة الحرارة عن قيمة معينة ،كما هو مبين في الشكل التالي :
المخارج الثالثة ( ) P41, P42, P43تمثل التحكم بسرعة المروحة وفق الجدول أدناه .
يجب تشغيل المروحة بسرعة متناسبة مع النسبة المئوية لعدد الغرف التي تطلب التكييف .
وظيفة :
ع ّ
دل البرنامج بحيث يتم إضافة المميزة التالية:
إضافة مفتاح ( ) On / Offلعمل النظام على المدخل ( . ) P00
بفرض أنه لدينا محطة ضخ مكونة من أربع مضخات يراد تصميم نظام التشغيل اليدوي لها ...
اكتب برنامجاً باستخدام التعليمات المنطقية و تعليمات الدوران بحيث تعمل كل مضخة إذا تحقق
الشرطين التاليين :
وظيفة :
ع ّ
دل البرنامج بحيث يتم إضافة المميزة التالية:
إضافة أربع مخارج ( ) P44, P45, P46, P47تمثل 4لمبات تمثل عمل كل مضخة .
P P000 ~ P63F
M M000 ~ M191F
K K000 ~ K31F
L L000 ~ L63F
F F000 ~ F63F
Memory
Device 100msec : T000 ~ T191 (192 points)
10msec : T192 ~ T250 (59 points)
T
1msec : T251 ~ T255 (5 points)
-. Adjustable by parameter setting
C C000 ~ C255
S S00.00 ~ S99.99
D D0000 ~ D4999
Self-diagnosis functions Detects errors of scan time, memory, I/O and power supply
P P000 ~ P63F
M M000 ~ M191F
K K000 ~ K31F
L L000 ~ L63F
F F000 ~ F63F
Memory
Device 100msec : T000 ~ T191 (192 points)
10msec : T192 ~ T250 (59 points)
T
1msec : T251 ~ T255 (5 points)
-. Adjustable by parameter setting
C C000 ~ C255
S S00.00 ~ S99.99
D D0000 ~ D4999
Self-diagnosis functions Detects errors of scan time, memory, I/O and power supply
P P000 ~ P15F
M M000 ~ M191F
K K000 ~ K31F
L L000 ~ L63F
S S00.00 ~ S99.99
D D0000 ~ D4999
Self-diagnosis functions Detects errors of scan time, memory, I/O and power supply
4 DC Input
G7E-DR08A
4 Relay output
A/D : 2 channel
D/A : 1 channel
G7F-ADHA خرج/دخل
تشابهي
A/D : 2 channel
MK120s ONLY
D/A : 2 channel
G7F-ADHB A/D-D/A
دخل تشابهي
A/D : 4 channel G7F-AD2A
A/D
D/A : 4 channel
G7F-DA2I
(current output) خرج تشابهي
D/A : 4 channel D/A
MK120s ONLY G7F-DA2V
(voltage output) التوسعات
Points : 4points المؤقت التشابهي الخاصة
G7F-AT2A
Digital output : 0~200 Analog timer
Slim Type 4 channel حساسات الحرارة
G7F-RD2A
N/A@ MK120sE (Pt100, JPt100) RTD module
RS-232C : 1 channel G7L-CUEB
شبكات االتصال
Comm. I/F module
RS-422 : 1 channel G7L-CUEC
الزمن الحقيقي
Real Time Clock G7E-RTCA
RTC module
Items Specification
Pt 100 (JIS C1640-1989, DIN 43760-1980)
Connectable RTD
JPt100 (KS C1603-1991, JIS C1604-1981)
Temperature Pt 100 : -200 ~ 600℃ (18.48 to 313.59 )
input Range JPt100 : -200 ~ 600℃ (17.14 to 317.28 )
Each of three wires at every channel has
Burn out detection
detection function.
Accuracy ±0.5% [Full Scale]
Maximum conversion
40 scan / 1 module
speed
Current consumption 25 mA
External Voltage DC21.6 ∼ 26.4V
Power Current 70 mA
.. فيما يلي جداول توضح أهم مواصفات التوسعات التي تتعامل مع اإلشارات التشابهية
Items Specification
Maximum DC 0~20
5 µA (1/4000)
resolution mA
DC 4~20
5 µA (1/3200)
mA
Current consumption 25 mA
Specification
Items
G7F-DA2I G7F-DA2V
Max. conversion speed 0.5 mSec /CH + scan time 1 mSec/CH + scan time
Current consumption 20 mA 15 mA
. "F" قيما يلي جدول يسرد ألهم الوظائف خاليا الذاكرة الخاصة
تابعونا على
https://www.facebook.com/AB.Electromecanique