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

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

شاطر | 
 

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

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
انتقل الى الصفحة : الصفحة السابقة  1, 2, 3 ... 11 ... 21  الصفحة التالية

هل تشعر أنه يمكن أن نلحق بمن سبقنا في مجال التحكم الآلي ؟
نعم بالتأكيد
75%
 75% [ 851 ]
ربما يوما ما
16%
 16% [ 179 ]
لا أظن الأمر بهذه البساطة
8%
 8% [ 95 ]
لا يمكن
1%
 1% [ 8 ]
مجموع عدد الأصوات : 1133
 

كاتب الموضوعرسالة
PLCMan
Admin
avatar

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

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   الأحد 18 مايو 2008 - 5:49

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

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

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

وشكرا

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

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

أما لماذا اخترت سيمنس للبدء في هذا المنتدى فهذا لأسباب :

منها الانتشار سواء الأنواع القديمة S5 أو الحديثة S7
ومنها الإمكانيات العالية التي سوف تلقي الضوء على ما قد نجده أولا نجده في الأنواع الأخرى
ومنها أنني أتكلم حاليا عن ما أعلم أكثر لكي يكون الأمر أكثر فائدة فبالنسبة لي فأنا والحمد لله عملت بأنواع كثيرة ولكن النوع المفضل عندي هو سيمنس وهذا ليس عيب في الآخرين ولكن كما قلت لك حسب التطبيق وقد نفذت خطوط إنتاج بالكامل ب LG وكذلك بميتسوبيشي وغيرها ولكن S7 بالنسبة لي تعتبر هي المقدمة مع احترامي الشديد للآخرين ومازال العيب الرئيسي عند سيمنس هو ارتفاع الأسعار ولو تم علاج هذا لكان للأمر وضع آخر
كذلك من الأسباب استقرار النظام وقلة المشاكل في PLC نفسها وفي هذا OMRON , ALLEN BRADELY

عموما دراسة أي مشروع هي التي تحدد ما سوف نحتاجه تماما

أرجو أن أكون قد أوضحت وبارك الله فيك وأنار طريقك بالعلم النافع دائما

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

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

مُساهمةموضوع: الدرس رقم 14 : تعليمات العدادات Counter instructions   السبت 24 مايو 2008 - 11:39

والآن لنتعرف معا كيف نتعامل مع Counters أو العدادات وبنظرة سريعة فإن العمليات التي تتم على العدادت هي إما العد لأعلى أو العد لأسفل أو تحميل القيمة التي وصل إليها العداد إما في شكل BCD أو Binary أو ضبط قيمة العداد على قيمة معينة أو تصفير العداد وسوف نستعرض ذلك بالتفصيل في الأسطر القليلة التالية :

FR Enable Counter

وهو يعني البدء في تشغيل العداد عند تحقق الشرط الذي يسبقه وليس المقصود هنا هو بدء العد وإنما يكون العداد جاهز لأي من العمليات التي تتم عليه

مثال :

A I 2.0 //Check signal state at input I 2.0
FR C3 //Enable counter C3 when RLO transitions from 0 to 1


L Load Current Counter Value into ACCU 1

أي تحميل محتويات العداد الحالية داخل ACCU1-L بعد أن يتم نقل محتويات ACCU1 بالكامل إلى ACCU2

مثال :

L C3 //Load ACCU 1-L with the count value of counter C3 in binary format


الشكل التالي يوضح كيفية نقل البيانات من العداد إلى ACCU1



LC Load Current Counter Value into ACCU 1 as BCD

وهو يقوم بنفس عمل الأمر السابق ولكن ينقل البيانات من العداد المشار إليه إلى ACCU1 في شكل BCD

مثال :

LC C3 //Load ACCU 1-L with the count value of counter C3 in binary coded decimal
format


والشكل التالي يوضح كيفية نقل البيانات من العداد C3 إلى ACCU1 في شكل BCD



R Reset Counter

وهو يقوم بتحميل " 0 " داخل العداد المشار إليه عند تحقق الشرط المطلوب

مثال :

A I 2.3 //Check signal state at input I 2.3
R C3 //Reset counter C3 to a value of 0 if RLO transitions from 0 to 1


S Set Counter Preset Value

يقوم بتحميل العداد بقيمة للعد من ACCU1-L بحيث تكون في صورة BCD عند تحقق الشرط المطلوب

A I 2.3 //Check signal state at input I 2.3
L C#3 //Load count value 3 into ACCU 1-L
S C1 //Set counter C1 to count value if RLO transitions from 0 to 1


CU Counter Up

أي زيادة قيمة العداد " 1 " عند تحقق الشرط طالما أن قيمة العداد أقل من " 999 " وعند الوصول إلى الرقم " 999 " في العداد لا يوجد أي تأثير لهذا الإجراء ويتوقف العداد عن العد لأعلى مع خروج " 1" على خانة OV - Overflow على خانات مراقبة نتائج العمليات Status bit register

مثال :

A I 2.1 //If there is a positive edge change at input I 2.1
CU C3 //Counter C3 is incremented by 1 when RL0 transitions from 0 to 1


CD Counter Down

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

مثال :

L C#14 //Counter preset value
A I 0.1 //Preset counter after detection of rising edge of I 0.1
S C1 //Load counter 1 preset if enabled
A I 0.0 //One count down per rising edge of I 0.0
CD C1 //Decrement counter C1 by 1 when RL0 transitions from 0 to 1 depending on input
I 0.0
AN C1 //Zero detection using the C1 bit
Q 0.0 //Q 0.0 = 1 if counter 1 value is zero=

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

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

مُساهمةموضوع: الدرس رقم 15 : تعليمات التحكم المنطقي Logic Control Instructions   الخميس 29 مايو 2008 - 12:19

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

وهنا لدينا عمليتان هما Jump و Loop وفي الحلتين يتم استخدام العنوان الذي يتم الذهاب إليه عن طريق Label مكون من مجموعة من الحروف والأرقام عددها أربعة على أن تبدأ بحرف ويعتمد الأمران على نتيجة العملية المنطقية السابقة للتنفيذ RLO وفيما يلي التفاصيل

