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

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

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

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

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

مشكور يا مهندس حسن

مُساهمة من طرف anasabsi في الثلاثاء 22 أبريل 2008 - 10:49

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

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

و انا في انتظار تكملة الدورة

anasabsi
جندي
جندي

عدد المساهمات : 4
سجّل في : 20 أبريل 2008
العمر : 24

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

الدرس رقم -10 Conversion Instructions

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

هذه العمليات تمكننا من تحويل الأرقام من صيغة إلى أخرى والصيغ الأهم التي تقوم عليها كل أنواع الحسابات هي :
- الأرقام الصحيحة 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


نكتفي بهذا القدر ونكمل باقي أوامر التحويل المرة القادمة إن شاء الله

PLCMan
Admin

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

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

الدرس رقم -11 استكمال Conversion Instructions

مُساهمة من طرف PLCMan في السبت 26 أبريل 2008 - 16:35

CAW Change Byte Sequence in ACCU 1-L 16-Bit

وهذا الأمر يقوم بتبديل وضع ترتيب خانات Accumulator-1 الكلمة الأولى حيث أن Accumulator-1 يتكون من عدد كلمتين عليا وسفلى ( High and Low ) وكل كلمة بها مجموعتين Bytes عليا وسفلى وإذا نظرنا إلى Accumulator-1 بهذا المفهوم فهو يتكون من 4 Bytes يكون ترتيبها كالآتي :
ACCU1-H-H , ACCU1-H-L , ACCU1-L-H , ACCU1-L-L
كل مجموعة تتكون من 8 خانات bits
وهذا الأمر يقوم بتبديل ACCU1-L-H , ACCU1-L-L مع الإبقاء على ACCU1-H-H , ACCU1-H-L كما هي مثلا :
1101-0010-0000-1010 بعد اسصتعمال CAW تكون :
1101-0010-1010-0000

مثال :

L MW10 //Load the value of MW10 into ACCU 1.
CAW //Reverse the sequence of bytes in ACCU 1-L.
T MW20 //Transfer the result to MW20


CAD Change Byte Sequence in ACCU 1 32-Bit

وهذا الأمر يقوم يتبديل ترتيب Accumulator-1 على مستوى Words , Bytes كالآتي :
إذا كان الترتيب الأصلي :
ACCU1-H-H , ACCU1-H-L , ACCU1-L-H , ACCU1-L-L يكون الترتيب بعد CAD
ACCU1-L-L , ACCU1-L-H , ACCU1-H-L , ACCU1-H-H

مثلا إذا كانت محتويات Accumulator-1 :
0010-1111-1011-0001 تكون بعد استعمال CAD كالآتي :
0001-1011-1111-0010

مثال :

L MD10 //Load the value of MD10 into ACCU 1.
CAD //Reverse the sequence of bytes in ACCU 1.
T MD20 //Transfer the results to MD20


RND Round

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

مثلا الرقم : 100.5 يتم تقريبه إلى 100 والرقم 100.5- يتم تقريبه إلى 100-

مثال :

L MD10 //Load the floating-point number into ACCU 1-L.
RND //Convert the floating-point number (32-bit, IEEE-FP) into an integer (32-bit)
and round off the result.
T MD20 //Transfer result (double integer number) to MD20


TRUNC Truncate

وهذا الأمر يقوم بتحويل الأرقام العشرية دقة 32 خانة إلى رقم صحيح دقة مضاعفة 32 خانة وذلك بحذف الكسر تماما مثلا الرقم 100.7 يصبح 100 والرقم 150.9- يصبح 150-

مثال :

L MD10 //Load the floating-point number into ACCU 1-L.
TRUNC
//Convert the floating-point number (32-bit, IEEE-FP) to an integer (32-bit)
and round result. Store the result in ACCU 1.
T MD20 //Transfer result (double integer number) to MD20


RND+ Round to Upper Double Integer

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

مثلا : الرقم 140.5 يكون 141 والرقم 141.7- يكون 141-

مثال :

L MD10 //Load the floating-point number (32-bit, IEEE-FP) into ACCU 1-L.
RND+ //Convert the floating-point number (32-bit, IEEE-FP) to an integer (32-bit)
and round result. Store output in ACCU 1.
T MD20 //Transfer result (double integer number) to MD20


RND- Round to Lower Double Integer

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

مثلا الرقم 120.4 يكون 120 والرقم 140.3- يكون 141-

مثال :

L MD10 //Load the floating-point number into ACCU 1-L.
RND- //Convert the floating-point number (32-bit, IEEE-FP) to an integer (32-bit)
and round result. Store result in ACCU 1.
T MD20 //Transfer result (double integer number) to MD20


ونستكمل إن شاء الله في المرات التالية

PLCMan
Admin

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

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

الدرس رقم 12 - Comparison instructions

مُساهمة من طرف PLCMan في الخميس 1 ماي 2008 - 20:13

المقارنة Comparison instructions

