دورة تدريبية في المبرمجات المنطقية طراز Siemens S7

صفحة 1 من اصل 5 1, 2, 3, 4, 5  التالي

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل

هل تشعر أنه يمكن أن نلحق بمن سبقنا في مجال التحكم الآلي ؟

60% 60% 
[ 3 ]
40% 40% 
[ 2 ]
0% 0% 
[ 0 ]
0% 0% 
[ 0 ]
 
مجموع عدد الأصوات : 5

دورة تدريبية في المبرمجات المنطقية طراز Siemens S7

مُساهمة من طرف PLCMan في الثلاثاء 4 مارس 2008 - 16:50

سوف نبدأ إن شاء الله دورة تدريبية في المبرمجات المنطقية طراز Siemens S7 300,400



أولا : لابد أن يكون للمتدرب معرفة بأسس الدوائر الكهربية ومصطلحاتها
ثانيا : لابد أن يكون عند المتدرب فكرة ولو بسيطة عن نظم الترقيم - العشري , الثنائي , السداسي عشري , ...
ثالثا : لابد أن يكون لدى المتدرب معرفة ولو بنسبة بسيطة عن اللغة الانجليزية
رابعا : أن يكون لدى المتدرب معرفة ولو بسيطة بالحاسب الآلي ومصطلحاته
خامسا : يفضل أن يكون لدى المتدرب معرفة سابقة بنظم التحكم العادية باستخدام الدوائر الكهربية المعتادة
سادسا : لابد أن يكون لدى المتدرب الرغبة والعزيمة في التغلب على أي نقص أو قصور في الجوانب والمتطلبات السابق ذكرها ووجود هدف واضح من حضور هذه الدورة

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

ونتمنى من الله التوفيق والاستمرار ولكم مني خالص التحية

م/ حسن الشحات hassanheha@yahoo.com


عدل سابقا من قبل PLCMan في الجمعة 27 يونيو 2008 - 0:11 عدل 3 مرات

PLCMan
Admin

عدد المساهمات : 319
سجّل في : 02 مارس 2008
العمر : 39

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الدرس رقم - 1

مُساهمة من طرف PLCMan في الثلاثاء 4 مارس 2008 - 17:17

مقدمة
سوف ينقسم موضوع الدورة إلى التعريف ب Hardware وكذلك بيئة العمل أو برنامج التشغيل Simatic manager وبعد ذلك البرمجة باستخام Simatic S7 PLC

بيئة العمل Simatic manager
يوجد اصدارات من شركة سيمنس لبرنامج التشغيل Simatic s7 آخرها حاليا هو V5.4 والذي نزل معه كثير من التحديث آخرها من على موقع سيمنس هو SP3 وبرامج كلها تحتاج إلى رخصة License يمكن مراسلتي للمساعدة في ذلك عن طريق البريد الإلكتروني hassanheha@yahoo.com

وبرنامج Simatic manager مثل كل تطبيقات الويندوز سوف تجد فيه وظائف الملفات المعتادة مثل :
Open , new , close , save , save as , delete , print , ....

كذلك سوف تجد أوامر خاصة بنظام سيمنس مثل :
Upload station , download , debug , Cross reference , new project , open project , .....

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

هذا الأمر عموما لن يأخذ الكثير للتعرف عليه إذا قمت بتنزيل البرنامج على جهازك

إذا رغب الزملاء في تفصيل أكثر عن برنامج Simatic manager برجاء الرد لتوضيح ذلك وسوف أرفق ملف يشرح بالتفصيل والصور ولكن باللغة الانجليزية جميع ما يتعلق ببرنامج Simatic manager

حمل ملف شرح البرنامج من هنا

PLCMan
Admin

عدد المساهمات : 319
سجّل في : 02 مارس 2008
العمر : 39

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الدرس رقم - 2

مُساهمة من طرف PLCMan في الخميس 6 مارس 2008 - 18:49

بعد أن تعرضنا سريعا إلى مكونات منظومة PLC نحيط علم الأخوة الزملاء إلى أنه قد تم وضع لينك لبرنامج Siemens simatic step 7 V5.4 SP3 على المنتدى للتحميل ومعاينة الأحداث أولا بأول كذلك تم وضع لينك لرخصة سيمنس ومع الملف ملفات لشرح كيفية تنزيل الرخصة بالتفصيل

