من فضلك ادعم الموقع على جوجل بالضغط على علامة g+1
نكمل كورس Siemens PLC S7 300
الدرس 13 و هو تكملة الدرس السابق شرح العمليات الحسابية integer
شرح العمليات الحسابية من النوع floating point او real
فى هذه العمليات الحسابية يكون الدخل و الخرج من النوع Real
اى انها تحتوى على قيم عشرية
شرح كل function
الجمع و الطرح و الضرب و القسمة جميعها نفس الطريقة
شرح عملية الطرح Subtract real
هنا سيتم طرح MD 20 - 50.78
و حفظ الناتج على DB10.DBD30
المثال السابق بلغة statement list
لاحظ ان الحرف R يدل على ان العملية الحسابية من النوع Real
Absolute Value Function
تستخدم فى ايجاد القيمة الموجبة دائما من اى رقم real
بمعنى ان لو الدخل DB7.DBD0 يحتوى على -70 , يكون الخرج هو القيمة الموجبة فقط اى 70
Real absolute value فى لغة STL
Square root function
و تقوم بحساب الجزر التربيعى
كيفية كتابة الامر فى لغة Statement List
Square Function floating point
تقوم بتربيع الرقم و حفظ الناتج على out
العملية الحسابية السابقة بلغة Statement List
شرح العملية الحسابية LN و EXP
كما هو معروف فى الرياضيات
LN تقوم بحساب natural Logarithm
EXP تقوم بحساب Exponential Value
الكود السابق بلغة STL
كما نجد عمليات Sine و Cosine و Tangent و Arc sine و Arc cosine و Arc tangent
و تكون جميع الزوايا المستخدمة فى هذه العمليات بقيم radian
مثال على Cosine function
الكود بلغة statement list
ملحوظة على statement list : لاستخدام اى من الدوال التالية فى لغة STL يتم كتابة حروفها داخل الكود كما سبق فى الامثلة السابقة
انتهى الشرح شكرا للمتابعة
اى سؤال اتفضل اسأل فى تعليقات facebook
نكمل كورس شرح Siemens PLC S7 300
و موعدنا مع الدرس 12
شرح العمليات الحسابية Mathematical Operations
تنقسم العمليات الحسابية داخل Simatic Manager الى نوعين اساسيين
Integer Functions : اى تتعامل مع الارقام الصحيحة فقط و لا يجوز استخدام ارقام عشرية معها
Floating Point Functions : و هى التى تتعامل مع الارقام العشرية
شرح Integer Functions
و جميعها تقبل الارقام الموجبة او السالبة
تنقسم الى نوعين حسب حجم البيانات المدخلة و المخرجة
عمليات حسابية بحجم integer : و يتم استخدامها عند التاكد من ان البيانات المدخلة و الخارجة من العملية الحسابية لا تتعدى الذاكرة word اى لا تتعدى 32767 او 32768-
عمليات حسابية بحجم double integer : و تستخدم عندما نحتاج عمليات حسابية لارقام اكثر من 32767 او 32768- حتى حجم ذاكرة double word
العمليات الحسابية integer و double integer
نلاحظ وجود عمليات جمع و طرح و ضرب و قسمة لكلا النوعين integer و double integer
مثال على عملية جمع من النوع integer
EN : عند اعطاء اشارة على EN يتم تشغيل عملية الجمع
ENO : يتم تفعيل ENO عندما تتم العملية الحسابية بدون مشكلة
IN 1 و هى IN 2 الارقام المراد جمعها
المثال السابق بلغة statement list
تم استدعاء MW 20 على Accu 1
ثم استدعاء MW 22 على Accu 1 و ترحيل MW 20 على Accu 2
ثم عمل عملية الجمع عن طريق الكود +I
هنا + تعنى ان العملية جمع ( طرح تعنى - و قسمة تعنى / و ضرب يعنى * )
علامة I تعنى integer اى ان العملية الحسابية من النوع integer
نلاحظ هنا ان عملية الجمع تتم بدون وجود الشرط EN اى لا تؤثر حالة I 0.0 على العملية
و لاضافة شرط يجب فهم امر Jump اولا و سوف يتم شرحه فى درس اخر و اعادة كتابة امر العملية الحسابية بعد اضافة الشرط EN
مثال على عملية قسمة من النوع double integer
هنا تم استخدام قيمة متغير من Data Block 4 بحجم double word فى IN 1
تم استخدام عدد صحيح يساوى 20 داخل IN 2 و يجب كتابته على الصيغة L#20 ( لايضاح ان الرقم بذاكرة double word )
و تم قسمة الرقم المخزن على DB4.DBD20 على 20 و حفظ الناتج على MD 40
فى حالة القسمة يجب التأكد ان الخرج سيكون رقم صحيح ايضا مثله مثل الدخل
لانه اذا كان الخرج عدد غير صحيح سيعطى CPU رسالة خطا error
لذلك انا كان هناك اى شك ان الخرج سيصبح رقم غير صحيح او ان الدخل سيتم تخزين رقم غير صحيح عليه ,, يجب استخدام عمليات حسابية من النوع floating point functions كما سنرى
المثال السابق بلغة statement list
لاحظ انه تم تحميل DB4.DBD20 على ACCU 2
و تحميل 20 على ACCU 1
ثم قسمة ACCU 2 على ACCU 1
و ارسال الناتج الى MD 40
الرمز / يعنى ان العملية عملية قسمة
الرمز D تعنى ان العملية الحسابية من النوع double integer
العملية الحسابية return fraction double integer
و هذه العملية الحسابية توجد فقط فى double integer
هنا يتم قسمة MD 4 على 6 و يتم حفظ المتبقى من القسمة على DB6.DBD8
مثلا : اذا تم قسمة 10 على 3 تكون الناتج 1 ( و هو المتبقى من 10 بعد قسمة 9 على 3 )
سيتم شرح العمليات الحسابية من النوع Floating Point فى الدرس القادم
شكرا للمتابعة