| دورة متقدمة في البرمجة S7 | |
|
+135jeopenny20 concord SIDALI hesham_scada ابراهيم السقا شادى محمد حسين الحمدى marocautomatique حسني إمام mostafa talat Ali abdelmagid osamarady التقني المتخصص azzouz علام عبدالجليل Eng_abdullah gaber123 saberplc nacer ENG_ELDABLY ehab_abdelaleem mf8044 meziani majdglory achour lamouri djadel yousfi محمد رياض ياسين الصافى عبد اللطيف محمد mohamed_moussaoui 0-1 mjalil80 رياض محمد محمود عليان Sallam ATHEER yahiaadam Ing_dz أحمد جمال مكرم athil kmourad enhassan احمد الجغيفي ELTIYEB KROPI eng_mo7amed_3ly sky hok mikah elec صابر يوسف khaledmosa omr.a MALEK800 tatya007 Mr.Mohamed tamzargot79 ENG.SAMER SALAH kimo malek alsharfi ياسين بوخروبة مهندس نديم mgdy ali hassan ali plctxp1 محمدسوري khaledrefat ahmedhasan حسام رضا اسماعيل محمود سعد rasan eng msmsm احمد سيد englolosoft pizomx ايهاب رمضان thulfiqar2 ميدو ahmedkasmi رفعت القدسي eng_w soliman sharkfish77 hamadaaskar الفقير لله Ghazi-A-Monef بلال درويش احمدسامى mostafasadek79 salah00 قفار fadhel mfarock lotfy esaed MIMOTE ابو احمد الحجي adder محمد زعبوبة ebenazzouz eng_nassar soltan_lil riad1986 احمد سالم kingmohamed falah49 amerelect dobelhadj amr ezzat elwan سيد زايد ticon55 أحمد فاروق أحمد فتحي yakteeno eng_abdelaal hany_omar helyo_tech himahalim adnan hashim mone1 أبو خالد مصطفى engmohallam AUTOMATISME شرشابيل intelligence Mohammed_Mobasher majid hijazy zabat 4ever semsem metwally.mustafa ابو هبة GALALSAIF محمد عبدالقوي RAMA denger741 agadir1sou m_elshatr wael tawfik mm PLCMan 139 مشترك |
|
كاتب الموضوع | رسالة |
---|
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الثلاثاء 31 مارس 2009 - 12:47 | |
| الأخوة الأعزاء كما سبق وذكرنا أنه يتم استدعاء الدالة PID بحيث يجب أن تعمل في الوقت الحقيقي REAL TIME لضمان ثبات الأداء وتعبيره عن الواقع لعدم ضمان ثبات دورة التنفيذ للبرنامج
لهذا يتم استدعاء الدالة في أحد دوال قطع الروتين الطبيعي للتنفيذ والمسماة Cyclic interrupts وفي معظم موديلات CPU 31x سوف تجد هناك بلوك واحد فقط هو OB35 وعند استدعاء PID يتم ذلك داخل OB35 مثل الصورة التالية
وكما هو واضح في الصورة أعلى رقم OB35 والذي تم استدعاء الدالة داخله
ثانيا بلوك البيانات المصاحب للدالة والمخصص لها Instant data block ويمكن استخدام أي بلوك من بلوكات البيانات معنا بشرط أن يكون مخصص لها مع العلم بأن عملية إنشاء وتوصيف البيانات للبلوك تتم عن طريق النظام كل ما عليك هو أن تذكر رقم البلوك فوق الدالة مثل المشار له بالصورة حيث تم تخصيص بلوك البيانات DB60 حيث سوف يشير النظام إلى أنه غير موجود ويلزم إنشاؤه فتجاوب مع النظام حتى يتم الإنشاء وكما ذكرنا لا يشترط أن يكون رقم 60 وإنما يمكن أن يكون أي بلوك ولكن بشرط أن يخصص للدالة
والآن كيف يتم تخصيص بيانات Data block للبيانات المناظرة لها FB41 ?
ننظر إلى الصورة التالية ثم نتكلم بعدها :
كما هو واضح من الصورة فإن كل عنصر من عناصر الدالة يتم تخصيص جزء من البيانات له مثل الصورة تماما أي أن :
COM_RESTART --> DB60.DBX0.0 MAN_ON --> DB60.DBX0.1 . . .
وهكذا مثل ما هو موضح في الملاحظات على الصورة
لنفترض مثلا أنه نريد تغيير SP_INT إلى القيمة 50.0 فإننا نقوم بالآتي في أي مكان في البرنامج :
L 50.0 //Load the value 50.0 into ACCUM1 T DB60.DBD6 //Transfer contents of ACCUM1 into Data D.Word
لنفترض أنه كما سبق وذكرنا نريد تشغيل أشياء معينة في بداية تنفيذ البرنامج ( عند بداية تشغيل PLC فقط ) وتظل هكذا طوال البرنامج ما لم نقم نحن بتغييرها داخل البرنامج :
يتم ذلك باستخدام OB100 مثلا الوظائف الآتية : - عمل Complete restart ، فصل MAN_ON ، تصفير القيمة الحالية للخرج LMN
SET //SET RLO S DB60.DBX0.0 //Set COM_RESTART R DB60.DBX0.1 //Reset MAN_ON L 0.0 //Load value 0.0 T DB60.DBD72
أما بخصوص المتغير Cycle والذي سبق وتكلمنا أنه من المهم جدا أن يكون هناك توافق بينه وبين وقت استدعاء OB35 فمثلا الوقت الافتراضي للبلوك OB35 هو 100 مللي ثانية فلابد أن يكون الوقت Cycle من مضاعفات هذا الوقت مثلا 1 ثانية أو 500 مللي ثانية أو أي رقم من مضاعفات 100 وأكثر من 100 حتى يحدث توافق بين حسابات PID وزمن قراءة البيانات داخل OB35
_________________ أبـوروان | |
|
| |
denger741 نقيب
عدد الرسائل : 198 تاريخ التسجيل : 02/09/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الثلاثاء 31 مارس 2009 - 13:48 | |
| يعطيك العافيه اخي ابوروان.... وفقك الله في الدنيا والاخرى | |
|
| |
m_elshatr رقيب أول
عدد الرسائل : 34 العمل/الترفيه : Electrical power and Automation Engineer تاريخ التسجيل : 26/10/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الأربعاء 1 أبريل 2009 - 16:08 | |
| بصراحة يا بشمهندس حسن وجبة كنترولية دسمة جدا جدا جدا جزاك الله كل خير واعانك على المجهود الرائع والممتاز والشرح الوافى ده ويارب يبارك لك وفيك وفى كل ما تعرفه يا ابو روان | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| |
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الجمعة 3 أبريل 2009 - 3:42 | |
| الاخ ابو روان المحترم من وجهت نظري لقد بدات بسرد ميثال غير سهل ارجو البدء بميثال اسهل لاني شخصيا ليس لدي اي خبره في مصانع الكوابل | |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الجمعة 3 أبريل 2009 - 4:05 | |
| الاخ ابو روان المحترم ارجو المساعده في عمليه التحكم في ضغط الماء حيث ان لدي PLC S7312,ANALOGUE INPUT AND OUTPUT MODULE AC FREQUENCY DRIVE CENTRIFUGAL WATER PUMP ANALOGUE PRESSURE SENSOR المطلوب ضبط ضغط الماء في الخط على 2.3BAR وشكرا | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| |
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الأربعاء 8 أبريل 2009 - 5:43 | |
| | |
|
| |
denger741 نقيب
عدد الرسائل : 198 تاريخ التسجيل : 02/09/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الخميس 9 أبريل 2009 - 11:47 | |
| یعطی? العافیه اخی ابوروان ....انا الان فی شهر العسل ومتابع مع?م هذا الشرح الرائع وهذا المنتدی الشیق | |
|
| |
denger741 نقيب
عدد الرسائل : 198 تاريخ التسجيل : 02/09/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الخميس 9 أبريل 2009 - 12:21 | |
| اخی ابوروان .... مم?ن تعطی مثال عن PID التح?م فی سرعه موتور | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| |
| |
denger741 نقيب
عدد الرسائل : 198 تاريخ التسجيل : 02/09/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الخميس 9 أبريل 2009 - 21:55 | |
| اخی ابوروان .. سالمت یدا? هل تقصد باالمقاومه المتغیره Encoder وهل نستطیع التح?م فی السرعه الموتور عن طریق Encoder | |
|
| |
mm ملازم أول
عدد الرسائل : 106 العمر : 35 تاريخ التسجيل : 25/09/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الجمعة 10 أبريل 2009 - 1:41 | |
| السلام عليكم بل نسبه الى AI وكذلك AO لو اخذنا على سبيل المثال analog input type AI8*12bit على اى اساس انا بقوم اختيار هذا الموديول مابين هذه الانواع AI8*14bit , AI8*16bit وماهو المقصود بهذا الرقم 12, 16 , 14 من حيث الاستخدام
والله المستعان MAHER | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| |
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الجمعة 10 أبريل 2009 - 2:56 | |
| - maher كتب:
- السلام عليكم
بل نسبه الى AI وكذلك AO لو اخذنا على سبيل المثال analog input type AI8*12bit على اى اساس انا بقوم اختيار هذا الموديول مابين هذه الانواع AI8*14bit , AI8*16bit وماهو المقصود بهذا الرقم 12, 16 , 14 من حيث الاستخدام
والله المستعان MAHER الأخ العزيز MAHER لقد أخذنا وقتا طويلا جدا وعرضنا جميع الجداول الخاصة بجميع أنواع Analoge modules من شركة سيمنس في بداية هذه الدورة وذكرنا أن هذا الرقم يعبر عن الدقة في القراءة مثله تماما لو قلنا أن لديك جهازين يقيسان حتى 1000 فولت ولكن أحدهما يقرأ حتى دقة 0.1 والثاني حتى دقة 0.5
فالأول تكون قراءاته هكذا : 0.1 - 0.2 - 0.3 - ................999.8 - 999.9 - 1000.0
أما الثاني فتكون هكذا : 0.0 - 0.5 - 1.0 - 1.5 - ................ - 998.5 - 999.0 - 999.5 - 1000.0
وبالتالي فالرقم 16 أعلى دقة من 14 والذي هو أدق من 12 وهكذا
ولك أن تختار أنت ما تشاء بناء على الدقة التي تريدها_________________ أبـوروان | |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الجمعة 10 أبريل 2009 - 6:33 | |
| یعطی? العافیه اخی ابوروان ياحبذا لو تقوم بارفاق ميثال حتى نقوم بعمل محاكاه له عن طريق plcsim ومعرفه كيف ادخال وتعديل التغيرات على fb41 | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 السبت 11 أبريل 2009 - 12:48 | |
| الأخوة الأعزاء السلام عليكم ورحمة الله وبركاته
أظن أن الوقت قد طال بنا جدا وانتظرت بعض الملاحظات عن المثال الذي معنا تستفسر عنه ولكني وجدت استفسارات (( هروبية )) لأمثلة أو أشياء أخرى قد تبعدنا عن الموضوع (( عموما مفيش مشكلة )) وإن شاء الله (( رغم إحباطي قليلا )) إلا أنني سوف أكمل إن شاء الله طمعا في الأجر يوم اللقاء من ملك السماوات والأرض
فكما توضح الصورة لدينا فهناك ثلاثة عناصر مطلوبة وهي :
- سرعة الموتور الرئيسي (( الشداد )) وهو Master أي أنه هو المتغير المستقل والباقي تابع له وقد رمزنا له في الصورة بالرمز B وهو يأتي مباشرة بعلاقة طردية مع المدخل الرئيسي للسرعة
- سرعة موتور Pay-off أو حامل بكرة الإمداد بالكابل وهذا له جزءان الأول يعتمد على سرعة الخط فهو تابع لموتور الشداد وتزاد سرعته وتقل تبعا للشداد والثاني تصحيحي حيث أنه مع العمل يقل حجم البكرة وبالتالي فإن السرعة المحيطية للبكرة والتي تمثل حركة الكابل = السرعة الخطية تقل وتحتاج أن نزيدها حتى تتوافق مع سرعة الخط وهذا يتم عن طريق الدانسر Dancer والذي قلنا أنه ذراع مثل رافعة النوع الأول يوضع ثقل عليه من ناحية ويرفعه الكابل من الناحية الأخرى ويكون الثقل حسب الشد المطلوب على الكابل ويتم ترجمة حركة الدانسر كهربيا عن طريق توصيل مقاومة متغيرة مع محوره فحينما يدور الدانسر حول محوره تدور المقاومة وتتغير قيمتها فإذا وضعنا جهدا كهربيا بين طرفي المقاومة الخارجية (( من صفر إلى 10 فولت )) فإن حركة الدانسر لأعلى وأسفل سوف تعطي تغييرا في الجهد الكهربي يتراوح بين صفر و10 فولت وهو ما يمكن أن ندخله على PLC Analoge input للاعتماد عليه في قياس وضع الدانسر
- سرعة موتور الاستقبال Take-up ومثلها مثل حامل الإمداد تماما مع اختلاف وحيد أنه كلما زاد حجم البكرة مع الوقت زادت سرعتها (( عكس الإمداد )) وكلما قل حجمهما قلت سرعتها وبالتالي فالتصحيح هنا عكس الإمداد
والمتغير هنا الذي سوف نركز على معالجته باستخدام PID هو حركة الدانسر فهذه القيمة من المتوقع لو لم نعالجها عن طريق PID أن تزداد السرعة ثم تق وتتأرجح حول منطقة العمل للدانسر
هذه هي الخطوط العامة للمشكلة ولدينا الآن (( كما تعودنا أن نقوم بحصر المدخلات والمخرجات لتحديد المكونات اللازمة )) لدينا المدخلات الآتية :
- مدخل تماثلي Analoge input للآتي : السرعة الرئيسية Set speed و مستوى الدانسر رقم-1 الخاص بالإمداد Dancer-1 position و مستوى الدانسر رقم-2 الخاص بالاستقبال Dancer-2 position
- مخرج تماثلي لسرعة الموتور الرئيسي Cater-pillar speed set - مخرج تماثلي لسرعة موتور حامل الإمداد Pay-off speed set - مخرج تماثلي لسرعة موتور حامل الاستقبال Take-up speed set
وإذا قمنا بإنشاء نظام بالمكونات الآتية كما في الصورة والتي تشمل : - وحدة مصدر جهد - وحدة CPU 315-2DP - موديول دخل رقمي 32 من النوع 24 فولت DC - موديول دخل رقمي 32 من النوع 24 فولت DC - موديول خرج رقمي 32 من النوع 24 فولت DC - موديول دخل تماثلي Analoge input عدد 8 قنوات - 14 bit - موديول خرج تماثلي Analoge output عدد 4 قنوات - 12 bit
وهذا سوف يسمح لنا باستخدام الآتي :
PIW 304 --> Line speed set value PIW 306 --> Dancer-1 position PIW 308 --> Dancer-2 position
PQW 320 --> Main motor ( Cater-pillar ) speed set point PQW 322 --> Pay-off speed set value PQW 324 --> Take-up speed set value
كما أن Digital inputs سوف تكون متاحة بعدد 64 دخل تشمل الآتي :
I 0.0 --> I 0.7 I 1.0 --> I 1.7 I 2.0 --> I 2.7 I 3.0 --> I 3.7 - - - I 7.0 --> I 7.7
ثم Digital outputs :
Q 8.0 --> Q 8.7 Q 9.0 --> Q 9.7 - - Q 11.0 --> Q 11.7
هذا أولا ما أردت الإشارة إليه كاستعمالات طرفية للمدخلات والمخرجات
وفي الشكل الآتي الاختيارات المناسبة في ضبط AI module & AO Module
_________________ أبـوروان | |
|
| |
denger741 نقيب
عدد الرسائل : 198 تاريخ التسجيل : 02/09/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 السبت 11 أبريل 2009 - 22:33 | |
| یعطی? العافیه اخی ابوروان اعذرني اخي العزیزبعدم التف?یر فی هذا المثال لانی ?نت مشغول فی شهر العسل ان شاء الله باذن الله هذ آخر سبوع لی..... طبعا انشغالی لم یمنعنی عن قراءت شرح? الشیق المثیر یعطی? الف عافیه | |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الإثنين 13 أبريل 2009 - 0:24 | |
| انتظرت بعض الملاحظات عن المثال الذي معنا تستفسر عنه ولكني وجدت استفسارات (( هروبية )) لأمثلة أو أشياء أخرى قد تبعدنا عن الموضوع (( عموما مفيش مشكلة )) وإن شاء الله (( رغم إحباطي قليلا )) إلا أنني سوف أكمل إن شاء الله طمعا في الأجر يوم اللقاء من ملك السماوات والأرض
اخي العزیز والاستاذ الفاضل ابوروان منذ ان قمت بشرح pid cotroll كنت في قمة السعاده لانه لاتوجد لدي اي معرفه عن الموضوع وانا شخصيا معك خطوه بخطوه في الشرح وجزاك الله خير عليه وعند انتهاءك من شرح الميثال المذكور سوف احاول انشاء الله على الاجابه على السؤال الذي طرحته وهو التحكم في ضغط الماء في الشبكه على 2.2bar ورفع البرنامج الى احدى مواقع الرفع او الى بريدك الالكتروني وجزاك الله خير على ما تقدمه واطلب منك الصبر وعدم الاحباط | |
|
| |
metwally.mustafa فريق أول
عدد الرسائل : 4226 العمر : 38 الموقع : Egypt العمل/الترفيه : automation engineer تاريخ التسجيل : 12/01/2009
| موضوع: رد: دورة متقدمة في البرمجة S7 الإثنين 13 أبريل 2009 - 9:52 | |
| لقد شاهدت تطبيق هذا الانسر كثيرا لدينا فى العمل ولكننا لا نستخدم الplc حيث توجد لدينا ماكينه تسمى ب coaster هذه الماكينه تستخدم فى عمليات الغسيل للمنسوجات والتبييض حيث انها تحتوى على عدد من العصارات والتى لابد ان يكون شدد النسيج فيها متساوى عند كل العصارات لاو ذا نستخدم ما يسمى بالميزان(الدانسر) والذى يتصل به مقاومه متغيره 10 خطوات حيث ان كل ميزان يتصل بمقاومه متغيره وجميع المقاومات موصله بدائره تحديد reference voltage حتى يتم تشغيل الانفرترات وشكرا | |
|
| |
semsem رائد
عدد الرسائل : 249 العمر : 45 تاريخ التسجيل : 05/04/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الإثنين 13 أبريل 2009 - 10:56 | |
| - metwally.mustafa كتب:
- لقد شاهدت تطبيق هذا الانسر كثيرا لدينا فى العمل ولكننا لا نستخدم الplc
حيث توجد لدينا ماكينه تسمى ب coaster هذه الماكينه تستخدم فى عمليات الغسيل للمنسوجات والتبييض حيث انها تحتوى على عدد من العصارات والتى لابد ان يكون شدد النسيج فيها متساوى عند كل العصارات لاو ذا نستخدم ما يسمى بالميزان(الدانسر) والذى يتصل به مقاومه متغيره 10 خطوات حيث ان كل ميزان يتصل بمقاومه متغيره وجميع المقاومات موصله بدائره تحديد reference voltage حتى يتم تشغيل الانفرترات وشكرا الأخ العزيز لا أظن أن الدائرة الموصل عليها الدانسر دائرة توحيد وإنما أظن أنها كارت PID ولكن إلكتروني كما ذكر أستاذنا PLCMan في البداية ولابد أنها ثلاث فرعات متوازية أحدها P والآخر I والثالث D ولابد من وجود Op-Amp على الكارت بأي شكل من أشكاله سواء 324 أو 148 أو 248 أو 348 أو 139 وغيرها كذلك لابد من وجود مقاومات متغيرة للضبط أو يتم الضبط عند بداية اختبار الماكينة ويتم تثبيت القيم بعد ذلك وقد كان هذا التطبيق هو الشائع قبل استخدام Real time PID باستخدام PLC وميزة الموجودة داخل PLC طبعا هو إمكانية استخدام عدد كبير لا أعرف كم بالضبط لكن بدلا من استعمال كارت لكل خيط أو موتور يمكن استخدام وحدة CPU واحدة للعديد وبالتالي توفير في المكان وسهولة في الضبط فبدلا من ضبط Potentiometers كثيرة يكون هنا الضبط باستخدام أرقام والعملية هنا كما يوضحها أستاذنا أبسط بكثير وأكثر مرونة سواء في المعالجة أو التوظيف أو حتى التوليف التلقائي في بعض الحالات Autotuning مع خالص التمنيات بالتوفيق وأرجو من أستاذنا الخروج من حالة الإحباط التي تحث عنها فنحن متابعون ونتعلم الكثير والكثير وإلى الأمام دائما وجزاكم الله خيرا | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الثلاثاء 14 أبريل 2009 - 13:34 | |
| بالفعل أخي العزيز فإن معظم أنظمة الدانسر المرتبط ب PID كانت تتم عن طريق كروت إلكترونية والتي قد تحتوي على مصدر جهد داخلي مثلا 15,0,-15 فولت ثم بعد ذلك وظيفة PID والتي تتم عن طريق دوائر OP-AMP ويتم التوليف في الغالب عن طريق مقاومات أو مكثفات متغيرة حسب نوع الكارت دعونا نستكمل ما بدأناه فقد توقفنا عند تخصيص المدخلات والمخرجات فيما يخص الوظيفة التي معنا والآن نبدأ في تخطيط منظومة PID التي نريدها ومن واقع الخبرة العملية فإننا سوف نكتفي إن شاء الله باستخدام PI فقط أن أن D سوف يلغى من حساباتنا وأول شئ سوف نبدأه هو بإضافة OB35 إلى بلوكات البرنامج Insert --> S7 Block --> Organization block ثم كتابة رقم البلوك ليكون OB35 ثم نقوم بفتح البلوك واستدعاء الدالة FB41 وكتابة رقم DB فقط فوقه وليكن DB10 لحامل الإمداد و DB20 لحامل الاستقبال وسوف يصبح لدينا الآن استدعاءان ل PID ولدينا عدد 2 بلوك بيانات كالصورة المصغرة الآتية والتي تشمل الاثنان معا لا تقم بتغيير أي شئ فسوف نقوم بذلك في بلوك البيانات الخاص بكل واحدة على حدة أيضا لو قمنا باستعراض خصائص CPU لمعرفة وقت تنفيذ (( الدوري )) للبلوك OB35 فسوف نجده 100 مللي ثانية حسب الصورة التالية ثم نبدأ بفتح DB10 لاختيار القيم الافتراضية والتي على أساسها سوف نحدد طريقة عمل المنظومة والجدول كما في الصورة التالية يشمل البيانات بعد الضبط الأولي حيث أن هذه القيم هي القيم الافتراضية والتي يتم تحميلها مع بداية تشغيل النظام وتبقى كما هي ما لم يتم تغييرها عن طريق البرنامج وإذا نظرنا إلى الجدول معنا فسوف نجد الآتي البيانات COM_RST,MAN_ON,PVPER_ON,INT_HOLD,I_ITL_ON,D_SEL قد تم ضبطها لتكون False وهذا يعني أنها معطلة أما البيانات P_SEL,I_SEL فقد تم ضبطها لتكون مفعلة وهذا يعني أن الدخل لن يكون مباشرة إلى المنظومة وإنما سنقوم نحن بإعداده وتمريره إلى العنوان PV_IN أو DB10.DBD10 كذلك فقد تم اختيار المنظومة لتكون PI وقد تم تعطيل D وكذلك تم تعطيل Integral hold function أما عن وقت العمل أو Cycle DB10.DBD2 فقد تم ضبطها كالقيمة الافتراضية للنظام على 1 ثانية وهذا من مضاعفات 100 مللي ثانية فهو عشرة أضعاف وقت تنفيذ OB35 وبالتالي فهو اختيار مناسب كذلك فقد تم ضبط SP_INT DB10.DBD6 على القيمة 50.0 وهي كما سبق وقلنا أنها نقطة المنتصف للدانسر وسوف نقوم إن شاء الله بعمل Scaling لقيمة الدخل من الدانسر لتتراوح بين صفر و100 حتى يمكن المقارنة بين القيمتين كذلك قمنا بتغيير المتغير LMN_LLM DB10.DBD44 ليكون -100% حيث أن خرج PID من المفترض أن يقوم بالتصحيح في الاتجاهين بالموجب والسالب أي يزيد السرعة أو ينقصها وقد تم الإبقاء على بقية القيم كما هي دون تغيير ويتم ضبطها مع التشغيل وعند الضبط النهائي للماكينة وعلى هذا فالقيم التي نحتاج لتمريرها إلى الدالة فيما هو آت كالآتي PV_INT --> DB10.DBD10 Gain --> DB10.DBD20 TI --> DB10.DBD24 DISV --> DB10.DBD68 ( Adding line speed to correction ) LMN_FAC --> DB10.DBD56 ( Correction scaling ) أما القيمة المعالجة فسوف نأخذها على الخرج LMN --> DB10.DBD72 وما قلناه على DB10 ينطبق على DB20 تماما وهكذا نكون قد استدعينا الدالة وأعددنا Data blocks وبقي لنا فقط أن نمرر البيانات من وإلى الدالة في البرنامج _________________ أبـوروان
عدل سابقا من قبل PLCMan في الأربعاء 15 أبريل 2009 - 14:41 عدل 1 مرات | |
|
| |
4ever رقيب أول
عدد الرسائل : 32 العمر : 47 تاريخ التسجيل : 06/04/2009
| موضوع: رد: دورة متقدمة في البرمجة S7 الثلاثاء 14 أبريل 2009 - 13:57 | |
| اسال الله العلى القدير ان يجازيك خير الجزاء على ما تقدم من علم نافع بكل اخلاص و لك منا كل احترام و تقدير و فى انتظار المزيد | |
|
| |
mm ملازم أول
عدد الرسائل : 106 العمر : 35 تاريخ التسجيل : 25/09/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الأربعاء 15 أبريل 2009 - 14:00 | |
| السلام عليكم عندما نستخدم fb41 لابد ان نستخدمه فى الوقت الحقيقى كما اشرت لنا وهذا يتم عن طريق داله ob53 ماهو المقصود بالوقت الحقيقى؟
__وهل انا ياقوم باستدعاء ob35 داخل ob1 مثل اى fb او fc ام لا ؟ __هل بنكتب هذا الامر فى ob1 ولا ob35 L 50.0 T DB60.DBD6 ونفس الكلام فى حاله استخدام ob100 SET //SET RLO S DB60.DBX0.0 //Set COM_RESTART R DB60.DBX0.1 //Reset MAN_ON L 0.0 //Load value 0.0 T DB60.DBD72
2- هل المقصود ب complete restart هو عند فصل التيار عن ال plc واعاده التوصيل مره اخره بيتم تنفيذ هذه الاوامر مره واحده فقط ام لا ؟ ؟ ؟؟
maher | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| |
| |
| دورة متقدمة في البرمجة S7 | |
|