بعد تحميل البرنامج Siemens simatic step 7 V5.4 SP3 يتم استعمال برنامج winrar للفك والتشغيل مع ملاحظة أن البرنامج موجود على عدد 2 فولدر CD-1 , CD-2 يتم تثبيت البرنامج من CD-1 بالضغط على ملف setup ثم بعد ذلك المتابعة حتى نصل إلى شاشة طلب الرخصة فقم باختيار skip أي تجاوز هذا الآن مع التحميل بعد ذلك ثم قم بعد ذلك بالمواصلة حتى ينتهي

أما عن برنامج الرخصة فقم بتشغيل البرنامج دون فكه وسوف يفتح برنامج winrar يوجد ملف اسمه winimage اضغط عليه وسوف يقوم بتحميل برنامج winimage وأكمل معه كذلك وشغل البرنامج free وليس هناك مشكلة وبعد انتهاء البرنامج من التحميل سوف تجد ملف يحمل أيقونة عليها شكل winimage وهي ملف الرخصة اضغط على هذا الملف سوف يفتح

اذهب إلى القائمة واختار image ثم extract واختر الاختيار الأخير مع اختيار partition D لا تختر partition c ثم OK

PLCMan
Admin

عدد المساهمات : 319
سجّل في : 02 مارس 2008
العمر : 39

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الدرس رقم - 3

مُساهمة من طرف PLCMan في السبت 8 مارس 2008 - 19:51

السلام عليكم ورحمة الله و بركاته
اليوم سوف نبدأ فعليا في كيفية عمل برنامج بواسطة Simatic s7
من المفروض بعد أن قمنا بتنزيل البرنامج أن يكون لدينا الآن وسيط التعامل مع PLC كذلك لدينا ما يمكن أن ننفذ فيه البرنامج الذي سوف نكتبه

والآن نبدأ في كيفية إنشاء أول مشروع لنا ولنجعل هذا المشروع مع النوع S7-300
- أولا نقوم بتحديد عدد Inputs/Outputs التي سوف نستخدمها ونوعها بالتحديد لنفترض أن النظام الذي لدينا به 40 دخل - Input - وعدد 20 خرج - Outputs
- بناء على ذلك سوف نقوم بتحديد المكونات اللازمة كالآتي :
* مصدر جهد كهربي طراز Siemens - 5A
* وحدة CPU S7-314
* عدد 3 موديول دخل 16 طرف Digital input module 16 input 24 VDC
* عدد 2 موديول خرج 16 طرف Digital output module 16 output 24VDC/0.5A
* راك Rail لتثبيت المكونات عليه

نقوم بفتح البرنامج ونختار من قائمة file --> new project



ندخل اسم المشروع الجديد وليكن example1
سوف يقوم البرنامج بفتح مشروع جديد بالاسم example1 ويفتح نافذة للمشروع وتكون جميع بياناته خالية



من قائمة insert اختر station ثم اختر s7-300 plc



سوف يظهر تحت اسم المشروع سطر آخر يمثل منظومة PLC S7-300



اضغط عليه مرتين سوف يظهر في النافذة المجاورة Hardware configuration وهو الذي سوف نستعمله لإدخال بيانات مكونات النظام التي اخترناها من قبل



اضغط على Hardware configuation سوف يفتح نافذة جديدة بها مكان لإدخال المكونات



أول شئ من قائمة insert



نختار Rail سوف يفتح نافذة تمثل Rail بها 11 مكان



وبعد ذلك ندخل المكونات المكان رقم-1 محجوز لمصدر الجهد Power supply نقف عليه وبزر الماوس اليمين تظهر قائمة نختار insert سوف يفتح قائمة للاختيار بها كل أنواع مصادر الجهد الممكن استعمالها من انتاج سيمنس



نقف على المكان رقم 2 وهو المحجوز لوحدة CPU ونضغط ماوس يمين ونختار insert تفتح قائمة اختيار تشمل كل أنواع CPU الممكن استعمالها نختار منها CPU S7-300 ثم أي CPU 314 هناك أرقام موديلات خاصة بسيمنس تظهر مع كل وحدة منها مثلا 6ES7 314-1AE04-0AA0 سوف نركز الآن على الأرقام الثلاثة على يمين 6ES7 هنا هي 314 فإذا كان الرقم المئات 3 فهو يمثل S7-300 وإذا كان رقم العشرات صفر 0 كان يمثل مصدر جهد وإذا كان رقم العشرات 1 فهو يمثل CPU وإذا كان رقم العشرات 2 فهو يمثل موديول رقمي دخول أو خروج وإذا كان رقم العشرات 3 فهو يمثل موديول تناظري Analog دخول أو خروج أما رقم الآحاد فهو خاص بكل نوع أما الأرقام الخمسة التالية فلها علاقة برقم الإصدار وجهد التشغيل والمواصفات الفنية الأخرى للجزء لن نهتم بها الآن