JU Jump Unconditional

Format
JU jump label
jump label : Symbolic name of jump destination

في هذه العملية يتم قطع التسلسل الطبيعي لتنفيذ البرنامج والانتقال إلى مكان label دون النظر إلى نتيجة أي عملية منطقية مع ملاحظة ضرورة وجود الأمر JU و label في نفس block

مثال :

A I 1.0
A I 1.2
JC DELE //Jump if RLO=1 to jump label DELEL MB10
INC 1
T MB10
JU FORW //Jump unconditionally to jump label FORW
DELE: L 0
T MB10
FORW: A I 2.1 //Program scan resumes here after jump to jump label FORW



JL Jump to Labels

Format
JL jump label
jump label Symbolic name of jump destination.


وهو ما يطلق عليه الوثب المتعدد multiple jump حيث يتم تحديد قيمة رقم بين 0 و 256 وهو الذي يحدد نتيجة عملية الوثب حيث أنه بناء على محتويات ACCU1-L-L Byte يتم تحديد وجهة الوثب وعند كتابة هذا الأمر فإنه يتم كتابته على عدة سطور السطر الأول يكون JL متبوعا بلرمز label للمكان الذي يتم الانتقال إليه ويكون السطر التالي JU متبوعا برمز المكان الذي يتم الانتقال إليه في حالة محتويات ACCU1-L-L بصفر والثالث JU متبوعا برمز المكان الذي يراد الانتقال إليه إذا كانت المجتويات 1 وهكذا حتى يكون السطر الأخير أقل من الحد الأقصى للمحتويات الافتراضية ب 1 وسوف يوضح المثال التالي أكثر :


L MB0 //Load jump destination number into ACCU 1-L-L
JL LSTX //Jump destination if ACCU 1-L-L > 3
JU SEG0 //Jump destination if ACCU 1-L-L = 0
JU SEG1 //Jump destination if ACCU 1-L-L = 1
JU COMM //Jump destination if ACCU 1-L-L = 2
JU SEG3 //Jump destination if ACCU 1-L-L = 3
LSTX: JU COMM
SEG0: * //Permitted instruction
*
JU COMM
SEG1: * //Permitted instruction
*
JU COMM
SEG3: * //Permitted instruction
*
JU COMM
COMM: * //Permitted instruction

*


JC Jump if RLO = 1

Format
JC jump label
jump label Symbolic name of jump destination

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

مثال :

A I 1.0
A I 1.2
JC JOVR //Jump if RLO=1 to jump label JOVR
L IW8 //Program scan continues here if jump is not executed
T MW22
JOVR: A I 2.1 //Program scan resumes here after jump to jump label JOVR


JCN Jump if RLO = 0

Format
JCN jump label
jump label Symbolic name of jump destination


وفي هذا الأمر يتم الانتقال في حالة نتيجة RLO بصفر وليس 1 وله نفس مواصفات الأمر السابق

مثال :

A I 1.0
A I 1.2
JCN JOVR //Jump if RLO = 0 to jump label JOVR
L IW8 //Program scan continues here if jump is not executed
T MW22
JOVR: A I 2.1 //Program scan resumes here after jump to jump label JOVR


JCB Jump if RLO = 1 with BR

Format
JCB jump label
jump label Symbolic name of jump destination


في هذه الحالة الأمر مثل أمر JC تماما مع ضبط BRbit بقيمة RLO سواء صفر أو 1

مثال :

A I 1.0
A I 1.2
JCB JOVR //Jump if RLO = 1 to jump label JOVR. Copy the contents of the RLO bit into the BR bit
L IW8 //Program scan continues here if jump is not executed
T MW22
JOVR: A I 2.1 //Program scan resumes here after jump to jump label JOVR


JNB Jump if RLO = 0 with BR

Format
JNB jump label
jump label Symbolic name of jump destination


مثال :

A I 1.0
A I 1.2
JNB JOVR //Jump if RLO = 0 to jump label JOVR. Copy RLO bit contents into the BR bit
L IW8 //Program scan continues here if jump is not executed
T MW22
JOVR: A I 2.1 //Program scan resumes here after jump to jump label JOVR


نكتفي بهذا القدر اليوم وسوف يتم الاستكمال لاحقا

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

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

مُساهمةموضوع: الدرس رقم -16 استكمال تعليمات التحكم المنطقي Logic Control Instructions   الإثنين 2 يونيو 2008 - 13:09


JBI Jump if BR = 1

Format
JBI jump label

jump label Symbolic name of jump destination


وهذا الأمر للانتقال إلى مكان معين في البرنامج محدد بالرمز label بناء على تغير قيمة BR في Status register word إلى 1

JNBI Jump if BR = 0

Format
JNBI jump label

jump label Symbolic name of jump destination
Description


وهو للانتقال إلى مكان في البرنامج محدد بالرمز label في حالة تغير خانة BR إلى 0

JO Jump if OV = 1

Format
JO jump label

jump label Symbolic name of jump destination



وهو للانتقال إلى مكان في البرنامج محدد بالرمز label في حالة تغير خانة OV ( أي Overflow ) إلى 1

مثال :

L MW10
L 3
*I //Multiply contents of MW10 by "3"
JO OVER //Jump if result exceeds maximum range OV=1
T MW10 //Program scan continues here if jump is not executed
A M 4.0
R M 4.0
JU NEXT

OVER: AN M 4.0 //Program scan resumes here after jump to jump label OVER
S M 4.0
NEXT: NOP 0 //Program scan resumes here after jump to jump label NEXT


JOS Jump if OS = 1


Format
JOS jump label

jump label Symbolic name of jump destination


وهو الانتقال إلى المكان المحدد بالرمز label في حالة الخانة OS إلى 1

مثال :

L IW10
L MW12
*I
L DBW25
+I
L MW14
-I

JOS OVER //Jump if overflow in one of the three instructions during
calculation OS=1
See Note
T MW16 //Program scan continues here if jump is not executed
A M 4.0
R M 4.0
JU NEXT

