| دورة متقدمة في البرمجة 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
| |
| |
m_elshatr رقيب أول
عدد الرسائل : 34 العمل/الترفيه : Electrical power and Automation Engineer تاريخ التسجيل : 26/10/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الجمعة 6 مارس 2009 - 7:21 | |
| بارك الله فيك استاذى على هذا المجهود
وجزاك الله كل خير | |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الجمعة 6 مارس 2009 - 7:39 | |
| | |
|
| |
محمد عبدالقوي جندي
عدد الرسائل : 8 تاريخ التسجيل : 13/02/2009
| موضوع: رد: دورة متقدمة في البرمجة S7 الجمعة 6 مارس 2009 - 12:13 | |
| السلام عليكم و رحمة الله
جزاك الله خيراً أخي العزيز علي هذا المجهود الرائع أعانك الله علي إستكمال هذا الشرح المتكامل .
محمد عبدالقوي | |
|
| |
GALALSAIF عريف
عدد الرسائل : 14 تاريخ التسجيل : 30/06/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 السبت 7 مارس 2009 - 3:51 | |
| [center]الله يفتح عليك يا باشمهندس حسن | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الإثنين 9 مارس 2009 - 15:37 | |
| الأخوة الأعزاء
بعد أن تجاوزنا بحمد الله المرحلة الأولى من تعريف موديولات الدخول والخروج بجميع صورها ومن تجاوب الزملاء معنا نستطيع القول أن الأمر يسير بشكل إيجابي جيد جدا وهذا يدفعنا للاستمرار إن شاء الله راجين من الله أن نحافظ معا على نفس الروح التعاونية بيننا
وصلنا معا إلى أنه مهما كانت نوعية Sensor الخارجي الذي نتعامل معه فإنه يتم ترجمته داخل البرنامج إلى Address يتم التعامل معه
وكما كنا نتعامل مع المدخلات الرقمية بالصور : I x.y , IB x , IW x , ID x حيث أن x تمثل عنوان أول Byte و y تمثل رقم Bit والرمز I يدل على أنه دخل والرمز B يرمز إلى Byte والرمز W يرمز إلى Word والرمز D يرمز إلى Double word
كما كان هذا في حالة المدخلات الرقمية فإن المدخلات التماثلية تأخذ الشكل : PIW x
حيث x تمثل Address والذي يتم تحديده حسب مكان الموديول في Hardware configuration مثل الصورة التالية
والعنوان Address هنا يبدأ من 288 ولأن الموديول هنا يتكون من عدد 8 مدخلات تماثلية فسوف تجد أنه تم حجز عدد 16 بايت تبدأ بالرقم 288 وتنتهي بالرقم 303 حيث يكون المتاح استخدامه كالآتي :
PIW 288 (Bytes 288,289) connected to 1st channel PIW 290 (Bytes 290,291) connected to 2nd channel PIW 292 (Bytes 292,293) connected to 3rd channel PIW 294 (Bytes 294,295) connected to 4th channel PIW 296 (Bytes 296,297) connected to 5th channel PIW 298 (Bytes 298,299) connected to 6th channel PIW 300 (Bytes 300,301) connected to 7th channel PIW 302 (Bytes 302,303) connected to 8th channel
وهذه هي العناوين التي يتم التعامل معها داخل البرنامج PIW 288,PIW 290,PIW 292,PIW 294,PIW 296,PIW 298,PIW 300,PIW 302
وبعد أن عرفنا العنوان والقيمة فقد تحول المدخل التماثلي إلى مجرد متغير يتم التعامل معه داخل البرنامج على أنه رقم صحيح ويتم التعامل بكل العمليات التي تتعامل مع الرقم الصحيح
فيمكن أن يتم تحميل القيمة منه إلى ACCU-1-L عن طريق الأمر LOAD
L PIW 288 //Load Periphiral input word 288 into ACCU1
ويمكن استعمال الأمر MOVE لو كنا نتعامل باستخدام LAD/FBD حيث يتم نقل القيمة مباشرة من PIW <Address>o إلى مكان آخر في الحجم Word
كذلك يمكن استعمال العمليات الحسابية التي تتم على الأرقام الصحيحة Integer math مثل الجمع والطرح والضرب والقسمة على مستوى 16 خانة
كذلك يمكن عمل المقارنات مع قيم صحيحة أخرى بأي شكل من الأشكال الستة المعروفة للمقارنة في حالة الأرقام الصحيحة ( أكبر من - أقل من - أكبر من أو يساوي - أقل من أو يساوي - يساوي - لا يساوي )
كذلك يمكن عمل Scaling باستعمال FC105 (((( في حالة توافرها في Package ))))
والمقصود بعمل Scaling هنا هو تحويل القيمة من المدخل التماثلي إلى قيمة نسبية حيث يتم إدخال القيمة الدنيا Min.Value والقيمة القصوى Max.Value حيث أن االقيمة الدنيا تمثل أقل قيمة يتم إدخالها من المدخل التماثلي والقيمة القصوى هي أكبر قيمة من المدخل التماثلي مع ملاحظة أن صورة النتيجة من هذه الدالة ةتكون رقم حقيقي اي به علامة عشرية
والخلاصة أن المدخل الرقمي يتحول إلى عنوان Address وقيمة والعنوان يتم تحديده بناء على Hardware configuration أما القيمة فهي رقم صحيح يناظر القيمة الفعلية بحسب الجداول التي استعرضناها من قبل _________________ أبـوروان | |
|
| |
m_elshatr رقيب أول
عدد الرسائل : 34 العمل/الترفيه : Electrical power and Automation Engineer تاريخ التسجيل : 26/10/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الإثنين 9 مارس 2009 - 17:59 | |
| بارك الله فيك استاذى على هذا المجهود
وجزاك الله كل خير | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الأربعاء 11 مارس 2009 - 15:44 | |
| الأخوة الاعزاء
سوف ننتقل إن شاء الله في المرة القادمة إلى باب آخر سوف نربطه بما درسنا سابقا وأظن أنه يمكننا الآن التعامل مع المدخلات والمخرجات التماثلية بشكل أبسط ولابد أن نضع في حساباتنا أنها مجرد وسيلة لإدخال وإخراج البيانات فقط وليس هدفنا فقط هو المدخلات والمخرجات التماثلية وإنما هي وسيلة لتوصيلها إلى نظام التحكم ( برنامج PLC ) ووسيلة لتوصيل النتيجة إلى ما يقوم بالتنفيذ Actuators
لهذا سوف نبدأ معا المرة القادمة في منظومة PID الداخلية والتي يمكن استخدامها بأشكال عديدة ولها طريقة محددة لابد من اتباعها لضمان حسن الأداء وسوف نتعرف على هذا إن شاء الله في المرات القادمة وقريبا جدا إن شاء الله وإن كان هناك أي استفسار بخصوص Analoge inputs/Outputs فيسعدنا تلقيه قبل الدخول في الموضوعات الأكبر لأننا سنتعامل مستقبلا مع المدخلات والمخرجات التماثلية في صورتين فقط وهما العنوان Address والقيمة سواء المقروءة أو المخرجة بافتراض أن من يكمل معنا قد ألم بما تعرضنا له معا في الصفحات السابقة
جزاكم الله خيرا وإلى لقاء قريب جدا إن شاء الله _________________ أبـوروان | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الخميس 12 مارس 2009 - 13:04 | |
| الأخوة الأعزاء السلام عليكم
دعونا أولا نقدم لموضوع PID قبل أن نبدأ في الاستخدام
من المعلوم أنه يوجد نوعان للتحكم وهما : Open loop control and Closed loop control
في النوع Closed loop control وهو موضوعنا اليوم يتم الاعتماد على الحالة الحالية للعملية في عملية التحكم فيها وحتى لا يطول بنا الوقت في الشرح النظري سوف نضرب مثال لذلك :
- عند التحكم في سرعة محرك مثلا فإنه حتى يكون التحكم تاما ومغلق Closed loop فإنه يلزمنا تغذية خلفية أو وسيلة لقياس السرعة الحالية للمحرك لتعطينا القيمة الفعلية للسرعة Speed actual value
وبالتالي فإن الفرق بين السرعة المطلوبة Speed set value والسرعة الفعلية Speed actual value وهو ما يمثل الخطأ بين القيمتين هو الذي يحدد سلوك منظومة التحكم إما بزيادة سرعة المحرك أو إبطائها
وينطبق نفس الكلام على منظومة تحكم في درجة حرارة جسم عن طريق سخان فيلزمنا هنا قياس درجة الحرارة الفعلية Temperature actual value ومقارنتها بدرجة الحرارة المطلوبة Temperature set value وبالتالي فإن الخطأ بين القيمة المطلوبة والقيمة الفعلية هو الذي يحدد سلوك منظومة التحكم
وغير هذا من الأنظمة العديدة والتي تعتمد على Feedback لقياس الإشارة الفعلية بأشكالها المختلفة
وقد تحدد إلينا حتى الآن ثلاث مصطلحات وهي Set value , Actual value , Error
وحتى تتم عملية التغيير حتى يصبح الخطأ بين Set value & Actual value صفر وهو هدفنا الذي نسعى من أجله فإن هذا لا يتم بشكل فجائي ولكن يتم الانتقال بشكل ناعم Smooth حتى نصل إلى حالة الثبات المطلوبة للنظام داخل الحدود المسموح بها للخطأ Error
ومن واقع أنظمة التحكم فإن سلوك نظام التحكم سوف يأخذنا إلى واحد من ثلاثة أنواع وهي :
- Overdamped system وفي هذه الحالة فإن الخطأ Error يتزايد ويصل النظام إلى أعلى مرحلة من مراحل عدم الاستقرار
- Damped system وفي هذه الحالة فإن النظام يصل إلى حالة الاستقرار تدريجيا ويصل إلى مرحلة مقبولة من الخطأ
- Oscillating system أو التأرجح وفي هذه الحالة يصل النظام إلى حالة الاستقرارولكن خارج حدود الخطأ المسموح به
وهدفنا هو النظام الثاني وهو يتحقق عن طريق PID إذا تم ضبطها بشكل صحيح
والمصلح PID يرمز إلى Proportional / Integral / Differential amplifier
فالجزء P يمثل حساسية النظام للخطأ وكلما زادت قيمة P فإن التغييرات البسيطة جدا في الخطأ يشعر بها النظام ويصبح حساسا جدا بها وكلما قلت القيمة P فإن الإحساس بالخطأ يضعف
والقيمة I وهي تمثل وقت التنعيم في حالة التشغيل وكلما زاد هذا الوقت أو هذا العامل كانت عملية الانتقال بشكل ناعم وكلما قل هذا العامل فإن الانتقال يتم بشكل حاد Sharp ويمكن تمثيل ذلك بعملية شحن المكثف
أما القيمة D فهي تدخل في حالة الانتقال العكسي أي تقليل القيمة في حالة ارتفاعها وهو هنا يمكن تشبيهه بعملية تفريغ المكثف
ويمكن عمل أي خليط من هذه الأنواع فيمكن استخدام P فقط أو PI أو PD أو PID
واختيار المنظومة الصحيحة هو الذي يضمن لنا النظام الصحيح للتحكم حتى لا يتحول النظام إلى أحد الأنظمة الغير مرغوب فيها Oscillating أو Overdamped
وهنا بدأ يدخل عندنا متغيرات جديدة وهي قيم المنظومة الثلاث P,I,D كذلك اختيار المنظومة التي تعمل
كذلك لابد من تحديد قيم قصوى موجبة وسالبة لتصحيح الخطأ Error
وأيضا يجب لفت النظر إلى شئ مهم جدا وهو أن منظومة PID يجب أن تتم في الوقت الحقيقي Real time فلا يجب أن نعتمد بأي شكل من الأشكال على زمن دورة تنفيذ البرنامج وسوف نوضح فيما هو آت كيفية تنفيذ هذا إن شاء الله
هذه مقدمة بسيطة كان لابد منها قبل أن نتعرض للمنظومة الخاصة بشركة سيمنس _________________ أبـوروان | |
|
| |
m_elshatr رقيب أول
عدد الرسائل : 34 العمل/الترفيه : Electrical power and Automation Engineer تاريخ التسجيل : 26/10/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الجمعة 13 مارس 2009 - 13:25 | |
| جزاك الله كل خير استاذى على هذا المجهود الوفير
والى الامام دائما | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الأحد 15 مارس 2009 - 14:28 | |
| والآن إخواني الأعزاء ندخل إلى منظومة سيمنس مباشرة
فلدينا خمس دوال ضمن منظومات PID المستخدمة من سيمنس وهي حسب الصورة الآتية FB41,FB42,FB43,FB58,FB59
Continuous Control with FB41 CONT_C
النوع الأول وهو FB41 ويستخدم في حالات التحكم الذي يلزمه Continuous control مثل التحكم في سرعة موتور مع وجود تاكوميتر أو التحكم في سرعة موتور مع وجود دانسر للتحكم في الشد أو Load cell أو التحكم في ضغط إلى غير ذلك من المنظومات التي يكون الدخل لها Analoge والخرج منها Analoge
ويمكن الوصول إلى الدوال كما في الصورة عن طريق Libraries ثم Standard Library ثم PID Control Blocks ثم اختيار البلوك المناسب للوظيفة وعن طريق Drag&Drop يتم سحب البلوك في حالة استخدام LAD/FBD أما في حالة استخدام STL فيتم استخدام الأمر CALL
وسوف نبدأ باستخدام FB41 كأول منظومة نطبق عليها ما سبق وتحدثنا عنه فإذا قمنا بعمل Call للبلوك فسوف يظهر معنا بالشكل التالي
وكما هو موضح بالعلامات التي تم إضافتها وسوف نحاول توضيح ذلك تفصيليا إن شاء الله تعالى
وأول شئ يتم إدخاله بعد الاستدعاء هو إدخال رقم بلوك البيانات Data block والذي سوف يتم تخصيصه للعمل مع الدالة FB41 ويتم إدخال رقم البلوك أعلى الدالة في المكان المخصص لذلك
مع ملاحظة أن كل الخانات إلى الشمال هي مدخلات للدالة والقيم إلى ىاليمين هي مخرجات للدالة
وعند إدخال رقم بلوك البيانات مثلا DB30 فسوف تظهر لنا رسالة تقول أن البلوك غير موجود فهل تريد إنشاءه نجيب ب OK
وعند فتح بلوك البيانات سوف تظهر لنا البيانات مثل الصورة التالية لو اخترنا Data view
ويفضل تمرير البيانات من وإلى ىالدالة عن طريق تمريرها إلى Data block حيث يمكن أن يحدث خطأ يؤدي إلى توقف CPU
وسوف نوالي المرة القادمة إن شاء الله تفاصيل بيانات الدخول والخروج الموضحة بالصورة _________________ أبـوروان | |
|
| |
m_elshatr رقيب أول
عدد الرسائل : 34 العمل/الترفيه : Electrical power and Automation Engineer تاريخ التسجيل : 26/10/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الثلاثاء 17 مارس 2009 - 17:46 | |
| جزاك الله خيرا استاذى
واعانك الله على اكمال هذه الدورة ونحن مقدرين المجهود الذى تبذله
وان شاء الله جعله فى ميزان حسناتك | |
|
| |
m_elshatr رقيب أول
عدد الرسائل : 34 العمل/الترفيه : Electrical power and Automation Engineer تاريخ التسجيل : 26/10/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الثلاثاء 17 مارس 2009 - 17:54 | |
| بس كان عندى سؤال يابشمهندس هو انا مش ممكن اعدل فى االداتا بلوك بتاع الدالة ديه | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الثلاثاء 17 مارس 2009 - 18:16 | |
| لا أفهم ما المقصود بالتعديل !!
إذا كان المقصود التعديل في بناء البلوك أي ترتيب ونوع البيانات فهذا غير ممكن
وإذا كان المقصود تغيير القيم فهذا أمر طبيعي فيمكنك خلال البرنامج عمل Transfer للبيانات إلى الداتا بلوك
عموما سوف يأتي الكلام عن الداتا بلوك حالا إنما مازلنا نتعرف على الدالة FB41 ونعرف إمكانياتها وسوف نتكلم عن كل شئ بالتفصيل إن شاء الله
وربما تجد في الشرح التالي إجابة عن كل ما يدور في بالك وإن لم تجد الإجابة فيسعدنا أن نتلقى استفساراتك وندعو الله أن نستطيع الإجابة عليها بشكل مقنع
وجزاكم الله خيرا على حرصكم ومتابعتكم الطيبة والدقيقة
_________________ أبـوروان | |
|
| |
m_elshatr رقيب أول
عدد الرسائل : 34 العمل/الترفيه : Electrical power and Automation Engineer تاريخ التسجيل : 26/10/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الثلاثاء 17 مارس 2009 - 18:34 | |
| حسنا استاذى انى فى انتظار التوضيح لعمل هذه الدالة ووفقك الله
وجزاك الله كل خير على سرعة الرد | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الإثنين 23 مارس 2009 - 16:35 | |
| الأخوة الأعزاء
دعونا نتعرف معا على PID Block أو كيف تعمل المنظومة وسريان الإشارة من الدخول وحتى الخروج
أولا الشكل التالي يوضح الشكل القياسي للدالة
أما هذا الشكل فيوضح نفس البلوك ولكن مع وضع بعض التعليقات التي تساعدنا في فهم الدالة
ولنبدأ معا في التعرف على الدالة
أولا منطقة الإدخال :
فكما هو واضح من الشكل فهناك قيمة SP_INT وهي تمثل الضبط أي القيمة المراد التشغيل عندها كسرعة تشغيل مثلا وهذه القيمة تكون رقم عشري Real وهو الدخل الرئيسي للدالة
الدخل الثاني وهو PV_IN أي القيمة الفعلية والتي يتم قياسها فعليا من العملية وهذه أيضا يتم الحصول عليها بشكل غير مباشر عن طريق البرنامج وليس من المدخلات التماثلية مباشرة ويتم معالجتها أي عمل Scaling وتحويلها إلى الصورة العشرية Real
الدخل الثالث وهو PV_PER وهذا الدخل بديل للدخل الثاني PV_IN وهو مباشر في صورة Integer يتم الحصول عليه من مدخل تماثلي مباشرة ويتم الاختيار بين الدخل الثاني PV_IN والدخل الثالث PV_PER عن طريق المتغير الثنائي BOOL والمسمى PVPER_ON فلو كانت قيمته صفر يكون القيمة الفعلية من الدخل الثاني PV_IN ولو كانت قيمة PVPER_ON تساوي 1 تكون القيمة الفعلية عن طريق الدخل التماثلي مباشرة
وعند اختيار الدخل التماثلي فإن البلوك normalization يمثل عملية التحويل من الصيغة Integer إلى الصيغة Real داخل البرنامج
والفرق بين القيمة المراد التشغيل عليها والقيمة الفعلية وهو الخطأ Error أو بحسب الرسم ER يمر على منطقة DeadZone وهذه المنطقة في الغالب تكون صفر إلا إذا وجدت منطقة معينة لا يمكن ضبط النظومة عندها فيتم تحديدها ليتخطاها النظام ولا يعمل داخلها
ثم يمر الخطأ بعد ذلك على Gain لتكبير الخطأ أو تصغيره حسب درجة الحساسية المطلوبة للنظام ويتم ضبط هذه الحساسية عن طريق المتغير Gain
ثم تأتي بعد ذلك مرحلة المعالجة الثلاثية PID وتتم بالتوازي حيث يدخل ER بعد تكبيره عن طريق Gain على كل من P , I , D
ويلاحظ أنه لكل واحد من الفروع الثلاثة اختيار للعمل P_SEL , I_SEL , D_SEL
وكما ذكرنا سابقا فعلى الأقل يجب تشغيل P ويمكن تشغيل P , PI , PD , PID
أما المجموعتان INT , DIF فيمثلان مجموعة معاملات ضبط كل من منظومة I , D والتي تشمل الحساسية أو الاستجابة والحدود
وبعد ذلك يتم تجميع النتيجة على مجمع ويمكن الحصول على نتيجة كل فرع على حدة كقراءة فعلية على المتغيرات LMN_P , LMN_I , LMN_D
وبعد التجميع يمكن جمع إشارة مبدئية DISV مع نتيجة المعالجة
أما الجزء الأخير من أسفل فيبدأ بالمتغير MAN_ON وهو الذي يقوم بتفعيل الربط بين المدخلات والمخرجات وللتفعيل يتم وضعه على القيمة صفر
ثم تمر النتيجة إلى مرحلة التحديد بعد ذلك ثم عمل Scaing للنتيجة قبل تمرير النتيجة إما إلى مخرج تماثلي مباشرة LMN_PER أو إلى مخرج غير مباشر LMN في صورة Real يتم معالجتها بعد ذلك داخل البرنامج _________________ أبـوروان | |
|
| |
denger741 نقيب
عدد الرسائل : 198 تاريخ التسجيل : 02/09/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الأربعاء 25 مارس 2009 - 14:09 | |
| | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الأربعاء 25 مارس 2009 - 14:30 | |
| الأخوة الأعزاء لنستعرض معا الآن المدخلات التي يمكن تمريرها إلى الدالة وماذا يعنى بها وهذه الدوال لها قسمان وهما قسم للتشغيل وقسم للضبط
قسم التشغيل وهو الذي يؤثر على شكل الدالة المستخدمة وتوظيف الدالة والتشغيل والإيقاف وإعادة البدء من الصفر وهكذا أما وظائف الضبط فهي خاصة بمعاملات المنظومة نفسها وعمليات ضبط الإشارات سواء القيمة المراد ضبطها او القيمة الفعلية أو القيمة المعالجة
وبحسب الجدول التالي والذي يشمل جميع المدخلات للدالة ونوع البيانات المستخدمة وأقصى قيمة والقيمة الافتراضية التي يتم تحميلها مع إنشاء بلوك البيانات ووصف المدخل نفسه
1- COM_RST ( Complete Restart )
وهو يقوم بإعادة كل شئ في الدالة إلى القيم الأولية الافتراضية عن تحوله من القيمة صفر إلى القيمة 1 حيث أنه متغير ثنائي ويفضل أن تتم هذه الوظيفة عند عمل إعادة تشغيل للمنظومة
2- MAN_ON
وهذا المتغير عندما تكون قيمته 1 يلغي تأثير المنظومة ويقوم بإخراج القيمة MAN على الخرج LMN بدلا من الذي يخرج عن طريق المنظومة وعند الرغبة في تشغيل المنظومة لابد أن يكون هذا المتغير بصفر وهو أيضا من النوع الثنائي ويفضل أن يتم إدخال هذه القيمة صفرا في القيم الأولية الافتراضية لبلوك البيانات
3- PVPER_ON
وهو اختيار أيضا من النوع الثنائي ويمثل الاختيار بين الدخول المباشر من دخل تماثلي والدخول غير المباشر من قيمة في بلوك البيانات وعندما نريد أن نستعمل القيمة الفعلية من دخل تماثلي مباشرة فلابد أن تكون قيمته 1 ولغير ذلك تكون قيمته صفر ويفضل أن تكون هذه القيمة ضمن القيم الأولية الافتراضية لبلوك البيانات
4,5,6- P_SEL , I_SEL , D_SEL
وهذه القيم الثلاث يمكن استعمالها كمتغيرات في شاشات إدخال البيانات كاختيارات لنوع المنظومة ولكن كما ذكرنا من قبل فعلى الأقل لابد من تشغيل P ولهذا فيجب على الأقل أن يكون في البيانات الأولية الافتراضية هذا المتغير P_SEL بقيمة 1 أما الآخران فيمكن توظيفهما أثناء التشغيل
7- INT_HOLD
وهذا المتغير أيضا من النوع الثنائي وهو يحدد عملية تجميد Integral action أو إلغاء تأثيره عن وجود هذا الدخل ويفضل أن تكون القيمة الافتراضية له صفرا
8- I_ITL_ON
وهذا المتغير أيضا من النوع الثنائي وهو يمثل إعادة Integral action إلى الصفر أي من البداية عند تحول قيمته إلى 1
9- CYCLE
وهذا المتغير نوعه وقت وهو يمثل الوثت بين استدعائين متتاليين للدالة وسوف يكون هناك ملاحظات على هذا الوقت في المراحل التالية إن شاء الله والوقت الافتراضي هو 1 ثانية كما هو موضح في الجدول
10- SP_INT
وهو يمثل العنوان الذي يأتي منه القيمة المراد التشغيل عندها أو القيمة بشكل مباشر وهذه تحدد أثناء التشغيل
11- PV_INT
وهو يمثل العنوان الذي يأتي منه القيمة الفعلية إذا تم اختيار الشكل الغير مباشر
12- PV_PER
وهذه تمثل عنوان المدخل التماثلي والذي تأتي منه القيمة الفعلية مباشرة في حال اختيار إدخال القيمة الفعلية مباشرة من الدخل التماثلي
المدخلات التالية وهي بيانات الضبط والتي تحدد دقة المنظومة في تنفيذ وتحقيق الهدف المطلوب منها
13- MAN
وهو يمثل القيمة التي يتم إخراجها على LMN في حالة اختيار MAN_ON
14- GAIN
وهو يمثل معامل تكبير الخطأ ( الفرق بين القيمة المطلوبة والقيمة الفعلية ) وكلما زادت قيمته زادت حساسية المنظومة للتغيرات البسيطة والعكس صحيح
15,16- TI , TD
وهما يمثلان وقت التشغيل لكل من Integral ,Diffrential actions
17- TM_LAG
وهو يمثل وقت تأخير بدء تشغيل Diffrential action في حالة الرغبة في تأخير تشغيله إلى مرحلة تالية وليس من البداية
18- DEADB_W
كما ذكرنا سابقا فربما يكون هناك منطقة معينة من نطاق التشغيل ( ولو بسيطة ) يحدث فيها عدم استقرار للمنظومة ولا تفلح معه كل محاولات الضبط وهنا يمكن تجاوز هذه المنطقة وعدم تفعيل العمل داخلها وذلك عن طريق هذا المتغير وغالبا ما يكون صفر
19,20- LMN_HLM ,LMN_LLM
وهذه تمثل حدود استجابة المنظومة بتحديد أقصى قيمة وأقل قيمة لخرج المنظومة وتتراوح بين 100% و -100% وبالتالي يمكن التحكم في نطاق التغيير
21,22- PV_FAC ,PV_OFF
وهذه تمثل عملية معايرة للقيمة الفعلية بالضرب في PV_FAC وطرح PV_OFF
23,24- LMN_FAC ,LMN_OFF
وهذه تمثل عملية معايرة أيضا للقيمة المعالجة بعد انتهاء معالجتها في المنظومة عن طريق الضرب في LMN_FAC وطرح LMN_OFF
25- I_ITLVAL
وهذا المتغير يمثل قيمة Integral action عند إعادة التشغيل باستخدام المتغير ( 8 ) والذي ذكرناه تحت اسم I_ITL_ON
26- DISV
وهو يمثل قيمة مضافة إلى القيمة المعالجة وسوف نذكر مثالا إن شاء الله بعد الانتهاء نوضح فيه كيفية استخداه
_________________ أبـوروان | |
|
| |
ابو هبة عريف
عدد الرسائل : 13 العمر : 52 الموقع : مصر تاريخ التسجيل : 25/03/2009
| موضوع: رد: دورة متقدمة في البرمجة S7 الأربعاء 25 مارس 2009 - 16:03 | |
| شرح ممتاز وجميل جدا اسال الله العظيم رب العرش العظيم ان يجعل هذاء العمل فى ميزان حسناتك | |
|
| |
m_elshatr رقيب أول
عدد الرسائل : 34 العمل/الترفيه : Electrical power and Automation Engineer تاريخ التسجيل : 26/10/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الجمعة 27 مارس 2009 - 5:28 | |
| السلام عليكم استاذى اولا جزاك الله كل خير على هذا المجهود وهذا الشرح الوافى اسال الله بان يبارك لك وفيك وفى كل من تعرفه واثابك الفردوس الاعلى
امين يارب العالمين | |
|
| |
denger741 نقيب
عدد الرسائل : 198 تاريخ التسجيل : 02/09/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الإثنين 30 مارس 2009 - 14:00 | |
| اخي ابوروان يمكن توضيح.... اين توضع الارقام التي تكون مماثله لدخل التماثلي في البرنامج | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الإثنين 30 مارس 2009 - 14:21 | |
| - denger741 كتب:
- اخي ابوروان يمكن توضيح....
اين توضع الارقام التي تكون مماثله لدخل التماثلي في البرنامج الأخ العزيز جميع البيانات يتم نقلها إلى Data block باستعمال الأمر Transfer ماعدا المدخلات الطرفية المباشرة PIW , PQW حيث يتم كتابة Address مباشرة في المكان المخصص لذلك على بلوك الدالة _________________ أبـوروان | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الإثنين 30 مارس 2009 - 14:53 | |
| الأخوة الأعزاء
دعونا الآن نكمل باقي تفاصيل المخرجات من الدالة مثلما استعرضنا تفاصيل المدخلات1- LMN وهي القيمة المعالجة أو خروج الدالة وهو الذي يمثل تأثير الدالة ومعالجة الخطأ بين Set value والقيمة الفعلية Actual value وهو من النوع العشري وتتراوح قيمته من -100.0 إلى 100.0 2- LMN_PER وهو يمثل خرج الدالة أو القيمة المعالجة ولكن في صورة رقم صحيح معالج للإخراج مباشرة إلى خرج تماثلي3- QLMN_HLM وهو خرج من النوع الثنائي تتحول قيمته من الصفر إلى الواحد في حالة وصول القيمة المعالجة إلى الحد الأقصى والذي يتم ضبطه في المدخلات4- QLMN_LLM وهو خرج من النوع الثنائي تتحول قيمته من الصفر إلى الواحد في حالة وصول القيمة المعالجة إلى الحد الأدنى والذي يتم ضبطه في المدخلات5- LMN_P هذه القيمة في صورة عشرية وتمثل معالجة منظومة Proportional للخطأ بين قيمة الضبط والقيمة الفعلية قبل عملية الجمع مع المعالجات الأخرى من منظومات Integral ومنظومة Differential6- LMN_I هذه القيمة في صورة عشرية وتمثل معالجة منظومة Integral للخطأ بين قيمة الضبط والقيمة الفعلية قبل عملية الجمع مع المعالجات الأخرى من منظومات Proportional ومنظومة Differential7- LMN_D هذه القيمة في صورة عشرية وتمثل معالجة منظومة Differential للخطأ بين قيمة الضبط والقيمة الفعلية قبل عملية الجمع مع المعالجات الأخرى من منظومات Proportional ومنظومة Integral8- PV وهو من النوع العشري ويمثل القيمة الفعلية 9- ER وهو من النوع العشري ويمثل الخطأ بين قيمة الضبط والقيمة الفعلية _________________ أبـوروان | |
|
| |
denger741 نقيب
عدد الرسائل : 198 تاريخ التسجيل : 02/09/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الإثنين 30 مارس 2009 - 14:58 | |
| اخي ابوروان يعطيك الف عافيه.... اقصد الرقم 27468 يكون مماثل لدخل 10v ..الدرس الاول الذي قمت بشرحه سابقا | |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: رد: دورة متقدمة في البرمجة S7 الثلاثاء 31 مارس 2009 - 8:42 | |
| MR PLCMAN يعطيك العافيه لقد كنت معك خطوه بخطوه في موضوع PID لانه كانت تنقصني المعلومات في هذا المجال ولقد استفدت لغايه الان الشي الكثير ارجو ارفاق امثله عمليه لتكتمل الفائده انشاء الله ولك كل شكري وتقديري وان كانت الكلمات لا تقدم شىء مما تستحقه والى الامام | |
|
| |
| دورة متقدمة في البرمجة S7 | |
|