بعد أن أدخلنا رقم CPU في الخانة رقم 2 نترك الخانة رقم 3 خالية حيث أنها محجوزة لوحدات التوصيل بين أكثر من راك عند الحاجة إلى ذلك ونبدأ من رقم 4 ماوس يمين ثم insert ونختار SM300 و هو يشمل جميع وحدات الإدخال والإخراج ومنها نختار Digital input module ثم نختار الموديول المطلوب Digital input module sm321 16/24VDC





ثم نكمل بنفس الطريقة إلى أن ننتهي من جميع المكونات مع ملاحظة أنه في الأجزاء المتماثلة يمكن استعمال Copy/past كذلك يجب ملاحظة وجود نافذة أسفل الشاشة يظهر فيها نفس المكونات التي نختارها مع وجود تفاصيل عليها نهتم منها الآن بخانة Address ونقوم بتسجيل Addresses التي تظهر لكل من المكونات



بعد الانتهاء نغلق النافذة وهكذا نكون قد أدخلنا المكونات إلى البرنامج

في انتظار التعليقات قبل الخطوات القادمة

إلى اللقاء - السلام عليكم ورحمة الله وبركاته

PLCMan
Admin

عدد المساهمات : 319
سجّل في : 02 مارس 2008
العمر : 39

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الدرس رقم -4 Block types

مُساهمة من طرف PLCMan في الإثنين 17 مارس 2008 - 1:03

لابد أن نعرف أن كل ما نريد تنفيذه من برامج أو تعليمات أو بيانات تكتب داخل ما يسمى Blocks
ولها أنواع عديدة في Simatic S7 كالآتي :
Organization blocks OB
Function blocks FB
Functions FC
Data blocks DB
System function SFC
System function blocks SFB
وسوف نتعرض في هذا الدرس بشرح كل نوع على حده

OB-Organization block
وهو بكل بساطة يمثل الوسيط بين CPU و البرنامج ولا يتم تنفيذ أي تعليمات أو برنامج مالم تكن متضمنة بشكل ما في أي OB والبلوك الأساسي الذي يشمل البرنامج هو OB1 وهو يشمل ما يتم تنفيذه كل دورة من دورات تنفيذ البرنامج حيث يتم تنفيذ البرنامج بشكل متسلسل أولا بأول ثم يعاد التنفيذ بعد ذلك ووقت تنفيذ دورة كاملة للبرنامج يطلق عليه one cycle time

وهناك بلوكات خاصة بالقطع المفاجئ للتسلسل بشكل دوري Real time interrupts وهي أيضا من فصيلة OB ويكون عددها بحسب نوع CPU المستعملة وهي من OB31 وحتى OB40

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

والآن لنبدأ بشكل بسيط إنشاء أول برنامج باستعمال OB1 فقط بعد أن أنشأنا المكونات Hardware config في الدرس السابق :
أولا نفتح Project الذي تم انشاؤه ثم ندخل بالضغط على + مرة واحدة حتى نصل إلى blocks ويظهر معنا الشكل التالي :


وعند الضغط مرتين على OB1 تظهر الشاشة التالية وهي تبين بيانات OB1 نضغط OK فتفتح شاشة الكتابة داخل OB1

PLCMan
Admin

عدد المساهمات : 319
سجّل في : 02 مارس 2008
العمر : 39

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الدورة لم تتوقف ولكن نحن في انتظار تجاوب الأعضاء

مُساهمة من طرف PLCMan في الأحد 30 مارس 2008 - 22:07

study study Sleep Sleep study study

PLCMan
Admin

عدد المساهمات : 319
سجّل في : 02 مارس 2008
العمر : 39

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الدرس رقم - 5

مُساهمة من طرف PLCMan في الإثنين 7 أبريل 2008 - 21:38

والآن سوف نبدأ بالتعرض لمكونات البرنامج وكيفية عمل البرنامج :

أولا أنواع المتغيرات :
عند التعامل مع أي نوع من أنواع البرمجة لابد أن نضع في حسابنا أنواع البيانات التي نجري عليها العمليات فمثلا العمليات الحسابية البسيطة هناك الأرقام التي نجري عليها عمليات الجمع والطرح والضرب والقسمة ولهذا وجب علينا أن نبين أن أنواع الأرقام هي حقيقية وصحيحة وكسرية وكذلك تخيلية وهكذا حتى يكون طرفي المعادلة متساويين تماما في الكم والتمييز
كذلك فعند التعامل مع برنامج PLC فلابد أن تكون العمليات على نوع واحد من البيانات وهناك أنواع عديدة من البيانات هي موضوعنا اليوم