OVER: AN M 4.0 //Program scan resumes here after jump to jump label OVER
S M 4.0
NEXT: NOP 0 //Program scan resumes here after jump to jump label NEXT

Note
In this case do not use the JO instruction. The JO instruction would only check the
previous -I instruction if an overflow occurred
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
PLCMan
Admin
avatar

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

مُساهمةموضوع: الدرس رقم -17 استكمال تعليمات التحكم المنطقي Logic Control Instructions   الثلاثاء 10 يونيو 2008 - 15:45

JZ Jump if Zero

Format
JZ jump label
jump label : Symbolic name of jump destination


في حالة CC 1 = 0 و CC 0 = 0 يتم الانتقال إلى الموضع المحدد بالرمز label

مثال :

L MW10
SRW 1
JZ ZERO //Jump to jump label ZERO if bit that has been shifted out = 0
L MW2 //Program scan continues here if jump is not executed
INC 1
T MW2
JU NEXT

ZERO: L MW4 //Program scan resumes here after jump to jump label ZERO
INC 1
T MW4

NEXT: NOP 0 //Program scan resumes here after jump to jump label
NEXT


JN Jump if Not Zero

Format
JN jump label
jump label : Symbolic name of jump destination


إذا تحقق الشرط التالي يتم الانتقال إلى المكان المحدد بالرمز label
(CC 1=0/CC 0=1 or CC 1=1/CC 0=0)

مثال :

L IW8
L MW12
XOW
JN NOZE
//Jump if the contents of ACCU 1-L are not equal to zero
AN M 4.0 //Program scan continues here if jump is not executed
S M 4.0
JU NEXT

NOZE: AN M 4.1 //Program scan resumes here after jump to jump label NOZE
S M 4.1
NEXT: NOP 0
//Program scan resumes here after jump to jump label NEXT


JP Jump if Plus


Format
JP jump label
jump label : Symbolic name of jump destination


في حالة نتيجة آخر عملية أكبر من الصفر أي CC 1 = 1 and CC 0 = 0 يتم الانتقال إلى المكان المحدد بالرمز label

مثال :

L IW8
L MW12
-I
//Subtract contents of MW12 from contents of IW8
JP POS //Jump if result >0 that is, ACCU 1 > 0
AN M 4.0 //Program scan continues here if jump is not executed
S M 4.0
JU NEXT

POS: AN M 4.1 //Program scan resumes here after jump to jump label POS
S M 4.1
NEXT: NOP 0
//Program scan resumes here after jump to jump label NEXT


JM Jump if Minus


Format
JM jump label
jump label : Symbolic name of jump destination


في حالة نتيجة آخر عملية أقل من الصفر أي CC 1 = 0 and CC 0 = 1 يتم الانتقال إلى المكان المحدد بالرمز label

مثال :

L IW8
L MW12
-I
//Subtract contents of MW12 from contents of IW8
JM NEG //Jump if result < 0 that is, contents of ACCU 1 < 0
AN M 4.0 //Program scan continues here if jump is not executed
S M 4.0
JU NEXT
NEG: AN M 4.1
//Program scan resumes here after jump to jump label NEG
S M 4.1
NEXT: NOP 0
//Program scan resumes here after jump to jump label NEXT


JPZ Jump if Plus or Zero

Format
JPZ jump label
jump label : Symbolic name of jump destination


في حالة نتيجة آخر عملية أكبر من أو تساوي الصفر أي
(CC 1=0/CC 0=0 or CC 1=1/CC 0=0) يتم الانتقال إلى المكان المحدد بالرمز label

مثال :

L IW8
L MW12
-I
//Subtract contents of MW12 from contents of IW8
JPZ REG0 //Jump if result >=0 that is, contents of ACCU 1 >= 0
AN M 4.0 //Program scan continues here if jump is not executed
S M 4.0
JU NEXT
REG0: AN M 4.1
//Program scan resumes here after jump to jump label
REG0
S M 4.1
NEXT: NOP 0
//Program scan resumes here after jump to jump label NEXT


JMZ Jump if Minus or Zero


Format
JMZ jump label
jump label : Symbolic name of jump destination


في حالة النتيجة أقل من أو يساوي الصفر أي CC 1=0/CC 0=0 or CC 1=0/CC 0=1 يتم الانتقال إلى المكان المحدد بالرمز label

مثال :

L IW8
L MW12
-I
//Subtract contents of MW12 from contents of IW8
JMZ RGE0 //Jump if result <=0 that is, contents of ACCU 1 <= 0
AN M 4.0 //Program scan continues here if jump is not executed
S M 4.0
JU NEXT
RGE0: AN M 4.1
//Program scan resumes here after jump to jump label RGE0
S M 4.1
NEXT: NOP 0
//Program scan resumes here after jump to jump label NEXT


JUO Jump if Unordered


Format
JUO jump label
jump label : Symbolic name of jump destination

في حالة النتيجة غير محددة أي CC 1 = 1 and CC 0 = 1 وهذا يتحقق في أي من الحالات الآتية :
- عند القسمة على صفر
- عند استعمال أمر بشكل خاطئ ( للتعامل مع الحسابات )
- عند مقارنة الأرقام العشرية في حالة وجود خطأ في التنسيق Format
وعندها يتم الانتقال إلى المكان المحدد بالرمز label

L MD10
L ID2
/D
//Divide contents of MD10 by contents of ID2
JUO ERRO //Jump if division by zero that is, ID2 = 0
T MD14 //Program scan continues here if jump is not executed
A M 4.0
R M 4.0
JU NEXT
ERRO: AN M 4.0
//Program scan resumes here after jump to jump label ERRO
S M 4.0
NEXT: NOP 0
//Program scan resumes here after jump to jump label NEXT


LOOP Loop

Format
LOOP jump label
jump label : Symbolic name of jump destination


يتم الانتقال إلى المكان المحدد بالرمز label طالما محتويات ACCU1-L أكبر من الصفر وفي كل مرة يتم تقليل محتويات ACCU1-L بمقدار 1

مثال :

Example for calculating the factor of 5

