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

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

شاطر | 
 

 عقد لم أستطع حلها بال s7

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


عدد الرسائل : 6
العمر : 29
تاريخ التسجيل : 09/12/2010

مُساهمةموضوع: عقد لم أستطع حلها بال s7   الخميس 9 ديسمبر 2010 - 4:35

لقد بدأت بتعلم ال plc منذ 3 سنوات على moeller PLCs (easy-soft).l و وصلت لمرحلة لا بأس فيها .. ثم تعلمت ال logo smart relay ثم allen bradley ثم إلى النوع الماليزي delta و لم أجد صعوبة بالإنتقال من نوع لآخر .....
لكن عندما انتقلت إلى ال siemens s7-300 (لضرورات عملي ) شعرت أنني لا أفقه شيء بال PLC بسبب ال simatic manager فهو يقلب الكثير من المفاهيم بال plc (كإمكانية الوصل التسلسلي بعد المخارج ) و لكن بفضل الأستاذ plcman (الذي اوجه له جزيل الشكر ) بدأت اشق طريقي و بدأت أتعامل للمرة الأولى مع لغة ال stl التي هي أقرب ما يمكن للغلة ال assembly ..

لكن يبقى لدي بعض الأشياء الغامضة التي أود ان يجيبني عليها أحد من الأخوة الأفاضل في هذا المنتدى الرائع :
1- انا تعلمت ال Plc على لغة ال ladder و الآن بدآت اتعلم الترجمة من stl إلى ladder لكن هذا المقطع لم أفهمه و لا أدري إن كان بإمكاننا ترجمته لل ladder
CLR
= M 0.0
SET
= M 0.1

2 - ال s7-300 يقدم تسهيلات برمجية كبيرة و منها ال data block الذي لم استطع التعامل معه و فهمه .... ارجو رجاء كبير أن يشرحه أحد الأخوة و يشرح استخدامه بال ladder و ال stl ( فقد شعرت بالقشعريرة تسري ببدني عندما قرأت كلمة array بالdata block ) و لم أعرف التمييز بين نوعيه ... و لم استطع فهم برنامج كامل بسبب هذا المقطع البرمجي :
A DBX 236.5
JCN M004

ما هي ال DBX

3 - بال انواع ال PLCs الأخرى يوجد ما يسمى بال special markers أو flags التي تقوم بوظائف خاصة كأن تعمل لدورة مسح واحدة عند الإنتقال إلى وضع run او تعطي قطار نبضات ذو دور 0.5 sec أو أو أو ... لم أجد هذا الشيء بال s7-300 .... هل هي موجودة ؟ إذا لا ما البديل عنها ؟ إذا نعم هل يوجد دليل لها كلها و لعملها ؟


4 - ال coil الخاصة بال timers و ال counter مثل sp هل يمكن استخدامها بدون ال بلوك الكامل S_PULSE ?



ألـــــــــــــــــــــــــــف شـــــــــــــــــــــــكــــــــــــــــــــــــر مسبقاً


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


عدد الرسائل : 116
تاريخ التسجيل : 14/09/2009

مُساهمةموضوع: رد: عقد لم أستطع حلها بال s7   الخميس 9 ديسمبر 2010 - 9:16

اولا CLR----------->Used to set RLO to zero

ثانيا A DBX 236.5
JCN M004
-----> if data block(should be opened before) bit 5 in Byte 236 equal zero then jump to
label called M004

Third yes there are alot of special function like OB35,OB100,....... FC105,FC106,.......,SFC0,SFC1,............,FB81,FB85,...........................,you can check this

https://support.automation.siemens.com/WW/llisapi.dll?query=sfc0&func=cslib.cssearch&content=adsearch%2Fadsearch.aspx%3Ftab%3D2&lang=en&siteid=csius&objaction=cssearch&searchinprim=_searchinprim_&nodeid=99&x=16&y=8&cssearchengine=NEW
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
PLCMan
Admin


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

مُساهمةموضوع: رد: عقد لم أستطع حلها بال s7   الخميس 9 ديسمبر 2010 - 10:15


جزاكم الله خيرا أخي العزيز وخبيرنا الكبير SHERIEF MANDOR واسمح لي أن أضيف بعض التفاصيل التي فهمتها من كلام الزميل ديمتري

1- بالنسبة للمقطع المذكور والخاص بالأمرين SET,CLR فهذان الأمران لا مقابل لهما في Ladder أو FBD وإنما هما خاصان فقط بلغة STL
وكما أوضحنا في الدورة الأولى على الرابط http://hassanheha.forumn.org/montada-f1/topic-t20.htm فإن الأمر SET يقوم بتحويل قيمة RLO من الصفر إلى الواحد والأمر CLR يقوم بتحويل قيمة RLO من الواحد إلى الصفر وعند وجود علامة = أو Assign فإنها تقوم بنقل القيمة داخل RLO إلى العنوان بعدها مباشرة وهو تفصيل ما ذكره الزميل العزيز SHERIEF MANDOR