أول تقسيم سنتعرض له هو عدد خانات المتغير وهو إما خانة واحدة Bit أو 8 خانات Byte أو كلمة 16 خانة word أو كلمة مزدوجة 32 خانة double word أما من حيث نوع البيانات

النوع الأول : الثنائي Binary type
وهو يأخذ القيمة 0 أو 1 فقط أو كهربيا ON - OFF فقط وعند التعامل مع هذا النوع يتم كتابة ذلك على النحو الآتي :
تمثيل رقم مكون من 16 خانة : b#1001 0110 0011 0001
b هنا معناها أن الرقم ثنائي وعلامة # هي الفاصل بين الرقم والتميز أما مجموعة الأرقام فهي قيمة الرقم

النوع الثاني : الأرقام الصحيحة Integer numbers
وهي أرقام عشرية صحيحة وهي إما دقة 16 رقم أو 32 رقم ثنائي
الأرقام ذات الدقة 16 خانة تكتب كما تكتب في النظام العشري العادي دون علامة عشرية مثلا 120
وهي تتراوح مابين 32768- إلى 32767+ في حالة الأرقام ذات الإشارة signed integers
وتتراوح بين 0 و65535+ في حالة الأرقام الموجبة الصحيحة unsigned integers
أما الأرقام ذات الدقة 32 خانة الصحيحة double integers فعند كتابتها نكتبها بالشكل الآتي :
L#150

النوع الثالث : وهو الأرقام العشرية Real ( floating point ) numbers
وتكتب على الصيغة الآتية :
x.ye+/-z
حيث x الجزء الصحيح من الرقم العشري لخانة واحدة
y الجزء الكسري في الرقم العشري
e تعني أس الرقم 10
+/- وهي إشارة الأس
z تمثل الأس
بمعني 23000 مثلا تكتب كالآتي : 2.3e+4
0.0354 تكتب : 3.54e-2
وإذا كان الرقم ككل موجب لا تكتب أمامه إشارة وإذا كان سالبا تكتب أمامه إشارة -

النوع الرابع وهو : نوع متغير زمني للتايمر Timer type
ويكتب كالآتي : s5t#100ms
هذا الرقم معناه زمن تايمر قيمته 100 مللي ثانية

النوع الخامس : متغير يدل عل التاريخ date
ويكتب كالآتي : d#2008-04-08 كتاريخ 8 أبريل 2008

متغير وقت حقيقي time of day
ويكتب كالآتي : tod#hh:mm:ss.ms مثلا tod#23:30:24.500

متغير وقت مطلق time
ويكتب كالآتي :t#Od_0h_0m_0s_0ms مثلا t#Od_10h_50m_28s_880ms

متغير وقت وتاريخ ويكتب كالآتي :
DT#2008-04-08-20:25:30.850

وهناك متغيرات حرفية String وتكتب بين علامات تنصيص 'xyz' كذلك هناك للعدادات وتكتب على الشكل
c#897

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

وسوف نبدأ معا الدرس القادم إن شاء الله في أول نوع من أنواع العمليات وهي العمليات الثنائية المنطقية
Binary ( bit logic ) operations

PLCMan
Admin

عدد المساهمات : 319
سجّل في : 02 مارس 2008
العمر : 39

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الدرس رقم - 6 العمليات الثنائية المنطقية Bit logic operations

مُساهمة من طرف PLCMan في الأربعاء 9 أبريل 2008 - 22:44

العمليات المنطقية الثنائية هي التي تتم على مستوى متغير ذو خانة واحدة bit وبالتالي فهو إما تحميل قيمة خانة أو تطبيق أي معامل عليها مع أخرى نظيرتها أو وضع قيمتها 0 أو وضع قيمتها 1 بكل بساطة وسوف نذكر هنا العمليات االتي تتم على مستوى الخانة الواحدة bit

قبل تمثيل العمليات لابد أن نتعرض لعنونة المعاملات Addressing :
المدخلات الرقمية Digital inputs :
تأخذ الشكل : Ix.y حيث I رمز أنه دخول و x رقم Byte وهي تتراوح من 0 وحتى الحد الأقصى ل CPU المستعملة يمكن أن يكون 127 أو 255 أما y فهي رقم الخانة bit داخل الكلمة Byte ويتراوح بين 0 و 7
مثلا : I0.2 - I10.7 - I127.5

