منتدى الرسالة
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي


 
الرئيسيةالرئيسية  البوابةالبوابة  اليوميةاليومية  س .و .جس .و .ج  بحـثبحـث  الأعضاءالأعضاء  المجموعاتالمجموعات  التسجيلالتسجيل  دخولدخول  

شاطر | 
 

 دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طرازSiemens S7 300,400

اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin
Admin
avatar

عدد المساهمات : 156
نقاط : 5440
السٌّمعَة : 0
تاريخ التسجيل : 09/02/2012
العمر : 35

مُساهمةموضوع: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طرازSiemens S7 300,400   الجمعة مارس 09, 2012 12:23 pm

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



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

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

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

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://elrissala.arabepro.com
Admin
Admin
avatar

عدد المساهمات : 156
نقاط : 5440
السٌّمعَة : 0
تاريخ التسجيل : 09/02/2012
العمر : 35

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طرازSiemens S7 300,400   الجمعة مارس 09, 2012 12:32 pm

اليوم سوف نبدأ فعليا في كيفية عمل برنامج بواسطة 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 التي تظهر لكل من
المكونات



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

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

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

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://elrissala.arabepro.com
Admin
Admin
avatar

عدد المساهمات : 156
نقاط : 5440
السٌّمعَة : 0
تاريخ التسجيل : 09/02/2012
العمر : 35

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طرازSiemens S7 300,400   الجمعة مارس 09, 2012 12:33 pm

لابد أن نعرف أن كل ما نريد تنفيذه من برامج أو تعليمات أو بيانات تكتب داخل ما يسمى 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

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://elrissala.arabepro.com
Admin
Admin
avatar

عدد المساهمات : 156
نقاط : 5440
السٌّمعَة : 0
تاريخ التسجيل : 09/02/2012
العمر : 35

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طرازSiemens S7 300,400   الجمعة مارس 09, 2012 12:35 pm

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

أولا أنواع المتغيرات :
عند
التعامل مع أي نوع من أنواع البرمجة لابد أن نضع في حسابنا أنواع البيانات
التي نجري عليها العمليات فمثلا العمليات الحسابية البسيطة هناك الأرقام
التي نجري عليها عمليات الجمع والطرح والضرب والقسمة ولهذا وجب علينا أن
نبين أن أنواع الأرقام هي حقيقية وصحيحة وكسرية وكذلك تخيلية وهكذا حتى
يكون طرفي المعادلة متساويين تماما في الكم والتمييز
كذلك فعند التعامل مع برنامج 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
العمليات المنطقية الثنائية هي التي تتم على مستوى متغير ذو خانة واحدة 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و

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://elrissala.arabepro.com
Admin
Admin
avatar

عدد المساهمات : 156
نقاط : 5440
السٌّمعَة : 0
تاريخ التسجيل : 09/02/2012
العمر : 35

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طرازSiemens S7 300,400   الجمعة مارس 09, 2012 12:35 pm

يظن البعض أنه بمجرد أن عرف العمليات المنطقية التي ذكرناها في الدرس
السابق مع معرفة استعمالات المؤقتات 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 where Timer --> T1,T2,...,T256

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

L Load Current Timer Value into ACCU 1 as Integer

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

مثلا :
L T1

LC Load Current Timer Value into ACCU 1 as BCD


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

مثلا :
LC T1

R Reset Timer

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

مثلا :
A I2.3
R T25

SP Pulse Timer

الصورة العامة لتشغيل هذا الأمر هو :
SP 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 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 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 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 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

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://elrissala.arabepro.com
Admin
Admin
avatar

عدد المساهمات : 156
نقاط : 5440
السٌّمعَة : 0
تاريخ التسجيل : 09/02/2012
العمر : 35

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طرازSiemens S7 300,400   الجمعة مارس 09, 2012 12:36 pm

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

Load L

L


وهو يقوم بتحميل البيانات الموجودة في 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


يقوم هذا الأمر بنسخ محتويات 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 هما من أكثر الأوامر استخداما خلال عمليات البرمجة وسوف يظهر ذلك جليا خلال الفترات القادمة إن شاء الله

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://elrissala.arabepro.com
Admin
Admin
avatar

عدد المساهمات : 156
نقاط : 5440
السٌّمعَة : 0
تاريخ التسجيل : 09/02/2012
العمر : 35

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طرازSiemens S7 300,400   الجمعة مارس 09, 2012 12:36 pm

ملحوظة : في جميع الأمثلة الكلام بعد // يعتبر تعليق على السطر أي شرح لمساعدة المستخدم في فهم الأمور Comments