2- بالنسبة لبلوك البيانات Data block فهو تماما مثل أي Data base لو كنت قد تعاملت مع قواعد البيانات من قبل ولك أن تتخيل الآتي :
أنواع البيانات من حيث حجمها تأخذ أشكال في البرمجة عند سيمنس وهي كذلك في لغات البرمجة أيضا كالآتي :
- أصغر حجم وهو bit أي خانة واحدة فقط ويكون النوع هنا BOOL أي boolean أو ثنائي أي يحتمل 1 أو 0
- الحجم التالي هو ثمانية خانات أو بايت Byte وهي تمثل الحروف والأرقام في شكل أكواد مثلا ولكن من حيث الحجم فإن بايت تساوي 8 خانات bits
- الحجم التالي هو Word أو كلمة وهي تتكون من 16 خانة أو 2 بايت
- الحجم التالي وهو Double word أو DWord أو كلمة مضاعفة وحجمها 32 خانة أو 2 Word أو 4 بايت

ولكن ماذا يحدث عندما نريد أن نخلط بين أكثر من نوع مثلا بيانات شخص منها الاسم والسن والطول والوزن والنوع مثلا

فالاسم مجموعة من الحروف وبالتالي فهو مصفوفة من Bytes والعمر رقم صحيح ويكفي للتعبير عنه Word أو Byte والوزن والطول أرقام عشرية ذات كسور وتحتاج إلى حجم بيانات 32 خانة من النوع Real والنوع خانة واحدة لو كانت 1 مثلا يكون ذكر ولو كانت 0 يكون أنثى

فهذا ما نسميه تركيب أو Structure

فلدينا الآن بالإضافة إلى الأحجام المعتادة (Bit,Byte,Word,DWord) تركيبات أخرى من هذا الأنواع وهي المصفوفات Arrays والتركيبات Structure

ولا تقلق مطلقا من هذا ففي النهاية عندما تقوم بتعريف وتوصيف Data block فأنت تقوم بتنظيم البيانات حسب ما تريد أنت ولا تنزعج أبدا من وجود كلمة Array أو Structure فمجموعة البيانات التي تكتبها داخل بلوك البيانات هي في النهاية تركيبة خاصة بك وبالتالي فهي تكون Structure ولهذا سوف تجد كلمة Structure في أول بلوك البيانات وكذلك في نهايته للتعبير عن تركيبة البيانات التي قمت بعملها

ولو كان لديك مجموعة من البيانات ذات الوصف المشترك في كل شئ فيمكنك تكوين مصفوفة عند إنشاء البلوك للتيسير

وبرغم هذا فإن هذا لايؤثر على بناء بلوك البيانات مطلقا فهو في النهاية عبارة عن سلسلة من البيانات تبدأ بالعنوان DBX0.0 وتنتهي بآخر Bit تقوم باستخدامها

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

أما بخصوص سؤالك عن DBX فهي Bit ولدينا على مستوى بلوك البيانات أربعة طرق لاستدعاء وتوجيه البيانات كما سبق وأشرنا في حجم البيانات وهي

- الخانة bit وتستدعى باستخدام DBX
- بايت Byte وتستدعى باستخدام DBB
- Word وتستدعى باستخدام DBW
- Double word وتستدعى باستخدام DBD

فمثلا أول خانة في بلوك البيانات رقم 10 مثلا تستدعى DB10.DBX0.0
وهي ضمنيا أول خانة داخل Byte في الاستدعاء DB10.DBB0
وهي ضمنيا أول خانة داخل Word في الاستدعاء DB10.DBW0
وهي ضمنيا أول خانة داخل Double word في الاستدعاء DB10.DBD0


3- بالنسبة للسؤال الخاص بالنبضات فهذا ليس موجود بالشكل المباشر في سيمنس مثل غيره من الأنواع الأخرى لكن إنشاء هذا النبضات أمر يسير للغاية وهو ضمن الامثلة الدائمة في كل إصدارات سيمنس ودوراته وقد نفذنا هذا المثال في الدورات وهو لا يتجاوز خمسة أو ستة أسطر باستخدام STL وهو بسيط جدا ويعطي نفس الوظائف التي تتحدث عنها

4- بالنسبة لاستخدام Timers , Counters بشكل مفصل فقد تم توضيح هذا في الفيديو الأخير وقبل الأخير في دورة Step-7 على الرابط http://hassanheha.forumn.org/montada-f161/topic-t6151.htm وهو ممكن طبعا ولكن يتبع بالطبع Syntax الخاص بالبرمجة


