| العنونة غير المباشرة في سيمنس 300 (أجزاء) | |
|
|
كاتب الموضوع | رسالة |
---|
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: العنونة غير المباشرة في سيمنس 300 (أجزاء) الأربعاء 30 يناير 2019 - 11:09 | |
| زملاء كتير بيسألوا عن العنونة غير المباشرة في سيمنس باستخدام Pointer و Address Register ؟ أولا العنونة أو Addressing هي إعطاء مكان في الذاكر ل PLC نوع وبداية عنوان وطول للعنوان بشكل محدد والأنواع التي نتحدث عنها في العنونة الغير مباشرة تشمل المدخلات I والمخرجات Q والذاكرة العامة M والذاكرة المحلية L وبلوكات البيانات العامة DB وبلوكات البيانات المصاحبة DI ولكل منها قيمة تمثلها رقميا في الصيغة العامة لتمثيل العنوان يتم كتابتها في صورة بايت واحدة مثلا المدخلات تمثل بالقيمة B#16#81 والمخرجات تمثل بالقيمة B#16#82 والذاكرة العامة B#16#83 وبلوكات البيانات العامة B#16#84 والمصاحبة B#16#85 والذاكرة المحلية B#16#86 أما عنوان البداية فيكون مقسما إلى جزئين: الأول عنوان البايت التي يبدأ منها العنوان مثلا x الثاني عنوان الخانة bit التي يبدأ من عندها العنوان y فيأخذ عنوان البداية عادة الرمز x.y وإلى جانبه نوع البيانات يتم تمثيل عنوان الخانة bit بقيمة أول 3 خانات رقم 0،1،2 في Address register أو مؤشر العنوان حيث أقصى قيمة له هي7 ويتراوح بين 0 و 7 بينما عنوان بايت البداية يمثل بعدد 2 بايت هي التي تليها إذا طول مسجل العنوان هو 32 خانة مثله مثل Accumulator ويكون تمثيله على النحو التالي من اليمين: عنوان البت - عنوان البايت - نوع البيانات 3 خانات - 2 بايت - 1 بايت وهذه لو أردت التعامل معها بشكل غير مباشر يتم استعمال AR1,AR2 بالإضافة إلى المؤشرات Pointers تتشكل المؤشرات بنفس الصيغة يضاف إليها 2 بايت أخرى كحجم للنوع Pointer وتخصص لرقم بلوك البيانات فإن كان بلوك البيانات غير موجود يعني مثلا نوع البيانات M يكون في هذه المنطقة القيمة صفر وسنكمل إن شاء الله في عملية العنونة تاليا _________________ أبـوروان | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: العنونة غير المباشرة في سيمنس 300 (أجزاء) الجمعة 1 فبراير 2019 - 2:02 | |
| العنونة الغير مباشرة - الجزء الثاني ذكرنا في الجزء الأول طريقة تمثيل العنوان كقيمة والتي تتكون من 4 أجزاء بشكل عام وهي عنوان البايت وعنوان البت ونوع البيانات ورقم بلوك البيانات إن كان نوع البيانات بلوك بيانات وكي نتعامل مع العناوين بالشكل الغير مباشر سنحتاج إلى مسجل العناوين AR1,AR2 وسنحتاج إلى المؤشرات Pointers - أولا لتحميل عنوان ثابت إلى Accumulator1 L P#7.1 هذا معناه تحميل مؤشر للعنوان 7.1 إلى Accum1 فيكون عنوان البايت 7 وعنوان البت 1 أي البت رقم1 ونوع البيانات غير محدد ولا يوجد بلوك بيانات وهذا وحده غير كافي لنقل العنوان فننقل العنوان إلى مسجل العنوان كخطوة ثانية باستخدام الأمر Load على النحو التالي LAR1 فيتم بهذا تمرير العنوان إلى AR1 ولتمرير عنوان ثابت مثل هذا العنوان إلى متغير يجب تحديد نوعه في الأمر المستخدم مثلا لو أردنا استخدامه مع متغير منطقة في جملة AND يكون على الشكل التالي: A I [AR1, P#0.1] هنا يتم عمل AND للدخل الرقمي بنفس العنوان الموجود في AR1 مضافا إليه الفرق الموجود في المؤشر بعد الفصلة فيصبح I 7.2 ولو أردنا استخدام بايت يجب أن يكون كما يلي: L IB [AR1, P#2.0] هنا يتم تحميل بايت دخول بنفس رقم البايت في AR1 ويضاف إليه الفرق ويجب أن يكون الفرق الخاص بالبت صفر وهذا الأمر معناه تماما L IB9 ولو كانت Word أو Dword يكون نفس الكلام L IW[AR1, P#8.0] L MD[AR1, P#20.0] هذا إذا تم أخذ العنوان من ثبات مؤشر. نكمل في بوست قادم إن شاء الله ويرجى التعليق في نفس الموضوع _________________ أبـوروان | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: العنونة غير المباشرة في سيمنس 300 (أجزاء) الجمعة 1 فبراير 2019 - 2:38 | |
| لمتابعي موضوع العنونة الغير مباشرة مطلوب تفسير للتعليمات الاتية:
L p#2.1 LAR1 A M10.1 A M[AR1, p#0.3] = Q [AR1, p#10.2] OPN DB10 L DBW[AR1, p#0.0] L MW[AR1, p#40.0] +I T DBW[AR1, p#10.0 ] _________________ أبـوروان | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: العنونة غير المباشرة في سيمنس 300 (أجزاء) الجمعة 1 فبراير 2019 - 12:53 | |
| Hassan Shahat ---------------------------- L p#2.1 // Load 2 as byte address and 1 as bit address LAR1 // Load these to address register-1 A M10.1 // A M10.1 A M[AR1, p#0.3] // A M2.4 = Q [AR1, p#10.2] // = Q 12.3 OPN DB10 // Open data block DB10 L DBW[AR1, p#0.0] // L DB10.DBW2 L MW[AR1, p#40.0] // L MW42 +I // +I T DBW[AR1, p#10.0] // T DB10.DBW12 ------------------------------ _________________ أبـوروان | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: العنونة غير المباشرة في سيمنس 300 (أجزاء) الجمعة 1 فبراير 2019 - 12:59 | |
| - السطر الأول حمل القيمة 2 في عنوان البايت و1 في عنوان البت - السطر الثاني انقل هذه القيم السابقة إلى AR1 - السطر الثالث اعمل AND للذاكرة M10.1 - السطر الرابع اعمل AND للذاكرة بالعنوان في AR1 وهو 2.1 مع إضافة 3 إلى عنوان البت ليصبح M2.4 - السطر الخامس أخرج النتيجة على المخرج Q بالعنوان في AR1 وهو 2.1 مضاف إليه الفرق 10.2 ليصبح Q12.3 - السطر السادس افتح بلوك البيانات رقم 10 - السطر السابع حمل وورد من بلوك البيانات بالعنوان في AR1 تماما DB10.DBW2 - السطر الثامن حمل وورد من الذاكرة بالعنوان في AR1 مضافا إليها الفرق 40 لتصبح MW42 - السطر التاسع اجمع الرقمين كأرقام صحيحة - السطر العاشر ضع النتيجة في بلوك البيانات المفتوح في وورد بالعنوان في AR1 مضافا إليها الفرق 10 لتصبح DB10.DBW12
_________________ أبـوروان | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: العنونة غير المباشرة في سيمنس 300 (أجزاء) السبت 2 فبراير 2019 - 1:47 | |
| استكمال العنونة الغير مباشرة - الجزء الثالث في المرة السابقة تعاملنا مع قيمة ثابتة في صيغة مؤشر واليوم نكمل بتمرير عنوان إلى عنوان آخر عن طريق المؤشر Pointer ومسجل العنوان AR مثلا نستخدم عنوان من data block
L P#DB10.DBX2.0 هذا المؤشر على هذه الصورة يعني تحميل رقم بلوك بيانات 10 في مسجل بلوك البيانات ونوع بيانات DB و رقم بايت 2 ورقم بت 0 في Accumulator-1 لو أردنا استخدام هذا العنوان علينا أولا أن ننقله إلى واحد من AR مثلا AR1 LAR1 هكذا أصبح داخل AR1 ما يشير إلى نوع البيانات وهو DB وعنوان البايت 2 وعنوان البت 0 فإن أردنا أن نستخدم نفس نوع البيانات بحجم بايت أو وورد أو Dword فما علينا إلا استخدام الأمر Load كما يلي: L B[AR1, P#2.0] // Load DBB4 L W[AR1, P#6.0] // Load DBW8 L D[AR1, P#8.0] // Load DBD10 هذا في نفس بلوك البيانات حيث لم يتم تغيير رقم البلوك فإن أردنا تغيير رقم بلوك البيانات ما علينا إلا فتح البلوك الجدد مثلا OPN DB20 L B[AR1, P#2.0] // Load DBB4 L W[AR1, P#6.0] // Load DBW8 L D[AR1, P#8.0] // Load DBD10 فتصبح الجمل الثلاث رغم تطابقها في الكتابة إلا أنها تتعامل مع DB20 لنفس العناوين الأولى والتي كانت في DB10 ولو أردنا تغيير نوع البيانات ما علينا إلى أن نسبق الرمز بنوع البيانات مثلا L IB[AR1, P#0.0] // Load IB 2 L MW[AR1, P#40.0] // Load MW 42 L LD[AR1, P#4.0] // Load LD6
_________________ أبـوروان | |
|
| |
metwally.mustafa فريق أول
عدد الرسائل : 4226 العمر : 38 الموقع : Egypt العمل/الترفيه : automation engineer تاريخ التسجيل : 12/01/2009
| موضوع: رد: العنونة غير المباشرة في سيمنس 300 (أجزاء) الجمعة 15 فبراير 2019 - 9:07 | |
| جزاكم الله خيرا _________________ I am so far behind, I think i am first
| |
|
| |
boucettamh15 جندي
عدد الرسائل : 2 العمر : 32 تاريخ التسجيل : 11/11/2018
| موضوع: رد: العنونة غير المباشرة في سيمنس 300 (أجزاء) الخميس 26 أغسطس 2021 - 12:04 | |
| | |
|
| |
| العنونة غير المباشرة في سيمنس 300 (أجزاء) | |
|