هذه
العمليات تتم كلها بين محتويات Accumulator-1 و Accumulator-2 وتخزن
النتيجة مكان القديمة في Accumulator-1 بحيث تتم مقارنة كل خانة bit بما
يماثلها طبقا للعملية المطلوبة

AW AND Word : 16-Bit


ويأخذ الأمر الصورة :

AW
AW Constant

حيث يتم قبل الأمر تحميل الكلمة الأولى في ACCU1 وتحميل الكلمة الثانية ACCU2

مثال :


L IW20 //Load contents of IW20 into ACCU 1-L.
L IW22 //Load contents of ACCU 1 into ACCU 2. Load contents of IW22 into ACCU 1-L.
AW //Combine bits from ACCU 1-L with ACCU 2-L bits by AND; store result in ACCU
1-L.
T MW 8 //Transfer result to MW8

وفي
حالة عمل AND مع ثابت Constant يتم بتحميل الكلمة الأولى في ACCU1 ويتم
عمل AND مباشرة مع الرقم ويكون الناتج في ACCU1 مثل الآتي :


L IW20 //Load contents of IW20 into ACCU 1-L.
AW W#16#0FFF //Combine bits of ACCU 1-L with bit pattern of 16-bit constant
(0000_1111_1111_1111) by AND; store result in ACCU 1-L.
JP NEXT //Jump to NEXT jump label if result is unequal to zero, (CC 1 = 1)

OW OR Word :16-Bit



ويأخذ الأمر الصورة :

OW
OW Constant

حيث يتم قبل الأمر تحميل الكلمة الأولى في ACCU1 وتحميل الكلمة الثانية ACCU2

مثال :


L IW20 //Load contents of IW20 into ACCU 1-L.
L IW22 //Load contents of ACCU 1 into ACCU 2. Load contents of IW22 into ACCU
1-L.
OW //Combine bits from ACCU 1-L with ACCU 2-L by OR, store result in ACCU
1-L.
T MW8 //Transfer result to MW8

وفي حالة عمل OR مع ثابت Constant يتم بتحميل الكلمة الأولى في ACCU1 ويتم عمل OR مباشرة مع الرقم ويكون الناتج في ACCU1 مثل الآتي :


L IW20 //Load contents of IW 20 into ACCU 1-L.
OW W#16#0FFF //Combine bits of ACCU 1-L with bit pattern of 16-bit constant
(0000_1111_1111_1111) by OR; store result in ACCU 1-L.
JP NEXT //Jump to NEXT jump label if result is unequal to zero (CC 1 = 1)

XOW Exclusive OR Word : 16-Bit


ويأخذ الأمر الصورة :

XOW
XOW Constant

حيث يتم قبل الأمر تحميل الكلمة الأولى في ACCU1 وتحميل الكلمة الثانية ACCU2

مثال :


L IW20 //Load contents of IW20 into ACCU 1-L.
L IW22 //Load contents of ACCU 1 into ACCU 2. Load contents of ID24 into ACCU 1-L.
XOW //Combine bits of ACCU 1-L with ACCU 2-L bits by XOR, store result in ACCU
1-L.
T MW8 //Transfer result to MW8

وفي
حالة عمل XOR مع ثابت Constant يتم بتحميل الكلمة الأولى في ACCU1 ويتم
عمل XOR مباشرة مع الرقم ويكون الناتج في ACCU1 مثل الآتي :


L IW20 //Load contents of IW20 into ACCU 1-L.
XOW 16#0FFF //Combine bits of ACCU 1-L with bit pattern of 16-bit constant
(0000_1111_1111_1111) by XOR, store result in ACCU 1-L.
JP NEXT //Jump to NEXT jump label if result is unequal to zero, (CC 1 = 1)

AD AND Double Word : 32-Bit

وهو يقوم بعمل AW ولكن على مستوى 32 خانة أي كل محتويات ACCU1, ACCU2

ويأخذ الأمر الصورة :

AD
AD Constant

حيث يتم قبل الأمر تحميل الكلمة الأولى في ACCU1 وتحميل الكلمة الثانية ACCU2

مثال :


L ID20 //Load contents of ID20 into ACCU 1.
L ID24 //Load contents of ACCU 1 into ACCU 2. Load contents of ID24 into ACCU
1.
AD //Combine bits from ACCU 1 with ACCU 2 by AND, store result in ACCU
1.
T MD8 //Transfer result to MD8

وفي حالة عمل AD مع ثابت Constant يتم بتحميل الكلمة الأولى في ACCU1 ويتم عمل AD مباشرة مع الرقم ويكون الناتج في ACCU1 مثل الآتي :


