آیا تاکنون به این فکر کردهاید که سیستم اتوماسیون شما با چه سرعتی به تغییرات پاسخ میدهد؟ راز این سرعت در زمان سیکل PLC (PLC Cycle Time) یا Scan Time نهفته است؛ همان ضربان قلب سیستم کنترل شما. درک این مفهوم برای هر فردی که در حوزه اتوماسیون فعالیت میکند، ضروری است. در این مقاله بررسی میکنیم که زمان سیکل PLC چیست، چرا اهمیت دارد و چگونه بر عملکرد سیستم شما تأثیر میگذارد.
زمان سیکل PLC (PLC Cycle Time) یا Scan Time مدت زمانی است که یک کنترلکننده منطقی برنامهپذیر (Programmable Logic Controller – PLC) برای تکمیل یک چرخه کامل از اجرای برنامه خود صرف میکند. این چرخه شامل خواندن تمام ورودیها، پردازش منطق برنامه و بهروزرسانی خروجیها است. به بیان ساده، این زمان همان مدتی است که PLC برای «فکر کردن و عمل کردن» صرف میکند، پیش از آنکه چرخه را دوباره از ابتدا آغاز کند.

دیاگرام زمان سیکل Cycle Time در PLC
درک زمان سیکل PLC اهمیت زیادی دارد، زیرا:
کد در یک PLC به دو روش اجرا میشود: اجرای چرخهای (Cyclic) یا اجرای مبتنی بر وقفه (Interrupt).
کد چرخهای (Cyclic Code) از ابتدا تا انتها بهصورت پیوسته و با بیشترین سرعت ممکن اجرا میشود، تا زمانی که CPU توسط یک وقفه (Interrupt) متوقف شود. هنگام وقوع یک وقفه، CPU اجرای کدی را که در حال انجام آن است متوقف میکند، کد مربوط به وقفه را اجرا میکند و پس از اتمام آن، اجرای برنامه قبلی را از همان نقطه ادامه میدهد.
در اکثر PLCها، وقفهها را میتوان به تایمرهای چرخهای (Cyclic Timers)، راهاندازی سیستم (Startup)، تغییر مقادیر (Value Changes) و/یا خطاها (Errors) اختصاص داد. همچنین، اگر یک وقفه دارای اولویت بالاتر باشد، میتواند اجرای وقفه دیگری را نیز متوقف کند.