L L#1 //Load the integer constant (32 bit) into ACCU 1
T MD20 //Transfer the contents from ACCU 1 into MD20 :initialization
L 5 //Load number of loop cycles into ACCU 1-L
NEXT: T MW10 //Jump label = loop start / transfer ACCU 1-L to loop counter
L MD20
* D
//Multiply current contents of MD20 by the current contents of MB10T
MD20 //Transfer the multiplication result to MD20
L MW10 //Load contents of loop counter into ACCU 1
LOOP NEXT //Decrement the contents of ACCU 1 and jump to the NEXT jump label if
ACCU 1-L > 0
L MW24 //Program scan resumes here after loop is finished
L 200
>I
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
PLCMan
Admin
avatar

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

مُساهمةموضوع: تعليمات التحكم في البرنامج Program control instructions   الثلاثاء 17 يونيو 2008 - 14:40

هذه التعليمات التي سوف نتعرض لها تتعلق غالبا باستدعاء وظائف معينة أو إنهاء جزء معين من البرنامج وسوف نعرض لها بالتفصيل أمرا أمرا

BE Block End


وهذا الأمر يأخذ الصيغة BE في الكتابة وهو ببساطة يقوم بإنهاء Block قيد التنفيذ سواء كان OB أو FC أو FB أو أي نوع وينتقل مباشرة إلى الأمر التالي في ترتيب تشغيل البرنامج ولو كان هذا مثلا في OB1 فإن هذا يعني بدء التنفيذ من أول Block مرة أخرى وعدم استكمال التنفيذ بشكل تسلسلي

مثال :

A I 1.0
JC NEXT
//Jump to NEXT jump label if RLO = 1 , I 1.0 = 1
L IW4 //Continue here if no jump is executed
T IW10
A I 6.0
A I 6.1
S M 12.0
BE
//Block end
NEXT: NOP 0
//Continue here if jump is executed



BEC Block End Conditional



وهذا الأمر مثل السابق تماما عدا أنه لا يتم تنفيذه إلا إذا تحقق الشرط السابق له أي تكون RLO=1 أما في حالة عدم تحقق الشرط RLO=0 عند مرور البرنامج على الأمر BEC فإنه لا يتم التنفيذ

مثال :

A I 1.0 //Update RLO
BEC //End block if RLO = 1
L IW4 //Continue here if BEC is not executed, RLO = 0
T MW10



BEU Block End Unconditional


لا أجد فرق بينه وبين BE حيث يقوم بإنهاء Block دون الاعتماد على شرط أو نتيجة RLO

CALL Block Call


Format
CALL : logic block identifier


حيث أن logic block identifier يمكن أن يكون :

FC : Function --> CALL FCn
SFC : System function --> CALL SFCn
FB : Function block --> CALL FBn1,DBn2
SFB : System function block --> CALL SFBn1,DBn2



وهذا الأمر يستخدم لاستدعاء FC,FB,SFC,SFB سواء برقمها أو باسمها الرمزي مع الوضع في الاعتبار وجوب إدراج رقم Data Block DB المصاحب لكل من FB , SFB كما هو واضح في طريقة كتابة الأمر في الأسطر السابقة وهو يقوم بنقل تنفيذ البرنامج إلى FC,FB,SFC,SFB المطلوب دون أي اعتبار لمحتوياته وبعد انتها التنفيذ يعود البرنامج إلى السطر الذي يلي أمر Call في التسلسل الطبيعي للبرنامج

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

ومن الأمور الهامة جدا عند استدعاء أي دالة وظيفية من الأنواع الأربعة عملية تمرير المتغيرات إلى الدالة الوظيفية في حالة وجودها Passing parameters

وسوف يتضح ذلك من الأمثلة الآتية :

Example : Assigning parameters to the FC6 call



CALL FC6
Formal parameter Actual parameter
NO OF TOOL := MW100
TIME OUT := MW110
FOUND := Q 0.1
ERROR := Q 100.0


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

Example : Calling FB99 with instance data block DB1


CALL FB99,DB1
Formal parameter Actual parameter
MAX_RPM := #RPM1_MAX
MIN_RPM := #RPM1
MAX_POWER := #POWER1
MAX_TEMP := #TEMP1



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


عدد الرسائل : 521
العمر : 42
تاريخ التسجيل : 13/06/2008

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   الجمعة 20 يونيو 2008 - 11:17

شكرا شكرا شكرا وفي انتظار المزيــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــد

lol! lol! lol! lol! lol! lol! lol! lol! lol! lol!

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

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

مُساهمةموضوع: تابع تعليمات التحكم في البرنامج Program control instructions   السبت 21 يونيو 2008 - 12:06

والآن سوف نستكمل ما سبق من تعليمات التحكم في البرنامج

Call FB


Format
CALL FB n1, DB n1


هذا الأمر يستخدم لاستدعاء الدوال الوظيفية FB التي تم عملها عن طريق صانع البرنامج ويتم الاستدعاء كعنوان address فقط دون النظر لنتيجة RLO لمحتوياتها ويجب هنا تحديد Data block DB المصاحب لها ويكون تنفيذ الدالة الوظيفية بنفس الشكل التسلسلي حيث يمر ابرنامج بعد تنفيذها إلى ما بعدها في تسلسل البرنامج الطبيعي ويمكن استدعاء الدالة باسمها أو برمزها إذا تم إعطاؤها رمز Symbol

تمرير البيانات إلى الدالة الوظيفية Passing parameters


وحيث أن لكل دالة متغيرات فيجب عند استدعاء الدالة أن يتم تحديد مصادر المدخلات لها ووجهة المخرجات منها مثل المثال الآتي :

CALL FB99,DB1
Formal parameter Actual parameter
MAX_RPM := #RPM1_MAX
MIN_RPM := #RPM1
MAX_POWER := #POWER1
MAX_TEMP := #TEMP1


مثال آخر :

CALL FB99,DB2
Formal parameter Actual parameter
MAX_RPM := #RPM2_MAX
MIN_RPM := #RPM2
MAX_POWER := #POWER2
MAX_TEMP := #TEMP2