L ID 20 //Load contents of ID20 into ACCU 1.
AD DW#16#0FFF_EF21 //Combine bits of ACCU 1 with bit pattern of 32-bit constant
(0000_1111_1111_1111_1110_1111_0010_0001) by AND; store result in
ACCU 1.
JP NEXT //Jump to NEXT jump label if result is unequal to zero, (CC 1 = 1)

OD OR Double Word : 32-Bit


ويأخذ الأمر الصورة :

OD
OD Constant

حيث يتم قبل الأمر تحميل الكلمة الأولى في ACCU1 وتحميل الكلمة الثانية ACCU2

مثال :


L ID20 //Load contents of ID20 into ACCU 1.
L ID24 //Load contents of ACCU 1 into ACCU 2. Load contents of ID24 into
ACCU 1.
OD //Combine bits from ACCU 1 with ACCU 2 bits by OR; store result in
ACCU 1.
T MD8 //Transfer result to MD8

وفي حالة عمل OD مع ثابت Constant يتم بتحميل الكلمة الأولى في ACCU1 ويتم عمل OD مباشرة مع الرقم ويكون الناتج في ACCU1 مثل الآتي :


L ID20 //Load contents of ID20 into ACCU 1.
OD DW#16#0FFF_EF21 //Combine bits of ACCU 1 with bit pattern of 32-bit constant
(0000_1111_1111_1111_1110_1111_0010_0001) by OR, store result in
ACCU 1.


JP NEXT //Jump to NEXT jump label if result is not equal to zero, (CC 1 =
1)


XOD Exclusive OR Double Word : 32-Bit


ويأخذ الأمر الصورة :

XOD
XOD Constant

حيث يتم قبل الأمر تحميل الكلمة الأولى في ACCU1 وتحميل الكلمة الثانية ACCU2

مثال :


L ID20 //Load contents of ID20 into ACCU 1.
L ID24 //Load contents of ACCU 1 into ACCU 2. Load contents of ID24 into
ACCU 1.
XOD //Combine bits from ACCU 1 with ACCU 2 by XOR; store result in ACCU
1.
T MD8 //Transfer result to MD8


وفي
حالة عمل XOD مع ثابت Constant يتم بتحميل الكلمة الأولى في ACCU1 ويتم
عمل XOD مباشرة مع الرقم ويكون الناتج في ACCU1 مثل الآتي :

L ID20 //Load contents of ID20 into ACCU 1.
XOD DW#16#0FFF_EF21 //Combine bits from ACCU 1 with bit pattern of 32-bit constant
(0000_1111_1111_1111_1111_1110_0010_0001) by XOR, store result in
ACCU 1.
JP NEXT //Jump to NEXT jump label if result is unequal to zero, (CC 1 = 1

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://elrissala.arabepro.com
Admin
Admin
avatar

عدد المساهمات : 156
نقاط : 5440
السٌّمعَة : 0
تاريخ التسجيل : 09/02/2012
العمر : 35

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طرازSiemens S7 300,400   الجمعة مارس 09, 2012 12:37 pm

هذه العمليات تمكننا من تحويل الأرقام من صيغة إلى أخرى والصيغ الأهم التي تقوم عليها كل أنواع الحسابات هي :
- الأرقام الصحيحة Integer numbers 16 bits
- الأرقام الصحيحة المضاعفة الدقة Double integers 32 bits
- الأرقام العشرية Real numbers
- الأرقام المعبر عنها بكود Binary coded decimal BCD

BTI BCD to Integer


وهذا الأمر يقوم بتحويل محتويات Accumulator-1 من صيغة BCD مكون من 3 أرقام تتراوح بين 000 , 999 إلى رقم صحيح مثلا :
الرقم 689 يكون كالآتي في نظام BCD كل رقم يمثل بأربع خانات : 1001 - 1000 - 0110 - 0000
وعند التحويل إلى الصيغة Integer يكون كالآتي : 0001 - 1011 - 0010 - 0000

مثال :


L MW10 //Load the BCD number into ACCU 1-L.
BTI //Convert from BCD to integer; store result in ACCU 1-L.
T MW20 //Transfer result (integer number) to MW20

ITB Integer (16-Bit) to BCD

وهذا الأمر يقوم بالعملية العكسية حيث يحول الرقم من الصورة الصحيحة إلى الصورة BCD

مثال :


L MW10 //Load the integer number into ACCU 1-L.
ITB //Convert from integer to BCD (16-bit); store result in ACCU 1-L.
T MW20 //Transfer result (BCD number) to MW20

BTD BCD to Integer-32 bits