المخرجات الرقمية Digital outputs :

وهي مثل المدخلات تماما غير أن الرمز Q بدلا من I مثلا : Q1.3 - Q7.6 - Q47.3

الذاكرة المؤقتة Memory flags :
وتأخذ الرمز M مثلا : M100.0 - M4.5 - M0.7

العدادات Counters
:
وتأخذ الرمز C متبوعا برقم العداد طبقا لنوع CPU مثلا : C1 - C10 - C126

المؤقتات Timers
:
وتأخذ الرمز T متبوعا برقم التايمر طبقا لنوع CPU مثلا : T2 - T10 - T70

Data block قوالب البيانات
:
وتأخذ الشكل الآتي : DByDBXz.u
حيث y هو رقم بلوك البيانات و z رقم الكلمة Data byte و u رقم الخانة bit
مثلا : DB10.DBX1.2 - DB100.DBX10.7 - DB120.DBX34.6


A And
وهي مثل عملية التوصيل على التوالي كهربيا وتتم بين معاملين لكي يكون هناك نتيجة لابد أن يكون الاثنان 1
حسب الجدول الآتي مثلا :
z=A And B

A B z
----------------
0 0 0
1 0 0
0 1 0
1 1 1

من هذا الجدول لا يكون Z لها قيمة 1 إلا كان A , B معا لهما قيمة 1

تمثيل العملية بشكل السلم Ladder diagram LAD
--------I0.0---------I0.1-------------Q1.2
|-------( )--------------| |----------| |------|

تمثيل العملية بنظام الكود Statement list STL
A I0.0
A I0.1
Q1.2 =

وهي تنطبق على الأنواع الآتية من Data type
I-Inputs , Q-Outputs, M-Memory flag, L-Local variable, D-Data block bit, T-Timer, C-Counter

AN And Not

وهي مثل عملية التوصيل على التوالي كهربيا وتتم بين معاملين أحدهما وضعة الطبيعي مغلق NC
حسب الجدول الآتي مثلا :
z=A And Not B

A B B' z
------------------
0 0 1 0
1 0 1 1
0 1 0 0
1 1 0 0

تمثيل العملية بشكل السلم Ladder diagram LAD
--------I0.0---------I0.1-------------Q1.2
|-------( )--------------|/|----------| |------|

تمثيل العملية بنظام الكود Statement list STL
A I0.0
AN I0.1
Q1.2 =

وهي تنطبق على الأنواع الآتية من Data type
I,Q,M,L,D,T,C

O Or

وهي مثل عملية التوصيل على التوازي كهربيا وتتم بين معاملين لكي يكون هناك نتيجة لابد أن يكون واحد فقط 1
حسب الجدول الآتي مثلا :
z=A Or B

A B z
----------------
0 0 0
1 0 1
0 1 1
1 1 1


تمثيل العملية بنظام الكود Statement list STL
O I0.0
O I0.1
Q1.2 =

وهي تنطبق على الأنواع الآتية من Data type
I,Q,M,L,D,C,T


ON Or Not

وهي مثل عملية التوصيل على التوازي كهربيا وتتم بين معاملين أحدهما أو كلاهما NC
حسب الجدول الآتي مثلا :
z=A Or Not B

A B B' z
----------------
0 0 1 1
1 0 1 1
0 1 0 0
1 1 0 1


تمثيل العملية بنظام الكود Statement list STL
O I0.0
ON I0.1
Q1.2 =

وهي تنطبق على الأنواع الآتية من Data type
I,Q,M,L,D,C,T

X Exclusive Or


وهي مثل عملية التوصيل المتداخل حيث يكون هناك فرعان توازي معا كل فرع به اثنان توالي حيث لا يكون هناك نتيجة إلا إذا كان الاثنان مختلفان
حسب الجدول الآتي مثلا :
z=A XOr B

A B z
----------------
0 0 0
1 0 1
0 1 1
1 1 0


تمثيل العملية بنظام الكود Statement list STL
X I0.0
X I0.1
Q1.2 =

وهي تنطبق على الأنواع الآتية من Data type
I,Q,M,L,D,C,T

XN Exclusive Or Not


وهي مثل عملية التوصيل المتداخل حيث يكون هناك فرعان توازي معا كل فرع به اثنان توالي حيث لا يكون هناك نتيجة إلا إذا كان الاثنان متطابقان
حسب الجدول الآتي مثلا :
z=A XN Or B

