منتدى التحكم الآلي والإلكترونيات
مرحبا بك عزيزي الزائر يشرفنا أن تقوم بالدخول إذا كنت من الأعضاء أو التسجيل إذا كنت زائرا ويمكنك إنشاء حسابك ببساطة ويمكنك التفعيل عن طريق البريد أو الانتظار قليلا حتى تقوم الإدارة بالتفعيل
منتدى التحكم الآلي والإلكترونيات

Automatic control , PLC , Electronics , HMI , Machine technology development , Arabic & Islamic topics , Management studies and more
 
الرئيسيةالبوابة*مكتبة الصوراليوميةس .و .جبحـثالتسجيلالأعضاءالمجموعاتدخول

شاطر | 
 

 دورة متقدمة في البرمجة S7

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
انتقل الى الصفحة : الصفحة السابقة  1, 2, 3 ... 10 ... 18  الصفحة التالية
كاتب الموضوعرسالة
PLCMan
Admin
avatar

عدد الرسائل : 12315
العمر : 48
العمل/الترفيه : Maintenance manager
تاريخ التسجيل : 02/03/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الخميس 5 مارس 2009 - 12:44

الأخوة الأعزاء

كما فعلنا مع اختيار analoge input voltage نقوم بفعل هذا مع بقية الأنواع ونمثل لذلك كالآتي :

مثلا اختيار نوع الدخول سواء كان مللي أمبير أو مقاومة مطلقة أو مقاومة تتأثر بالحرارة أو ازدواج حراري كالآتي :

- اختيارالنوع مللي أمبير



- اختيار range القياس المتفرع عن مللي أمبير



- وضع المفتاح الخلفي في الموديول المناسب وكذلك عملية التخلص من الشوشرة



- اختيار النوع مقاومة



- اختيار منطقة القياس المناسبة range



- ضبط وضع المفتاح الخلفي المناسب والشوشرة



- اختيار النوع RTD



- اختيار منطقة القياس المناسبة range



- ضبط وضع المفتاح الخلفي المناسب والتخلص من الشوشرة



- اختيار نوع القياس ازدواج حراري TC



- اختيار نوع الثرموكبل المناسب حسب نوع الحساس



- ضبط وضع المفتاح الخلفي والتخلص من الشوشرة



والآن نقول أننا وبحمد الله قد انتهينا من استعراض كل أنواع المدخلات التماثلية وكل ما يلزمنا للتعامل معها وسنبدأ بعد ذلك إن شاء الله في التعامل مع البيانات داخل البرنامج وإذا كان هناك اي شئ غير واضح ((((((( فيما قلناه )))))))) فسوف نتلقاه منكم للإجابة عليه والتوضيح خلال يومين إن شاء الله قبل أن نمر إلى المرحلة التالية إن شاء الله

_________________


أبـوروان
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
m_elshatr
رقيب أول
رقيب أول
avatar

عدد الرسائل : 34
العمل/الترفيه : Electrical power and Automation Engineer
تاريخ التسجيل : 26/10/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الجمعة 6 مارس 2009 - 7:21

بارك الله فيك استاذى على هذا المجهود

وجزاك الله كل خير
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
RAMA
رائد
رائد


عدد الرسائل : 276
العمر : 47
الموقع : almadinah almnora
العمل/الترفيه : PLC PROGRAMMER
تاريخ التسجيل : 25/06/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الجمعة 6 مارس 2009 - 7:39

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


عدد الرسائل : 8
تاريخ التسجيل : 13/02/2009

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الجمعة 6 مارس 2009 - 12:13

السلام عليكم و رحمة الله

جزاك الله خيراً أخي العزيز علي هذا المجهود الرائع أعانك الله علي إستكمال هذا الشرح المتكامل .

محمد عبدالقوي
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
GALALSAIF
عريف
عريف
avatar

عدد الرسائل : 14
تاريخ التسجيل : 30/06/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   السبت 7 مارس 2009 - 3:51

[center]الله يفتح عليك يا باشمهندس حسن
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
PLCMan
Admin
avatar

عدد الرسائل : 12315
العمر : 48
العمل/الترفيه : 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 أما القيمة فهي رقم صحيح يناظر القيمة الفعلية بحسب الجداول التي استعرضناها من قبل

_________________


أبـوروان
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
m_elshatr
رقيب أول
رقيب أول
avatar

عدد الرسائل : 34
العمل/الترفيه : Electrical power and Automation Engineer
تاريخ التسجيل : 26/10/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الإثنين 9 مارس 2009 - 17:59

بارك الله فيك استاذى على هذا المجهود

وجزاك الله كل خير
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
PLCMan
Admin
avatar

عدد الرسائل : 12315
العمر : 48
العمل/الترفيه : Maintenance manager
تاريخ التسجيل : 02/03/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الأربعاء 11 مارس 2009 - 15:44

الأخوة الاعزاء