Call FC


Format
CALL FC n


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


تمرير البيانات إلى الدالة الوظيفية Passing parameters


وحيث أن لكل دالة متغيرات فيجب عند استدعاء الدالة أن يتم تحديد مصادر المدخلات لها ووجهة المخرجات منها مثل المثال الآتي :

CALL FC6
Formal parameter Actual parameter
NO OF TOOL := MW100
TIME OUT := MW110
FOUND := Q0.1
ERROR := Q100.0


Call SFB


Format
CALL SFB n1, DB n2


وهذا الأمر يستخدم لاستدعاء الدوال الوظيفية الخاصة من سيمنس standard function blocks (SFBs) supplied by Siemens ويجب أيضا تحديد Data block المصاحب للدالة وينطبق عليها ما ينطبق على التعليمات السابقة وكذلك تمرير البيانات

مثال :

CALL SFB4,DB4
Formal parameter Actual parameter
IN: I0.1
PT: T#20s
Q: M0.0
ET: MW10


Call SFC


Format
CALL SFC n


هذا الأمر لاستدعاء دالة وظيفية من إنتاج سيمنس من النوع standard functions (SFCs) supplied by Siemens دون النظر لمحتواها أو نتيجة RLO لما ينتج عنها وينطبق عليها ما سبق قوله بالنسبة للأنواع الأخرى من الدوال الوظيفية وكذلك تمرير البيانات

مثال :

CALL SFC43 //Call SFC43 to re-trigger watchdog timer - no parameters
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
RAMA
رائد
رائد


عدد الرسائل : 276
العمر : 47
الموقع : almadinah almnora
العمل/الترفيه : PLC PROGRAMMER
تاريخ التسجيل : 25/06/2008

مُساهمةموضوع: كورس رائع   الأربعاء 25 يونيو 2008 - 15:22

دوره ممتازه والى الامام م حسن الشحات
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
RAMA
رائد
رائد


عدد الرسائل : 276
العمر : 47
الموقع : almadinah almnora
العمل/الترفيه : PLC PROGRAMMER
تاريخ التسجيل : 25/06/2008

مُساهمةموضوع: الوقت والتاريخ   الأربعاء 25 يونيو 2008 - 15:27

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


عدد الرسائل : 276
العمر : 47
الموقع : almadinah almnora
العمل/الترفيه : PLC PROGRAMMER
تاريخ التسجيل : 25/06/2008

مُساهمةموضوع: ENCODER   الأربعاء 25 يونيو 2008 - 15:35

ارجو ايضاح كيفيه عمل 8 بت او 10 بت انكودر
حسب معرفتي الانكودر يتعامل مع GRAY CODE كيف يمكن تحويل هذا الكود الى BINARY
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
PLCMan
Admin
avatar

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

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   الأربعاء 25 يونيو 2008 - 15:50

RAMA كتب:
ارجو ايضاح كيفيه ضبط الوقت والتريخ
وكذلك كيفيه عمل تزامن بين وقت وتاريخ PLC وقت وتاريخ HMI

الأخ العزيز مرحبا بك في المنتدى

أرجو التوصيف أكثر عن المقصود بالتزامن ؟ هل هو أن يكون الوقت في PLC هو نفسه في HMI ؟ أم أن المقصود شئ آخر ؟

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

فهذا يعتمد على نوع HMI المستخدم فهل يعطي دعم لصيغ سيمنس في التعامل مع البيانات كلها ومنها الوقت أم لا

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

أو أن يتم العكس بأن يتم قراءة الوقت من PLC وضبط وقت HMI بنفس قيمة وقت PLC ولكن هذا يعتمد على إمكانيات ونوع HMI المستخدم

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

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

عدد الرسائل : 244
العمر : 45
تاريخ التسجيل : 03/03/2008

مُساهمةموضوع: اين نقاط التعويض   الأربعاء 25 يونيو 2008 - 16:24

لدى استفسار بسيط لم الاحظ وجود نقات التعويض داخل LADDER Diagram
ارجو الافادة فهذة اول مرة لى فى التعامل مع LADDER Diagram من خلال Working with STEP 7 كما ارجو توضيح تعليمة التيمر داخل plc
s5t#5n6s مع شرح هذا المثال وجذاكم اللة خيرا
وما من كاتبٍ إلا سـيفنى ويُبقي الدهـر ما كتبت يداه
فلا تكتبْ بكفكَ غير شيءٍ يَسـركَ في القيامة أنْ تراهُ

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

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

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   الأربعاء 25 يونيو 2008 - 16:41

RAMA كتب:
ارجو ايضاح كيفيه عمل 8 بت او 10 بت انكودر
حسب معرفتي الانكودر يتعامل مع GRAY CODE كيف يمكن تحويل هذا الكود الى BINARY

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

بالنسبة للتعامل مع الانكودر فإنه يوجد FM 350-1 or FM 350-2 وتلك Modules لها طرقة معينة للضبط ولها أيضا Package يتم توريدها على اسطوانة مع Module حيث يتم فيها تحديد نوع الانكودر ودقته وعنوان التعامل داخل PLC والوظيفة المطلوبة هل هي عداد أم قياس تردد وهكذا ويمكنك أن تجد التفاصيل بالكامل لكلا النوعين بتحميل الملفين الآتيين لشرح التعامل مع FM350-1 and FM350-2 Counter modules

FM 350-2 Function module

اضغط ماوس يمين ثم Save as أو Save target as

FM 350-1 Function module


اضغط ماوس يمين ثم Save as أو Save target as
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
RAMA
رائد
رائد


عدد الرسائل : 276
العمر : 47
الموقع : almadinah almnora
العمل/الترفيه : PLC PROGRAMMER
تاريخ التسجيل : 25/06/2008

مُساهمةموضوع: تزمن وقت وتاريخplc مع HMI   الخميس 26 يونيو 2008 - 11:17

م.حسن الشحات اشكرك جدا على سرعه الرد
اقصد بالتزامن هو توحيد الوقت والتاريخ بين plc s7 314 و op17 على سبيل الميثال
وكيفيه استحدام sfc0 sfc1
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
PLCMan
Admin
avatar

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

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   الخميس 26 يونيو 2008 - 13:11