A B z
----------------
0 0 1
1 0 0
0 1 0
1 1 1


تمثيل العملية بنظام الكود Statement list STL
XN I0.0
XN I0.1
Q1.2 =

وهي تنطبق على الأنواع الآتية من Data type
I,Q,M,L,D,C,T


Assign =


وهو أمر يسجل نتيجة العملية التي تمت في العنوان الذي يلي علامة = وهو ينطبق علي الأنواع
I, Q, M, L, D
كما سبق واستخدمناه في الأمثلة السابقة

R Reset

وهو يقوم بتخزين 0 في العنوان الذي يليه
مثل : R Q0.1 - R M20.7 - R DB100.DBX2.1

S Set

وهو يقوم بتخزين 1 في العنوان الذي يليه
مثل : S M10.2 - S Q3.1 - S DB10.DBX14.6

NOT Negate RLO

وهو يقوم بعكس نتيجة آخر عملية تمت من 0 إلى 1 أو من 1 إلى 0

ويكتب كما هو NOT

SET Set RLO --> 1

وهو يقوم بتخزين 1 في مكان نتيجة العمليات المنطقية Result of Logic Operation RLO
وذلك لإمكان استخدام ذلك في عمليات Set

مثلا :
SET
= Q10.3

CLR Clear RLO --> 0

وهو يقوم بتخزين 0 في RLO

PLCMan
Admin

عدد المساهمات : 319
سجّل في : 02 مارس 2008
العمر : 39

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الدرس رقم -7 المؤقتات Timers

مُساهمة من طرف PLCMan في الأحد 13 أبريل 2008 - 20:27

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

والآن لنذهب إلى موضوع اليوم وهو التايمر Timers


أنواع التايمر الموجودة في سيمنس والتي يمكن استخدامها داخل البرنامج هي كالآتي :
- تايمر تشغيل مؤخر On-Delay Timer : SD
- تايمر فصل مؤخر Off-Delay Timer : SF
- تايمر نبضي Pulse Timer : SP
- تايمر نبضي ممتد Extended Pulse Timer : SE
- تايمر تشغيل مؤخر مسجل Retentive (Stored) On-Delay Timer : SS

والآن لنستعرض الفرق الوظيفي بين الأنواع الخمسة :


لنفترض أن إشارة التشغيل هي الشرط الواجب توافره لتشغيل التايمر والخرج من التايمر هو الحالة التي يكون فيها التايمر ON ووقت الضبط للتايمر هو t :

ففي النوع الأول وهو تشغيل مؤخر On-Delay Timer تنتقل حالة الخرج من 0 إلى 1 إذا كانت إشارة التشغيل موجودة وتجاوز وقت وجودها من وقت بدايتها الزمن t وتنزل من 1 إلى 0 مع إشارة التشغيل

وفي النوع الثاني تايمرفصل مؤخر Off-Delay Timer ينتقل حالة الخرج من 0 إلى 1 مع إشارة التشغيل وعند انتقال إشارة التشغيل من 1 إلى 0 تتأخر حالة الانتقال من 1 إلى 0 في الخرج بزمن قدره t

والنوع الثالث تايمر نبضي وفي هذا النوع عند وجود إشارة التشغيل أي انتقالها من 0 إلى 1 واستمرارها لوقت أكبر من زمن ضبط التايمر t فإن خرج التايمر ينتقل من 0 إل 1 ثم يعود من 1 إلى 0 بعد زمن قدره t أي على شكل نبضة ولكن إذا كان زمن وجود إشارة التشغيل أقل من t فإن خرج التايمر ينتقل من 1 إلى 0 مع إشارة التشغيل

النوع الرابع وهو تايمر نبضي ممتد في هذا النوع تخرج نبضة التايمر لزمن قدره t بغض النظر عن وقت وجود إشارة التشغيل مع ملاحظة أن كل انتقال لإشارة التشغيل من 0 إلى 1 يعطي بداية جديدة لنبضة الخروج أي أنه إذا كانت إشارة التشغيل نبضات متكررة بزمن أقل من t فإن خرج التايمر سوف يظل 1 باستمرار

النوع الخامس وهو تايمر تشغيل مؤخر مخزن وفي هذا النوع تنتقل حالة خرج التايمر من 0 إلى 1 بعد زمن قدره t من انتقال إشارة التشغيل من 0 إلى 1 ولا يشترط هنا استمرار إشارة الشغيل مثل أمر SET ولكن بعد زمن t