وأنا بشكل شخصي عاينت الكثير من لغات البرمجة لكنني أجد متعة خاصة في البرمجة باستخدام STL الخاصة بسيمنس وكذلك LAD الخاص به والذي أجده أبسط كثيرا من نظرائه ولا يشترط أن يكون هذا عام ولكنني أقول هذا بشكل شخصي

وبالتوفيق دائما إن شاء الله وأكرر شكري الخالص للزميل العزيز الحبيب الذي يثرينا دائما بفيض علمه SHERIEF MANDOR


_________________


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


عدد الرسائل : 6
العمر : 29
تاريخ التسجيل : 09/12/2010

مُساهمةموضوع: رد: عقد لم أستطع حلها بال s7   الجمعة 10 ديسمبر 2010 - 12:11

Dear SHERIEF MANDOR : thanks alot for your activity... and i wanna thank you for that link cz it helped me a lot ... and due to it I can know each sfc and fc functions ....
استاذ ابو روان :
لك جزيل الشكر لتفاعلك مع الأسئلة المطروحة بسرعة لم أجدها في اي منتدى آخر، و و بدقة إجابة تنم عن الخبرة، و هذا ما يميز موقعكم، بارككم الله
عندي سؤالين حول ال DB
* هل تم شرحه بأي مكان في هذا المنتدى الكريم؟
* لو فرضنا أنه لدينا هذا ال Data Block الموضح بالصورة و البرنامج الموجود ضمن ال OB1




بالصورة الثانية ما المقصود بالعناوين ؟ أهي عناوين داخلية ضمن ال DB ? الرقم 1 بالصورة
ما المقصود بهذا الرمز عند العنوان ؟ الرقم 2 بالصورة
أيمكن اعتبار ال data block كمجموعة متحولات سيتم استعمالها بالبرنامج كلغات البرمجة العادية كال c عند التصريح عن المتحولات من الأنواع المختلفة ؟
عندما نريد استخدام ال DB يجب علينا ان نقوم بفتحه .... لكن بعد استخدامه هل يجب علينا إغلاقه ؟
في البرنامج الموضح بالصورة نرى أن تم استخدام ال DB94 بال network 5 دون أن نقوم بفتحه، لماذا ؟
ما الفرق التطبيقي بين ال Global (shared) DB و ال Instance DB ؟ و كيف يمكنني معرفة نوع DB موجود مسبقا؟
في ال DB الموضح بالصورة : هل ال array المعرفة هي مصفوفة أرقام ثابتة من الرقم -32768 لل -32209 ؟ إذا لا : ما المقصود بهذه الأرقام أهي قيم ابتدائية أم ماذا؟

سؤال أخير بنسخة ال simatic manager المنصبة على جهازي لا يوجد أي من ال sfc أهي النسخة غير كاملة ؟

أنا آسف على الإطالة لكنني أطمع بكرمكم و علمكم ...........

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


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

مُساهمةموضوع: رد: عقد لم أستطع حلها بال s7   الجمعة 10 ديسمبر 2010 - 13:30



الأخ العزيز ديمتري

مرحبا بك معنا وأهلا وسهلا بكل استفساراتك وكما أشرنا في أكثر من مكان فإن هذه الاستفسارات هي ما يفتح أمامنا الباب لنبحث ونتعلم أكثر وأكثر وكم من سؤال سأله زميل لنا ولم نكن نعلم بهذا الباب شيئا وكان سؤاله سبب في فتح باب كبير لنتعلم أشياء كثيرة لهذا لا تتردد أبدا في طرح أي سؤال وبالتأكيد سنجد إجابة لدى أي زميل إن شاء الله

لقد أشرنا إلى Data blocks ضمنيا في العديد من المواضيع ولكن لا بأس بأن نجعل له جزءا من الاهتمامات وهو يستحق ذلك وسوف أفصل له فيديو كامل إن شاء الله في الدورة الحالية التي نحن بصددها ووصلنا فيها تقريبا إلى الفيديو رقم-14 حتى تاريخ اليوم.


أما بخصوص استفساراتك

أولا : بخصوص العناوين داخل Data block

فقد قمنا بشرح هذا في الدورة الأولى على الرابط http://hassanheha.forumn.org/montada-f161/topic-t20-5.htm ضمنيا داخل عمليات العنونة
وكذلك في دورة Ladder على الرابط http://hassanheha.forumn.org/montada-f161/topic-t600-30.htm ضمنيا داخل عمليات العنونة
وكذلك في الدورة المرئية على الرابط http://hassanheha.forumn.org/montada-f161/topic-t6151-5.htm ضمنيا داخل الفيديو الخاص بالعنونة