ابو علاء كتب:
لدى استفسار بسيط لم الاحظ وجود نقات التعويض داخل LADDER Diagram
ارجو الافادة فهذة اول مرة لى فى التعامل مع LADDER Diagram من خلال Working with STEP 7 كما ارجو توضيح تعليمة التيمر داخل plc
s5t#5n6s مع شرح هذا المثال وجذاكم اللة خيرا
وما من كاتبٍ إلا سـيفنى ويُبقي الدهـر ما كتبت يداه
فلا تكتبْ بكفكَ غير شيءٍ يَسـركَ في القيامة أنْ تراهُ

العبد الغلبان ابو علاء

الأخ أبو علاء

لا يوجد إهمال للريشة التعويضية ( خاصة عند تصميم دوائر التشغيل والإيقاف البسيطة ) وإنما حتى الآن لم يرد أمامنا مثال لذلك وإليك في الصورة التالية كيفية تمثيل دائرة تشغيل/إيقاف موتور مع حماية أوفرلود



عذرا الصورة فيها خطأ بسيط حيث أن STARRT هو I0.1 و STOP هو I0.0

أما بخصوص التايمر فإنه كما سبق بالتفصيل في الدروس السابقة فإن التايمر في سيمنس له صيغة معينة لتعيين الوقت المحدد لتشغيل التايمر وهذه الصيغة ثابتة ولها الشكل الآتي مثلا :

S5T#100ms


حيث أن الجزء S5T يكتب كما هو هكذا وكذلك # أما الرقم بعدها فهو يعبر عن قيمة الوقت أما الحرف أو الحرفين التاليين فيعبران عن تمييز قيمة الوقت

مثلا ms تعبر عن أن هذا الرقم مللي ثانية
والحرف S يعبر عن أن هذا الوقت ثانية
والحرف M يعبر عن أن هذا الوقت دقيقة
والحرف H يعبر عن أن هذا الوقت ساعة

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

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

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   السبت 28 يونيو 2008 - 13:30

RAMA كتب:
م.حسن الشحات اشكرك جدا على سرعه الرد
اقصد بالتزامن هو توحيد الوقت والتاريخ بين plc s7 314 و op17 على سبيل الميثال
وكيفيه استحدام sfc0 sfc1

الأخ العزيز

عذرا للتأخر في الرد وذلك للتحقق الجيد من المطلوب فكما سبق في الرد السابق ويضاف على ذلك عند الرغبة في استعمال SFC0 لضبط وقت CPU واستعمال SFC1 لقراءة وقت CPU

ولمزيد من التفاصيل حول القائمة الكاملة للوظائف الخاصة والمجهزة عن طريق سيمنس إليك أخي هذا المرجع الكامل لجميع SFC من سيمنس للمحترفين وسوف تجد في فصل 5 البنود 5-1 و 5-2 تفاصيل استخدام SFC0 , SFC1

للتحميل اضغط هنا ماوس يمين ثم حفظ
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
PLCMan
Admin
avatar

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

مُساهمةموضوع: العمليات الحسابية على الأرقام الصحيحة   الإثنين 30 يونيو 2008 - 13:35

والآن دعونا نتعرض للعمليات الحسابية التي تتم على الأرقام الصحيحة

Integer math instructions


هناك نوعان من الأرقام الصحيحة كما سبق أن أوردنا ذلك في أنواع البيانات والمتغيرات الرقمية المستخدمة في S7
وهما الأرقام الصحيحة ذات الدقة 16 خانة Integers والأرقام الصحيحة ذات الدقة 32 خانة وتسمى Double or Long Integers

أما عن تأثر Status word بالعمليات الحسابية فالجدول التالي يبين ذلك ويمكن استخدام تلك الخانات في كنترول البرنامج :



Add ACCU 1 and ACCU 2 as Integer -16-Bit : +I
إضافة محتويات ACCU1-L إلى محتويات ACCU2-L ووضع النتيجة في ACCU1-L

وتتغير حالة Status word طبقا لحالة النتيجة كما في الجدول السابق

مثال :

L IW10
//Load the value of IW10 into ACCU 1-L//
L MW14
//Load the contents of ACCU1-L into ACCU2-L//
// Load the value of MW14 into ACCU1-L//
I+
//Add ACCU 2-L and ACCU 1-L; store the result in ACCU 1-L//
T DB1.DBW25
//The contents of ACCU 1-L (result) are transferred to DBW25 of DB1//


Subtract ACCU 1 from ACCU 2 as Integer -16-Bit : -I
طرح محتويات ACCU1-L من محتويات ACCU2-L ووضع النتيجة في ACCU1-L


وبحسب النتيجة تتغير محتويات Status word طبقا للجدول السابق

مثال :

L IW10
//Load the value of IW10 into ACCU 1-L//
L MW14
//Load the contents of ACCU 1-L into ACCU 2-L//
//Load the value of MW14 into//
ACCU 1-L
I-
//Subtract ACCU 1-L from ACCU 2-L; store the result in ACCU 1- L//
T DB1.DBW25
//The contents of ACCU 1-L (result) are transferred to DBW25 of DB1//


Multiply ACCU 1 and ACCU 2 as Integer 16-Bit : *I
ضرب محتويات ACCU1-L في محتويات ACCU2-L ووضع النتيجة بدقة 32 خانة في ACCU1


مع ملاحظة تأثر Status word بالنتائج طبقا للجدول السابق

مثال :


L IW10
//Load the value of IW10 into ACCU 1-L//
L MW14
//Load contents of ACCU 1-L into ACCU 2-L//
//Load contents of MW14 into ACCU1-L//
I*
//Multiply ACCU 2-L and ACCU 1-L, store result in ACCU 1//
T DB1.DBD25
//The contents of ACCU 1 (result) are transferred to DBW25 in DB1//