هذه الأوامر كلها تقارن محتويات ACCU1 , ACCU2 وتغيير RLO بما يتناسب مع النتيجة كما يلي في الشرح التالي :

يتم استعمال العلامات الآتية للمقارنة كالآتي :

علامات المقارنة Comparison signs
== ACCU1 is equal to ACCU2
<> ACCU1 is not equal to ACCU2
> ACCU1 is greater than ACCU2
< ACCU1 is less than ACCU2
>= ACCU1 is greater than or equal to ACCU2
<= ACCU1 is less than or equal to ACCU2


كذلك يتم تحديد نوع المقارنة من حيث دقة الرقم عن طريق حرف يكتب بعد علامة المقارنة I , D , R كالآتي :

I Compare Integer 16-Bit
D Compare Double Integer 32-Bit
R Compare Floating-Point Number 32-Bit


مقارنة الأرقام الصحيحة ذات الدقة 16 خانة
Compare Integer 16-Bit - ? I


ٍFormat
==I, <>I, >I, <I, >=I, <=I


وهنا تتم مقارنة محتويات ACCU1 , ACCU2 في صورة رقم صحيح 16 خانة وتغيير RLO طبقا للنتيجة

مثال :

L MW10 //Load contents of MW10 (16-bit integer).
L IW24 //Load contents of IW24 (16-bit integer).
>I //Compare if ACCU 2-L (MW10) is greater (>) than ACCU 1- L (IW24).
= M 2.0 //RLO = 1 if MW10 > IW24


مع ملاحظة أن محتويات RLO تتغير كالآتي :
إذا تحقق الشرط المطلوب تكون محتويات RLO هي - 1
إذا لم يتحقق الشرط تكون محتويات RLO هي - 0

أيا كانت العلاقة والشرط

مقارنة الأرقام الصحيحة ذات الدقة المضاعفة 32 خانة
Compare Double Integer 32-Bit


Format
==D, <>D, >D, <D, >=D, <=D



وهنا تتم مقارنة محتويات ACCU1 , ACCU2 في صورة رقم صحيح ذو دقة مضاعفة 32 خانة وتغيير RLO طبقا للنتيجة

مثال :

L MD10 //Load contents of MD10 (double integer, 32 bits).
L ID24 //Load contents of ID24 (double integer, 32 bits).
>D //Compare if ACCU 2 (MD10) is greater (>) than ACCU 1 (ID24).
= M 2.0 //RLO = 1 if MD10 > ID24


مقارنة الأرقام العشرية ذات الدقة 32 خانة
Compare Floating-Point Number 32-Bit


Format
==R, <>R, >R, <R, >=R, <=R



وهنا تتم مقارنة محتويات ACCU1 , ACCU2 في صورة رقم عشري ذو دقة 32 خانة وتغيير RLO طبقا للنتيجة

مثال :

L MD10 //Load contents of MD10 (floating-point number).
L 1.359E+02 //Load the constant 1.359E+02.
>R //Compare if ACCU 2 (MD10) is greater (>) than ACCU 1 (1.359-E+02).
= M 2.0 //RLO = 1 if MD10 > 1.359E+02

PLCMan
Admin

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

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

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

مُساهمة من طرف anasabsi في الإثنين 5 ماي 2008 - 8:16

السلام عليكم

يعطيك العافية يا مهندس حسن

انا حابب اشكرك اولا

ثانيا عندي لك سؤال - كيف الطريقة لتحميل برنامج من PLC الى الكمبيوتر عن طريق برنامج simatic manger ??
و السؤال مهم علشان اعمل Backup لجميع البرامج الموجودة عندي في المصنع , علما ان كل plc الموجودة في
المصنع هي S300

انتظر الاجابة و شكرا

anasabsi
جندي
جندي

عدد المساهمات : 4
سجّل في : 20 أبريل 2008
العمر : 24

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

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

مُساهمة من طرف PLCMan في الإثنين 5 ماي 2008 - 12:14

anasabsi كتب:السلام عليكم

يعطيك العافية يا مهندس حسن

انا حابب اشكرك اولا

ثانيا عندي لك سؤال - كيف الطريقة لتحميل برنامج من PLC الى الكمبيوتر عن طريق برنامج simatic manger ??
و السؤال مهم علشان اعمل Backup لجميع البرامج الموجودة عندي في المصنع , علما ان كل plc الموجودة في
المصنع هي S300

انتظر الاجابة و شكرا


الأخ anasabsi شكرا على حسن المتابعة وإليك أخي كيفية تحميل البرامج من PLC إلى الكمبيوتر Uploading

أولا افتح Simatic manager ثم أغلق أي Projrct مفتوح ليكون مثل الصورة التالية :


بعد ذلك قم بإنشاء مشروع جديد new project مثل الصورة التالية :


بعد ذلك قم بكتابة اسم المشروع وليكن machine1 في المكان name وتحديد مكان التخزين مثل الصورة التالية


سوف يتم إنشاء مشروع خالي باسم machine1 كما بالصورة التالية :


