ساختار کلی دستور
T0.Mode = OnDelay;
T0.SetValue = 5; // 5 واحد زمانی
T0.TimeUnit = TIME_1S; // 5 ثانیه
EnableTimer(&T0);
- در سری B, C و D تایمرها با T0 الی T255 و در سری ESP-0806-E تا T511 مشخص می شوند و دارای عناصر زیر هستند:
پارامترها
Mode: مد عملکرد تایمر را مشخص میکند و میتواند یکی از مقادیر زیر باشد:
OnDelay, OffDelay, Pulse, Flicker
SetValue: مقدار زمان تنظیم شده
TimeUnit: واحد زمانی برای مقدار تنظیمی که می تواند یکی از مقادیر زیر باشد:
TIME_001s: واحد زمانی 0.01 ثانیه
TIME_01S: واحد زمانی 0.1 ثانیه
TIME_1S: واحد زمانی 1 ثانیه
TIME_1MIN: واحد زمانی 1 دقیقه
TIME_1HOUR: واحد زمانی 1 ساعت
مقدار بازگشتی
void: هیچ مقداری برنمیگردان
- در سری B, C و D تایمرها با T0 الی T255 و در سری ESP-0806-E تا T511 مشخص می شوند و دارای عناصر زیر هستند:
پارامترها
Mode: مد عملکرد تایمر را مشخص میکند و میتواند یکی از مقادیر زیر باشد:
OnDelay, OffDelay, Pulse, Flicker
SetValue: مقدار زمان تنظیم شده
TimeUnit: واحد زمانی برای مقدار تنظیمی که می تواند یکی از مقادیر زیر باشد:
TIME_001s: واحد زمانی 0.01 ثانیه
TIME_01S: واحد زمانی 0.1 ثانیه
TIME_1S: واحد زمانی 1 ثانیه
TIME_1MIN: واحد زمانی 1 دقیقه
TIME_1HOUR: واحد زمانی 1 ساعت
مقدار بازگشتی
void: هیچ مقداری برنمیگردان
نحوه عملکرد تایمرها
در تایمر OnDelay یا تاخیر در وصل, با فعال شدن ورودی, تایمر شروع به اندازه گیری زمان می کند. به محض اینکه زمان به مدت مقدار تنظیمی بگذرد, خروجی را وصل میکند. خروجی تا زمانی که تحریک ورودی فعال باشد, روشن می ماند. با خاموش شدن ورودی, خروجی نیز خاموش می شود.

در تایمر OffDelay یا تاخیر در قطع, با فعال شدن ورودی, خروجی نیز فعال میشود. وقتی ورودی غیر فعال شود, تایمر شروع به اندازه گیری زمان میکند. به محض اینکه زمان به مدت مقدار تنظیمی بگذرد, خروجی را قطع میکند.

در تایمر Pulse, با فعال شدن ورودی حتی بمدت یک لحظه کوتاه, خروجی به مقدار زمان مشخص شده, روشن و بعد خاموش می شود.

در تایمر Filcker, تا زمانی که ورودی فعال است, خروجی به مدت زمان تنظیمی روشن و به همان مقدار خاموش می شود و همین امر, تکرار می شود.

نحوه استفاده از تایمرها
1- تعریف و پیکربندی
2- تنظیم ورودی
3- بررسی خروجی
مثالهای کاربردی
1- تایمر امنیتی
2- LED چشمک زن
3- پالس کوتاه
4- تایمر تاخیر خاموش
5- سیستم چند تایمری
// پیکربندی چندین تایمر
T0.Mode = OnDelay;
T0.SetValue = 10;
T0.TimeUnit = TIME_1S;
EnableTimer(&T0);
T1.Mode = Flicker;
T1.SetValue = 2;
T1.TimeUnit = TIME_1S;
EnableTimer(&T1);
T2.Mode = Pulse;
T2.SetValue = 100;
T2.TimeUnit = TIME_001S;
EnableTimer(&T2);
// در حلقه اصلی
T0.IN = I0[0].Value;
T1.IN = I0[1].Value;
T2.IN = I0[2].Value;
// کنترل خروجیها
if (T0.Q) SetQ(0, 0);
if (T1.Q) SetQ(0, 1);
if (T2.Q) SetQ(0, 2);
نکات مهم:
تعداد تایمرها
حداکثر 256 یا 512 تایمر همزمان (بسته به مدل PLC)
محدودیت حافظه برای تایمرهای فعال
2. دقت زمانی
دقت پایه: 10ms
برای زمانهای کوتاهتر از 10ms استفاده نکنید
3. عملکرد در حلقه اصلی
تایمرها در interrupt handler بهروزرسانی میشوند
نیازی به فراخوانی دستی در حلقه اصلی نیست
4. مدیریت حافظه
تایمرهای غیرفعال از لیست حذف نمیشوند
برای بهینهسازی، تایمرهای غیرضروری را غیرفعال کنید