من فضلك ادعم الموقع على جوجل بالضغط على علامة g+1

الأربعاء، 18 أكتوبر 2017

شرح Data Block فى Siemens PLC

الكاتب elec engineer   بتاريخ   12:18 ص   shared

نكمل كورس Siemens PLC
و موعدنا مع الدرس الثامن 

ها نشرح كيفية ادراج data block و ايه هى عناصرها بالكامل Elementary و Complex
و ها نشرح الفرق بين Shared و instance data block 

يعنى ايه Data block ؟

data block هى مكان لتخزين البيانات داخل CPU بطريقة معينة انا بحددها
حتى يتم استخدامها داخل عناصر البرنامج مثل function و function block

يوجد نوعين اساسيين من Data Blocks هى :

Shared data block : اى تمكن استخدامها فى اى مكان داخل البرنامج زى مثلا اى function او اى function block او OB و ديه انا اللى بكتب عناصرها بنفسى بالكامل

Instance data block : و ديه يتم استخدامها فقط مع Function block او system function block 

و ديه لا يتم كتابة عناصرها عن طريق المبرمج بل يتم ادراجها تلقائيا عند عمل call لاى FB او SFB
بحيث يكون لكل function block يتم عمل instance data block خاص بيه فقط و نفس الوضع مع system function block
Instance Data Block ها يتم شرحها مع function block فى درس خاص

لادراج data block اضغط right click فى اى مكان فارغ داخل صفحة blocks و اختار insert new object و اختار Data Block
و طبعا ها يكون نوعها Shared 


ها اختار رقم data block حسب المطلوب و لو عايز اكتب symbolic name او اكتب comment عن وظيفة data block ديه
و غيرها من المتغيرات زى مثلا اسم مبرمج data block 


بعد كدا اختار OK
بعد فتح data block نجدها بهذا الشكل

انواع عناصر Data block
تنقسم الى نوعين اساسيين 

Elementary Data Block : و ده يحتوى على العناصر المبسطة
Complex Data Block : و ده يحتوى على العناصر المعقدة 

شرح Elementary Data Block

ها نشرح كل عنصر

bool : و هى قيمة تتكون من bit واحدة اى تكون اما 1 او 0
0 تسمى False و 1 تسمى True


Byte : اى قيمة تحتوى على 8 bits
و تكتب هنا بصيغة hexadecimal فقط اى لكتابة قيمة مثلا 12 داخل data block بحجم byte تكتبB#16#C
راجع صيغة hexadecimal فى درس شرح تمثيل الاعداد داخل Siemens PLC


Word : اى تحتوى على 16 bits
و يتم كتابة قيمتها بصيغة hexadecimal مثلا لكتابة القيمة 14 داخل ذاكرة بحجم word تكون كالتالى W#16#E 


DWord : اى double word و تحتوى على 32 bits
و يتم كتابة قيمتها بصيغة hexadecimal مثلا لكتابة القيمة 14 داخل ذاكرة بحجم word تكون كالتالى D#16#E 


int : اى integer و تحتوى على 16 bits و تتراوح قيمتها من -32768 الى +32767
و يتم كتابة قيمتها داخل data block بالشكل decimal العادى مثلا اكتب 98 او اكتب -166 و هكذا


Dint : اى double integer و تحتوى على 32 bits و تتراوح قيمتها من -2147483648 الى +2147483647
و يتم كتابة قيمتها داخل data block بالشكل decimal العادى و كلن بالشكل L#Value مثلا لكتابة الرقم 899 تكتب L#899


Real : و تحتوى على 32 bits و هى الداتا الوحيدة فى PLC التى يمكن ان تحتوى على قيمة عشرية
مثلا لكتابة القيمة 99.6 يقوم برنامج Simatic manager بتحويلها تلقائيا الى 9.960000e+001
راجع درس شرح تمثيل الاعداد داخل Siemens PLC


S5Time : و هى الصيغة الوحيدة لكتابة قيمة وقت داخل Timers
و تشغل مساحة 16 bits
و لكتابة وقت مثلا ( ساعة و 53 دقيقة و 30 ثانية و 20 مللى ثانية ) يتم كتابة S5T#1H53M30S20MS
و اقصى قيمة لها S5T#2H46M30S0MS
و سيتم شرح S5Time بالتفصيل الممل فى درس شرح timers لاحقا


Time : و هى صيغة كتابة الوقت ايضا و يتم استخدامها فى الاساس مع IEC timers
و تشغل مساحة 32 bits
و نفس وقت مثلا ( 3 ايام و 10 ساعات و 40 دقيقة ) يتم كتابة T#3d10h40m


Date : تستخدم فى كتابة التاريخ
و تشغل مساحة 16 bits
لكتابة تاريخ مثلا 15/3/2013 نكتب D#2013-3-15
و تتراوح قيمة التاريخ من D#1990-1-1 الى D#2168-12-31


time of day : و تستخدم لكتابة وقت ما
و تشغل مساحة 32 bits
مثلا لكتابة الوقت الساعة 2 ظهرا و 30 دقيقة و 20 ثانية يتم كتابة TOD#14:30:20.000
و تتراوح قيمة الوقت من TOD#0:0:0.000 الى TOD#23:59:59.999