Divide ACCU 2 by ACCU 1 as Integer 16-Bit : /I
قسمة محتويات ACCU1-L على محتويات ACC2-L ووضع النتيجة في ACCU1 حيث ACCU1-L يحتوي على ناتج القسمة و ACCU1-H يحتوي على باقي القسمة


مع ملاحظة تأثر Status word بالنتيجة طبقا للجدول التالي :



مثال :

L IW10
//Load the value of IW10 into ACCU 1-L//
L MW14
//Load the contents of ACCU 1-L into ACCU 2-L//
//Load the value of MW14 into ACCU 1-L//
I/
//Divide ACCU 2-L by ACCU 1-L//
//store the result in ACCU 1: ACCU 1-L: quotient, ACCU 1-H: remainder//
T MD20
//The contents of ACCU 1 (result) are transferred to MD20//


وسوف نكمل إن شاء الله في المرة التالية
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
PLCMan
Admin
avatar

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

مُساهمةموضوع: تابع العمليات الحسابية على الأرقام الصحيحة   الأربعاء 2 يوليو 2008 - 13:07

Add Integer Constant 16-bit : +
إضافة رقم صحيح ذو دقة 16 خانة إلى محتويات ACCU1-L ووضع النتيجة في ACCU1-L دون التأثير على Status word


الصيغة العامة لاستعمال الأمر هي : " < Integer > + "

L IW10
//Load the value of IW10 into ACCU 1-L//
L MW14
//Load the contents of ACCU 1-L to ACCU 2-L //
//Load the value of MW14 into ACCU 1-L//
I+
//Add ACCU 2-L and ACCU 1-L; store the result in ACCU 1-L//
25+
//Add ACCU 1-L and 25; store the result in ACCU 1-L//
T DB1.DBW25
//Transfer the contents of ACCU 1-L (result) to DBW25 of DB1//


Add ACCU 1 and ACCU 2 as Double Integer 32-Bit : +D
ويقوم هذا الأمر بإضافة محتويات ACCU1 إلى محتويات ACCU2 ووضع النتيجة في ACCU1 مع تغيير Status word طبقا للجدول في الجزء السابق


الصيغة العامة للاستخدام هي : " D+ "

مثال :

L ID10
//Load the value of ID10 into ACCU1//
L MD14
//Load the contents of ACCU1 to ACCU2 //
//Load the value of MD14 into ACCU1//
D +
//Add ACCU2 and ACCU1; store the result in ACCU1//
T DB1.DBD25
//The contents of ACCU 1 (result) are transferred to DBD25 of DB1//


Subtract ACCU 1 from ACCU 2 as Double Integer 32-bit : -D
يقوم هذا الأمر بطرح محتويات ACCU1 من محتويات ACCU2 ووضع النتيجة في ACCU1 مع تغيير حالة Status word طبقا لحالة النتيجة كالجدول السابق


الصيغة العامة للأمر هي : " D - "

مثال :

L ID10
//Load the value of ID10 into ACCU 1//
L MD14
//Load the contents of ACCU 1 into ACCU 2 //
//Load the value of MD14 into ACCU 1//
D -
//Subtract ACCU 1 from ACCU 2; store the result in ACCU 1//
T DB1.DBD25
//The contents of ACCU 1 (result) are transferred to DBD25 of DB1//


Multiply ACCU 1 and ACCU 2 as Double Integer 32-Bit : * D
يقوم هذا الأمر بضرب محتويات ACCU1 في محتويات ACCU2 ووضع النتيجة في ACCU1 مع تغيير حالة Status word طبقا لحالة النتيجة حسب الجدول السابق ذكره


الصيغة العامة للأمر : " D * "

مثال :

L ID10
//Load the value of ID10 into ACCU 1//
L MD14
//Load contents of ACCU 1 into ACCU 2//
//Load contents of MD14 into ACCU1//
D *
//Multiply ACCU 2 and ACCU 1; store the result in ACCU 1//
T DB1.DBD25
//The contents of ACCU 1 (result) are transferred to DBD25 in DB1//


Divide ACCU 2 by ACCU 1 as Double Integer 32-Bit : / D
يقوم هذا الأمر بقسمة محتويات ACCU2 على محتويات ACCU1 مع وضع النتيجة في ACCU1 كناتج قسمة فقط وليس الباقي حيث هناك أمر آخر للباقي مع تغيير حالة Status word بحسب النتيجة وطبقا للجدول السابق


الصيغة العامة للأمر : " D / "

مثال :

L ID10
//Load the value of ID10 into ACCU 1//
L MD14
//Load the contents of ACCU 1 into ACCU 2//
//Load the value of MD14 into ACCU 1//
D /
//Divide ACCU 2 by ACCU 1; store the result (quotient) in ACCU 1//
T MD20
//The contents of ACCU 1 (result) are transferred to MD20//


MOD : Division Remainder Double Integer 32-Bit
يقوم هذا الأمر بتخزين باقي قسمة محتويات ACCU2 على محتويات ACCU1 في ACCU1 وطبقا لحالة النتيجة يتم تغيير حالة Status word طبقا للجدول السابق ذكره


الصيغة العامة للأمر هي : " MOD "

مثال :

L ID10
//Load the value of ID10 into ACCU 1//
L MD14
//Load the contents of ACCU 1 into ACCU 2//
//Load the value of MD14 into ACCU 1//
MOD
//Divide ACCU 2 by ACCU 1, store the result (remainder) in ACCU 1//
T MD20
//The contents of ACCU 1 (result) are transferred to MD20//


Add Integer Constant 32-Bit : +
يقوم هذا الأمر بإضافة ثابت صحيح في صورة 32 خانة إلى محتويات ACCU1 ووضع النتيجة في ACCU1 مع عدم التأثير على Status word


الصيغة العامة لهذا الأمر هي : " < Integer 32-bit > + "

مثال :

L MD20
L MD24
+D

//Add ACCU 1and ACCU 2; store the result in ACCU 1//
L#-200 +
//Add ACCU 1 and -200; store the result in ACCU 1//
T MD28
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
RAMA
رائد
رائد