سوف ننتقل إن شاء الله في المرة القادمة إلى باب آخر سوف نربطه بما درسنا سابقا وأظن أنه يمكننا الآن التعامل مع المدخلات والمخرجات التماثلية بشكل أبسط ولابد أن نضع في حساباتنا أنها مجرد وسيلة لإدخال وإخراج البيانات فقط وليس هدفنا فقط هو المدخلات والمخرجات التماثلية وإنما هي وسيلة لتوصيلها إلى نظام التحكم ( برنامج PLC ) ووسيلة لتوصيل النتيجة إلى ما يقوم بالتنفيذ Actuators

لهذا سوف نبدأ معا المرة القادمة في منظومة PID الداخلية والتي يمكن استخدامها بأشكال عديدة ولها طريقة محددة لابد من اتباعها لضمان حسن الأداء وسوف نتعرف على هذا إن شاء الله في المرات القادمة وقريبا جدا إن شاء الله وإن كان هناك أي استفسار بخصوص Analoge inputs/Outputs فيسعدنا تلقيه قبل الدخول في الموضوعات الأكبر لأننا سنتعامل مستقبلا مع المدخلات والمخرجات التماثلية في صورتين فقط وهما العنوان Address والقيمة سواء المقروءة أو المخرجة بافتراض أن من يكمل معنا قد ألم بما تعرضنا له معا في الصفحات السابقة

جزاكم الله خيرا وإلى لقاء قريب جدا إن شاء الله

_________________


أبـوروان
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
PLCMan
Admin
avatar

عدد الرسائل : 12315
العمر : 48
العمل/الترفيه : 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 فلا يجب أن نعتمد بأي شكل من الأشكال على زمن دورة تنفيذ البرنامج وسوف نوضح فيما هو آت كيفية تنفيذ هذا إن شاء الله

هذه مقدمة بسيطة كان لابد منها قبل أن نتعرض للمنظومة الخاصة بشركة سيمنس

_________________


أبـوروان
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
m_elshatr
رقيب أول
رقيب أول
avatar

عدد الرسائل : 34
العمل/الترفيه : Electrical power and Automation Engineer
تاريخ التسجيل : 26/10/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الجمعة 13 مارس 2009 - 13:25

جزاك الله كل خير استاذى على هذا المجهود الوفير

والى الامام دائما
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
PLCMan
Admin
avatar

عدد الرسائل : 12315
العمر : 48
العمل/الترفيه : 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

وسوف نوالي المرة القادمة إن شاء الله تفاصيل بيانات الدخول والخروج الموضحة بالصورة

_________________


أبـوروان
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
m_elshatr
رقيب أول
رقيب أول
avatar

عدد الرسائل : 34
العمل/الترفيه : Electrical power and Automation Engineer
تاريخ التسجيل : 26/10/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الثلاثاء 17 مارس 2009 - 17:46

جزاك الله خيرا استاذى

واعانك الله على اكمال هذه الدورة
ونحن مقدرين المجهود الذى تبذله

وان شاء الله جعله فى ميزان حسناتك
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
m_elshatr
رقيب أول
رقيب أول
avatar

عدد الرسائل : 34
العمل/الترفيه : Electrical power and Automation Engineer
تاريخ التسجيل : 26/10/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الثلاثاء 17 مارس 2009 - 17:54

بس كان عندى سؤال يابشمهندس هو انا مش ممكن اعدل فى االداتا بلوك بتاع الدالة
ديه
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
PLCMan
Admin
avatar

عدد الرسائل : 12315
العمر : 48
العمل/الترفيه : Maintenance manager
تاريخ التسجيل : 02/03/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الثلاثاء 17 مارس 2009 - 18:16

لا أفهم ما المقصود بالتعديل !!

إذا كان المقصود التعديل في بناء البلوك أي ترتيب ونوع البيانات فهذا غير ممكن

وإذا كان المقصود تغيير القيم فهذا أمر طبيعي فيمكنك خلال البرنامج عمل Transfer للبيانات إلى الداتا بلوك

عموما سوف يأتي الكلام عن الداتا بلوك حالا إنما مازلنا نتعرف على الدالة FB41 ونعرف إمكانياتها وسوف نتكلم عن كل شئ بالتفصيل إن شاء الله

وربما تجد في الشرح التالي إجابة عن كل ما يدور في بالك وإن لم تجد الإجابة فيسعدنا أن نتلقى استفساراتك وندعو الله أن نستطيع الإجابة عليها بشكل مقنع

وجزاكم الله خيرا على حرصكم ومتابعتكم الطيبة والدقيقة


_________________


أبـوروان
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
m_elshatr
رقيب أول
رقيب أول
avatar

عدد الرسائل : 34
العمل/الترفيه : Electrical power and Automation Engineer
تاريخ التسجيل : 26/10/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الثلاثاء 17 مارس 2009 - 18:34

حسنا استاذى انى فى انتظار التوضيح لعمل هذه الدالة
ووفقك الله


وجزاك الله كل خير على سرعة الرد
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
PLCMan
Admin
avatar