بعد ذلك من قائمة PLC اختر Upload station to PG كما في الصورة التالية :


سوف يظهر مربع حوار به أنواع الاتصالات مع CPU مثل الصورة الآتية , اختر نوع الاتصال سواء كان MPI أو PROFIBUS ثم اضغط VIEW


سوف تظهر قائمة بأنواع CPU الموجودة Online ( في حالة CPU واخدة فقط ليست على شبكة سوف تظهر هي فقط ) اضغط على الوحدة المطلوب تحميل محتوياتها ثم Upload

سوف تبدأ عمليات التحميل بعد ذلك راقب الرسائل التي تظهر وأجب عليها بالشكل المناسب حتى تنتهي عملية التحميل ويظهر لك المشروع بالشكل الآتي :


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

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

مع التمنيات بالتوفيق

PLCMan
Admin

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

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

الدرس رقم -13 ( استكمال الدرس رقم -6 ) Bit logic operations

مُساهمة من طرف PLCMan في الخميس 8 ماي 2008 - 22:11

والآن قد آن الأوان لنستكمل ما كنا قد تركناه من عمليات منطقية في الدرس رقم-6 والتي أشار إليها أحد الزملاء وقتها

أولا : العمليات المتداخلة Nested operations


فليست كل العمليات توصيل توالي مطلق أو توصيل توازي مطلق وإنما في معظم الأحيان هناك تداخل بين العمليات يستدعي الخلط بين هذا وذاك مثل المثال التالي :



ففي المثال السابق هناك عملية AND بين عمليتي OR أساسيتين ونبدأ بسرد العمليات

O And before Or

والصيغة العامة لها هي : O
في هذه يتم عمل ORing على نتائج عمليات ANDing سابقة ويتضح هذا من المثالى التالي :



A( And with Nesting Open

والصيغة العامة لها : A(

وهذا الأمر يقوم بعمل ANDing لنتائج عمليات ORing سابقة مثل المثال التالي :



AN( And Not with Nesting Open

ولهذا الأمر نفس التفصيلات الخاصة ب A( تماما ومثله ما يلي

O( Or with Nesting Open


ON( Or Not with Nesting Open


X( Exclusive Or with Nesting Open


XN( Exclusive Or Not with Nesting Open


ويتم في النهاية غلق أي تداخل فيه قوس مفتوح مثل أي لغة برمجة بغلق هذا القوس بالأمر التالي :

) Nesting Closed

ويجب ملاحظة أن أقصى عدد من تداخل الأقواس هو 7 ولابد أن يكون عدد مرات الفتحي ) مساويا لعدد مرات الغلق ( وإلا فسوف يعطي البرنامج خطأ في التنفيذ

والآن إلى أوامر اكتشاف حافة إشارة ولنفهم الأمر ننظر أولا إلى الصورة لنعرف ما المقصود بحافة الإشارة :



فهنا عندنا الحافة الأولى وهي عند الانتقال من 0 إلى 1 وتسمى Positive edge أو الحافة الموجبة والثانية عند الانتقال من 1 إلى 0 وتسمى Negative egde الحافة السالبة وهناك أمر لاكتشاف هذا التغير كالآتي :

FN Edge Negative


وهو لاكتشاف الحافة السالبة ولكي نفهم الأداء الوظيفي مع التنفيذ المثال التالي على كيفية التنفيذ :



ومن ملاحظة هذا المثال فإن الخرج يكون موجود لدورة تنفيذ للبرنامج فقط وبهذا يكون تقريبا في شكل Impulse أو حسب طول دورة تنفيذ البرنامج

FP Edge Positive



وهو لاكتشاف الحافة الموجبة ولكي نفهم الأداء الوظيفي مع التنفيذ المثال التالي على كيفية التنفيذ :


PLCMan
Admin

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

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

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

مُساهمة من طرف semsem في الخميس 15 ماي 2008 - 23:25

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

semsem
رقيب
رقيب

عدد المساهمات : 21
سجّل في : 05 أبريل 2008

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

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

مُساهمة من طرف PLCMan في الجمعة 16 ماي 2008 - 1:31

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


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

وجزاكم الله خيرا

المدير

PLCMan
Admin

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

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

سؤال على الماشي

مُساهمة من طرف anasabsi في الأحد 18 ماي 2008 - 6:38

سلام :
كيفك يا مهندس حسن و بشكرك على نشاطك الدائم
انا ما عملت تحميل البرنامج من plc لحد الآن ولكن لما ابدا عمل راح اتواصل معك ان شاء الله

بس حابب اتأكد هل في خطر على البرنامج الموجود على plc اذا سحبناه على الكمبيوتر ؟؟؟؟

عندي كمان سؤال صغير ... ما هي احسن انواع plc هل هي siemens ولا omron ولا غيرها ؟؟؟؟

وشكرا

anasabsi
جندي
جندي

عدد المساهمات : 4
سجّل في : 20 أبريل 2008
العمر : 24

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

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

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


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

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