لنعلم أنه يتم حجز one word لكل تايمر مكونة من 16 خانة في ذاكرة CPU

وأنه يتم تخصيص الخانات من 0-9 لقيمة الوقت في شكل ثنائي ويمكن نقل هذه القيمة إلى Accumulator-1 في شكل Hexadecimal H, BCD وذلك للتعامل معها في البرنامج عند الاحتياج لذلك
كذلك يمكن تحميل قيمة أولية للتايمر بإحدى الصيغ التالية :
W#16#txyz
حيث W#16 تعني رقم مكون من 16 خانة
t طريقة حساب الوقت - 00 , 01 , 10 , 11 - 10 مللي ثانية , 100 مللي ثانية , 1 ثانية , 10 ثانية
xyz قيمة الوقت معبرا عنها بشكل BCD

أو يمكن التعبير عن الوقت بالشكل : S5t#aH_bM_cS_dMS
حيث أن a قيمة الساعات , b الدقائق , c الثواني , d مللي ثانية و H,M,S,MS هو تمييز الوقت

والآن لنستعرض الأوامر المستعمله مع التايمر :

FR Enable Timer

والصورة العامة لتشغيل هذا الأمر تكون في STL فقط وتكون بالشكل الآتي :
FR <Timer> where Timer --> T1,T2,...,T256

مثلا :
ِA I0.1
FR T2

L Load Current Timer Value into ACCU 1 as Integer

الصورة العامة لتشغيل هذا الأمر هو :
L <Timer> where Timer : T1,T2,...,T256
ويستعمل لتحميل قيمة التايمر في Accumulator-1 في شكل رقم صحيح Integer

مثلا :
L T1

LC Load Current Timer Value into ACCU 1 as BCD


الصورة العامة لتشغيل هذا الأمر هو :
LC <Timer> where Timer : T1,T2,...,T256
ويستعمل لتحميل قيمة التايمر في Accumulator-1 في شكل BCD

مثلا :
LC T1

R Reset Timer

الصورة العامة لتشغيل هذا الأمر هو :
R <Timer> where Timer : T1,T2,...,T256
ويستعمل لإيقاف التايمر وإعادة وضع التايمر إلى الوضع الأولي

مثلا :
A I2.3
R T25

SP Pulse Timer

الصورة العامة لتشغيل هذا الأمر هو :
SP <Timer> where Timer : T1,T2,...,T256
ويستعمل لتشغيل تايمر نبضي

مثال :

A I 2.0
FR T1 //Enable timer T1.
A I 2.1
L S5T#10s //Preset 10 seconds into ACCU 1.
SP T1 //Start timer T1 as a pulse timer.
A I 2.2
R T1 //Reset timer T1.
A T1 //Check signal state of timer T1.
= Q 4.0


SE Extended Pulse Timer

الصورة العامة لتشغيل هذا الأمر هو :
SE <Timer> where Timer : T1,T2,...,T256
ويستعمل لتشغيل تايمر نبضي ممتد

مثال :

A I 2.0
FR T1 //Enable timer T1.
A I 2.1
L S5T#10s //Preset 10 seconds into ACCU 1.
SE T1 //Start timer T1 as an extended pulse timer.
A I 2.2
R T1 //Reset timer T1.
A T1 //Check signal state of timer T1.
= Q 4.0
L T1 //Load current timer value of timer T1 as binary.
T MW10
LC T1 //Load current timer value of timer T1 as BCD.
T MW12


SD On-Delay Timer

الصورة العامة لتشغيل هذا الأمر هو :
SD <Timer> where Timer : T1,T2,...,T256
ويستعمل لتشغيل تايمر تشغيل مؤخر

مثال :

A I 2.0
FR T1 //Enable timer T1.
A I 2.1
L S5T#10s //Preset 10 seconds into ACCU 1.
SD T1 //Start timer T1 as an on-delay timer.
A I 2.2
R T1 //Reset timer T1.
A T1 //Check signal state of timer T1.
= Q 4.0
L T1 //Load current timer value of timer T1 as binary.
T MW10
LC T1 //Load current timer value of timer T1 as BCD.
T MW12


SS Retentive On-Delay Timer

الصورة العامة لتشغيل هذا الأمر هو :
SS <Timer> where Timer : T1,T2,...,T256
ويستعمل لتشغيل تايمر تشغيل مؤخر مخزن

مثال :