هذا الأمر يقوم بتحويل رقم 32 خانة من صيغة BCD إلى الصيغة Double integer
وتكون القيمة القصوى للرقم BCD هي : 9,999,999 موجبة أو سالبة كالآتي :
الرقم 235648- يكون : 1000-0100-0110-0101-0011-0010-0000-1111
وعند تحويله إلى صحيح : 0000-1000-1000-1001-0011-0000-0000-1000

مثال :


L MD10 //Load the BCD number into ACCU 1.
BTD //Convert from BCD to integer; store result in ACCU 1.
T MD20 //Transfer result (double integer number) to MD20

ITD Integer - 16 Bit to Double Integer - 32-Bit


وهو
يقوم بتحويل محتويات Accumulator-1 من صورة الصحيح 16 خانة إلى 32 خانة
وذلك بإضافة أصفار 0000000000000000 إلى الخانات من 16 وحتى 31 في
Accumulator-1
ونقل خانة الإشارة من الخانة 16 إلى الخانة 32

مثال :


L MW12 //Load the integer number into ACCU 1.
ITD //Convert from integer (16-bit) to double integer (32-bit); store result in
ACCU 1.
T MD20 //Transfer result (double integer) to MD20

DTB Double Integer (32-Bit) to BCD

وهو يقوم بتحويل الأرقام من صحيحة ذات دقة مضاعفة 32 خانة إلى الصورة BCD

مثال :


L MD10 //Load the 32-bit integer into ACCU 1.
DTB //Convert from integer (32-bit) to BCD, store result in ACCU 1.
T MD20 //Transfer result (BCD number) to MD20

DTR Double Integer - 32-Bit to Floating-Point - 32-Bit
IEEE-FP


وهو يقوم بتحويل محتويات Accumulator-1 من الصيغة الصحيحة دقة مضاعفة إلى الصورة العشرية بالشكل الآتي :
x.ye+/-z+/-
حيث
+/- قبل x هي الإشارة العامة للرقم أما x فهو الجزء الصحيح من الرقم و y
الجزء العشري و +/- الثانية هي إشارة الأس و z هي أس الرقم 10 بعد اختصار
الرقم مثلا :
10245.5- تمثل كالآتي : 1.02455e+4-

مثال :


L MD10 //Load the 32-bit integer into ACCU 1.
DTR //Convert from double integer to floating point (32-bit IEEE FP); store result
in ACCU 1.
T MD20 //Transfer result (BCD number) to MD20

INVI Ones Complement Integer -16-Bit

هذا الأمر يقوم بتحويل محتويات Accumulator-1 إلى المعكوس الأحادي للمحتويات وتخزين النتيجة في Accumulator-1

والمعكوس الأحادي بكل بساطة هو قلب كل 0 إلى 1 وكل 1 إلى 0 مثلا :
الرقم : 1010-0011-1100-0100
يكون : 0101-1100-0011-1011

مثال :


L IW8 //Load value into ACCU 1-L.
INVI //Form ones complement 16-bit.
T MW10 //Transfer result to MW10

INVD Ones Complement Double Integer -32-Bit


وهو مثل الأمر السابق تماما ولكن على مستوى 32 خانة Double integer

مثال :


L ID8 //Load value into ACCU 1.
INVD //Form ones complement (32-bit).
T MD10 //Transfer result to MD10

NEGI Twos Complement Integer -16-Bit


وهو يقوم بتحويل محتويات Accumulator-1 إلى المعكوس الثنائي للرقم وتخزين المحتويات في Accumulator-1
والمعكوس الثنائي بكل بساطة هو المعكوس الأحادي + 1

مثلا الرقم : 1011-1001-0001-1010
الأحادي : 0100-0110-1110-0101
الثنائي : 0101-0110-1110-0101

مثال :


L IW8 //Load value into ACCU 1-L.
NEGI //Form twos complement 16-bit.
T MW10 //Transfer result to MW10

NEGD Twos Complement Double Integer -32-Bit


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

NEGR Negate Floating-Point Number -32-Bit, IEEE-FP


في هذا الأمر يقوم بعكس إشارة الرقم العشري ( ذو العلامة العشرية ) إذا كانت + تكون - والعكس

مثال :


L ID8 //Load value into ACCU 1 example: ID 8 = 1.5E+02
NEGR //Negate floating-point number (32-bit, IEEE-FP); stores the result in ACCU
1.
T MD10 //Transfer result to MD10 example: result = -1.5E+02

_________________
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://elrissala.arabepro.com
 
دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طرازSiemens S7 300,400
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى الرسالة :: Département de génie électrique et électronique :: قسم الهندسة الكهربائية والالكترونيك-
انتقل الى: