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

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

شاطر | 
 

 مساعدة في تحديد زمن معين بإستخدام CFC

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


عدد الرسائل : 22
العمر : 37
تاريخ التسجيل : 31/01/2011

مُساهمةموضوع: مساعدة في تحديد زمن معين بإستخدام CFC   الإثنين 4 فبراير 2013 - 2:34



السلام عليكم
أعمل علي برنامج في PCS7 وأريد تحديد توقيت معين بصور يومية
( أرغب في أشاره الساعة 7:30 صباحا يوما لإستخدامها في أغراض أخري)

مع العلم أني أستخدم Simatic Manger 5.4 و CPU 417

ما قمت بعمله إلي الآن

لدي الدالة LOC_TIME التي تقوم بقراءة الوقت والتاريخ وتعطي الخرج في شكل DT


بعد ذلك يمكنني إستخدام خرج الدالة السابقه LT وإدخالة للدالة DT_TOD للحصول عل الوقت فقط


المشكلة الأولي تكمن في هذه الجزئية
عندما أحاول توصيل خرج الدالة الأولي إلي دخل الدالة الثاني أحصل علي هذه الرسالة


المشكلة الثانية لم أجد دالة لمقارنة الزمن DOT


فالرجاء المساعده بهذه الطريقه أو أي طريقه أخري

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


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

مُساهمةموضوع: رد: مساعدة في تحديد زمن معين بإستخدام CFC   الإثنين 4 فبراير 2013 - 2:56



الأخ العزيز

يمكن تنفيذ هذا بأسلوب بسيط للغاية إن كان هذا الوقت ثابت في كل مرة عن طريق Hardware configuration باستخدام Time-of-Day Interrupts وهي كثيرة بالنسبة للنوع S7-417 الذي تستخدمه وذلك من خصائص CPU-Properties كما بالصورة التالية


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

_________________


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


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

مُساهمةموضوع: رد: مساعدة في تحديد زمن معين بإستخدام CFC   الإثنين 4 فبراير 2013 - 2:58


أما بخصوص التوصيل بين خرج الدالة الأولى التي قمت باستخدامها والدالة الثانية والرسالة التي تظهر لك فيمكنك استخدام عنوان ذاكرة وسيط أو Local memory وأظن هو المطلوب حيث يكون هو خرج الأولى ودخل الثانية بدلا من التوصيل المباشر


_________________


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


عدد الرسائل : 22
العمر : 37
تاريخ التسجيل : 31/01/2011

مُساهمةموضوع: رد: مساعدة في تحديد زمن معين بإستخدام CFC   الإثنين 4 فبراير 2013 - 3:20

الأخ العزيز PLCMan

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

في حالة إستخدام الـ OB
وفي حالة تنزيل البرنامج هلي يؤدي لتوقيف الـ CPU لأن المصنع شغال حاليا
لأن التعديل علي Hardware

بالنسبة للـ Shared Addresse قمت بتحميل الخرج في DB ومن ثم توصيله للدخل لكن لم ينجح


تحياتي
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
sudanee
رقيب
رقيب


عدد الرسائل : 22
العمر : 37
تاريخ التسجيل : 31/01/2011

مُساهمةموضوع: رد: مساعدة في تحديد زمن معين بإستخدام CFC   الخميس 21 مارس 2013 - 13:21



السلام عليكم
هذه دالة مفيدة جدا
تقوم بقراءة التاريخ والزمن من الCPU ثم تحويلهم إلي Integer


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



هذا كود الدالة STL
فقط كومبايل وسوف تجدون دالة FB333

الرمز:

// This block reads the system time of the CPU with SFC1
// It is provided to a output wich can be used by
// operator monitoring and control system
// This block uses symbolic programming, which does not use direct access to
// local data areas.

FUNCTION_BLOCK FB 333

TITLE =

{ S7_m_c := 'true' }

NAME : SYSCLOCK
AUTHOR : UNKNOWN
FAMILY : USER
VERSION : 0.1

VAR_OUTPUT
   Year { S7_m_c := 'true' }: INT ;
   Month { S7_m_c := 'true' }: INT ;
   Day { S7_m_c := 'true' }: INT ;
   Hour { S7_m_c := 'true' }: INT ;
   Minutes { S7_m_c := 'true' }: INT ;
   Seconds { S7_m_c := 'true' }: INT ;
   Milliseconds { S7_m_c := 'true' }: INT ;
   Day_of_week { S7_m_c := 'true' }: INT ;
END_VAR

VAR_TEMP
   Datum_Zeit : DATE_AND_TIME ;
   Ret_Val_SFC : INT ;
END_VAR

BEGIN
NETWORK
TITLE =FunctionCall

CALL "READ_CLK" (RET_VAL:= #Ret_Val_SFC, CDT:= #Datum_Zeit); //Call of SFC1
L P#Datum_Zeit;
LAR1;
L LB[AR1,P#0.0]; // LB 0 contains the year
BTI ;        // BTI converts BCD to INT
T #Year;     // transfer to output Year

L LB[AR1,P#1.0]; // LB 1 contains month
BTI ;
T #Month;

L LB[AR1,P#2.0]; // LB 2 contains day
BTI ;
T #Day;

L LB[AR1,P#3.0]; // LB 3 contains hour
BTI ;
T #Hour;

L LB[AR1,P#4.0]; // LB 4 contains minutes
BTI ;
T #Minutes;

L LB[AR1,P#5.0]; // LB 5 contains seconds
BTI ;
T #Seconds;

L LB[AR1,P#6.0]; // LB 6 + LB 7 (4 Bits high) contains Milliseconds
SRW 4;
BTI ;
T #Milliseconds;

L LB[AR1,P#7.0]; // LB 7 (4 Bits low) contains day of week
SLW 12;
SRW 12;
BTI ;
T #Day_of_week;

END_FUNCTION_BLOCK


الدالة من موقع سيمنز وليس لي
تحياتي

الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
ibrahimabugabal
نقيب
نقيب


عدد الرسائل : 114
العمر : 43
تاريخ التسجيل : 15/04/2011

مُساهمةموضوع: رد: مساعدة في تحديد زمن معين بإستخدام CFC   الجمعة 22 مارس 2013 - 1:22

لو حد عنده وقت يا ريت يقول أزاي الواحد يضيف ساعة في شاشة win cc
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
 
مساعدة في تحديد زمن معين بإستخدام CFC
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

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