زمان پردازنده PLC
نمودار بالا نشان میدهد که CPU یک PLC زمان خود را چگونه صرف میکند. بخش صورتی نشاندهنده کد چرخهای است که اگر وقفهای رخ ندهد، اجرای کامل آن ۵ میلیثانیه طول میکشد. بخش سبز نشاندهنده بار ارتباطی (Communication Load) روی CPU است که در هر ۱ میلیثانیه تا ۰٫۱۵ میلیثانیه از زمان پردازنده را اشغال میکند. بخش آبی نیز نشاندهنده کد کنترل حرکت (Motion Control) است که هر ۵ میلیثانیه توسط یک وقفه چرخهای (Cyclic Interrupt) فراخوانی میشود.
در این مثال، وقفه مربوط به کنترل حرکت دارای بالاترین اولویت است؛ بنابراین میتواند اجرای کدهای ارتباطی و همچنین کدهای چرخهای را متوقف کند.
کد چرخهای معمولاً با عنوان برنامه اصلی PLC (Main PLC Code) شناخته میشود. شرکت Siemens از آن با نام Program Cycle یا OB1 یاد میکند و شرکت Allen-Bradley آن را Continuous Task مینامد.
وقفهها که در PLCهای Siemens با عنوان Organizational Blocks (OBs) و در PLCهای Allen-Bradley با عنوان Event Tasks شناخته میشوند، به طراح این امکان را میدهند که دقیقاً مشخص کند کد مربوط به وقفه در پاسخ به یک رویداد یا تایمر در چه زمانی اجرا شود.
برای مثال، شمارندههای پرسرعت (High-Speed Counters) معمولاً به وقفههای سختافزاری (Hardware Interrupts) متصل میشوند. این کار باعث میشود که یک ورودی سختافزاری بتواند بلافاصله مقدار شمارنده را در PLC افزایش دهد. برای مشاهده نمونههایی از شمارندههای پرسرعت، به این وبلاگ مراجعه کنید.
این بدان معناست که شمارنده پرسرعت میتواند چندین پالس ورودی را ثبت کند، حتی پیش از آنکه برنامه اصلی PLC یک چرخه کامل را به پایان برساند.
به همین ترتیب، حلقههای کنترل PID و کدهای کنترل حرکت (Motion Control) نیز اغلب به وقفههای چرخهای با زمانهای سیکل متفاوت اختصاص داده میشوند.
سیستمهای فیزیکی که پاسخدهی کندتری دارند، میتوانند به وقفههای چرخهای با زمان سیکل طولانیتر متصل شوند که این امر باعث کاهش بار پردازشی CPU میشود. در مقابل، سیستمهایی که پاسخدهی سریعتری دارند، میتوانند به وقفههایی با زمان سیکل بسیار کوتاهتر متصل شوند تا کنترل دقیقتر و سریعتری فراهم شود؛ البته این کار به بهای افزایش بار پردازشی CPU خواهد بود.
یک سیکل معمولی PLC شامل مراحل زیر است:
این فرآیند تکرارشونده، اساس عملکرد سیستم اتوماسیون شما را تشکیل میدهد.
CPU مغز PLC است و عملکرد آن مستقیماً بر Cycle Time در PLC تأثیر میگذارد. هرچه CPU سریعتر باشد، برنامه را با سرعت بیشتری اجرا میکند و در نتیجه زمان سیکل کاهش مییابد. با این حال، هرچه منطق برنامه شما پیچیدهتر شود، حتی یک CPU قدرتمند نیز ممکن است با افزایش زمان پردازش مواجه شود.
برای مثال، اگر از یک PLC زیمنس (Siemens PLC) استفاده میکنید و متوجه تأخیر در عملکرد سیستم شدهاید، ممکن است زمان آن رسیده باشد که CPU را ارتقا دهید یا برنامه خود را بهینهسازی کنید.
گاهی اوقات زمان سیکل PLC از مقدار قابلقبول برای کاربرد موردنظر شما بیشتر میشود. این مسئله میتواند باعث کند شدن پاسخگویی سیستم یا حتی بروز اختلال و خرابی در عملکرد آن شود.
پایش مداوم (Monitoring) نقش بسیار مهمی دارد. با نظارت مستمر بر زمان سیکل، میتوانید تشخیص دهید چه زمانی این مقدار از حد مجاز فراتر رفته است و اقدامات لازم را برای رفع مشکل انجام دهید.
حفظ زمان سیکل PLC در مقدار بهینه، عملکرد روان و پایدار سیستم اتوماسیون را تضمین میکند. در ادامه، روشهایی برای پایش و بهبود آن ارائه شده است:
نمایش مقادیرCycle Time در طول زمان با استفاده از نمودار (Graph)، روشی ساده و قابلدرک برای مشاهده تغییرات زمان سیکل است. این روش میتواند ناهنجاریها و تغییرات غیرعادی را که تنها با مشاهده مقادیر عددی بهسختی قابل تشخیص هستند، بهوضوح نشان دهد.
برای Cycle Time، آستانههای قابل قبول (Acceptable Thresholds) تعریف کنید. در صورتی که زمان سیکل از این مقدار فراتر رود، سیستم میتواند به شما هشدار دهد تا علت را بررسی کرده و اقدامات لازم را انجام دهید.
برای مثال، اگر از یک HMI استفاده میکنید، اطمینان حاصل کنید که تنظیمات آن بهگونهای انجام شده باشد که کمترین تأثیر را بر زمان سیکل داشته باشد.
شیوه نگارش کد PLC میتواند تأثیر قابلتوجهی بر زمان سیکل داشته باشد.
از وقفههای دورهای (Cyclic Interrupts) و تایمرها (Timers) بهدرستی استفاده کنید. برای وظایف حساس به زمان، وقفهها این امکان را فراهم میکنند که بخش مشخصی از برنامه در بازههای زمانی معین اجرا شود، بدون آنکه بر زمان سیکل کلی PLC تأثیر منفی بگذارد.
Cycle Time قابلقبول برای PLC به نیازهای کاربرد شما بستگی دارد. در بیشتر فرآیندهای صنعتی، زمان سیکل از چند میلیثانیه (ms) تا حدود ۱۰۰ میلیثانیه رایج است. با توجه به نیازهای فرآیند خود، مقدار مناسب را تعیین کرده و آستانه قابلقبولی برای آن تعریف کنید.
بله، اضافه کردن یک HMI میتواند به دلیل افزایش بار ارتباطی، بر زمان سیکل تأثیر بگذارد. اطمینان حاصل کنید که HMI بهگونهای پیکربندی شده باشد که ارتباط آن با PLC تا حد امکان کارآمد و بهینه باشد.
نوسان در Cycle Time میتواند به دلایل زیر رخ دهد:
با درک و مدیریت صحیح زمان سیکل PLC، میتوانید اطمینان حاصل کنید که فرآیندهای اتوماسیون شما کارآمد، سریع و قابلاعتماد هستند. انجام بررسیهای دورهای و بهینهسازی مستمر، تأثیر قابلتوجهی بر عملکرد سیستم خواهد داشت.