| دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7 | |
|
+177محمد ألبحار دريد كمال Mourad Fakir حسني إمام osamarady فراس يحيى التقني المتخصص marocautomatique hiderznkna حامد هادي nacer ENG_ELDABLY خليل خليل ابراهيم azzouz Adam Hr سبها الحاج احمد عبد الخالق khmo AHMAD SAEED عماد جواد عبيد imad70 ابراهيم عبد الجيد radouan baskateur31 MOKHTAR nour.abderrahman احمد جمال محروس حورس plctxp1 bouridir mjalil80 محمد رياض ياسين Sallam ATHEER mohamed abdalla khaledmosa download master isam yemna mohamed antar fechlay ramy tech k30 Hassan Ahmed Hassan enhassan abdelouahab007 eng_mo7amed_3ly 0-1 إيمان محمد عيسى الحالم yahiaadam ahmed ag tamzargot79 rinom23 وائل عبد العال tamer sobhy ENG.SAMER SALAH التوأمان سعد عوني Hesham alshak وليد محمد على توفبق mohanad aljanaby abbas h a j ttmsm ammine ميدو ايهاب رمضان مهندس محمد رفعت حاتم حسيني سيداحمد2010 الفقير لله mohamedali247 ehab_abdelaleem kasimalbasry ehabmansi eng/walaa abdelaty hyan.rh pizomx hamadaaskar diaaeldin plctxp mr/slc500 neoala gamalgold boy abdo ابوهبه electric1500 magsod salah00 ahmed fahmy ramiou مهندس عباس sharkfish77 احمد سالم lotfy esaed ETEC awny alaa ali Mohamed Emara مقداد العاني محمد مليطان adder kingmohamed eng_nassar msaa60 kimo_6277 أحمدعبدالحي eng_zaiani amr ezzat elwan سيد زايد messaoud855 أحمد فاروق abo hozifa محمداحمدسعد محمد الزوكاني يوسف توفيق hany_omar SHERIEF MANDOR abdu72 hamada saied farouk bachair المنوفي man3660 alak21a zitamov محمد شعبان بدرى سعد السامرائي امجد adnan hashim marrro HOCINECOM norhan2001 noralale abo gamel ابو هبة said63 engmohallam هشام طه محمد أبو خالد مصطفى mhmd 4ever walidg شرشابيل nod22 الحادي Fahd Gumaan Al-Mansori mohsaid1111 حمزة81 nascom Alaa.Alzoby محمد عبدالقوي m_elshatr denger741 metwally.mustafa zeribi mm fahmy-mansour علىى sharif74 magdy99 moutaz ebenazzouz احمد حموده yousif_gc3 bassel almouie mone1 walidpcd youssefhobna GALALSAIF boualem_gh ابو علاء RAMA ahmed_h semsem anasabsi aliali PLCMan 181 مشترك |
|
هل تشعر أنه يمكن أن نلحق بمن سبقنا في مجال التحكم الآلي ؟ | نعم بالتأكيد | | 75% | [ 886 ] | ربما يوما ما | | 16% | [ 186 ] | لا أظن الأمر بهذه البساطة | | 8% | [ 97 ] | لا يمكن | | 1% | [ 8 ] |
| مجموع عدد الأصوات : 1177 | | |
|
كاتب الموضوع | رسالة |
---|
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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 عموما دراسة أي مشروع هي التي تحدد ما سوف نحتاجه تماما أرجو أن أكون قد أوضحت وبارك الله فيك وأنار طريقك بالعلم النافع دائما | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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=
| |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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
نكتفي بهذا القدر اليوم وسوف يتم الاستكمال لاحقا
| |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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
| |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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
| |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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
على وعد بلقاء لاستكمال باقي التعليمات الخاصة بالموضوع إن شاء الله | |
|
| |
ahmed_h عقيد
عدد الرسائل : 521 العمر : 49 تاريخ التسجيل : 13/06/2008
| موضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7 الجمعة 20 يونيو 2008 - 11:17 | |
| | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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
| |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: كورس رائع الأربعاء 25 يونيو 2008 - 15:22 | |
| دوره ممتازه والى الامام م حسن الشحات | |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: الوقت والتاريخ الأربعاء 25 يونيو 2008 - 15:27 | |
| ارجو ايضاح كيفيه ضبط الوقت والتريخ وكذلك كيفيه عمل تزامن بين وقت وتاريخ PLC وقت وتاريخ HMI | |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: ENCODER الأربعاء 25 يونيو 2008 - 15:35 | |
| ارجو ايضاح كيفيه عمل 8 بت او 10 بت انكودر حسب معرفتي الانكودر يتعامل مع GRAY CODE كيف يمكن تحويل هذا الكود الى BINARY | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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 المستخدم أتمنى أن يكون الخط الأساسي للبحث عن الحل قد وضح وإن كان هناك المزيد من الاستفسارات برجاء عدم التردد وسوف نبحث معا عن أفضل الحلول لأي مشكلة إن شاء الله | |
|
| |
ابو علاء رائد
عدد الرسائل : 244 العمر : 52 تاريخ التسجيل : 03/03/2008
| موضوع: اين نقاط التعويض الأربعاء 25 يونيو 2008 - 16:24 | |
| لدى استفسار بسيط لم الاحظ وجود نقات التعويض داخل LADDER Diagram ارجو الافادة فهذة اول مرة لى فى التعامل مع LADDER Diagram من خلال Working with STEP 7 كما ارجو توضيح تعليمة التيمر داخل plc s5t#5n6s مع شرح هذا المثال وجذاكم اللة خيرا وما من كاتبٍ إلا سـيفنى ويُبقي الدهـر ما كتبت يداه فلا تكتبْ بكفكَ غير شيءٍ يَسـركَ في القيامة أنْ تراهُ العبد الغلبان ابو علاء | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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 | |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: تزمن وقت وتاريخplc مع HMI الخميس 26 يونيو 2008 - 11:17 | |
| م.حسن الشحات اشكرك جدا على سرعه الرد اقصد بالتزامن هو توحيد الوقت والتاريخ بين plc s7 314 و op17 على سبيل الميثال وكيفيه استحدام sfc0 sfc1 | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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 يعبر عن أن هذا الوقت ساعة أرجو أن تكون الأمور قد اتضحت | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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 للتحميل اضغط هنا ماوس يمين ثم حفظ | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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//
وسوف نكمل إن شاء الله في المرة التالية | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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 | |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7 الأحد 6 يوليو 2008 - 15:40 | |
| الاخ PLCMAN هل يمكن وضع PASSWARD لبرنامجS7 حتى لايتمكن احد من العبث في البرنامج | |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : almadinah almnora العمل/الترفيه : PLC PROGRAMMER تاريخ التسجيل : 25/06/2008
| موضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7 الأحد 6 يوليو 2008 - 15:59 | |
| الاخ PLCMAN ارجو منك توضيح اكثر واعمق بالنسبه ل REAL NUMBERS اين تستخدم ومتى ولماذا تستخدم مع العلم بوجد INTEGER NUMBER | |
|
| |
RAMA رائد
عدد الرسائل : 276 العمر : 54 الموقع : 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
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : Maintenance manager تاريخ التسجيل : 02/03/2008
| موضوع: رد: دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7 الأحد 6 يوليو 2008 - 21:44 | |
| - RAMA كتب:
- الاخ PLCMAN
هل يمكن وضع PASSWARD لبرنامجS7 حتى لايتمكن احد من العبث في البرنامج يمكن هذا أخي العزيز عن طريق ضبط Properties الخاصة ب CPU حيث يمكن ضبط الحماية لمنع الكتابة على CPU أو حتى القراءة منها فمن خلال Hardware configuration افتح Properties الخاصة ب CPU ثم اختر Protection ومنها اختر نوع الحماية الذي تريده مثل الصورة التالية ولكن كن حذرا فقم بإدخال password بعناية ثم قم بتسجيلها حتى لا تفقد الاتصال بها بعد ذلك | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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 وطبقا لخطة الدورة فإن الموضوع التالي هو العمليات الحسابية على الأرقام الحقيقية وسوف يتضح الأمر أكثر بعد عرض الموضوع أرجو أن أكون قد أوضحت | |
|
| |
PLCMan Admin
عدد الرسائل : 12366 العمر : 55 العمل/الترفيه : 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 معها وحالات استعماله | |
|
| |
| دورة تدريبية في الحاكمات المنطقية قابلة للبرمجة طراز Siemens S7 | |
|