CHAR : و هى اختصار character و تستخدم لكتابة حرف
و تشغل مساحة 8 bits
مثلا لكتابة حرف F يتم كتابتها كالتالى  'F'


كدا احنا شرحنا كل نوع على حدى و الحجم الذى يشغله و فيما يستخدم
دلوقتى ها نقوم بأدراج كل العناصر السابقة على Data Block اللى انشأناها

نجد ان هناك الخانات الاتية :
name : و فيه يتم ادراج اسم القيمة حسب اختيارى مثلا انا كتبت test
type و ده نوع data اللى تم شرحه بالتفصيل
initial value : و ديه القيمة الابتدائية اللى PLC ها يدرجها عند عمل download للداتا بلوك
و القيمة ديه البرنامج يضعها تلقائيا بصفر و لكن ممكن اغير فيها حسب المطلوب
و بمجرد ان يعمل البرنامج بعد عمل download تتغير قيمة الداتا حسب البرنامج اللى انا كاتبه
Comment : و ده لو انا عايز اكتب كومنت يذكرنى بأستخدام الداتا ديه مثلا


نلاحظ الاتى : يقوم برنامج Simatic manager بحجز ذاكرة لكل عنصر انا بدرجه
مع ملاحظة ان عند استخدام داتا بذاكرة bool يقوم البرنامج بحجز ذاكرة 1 byte كامله لها
و عند استخدام داتا بذاكرة byte يقوم البرنامج بحجز ذاكرة 1 word كامله لها


كيفية استدعاء اى data تم ادراجها داخل Data Block 

bool : يتم استدعائه على هذه الصيغة DB1.DBX4.0 مثلا ( هنا رقم data block يساوى 1 و نقصد bit رقم 0 داخل byte رقم 4 )

و لاستدعاء القيمة المخزنه على byte يتم كتابة الامر بهذه الطريقة DB1.DBB3 بهذا الشكل تم استدعاء BYTE رقم 3 فى data block رقم 1

و لاستدعاء القيمة المخزنه على word يتم كتابة الامر بهذه الصيغة DB4.DBW6 ( بهذا الشكل تم استدعاء WORD رقم 6 فى data block رقم 4 )

و لاستدعاء القيمة المخزنه على double word يتم كتابة الامر بهذه الصيغة DB5.DBD8 ( بهذا الشكل تم استدعاء double word رقم 8 فى data block رقم 5 )

و ذلك بعض النظر عن نوع الذاكرة 


دلوقتى ها نستدعى كل العناصر اللى كتبناها فى data block 1

لاستدعاء test1 : نكتب DB1.DBX0.0 و ذلك لانها مخزنه على ذاكرة BIT
لاستدعاء test2 :  نكتب DB1.DBB1 و ذلك لانها مخزنه على ذاكرة byte
لاستدعاء test3 :  نكتب DB1.DBW2 و ذلك لانها مخزنه على ذاكرة word
test4 :  نكتب DB1.DBD4 و ذلك لانها مخزنه على ذاكرة double word
test5 :  نكتب DB1.DBW8 و ذلك لانها مخزنه على ذاكرة word
test6 :  نكتب DB1.DBD10 و ذلك لانها مخزنه على ذاكرة double word
test7 :  نكتب DB1.DBD14 و ذلك لانها مخزنه على ذاكرة double word
test8 :  نكتب DB1.DBW18 و ذلك لانها مخزنه على ذاكرة word
test9 :  نكتب DB1.DBD20 و ذلك لانها مخزنه على ذاكرة double word
test10 :  نكتب DB1.DBW24 و ذلك لانها مخزنه على ذاكرة word
test11 :  نكتب DB1.DBD26 و ذلك لانها مخزنه على ذاكرة double word
test12 :  نكتب DB1.DBD30 و ذلك لانها مخزنه على ذاكرة double word


مثال عملى على استخدام Data Block

داخل FC3 ها نعمل برنامج يقوم بمقارنة رقمين و تشغيل خرج حسب المقارنة
عشان تفهم المثال راجع درس شرح اوامر Comparator داخل Siemens PLC

هنا استخدمت DB1.DBX0.0 كنقطة مفتوحة تستخدم مع I 10.0 فى تشغيل compare block
و استخدمت DB1.DBW8 فى عملية المقارنة نفسها
لاحظ ان البرنامج اظهر اسم DB1 و هو learn data block و اظهر اسم المتغير اللى ادرجته test 1 و test 5

البرنامج السابق بلغة STL



كدا باقى عناصر Complex Data Block
و هى : Date and Time - String - Array - Struct - UDT
و هيتم شرحهم بالتفصيل الدرس القادم من الكورس


شكرا للمتابعة 

معلومات كاتب الموضوع

مهندس كهرباء مصرى متخصص فى مجال التحكم الالى
شاهد جميع موضوعاتي: مهندس مصرى

navright

متابعى الموقع

Back to top ↑
كن على تواصل واتصال معنا

Flag Counter

احذر.. الموقع محمى بحقوق الملكية الفكرية

© 2013 موقع الهندسة الكهربية . WP Mythemeshop Converted by Bloggertheme9
Blogger templates . Proudly Powered by Blogger .