A I 2.0
FR T1 //Enable timer T1.
A I 2.1
L S5T#10s //Preset 10 seconds into ACCU 1.
SS T1 //Start timer T1 as a retentive on-delay timer.
A I 2.2
R T1 //Reset timer T1.
A T1 //Check signal state of timer T1.
= Q 4.0
L T1 //Load current time value of timer T1 as binary.
T MW10
LC T1 //Load current time value of timer T1 as BCD.
T MW12


SF Off-Delay Timer

الصورة العامة لتشغيل هذا الأمر هو :
SF <Timer> where Timer : T1,T2,...,T256
ويستعمل لتشغيل تايمر فصل مؤخر

مثال :

A I 2.0
FR T1 //Enable timer T1.
A I 2.1
L S5T#10s //Preset 10 seconds into ACCU 1.
SF T1 //Start timer T1 as an off-delay timer.
A I 2.2
R T1 //Reset timer T1.
A T1 //Check signal state of timer T1.
= Q 4.0
L T1 //Load current timer value of timer T1 as binary.
T MW10
LC T1 //Load current timer value of timer T1 as BCD.
T MW12

PLCMan
Admin

عدد المساهمات : 319
سجّل في : 02 مارس 2008
العمر : 39

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الدرس رقم 8 : عمليات التحميل والتخزين Load and Transfer Operations

مُساهمة من طرف PLCMan في الخميس 17 أبريل 2008 - 1:59

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

Load L

L <Address>

وهو يقوم بتحميل البيانات الموجودة في Address إلى ACCU1
وإذا كان هناك أمر Load تالي فإنه يتم نقل محتويات ACCU1 إلى ACCU2 وتحميل البيانات الجديدة في ACCU1 أي يحدث عملية ترحيل

وينطبق الأمر Load على أي من أحجام البيانات سواء كانت Byte أو Word أو Double Word

كذلك فإن Address يمكن أن يكون Digital input(Byte/Word/DWord) أو يكون Digital output بنفس الطريقة أو Memory أو Analogue input أو Data block أو متغير داخلي L

أمثلة :
L IB20
L MW200
L QD10
L PIW224
L DB50.DBD20


ويجب أن نلاحظ أنه إذا تم تحميل Byte فإنه يتم تحميلها في الخانات من 1 إلى 8 الخاصة ب ACCU1 وتكون الخانات من 9 - 32 أصفار 00000000-00000000-00000000 وإذا تم تحميل Word يتم تحميلها في الخانات من 1 إلى 16 في ACCU1 وتكون الخانات من 17 - 32 كلها أصفار 00000000-00000000 وإذا تم تحميل Double word فيتم تحميل الرقم بالكامل في ACCU1 في الخانات من 1-32

الأمر Load status word into Accumulator-1 L STW


وكما هو واضح من اسم الأمر فهو يقوم بتحميل Status word والتي تعبر عن حالة CPU بعد إتمام آخر عملية عند الرغبة في عمل اختبار لذلك ويتم تحميلها في الخانات من 1 وحتى 8 أما بقية الخانات فتكون أصفار

الأمر Load Address register-1 Or 2 From Accumulator-1 LAR1 , LAR2


هذا الأمر يستخدم كذلك وهو لا يؤثر على محتويات ACCU1 ,ACCU2
ويستخدم هذا الأمر في العمليات الخاصة والتي يقصد بها التعامل مع جزء محدد من الذاكرة ( برمجة متقدمة )

الأمر Transfer T <Address>


يقوم هذا الأمر بنسخ محتويات ACCU1 إلى المكان المشار إليه ب Address والذي يمكن أن يكون :
QB/QW/QD/PQW/MB/MW/MD/L/DBB/DBW/DBD

أمثلة :
T QB10
T MW32
T DB20.DBD48
T PQW446


الأمر Transfer contents of Accumulator-1 into Status word T STW

وهو يقوم بنقل الخانات التسعة الأول إلى Status word عند الرغبة في وضعها في حالة معينة دون النظر إلى النتائج الأخرى

والأمران L,T هما من أكثر الأوامر استخداما خلال عمليات البرمجة وسوف يظهر ذلك جليا خلال الفترات القادمة إن شاء الله

PLCMan
Admin

عدد المساهمات : 319
سجّل في : 02 مارس 2008
العمر : 39

الرجوع الى أعلى الصفحة اذهب الى الأسفل

صفحة 1 من اصل 5 1, 2, 3, 4, 5  التالي

استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة


صلاحيات هذا المنتدى:

لاتستطيع الرد على المواضيع في هذا المنتدى