وهذه العناوين هي خاصة بالبيانات التي يتم تخزينها داخل Data block والتي يتم التعامل بها في البرنامج فمثلا الرقم 0.0 المشار إليه في الصورة بالرقم 1 حسب الصورة التي أرفقتها



فهذا الرقم هو بداية Data block وكل شئ يأتي بعده وكل بيان لابد له من Address للتعامل معه

وكما أشرنا فالأمر هنا يرتبط بحجم تخزين وهو واحد من أربعة bit - byte - word - double word هذا بالنسبة للأنواع الأولية للبيانات elementary data types مثل integer , real ,bool , char , s5t أما الأنواع المركبة والتي تحتوي حجم بيانات أكثر من هذا فهي تتطلب أكثر من سطر في Data block

وتسمى Complex data types مثل التركيبات Structures عندما يكون هناك بيان مركب بأكثر من نوع من البيانات الأولية أما لو كانت البيانات ذات نوع واحد كأن تكون كلها Integer أو Real مثلا فيكون البيان المركب في شكل مصفوفة Array وحسب نظام العمل بأدوات Simatic manager فإنه يعطيك العنوان الحالي والعنوان القادم حيث العنوان القدام هو ما تشير إليه بالرقم 2

فبلوك البيانات مثل قواعد البيانات تماما في التعامل معها في كل لغات البرمجة غير أنك تستدعيه بعنوانه أو اسمه ولا مشكلة في ذلك مطلقا

وأنت بمجرد أن تذكر المتغير مثلا DB1.DBW12 فأنت لا تحتاج لفتح Data block أو غلقه ولكن إن أردت أن تستخدم صيغة مختصرة مثل DBW12 فقط دون أن تسبقها برقم البلوك DB1 فيجب عليك عندها فتح البلوك أولا بالأمر OPN DB1 أي افتح بلوك البيانات وفتح بلوك آخر يغلق البلوك الأول فلا يمكن وجود عدد 2 بلوك مفتوحان وهذا أيضا من أسس التعامل مع قواعد البيانات

بالنسبة لسؤالك عن الصورة الثانية



فبالفعل DB50 تم فتحه في أول البلوك وطالما لم يتم فتح بلوك آخر أو غلق البلوك فهو مفتوح ويمكن استعمال الصيغ المختصرة في التعامل مع بيانات DB50 مثل DBX236.5 والتي تعادل تماما DB50.DBX236.5 نظرا لأن البلوك مفتوح بالفعل


بخصوص Instant data block هو بلوك خاص مصاحب لدالة أخرى يمكنك القراءة منه والكتابة فيه للبيانات فقط Values ولكن لا تقوم أنت بإنشائه أو ضبطه وإنما تقوم الدالة المصاحبة FB بعمل ذلك وهو لا يختلف في شئ عن Data block العادي من حيث الشكل والبناء ولكنك لن تتمكن من تغييره أو الإضافة عليه بخلاف البلوك العادي والذي يمكنك تعديله والتغيير في بنائه الداخلي

أما بخصوص المصفوفة Array فالأرقام الموجودة هي مدى عناصر المجموعة أي أن عناصر المجموعة تتراوح بين الرقمين المذكورين والتي يمكن أن تكون سالبة كما في حالتنا تلك حيث أن الرقم الأول يعبر عن الحد الأدنى لرقم العناصروالرقم الثاني يمثل الحد الأقصى لرقم العناصر وبالتالي فهذه الأرقام هي فقط identifiers تمثل رقم العنصر داخل المصفوفة والتي يمكن أن تكون ذات ست أبعاد كأن تكون مثلا

Array[1..5,1..10,1..3,1..50,1..3,1..20]

فهذه المصفوفة ذات 6 أبعاد وعدد عناصرها 5×10×3×50×3×20

وبالتأكيد فهي إمكانيات هائلة للتعامل مع البيانات


بخصوص SFC هي موجودة ضمنيا وابحث داخل Library في العمود إلى الشمال داخل LAD/FBD/STL Editor وسوف تجده ولا يحتمل عدم وجوده أبدا

أتمنى أن أكون قد وفقت في الإجابة عن ما تريد وانتظر معنا إن شاء الله المزيد على منتدى الدورات التدريبية إن شاء الله وبالتوفيق دائما


_________________


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


عدد الرسائل : 6
العمر : 29
تاريخ التسجيل : 09/12/2010

مُساهمةموضوع: رد: عقد لم أستطع حلها بال s7   السبت 11 ديسمبر 2010 - 9:14

تعجز الكلمات عن الشكر يا أستاذ على هذا الاهتمام.........
انا في انتظار متابعة موضوع ال DATA BLOCKS في الدورة التدريبية Smile
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
 
عقد لم أستطع حلها بال s7
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

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