عدد الرسائل : 276
العمر : 47
الموقع : almadinah almnora
العمل/الترفيه : PLC PROGRAMMER
تاريخ التسجيل : 25/06/2008

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   الأحد 6 يوليو 2008 - 15:40

الاخ PLCMAN
هل يمكن وضع PASSWARD لبرنامجS7
حتى لايتمكن احد من العبث في البرنامج
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
RAMA
رائد
رائد


عدد الرسائل : 276
العمر : 47
الموقع : almadinah almnora
العمل/الترفيه : PLC PROGRAMMER
تاريخ التسجيل : 25/06/2008

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   الأحد 6 يوليو 2008 - 15:59

الاخ PLCMAN
ارجو منك توضيح اكثر واعمق بالنسبه ل REAL NUMBERS
اين تستخدم ومتى ولماذا تستخدم مع العلم بوجد INTEGER NUMBER
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
RAMA
رائد
رائد


عدد الرسائل : 276
العمر : 47
الموقع : almadinah almnora
العمل/الترفيه : PLC PROGRAMMER
تاريخ التسجيل : 25/06/2008

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   الأحد 6 يوليو 2008 - 16:14

ماذا يخزن على MICRO MOMRY CARD
هل هو USER PROGRM ?
بتصوري DATA الخاصه ب DATA BLOOK
فقد قمت في احد المرات بعمل RESET PLC عن طريق مفتاح MRES الموجد على PLC
والنتيجه تم ارجاع قيم التايرات والكونترات المخزنه في الداتا بلوك الى قيمها الاوليه
ولم افقد اي جزء او بلوكه برمجيه من البرنامج
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
PLCMan
Admin
avatar

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

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   الأحد 6 يوليو 2008 - 21:44

RAMA كتب:
الاخ PLCMAN
هل يمكن وضع PASSWARD لبرنامجS7
حتى لايتمكن احد من العبث في البرنامج

يمكن هذا أخي العزيز عن طريق ضبط Properties الخاصة ب CPU حيث يمكن ضبط الحماية لمنع الكتابة على CPU أو حتى القراءة منها

فمن خلال Hardware configuration افتح Properties الخاصة ب CPU ثم اختر Protection ومنها اختر نوع الحماية الذي تريده مثل الصورة التالية





ولكن كن حذرا فقم بإدخال password بعناية ثم قم بتسجيلها حتى لا تفقد الاتصال بها بعد ذلك
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
PLCMan
Admin
avatar

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

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   الأحد 6 يوليو 2008 - 22:01

RAMA كتب:
الاخ PLCMAN
ارجو منك توضيح اكثر واعمق بالنسبه ل REAL NUMBERS
اين تستخدم ومتى ولماذا تستخدم مع العلم بوجد INTEGER NUMBER

أخي العزيز هناك فرق كبير بين استعمال الأرقام الصحيحة سواء الدقة العادية أو الدقة المضاعفة Double integers وبين الأرقام الحقيقية ذات العلامة العشرية Floating point numbers فمثلا الدوال الجذرية مثل الجذر التربيعي SQRT لا يمكن أن تكون رقم صحيح وكذلك الدوال المثلثية مثل SIN , COS , TAN وكذلك الدوال اللوغاريتمية مثل LOG , LN , EXP كذلك هناك ثوابت عند عمل بعض الحسابات مثل النسبة التقريبية لحسابات الدائرة - ط أو كما يعرفها الجميع 3.14159
وهذه الحسابات عند إجراء بعض العمليات قد تكون ضرورية جدا وقد اضطررت لذلك فعليا عند عمل حسابات أوزان سلك يتم لفه على بكرة أو خيط وهكذا

ولكن عند التعامل مع العمليات البسيطة التي لا تحتاج إلى دقة عالية مثل عمليات الإدخال والإخراج المباشر من Analoge inputs and outputs والعدادات فهي لا تحتاج سوى أرقام صحيحة وبالتالي نستخدم Integers للتقليل من حجم البرنامج حيث أن الحجم الذي يتم حجزه في الذاكرة للرقم العشري ضعف ما يتم حجزه للرقم الصحيح ولو كانت حساباتك لا تستدعي دقة عالية فلا داعي لاستخدام الأرقام العشرية

وذلك لزيادة سرعة البرنامج وخفض حجم الذاكرة المستخدمة وهو ما يطلق عليه Effective programming

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

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

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

مُساهمةموضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7   الأحد 6 يوليو 2008 - 22:24

RAMA كتب:
ماذا يخزن على MICRO MOMRY CARD
هل هو USER PROGRM ?
بتصوري DATA الخاصه ب DATA BLOOK
فقد قمت في احد المرات بعمل RESET PLC عن طريق مفتاح MRES الموجد على PLC
والنتيجه تم ارجاع قيم التايرات والكونترات المخزنه في الداتا بلوك الى قيمها الاوليه
ولم افقد اي جزء او بلوكه برمجيه من البرنامج

الأخ العزيز

بالنسبة ل MMC برجاء قبل عمل MRES التحقق جيدا من وظيفة MMC مع CPU المستخدمة وإن كان غالبا ما تستخدم لحفظ نسخة بديلة من البرنامج كليا حيث يتم تحميل هذه النسخة عند فقد النسخة المحفوظة في RAM الخاصة ب CPU وبالتالي فهي هنا تحتفظ بكل القيم الأولية المخزنة في Data blocks فتعود CPU إلى أول حالة تشغيل إضافة إلى باقي البرنامج

ولكن هناك في بعض الأنظمة الخاصة والعمليات الكبيرة والتي قد لا تكفي فيها ذاكرة CPU لحجم البرنامج الأصلي قد تستخدم كامتداد ل RAM الخاصة ب CPU فتحقق جيدا من نوع MMC الموجود لديك حتى لا تفقد أي جزء من البرنامج

يمكن الرجوع إلى Manual الخاص ب CPU للوقوف تماما على استعمالات MMC معها وحالات استعماله
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://hassanheha.forumn.org
 
دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 2 من اصل 21انتقل الى الصفحة : الصفحة السابقة  1, 2, 3 ... 11 ... 21  الصفحة التالية

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