تایمر های پایه و ایجاد تایمر با زمان متغیر
تایمر های پایه
از مزایای قابل توجه پی ال سی ها می توان به حذف تایمر های سخت افزاری و جایگزینی آنها با تایمر های نرم افزاری اشاره کرد . یکی از پرکاربردترین دستورات برنامه نویسی تایمر ها هستند.
به طور کلی تایمر های قابل استفاده در برنامه سیماتیک منیجر را میتوان به سه دسته تقسیم کرد :
تایمر های پایه : تایمر هایی هستند که به صورت المان در پنجره program element قابلیت افزودن به برنامه را دارند .
تایمرهای IEC : این تایمر ها در فانکشن بلاک های سازمانی یا SFB نوشته شدند و در برنامه قابلیت به کارگیری دارند.
تایمر های کاربر: کاربر می تواند از طریق برنامه نویسی تایمر دلخواه را ایجاد نماید .
این تایمر ها در زبان های برنامه نویسی LADDER و FBD کاملا مشابه یکدیگر هستند و به یک نحو فراخوانی می شوند.
نکاتی در مورد تایمرها
- شماره تایمر ها از T0 شروع می شود و بیشترین تعداد تایمرهای قابل به کارگیری با توجه به ویژگی های سی پی یو می تواند متغیر باشد. برای اینکه متوجه شویم یک سی پی یو قابلیت به کارگیری چند تایم را دارد از بخش module information سربرگ performance date میتوانیم حداکثر تعداد تایمر ها را به دست آوریم.
- هر تایمر در حافظه سیستم یک شماره مخصوص به خود را دارد .
- در صورت به کارگیری تایمر با شماره خارج از محدوده سی پی یو های سری ۴۰۰ و سری ۳۰۰ قدیمی به حالت توقف رفته و چراغ فالت روشن می شود هم آدرس سی پی یو های سری ۳۰۰ جدید فقط چراغ فالت روشن میشود.
- زمان تایمر ها باید به فرمت S5Time وارد شود.
- به صورت پیش فرض هیچ تایمری وضعیت ماندگار ندارد اما میتوان با توجه به ویژگی های سی پی یو تعدادی از تایمر ها را به حافظه ماندگار منتقل کرد در این صورت با قطع تغذیه اطلاعات تایمر پاک نمی شود و با وصل مجدد زمان سنج تایمر ها از جایی که که متوقف شده است ادامه پیدا میکند.
- برای این منظور وارد برنامه H/W configuration شده و در بخش properties سی پی یو در سربرگ Retentive Memory می توانیم تعداد تایمر هایی که میخواهیم ماندگار باشند را تعریف کنیم.
- فقط باید توجه داشته باشیم تایمر ها از شماره T0 با شماره دلخواه ما و با توجه به توانایی سی پی یو ماندگار خواهد شد.
تذکر : با cold restart یا Clear/Reset حتی تایمرهای ماندگار هم از صفر شروع به کار میکنند.
- هر تایمر در یک حافظه ۱۶ بیتی ذخیره میشود. ۱۲ بیت از حافظه برای زمان سنجی تایمر در نظر گرفته شده که به صورت BCD و از عدد صفر تا ۹۹۹ را میتواند بشمارد. دو بیت از ۱۶ بیت حافظه تایمر مربوط به گام های زمانی تایمر می باشد که می توانند از۰۱ ، ۰.۱ ، ۱ و ۱۰ ثانیه تشکیل شوند. در صورت وارد کردن زمان به فرمت s5time با توجه به زمان اختصاص یافته هنگام مورد نظر به طور خودکار انتخاب میشود.
انتخاب خودکار گام زمانی به این صورت است که اگر زمان تعیین شده بیشتر از زمان قابل حصول با گام های زمانی کوچک تر باشد سی پی یو گام زمانی بزرگتر را انتخاب میکند. به عنوان مثال حداکثر زمان قابل حصول با گام زمانی یک صدم ثانیه ۹ ثانیه و ۹۹۰ میلی ثانیه می باشد.
حال گذر زمان وارد شده مثلاً ۱۰ ثانیه باشد دیگر امکان شمارش با گام زمانی یک صدم ثانیه میسر نیست لذا گام زمانی بالاتر از آن یعنی یک دهم ثانیه انتخاب می شود.
بدین ترتیب بیشترین زمان قابل شمارش توسط این تایمر ها ۲ ساعت و ۴۶ دقیقه و ۳۰ ثانیه می باشد که با گام زمانی ۱۰ ثانیه قابل حصول است.
ورودی و خروجی های انواع تایمر های پایه
s : این پایه فعال ساز تایمر می باشد و آدرس بیتی قبول می کند .
R : این پایه ریست کننده تایمر است آدرس بیت قبول میکند و هرگاه فعال شود تایمر از کار افتاده و زمان شمارش آن صفر می گردد .
TV : زمان تایمر به فرمت s5time به این پایه داده می شود. زمان می تواند به صورت مشخص و در قالب #s5t و یا صورت متغیر در یک حافظه به پایه TV داده شود.
a,b,c,d : اعداد ثابت
H : ساعت
M : دقیقه
S : ثانیه
MS : میلی ثانیه
Q : این پایه خروجی تایم را مشخص میکند. در صورت فعال شدن تایمر این پایه یک می شود.
BCD : زمان باقیمانده شمارش تایمر را به فرمت BCD نمایش می دهد.
BI : زمان باقیمانده شمارش تایم را به فرمت Integer نمایش می دهد.
هنگام برنامه نویسی تایمر ها اختصاص دادن آدرس به خروجی های BI و BCD و ورودی R الزامی نیست ولی سایر پایه ها برای ذخیره و دانلود برنامه ضروری می باشند.
انواع تایمرها و عملکرد آنها
۱ – تایمر های پالس ( pulse یا S_PULSE) :
با فعال شدن ورودی تایمر، خروجی نیز فعال میشود. تایمر شروع به شمارش میکند و تا قبل از به پایان رسیدن زمان ، باید شرط ورودی فعال بماند که در غیر این صورت ، خروجی نیز همزمان با قطع ورودی صفر میشود. به عبارت دیگر ، این تایمر بر اساس سیگنال ورودی دائم روشن کار میکند.
معادل Signal Diagram آن در زیر دیده میشود. این تایمر در زبان STL با دستور SP فراخوانی میشود.
۲ – تایمر پالس تمدید شده ( Extended Pulse Timer یا S_PEXT) :
عملکرد این تایمر مانند Pulse Timer است ، با این تفاوت که این تایمر دارای حافظه میباشد. یعنی ، با وصل و قطع یک لحظه ی ورودی ( لبه ی مثبت RLO ) تایمر زمان گیری کرده و مدت زمان شمارش در حافظه ی آن باقی میماند. همچنین اگر سیگنال جدید به پایه ست تایمر وارد شود ، شمارش زمان از اول اتفاق میوفتد. این تایمر در زبان STL با دستور SE فراخوانی میشود.
۳ – تایمر های تاخیر در وصل (On-Delay Timer یا S_ODT) :
این تایمر با وصل شدن ورودی به آن ، زمان گیری را آغاز کرده و پس از مدت زمان تعیین شده (TV) خروجی را فعال میکند.
اگر قبل از رسیدن به TV شرط ورودی غیر فعال شود ، تایمر زمان گیری را متوقف میکند ( تایمر بدون حافظه ) در زبان STL ، این تایمر با عبارت SD نشان داده میشود. در واقع این تایمر برای انجام عمل شمارش نیاز به سیگنال ورودی دائم روشن ، دارد.
۴ – تایمر تاخیر در وصل ماندگار (Store On-Delay Timer یا S_ODTS) :
عملکرد این تایمر مانند On-Delay Timer است ، با این تفاوت که این تایمر قابلیت ذخیره ی زمان پس از قطع شدن شرط ورودی را داراست. یعنی ، برای شروع به کار فقط لبه مثبت RLO را میبیند و زمان به تایمر بار میشود و پس از TV خروجی فعال خواهد شد.
لازم به ذکر است که پس از فعال شدن خروجی تایمر ، برای غیر فعال شدن آن ، تایمر حتماً باید Reset شود. در زبان STL ، این تایمر با عبارت SS نشان داده میشود. همچنین اگر تایمر با لبه فعال شده باشد در صورتی که دوباره لبه جدید به پایه ست وارد شود شمارش تایمر از سر گرفته میشود.
۵ – تایمر تاخیر در قطع (off Delay Timer یا S_OFFDT) :
بر خلاف دیگر تایمر ها ، تایمر تاخیر در قطع فقط یک نوع دارد و همانطور که از نام آن پیداست ، تاخیر زمانی برای قطع کردن خروجی میباشد. با وصل شدن شرط ورودی تایمر ، همزمان خروجی نیز فعال میشود ولی زمان گیری نمیکند.
پس از قطع شدن خروجی ( لبه پائین رونده RLO در پایه Set ) شروع به زمان گیری میکند و بعد از رسیدن به زمان مشخص شده ، خروجی را قطع میکند.
توجه داشته باشید که تایمر پالس همین عملکرد را با لبه ی مثبت پالس انجام میدهد ، ولی این تایمر با لبه ی منفی پالس کار میکند. در زبان STL ، این تایمر با عبارت “SF” نشان داده میشود.
نحوه تعیین زمان به صورت عدد BCD برای تایمرهای پایه
همانطور که گفته شد زمانی که با تایمرها داده میشود باید به صورت S5time باشد. البته میتوان زمان را به شکل عدد و در فرمت BCD نیز به تایمر داد. به مثال زیر توجه کنید :
در این مثال زمان به صورت عدد BCD به تایمر داده شده است. عدد ۲ گام زمانی را مشخص میکند. طبق جدول ارائه شده در ابتدای مقاله برای داشتن گام زمانی ۱ ثانیه باید دو بیت مربوط به گام زمانی ۱۰ باشند.
اگر بجای ۲ عدد ۳ داشتیم که معادل باینری آن ۱۱ است گام زمانی ۱۰ ثانیه به تایمر داده میشد. عدد ۱۰۰ نیز تعداد شمارش تایمر است. در این مثال تایمر ۱۰۰ ثانیه میشمارد.
تعیین زمان متغیر برای تایمرهای پایه
با روش های گفته شده میتوان زمانی مشخص را برای تایمرها تعیین کرد. اما اگر لازم باشد در برنامه ای زمان متغیر به تایمرها داد یا اپراتور زمان را مشخص کند باید از روش دیگر استفاده کرد.
بدین منظور از یک فانکشن سیستمی سیماتیک منیجر میتوان استفاده کرد و زمان وارد شده را به فرمت قابل خواندن توسط تایمر تعریف کرد. این فانکشن FC40 میباشد که از مسیر زیر قابل دستیابی است:
Libraries/Standard Library/ IEC Finction Blocks/ FC40
نام این فانکشن TIM_S5TI میباشد. ورودی این فانکشن یک عدد و یا یک حافظه در اندازه DW است که زمان را بر حسب میلی ثانیه مشخص میکند. در خروجی آدرس MW داده میشود که این آدرس قابلیت به کارگیری در پایه TV تایمر را دارد.
لازم به ذکر است برای کار کردن این برنامه میبایست بلوک FC40 نیز به سی پی یو دانلود شود. در این مثال حافظه MD10 عدد را گرفته و به بلوک FC40وارد میکند و عدد ۱۰۰۰۰ را توسط بلوک به ۱۰ ثانیه تبدیل کرده است.
میتوان حافظه MD10 را به HMI داد تا اپراتور بتواند از آن طریق زمان مورد نظر را به تایمر بدهد .