عدد الرسائل : 12315
العمر : 48
العمل/الترفيه : 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 يتم معالجتها بعد ذلك داخل البرنامج

_________________


أبـوروان
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
denger741
نقيب
نقيب
avatar

عدد الرسائل : 198
تاريخ التسجيل : 02/09/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الأربعاء 25 مارس 2009 - 14:09

يعطيك العافيه استاذي
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
PLCMan
Admin
avatar

عدد الرسائل : 12315
العمر : 48
العمل/الترفيه : 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



وهو يمثل قيمة مضافة إلى القيمة المعالجة وسوف نذكر مثالا إن شاء الله بعد الانتهاء نوضح فيه كيفية استخداه







_________________


أبـوروان
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
ابو هبة
عريف
عريف


عدد الرسائل : 13
العمر : 45
الموقع : مصر
تاريخ التسجيل : 25/03/2009

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الأربعاء 25 مارس 2009 - 16:03

شرح ممتاز وجميل جدا
اسال الله العظيم رب العرش العظيم ان يجعل هذاء العمل فى ميزان حسناتك
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
m_elshatr
رقيب أول
رقيب أول
avatar

عدد الرسائل : 34
العمل/الترفيه : Electrical power and Automation Engineer
تاريخ التسجيل : 26/10/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الجمعة 27 مارس 2009 - 5:28

السلام عليكم استاذى
اولا جزاك الله كل خير على هذا المجهود
وهذا الشرح الوافى
اسال الله بان يبارك لك وفيك وفى كل من تعرفه واثابك الفردوس الاعلى

امين يارب العالمين
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
denger741
نقيب
نقيب
avatar

عدد الرسائل : 198
تاريخ التسجيل : 02/09/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الإثنين 30 مارس 2009 - 14:00

اخي ابوروان يمكن توضيح....
اين توضع الارقام التي تكون مماثله لدخل التماثلي في البرنامج
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
PLCMan
Admin
avatar

عدد الرسائل : 12315
العمر : 48
العمل/الترفيه : Maintenance manager
تاريخ التسجيل : 02/03/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الإثنين 30 مارس 2009 - 14:21

denger741 كتب:
اخي ابوروان يمكن توضيح....
اين توضع الارقام التي تكون مماثله لدخل التماثلي في البرنامج

الأخ العزيز

جميع البيانات يتم نقلها إلى Data block باستعمال الأمر Transfer ماعدا المدخلات الطرفية المباشرة PIW , PQW حيث يتم كتابة Address مباشرة في المكان المخصص لذلك على بلوك الدالة


_________________


أبـوروان
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
PLCMan
Admin
avatar

عدد الرسائل : 12315
العمر : 48
العمل/الترفيه : 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 ومنظومة Differential

6- LMN_I


هذه القيمة في صورة عشرية وتمثل معالجة منظومة Integral للخطأ بين قيمة الضبط والقيمة الفعلية قبل عملية الجمع مع المعالجات الأخرى من منظومات Proportional ومنظومة Differential

7- LMN_D


هذه القيمة في صورة عشرية وتمثل معالجة منظومة Differential للخطأ بين قيمة الضبط والقيمة الفعلية قبل عملية الجمع مع المعالجات الأخرى من منظومات Proportional ومنظومة Integral

8- PV


وهو من النوع العشري ويمثل القيمة الفعلية


9- ER


وهو من النوع العشري ويمثل الخطأ بين قيمة الضبط والقيمة الفعلية

_________________


أبـوروان
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
denger741
نقيب
نقيب
avatar

عدد الرسائل : 198
تاريخ التسجيل : 02/09/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الإثنين 30 مارس 2009 - 14:58

اخي ابوروان يعطيك الف عافيه....
اقصد الرقم 27468 يكون مماثل لدخل 10v ..الدرس الاول الذي قمت بشرحه سابقا
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
RAMA
رائد
رائد


عدد الرسائل : 276
العمر : 47
الموقع : almadinah almnora
العمل/الترفيه : PLC PROGRAMMER
تاريخ التسجيل : 25/06/2008

مُساهمةموضوع: رد: دورة متقدمة في البرمجة S7   الثلاثاء 31 مارس 2009 - 8:42

MR PLCMAN
يعطيك العافيه
لقد كنت معك خطوه بخطوه في موضوع PID
لانه كانت تنقصني المعلومات في هذا المجال ولقد استفدت لغايه الان الشي الكثير
ارجو ارفاق امثله عمليه لتكتمل الفائده انشاء الله
ولك كل شكري وتقديري وان كانت الكلمات لا تقدم شىء مما تستحقه
والى الامام
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
 
دورة متقدمة في البرمجة S7
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 2 من اصل 18انتقل الى الصفحة : الصفحة السابقة  1, 2, 3 ... 10 ... 18  الصفحة التالية

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى التحكم الآلي والإلكترونيات :: منتديات الحاكمات المنطقية PLC :: منتدى الدورات التدريبية PLC-
انتقل الى: