مشاوره تخصصی ۰۹۱۲ ۰۰۴ ۶۳۷۳
LEARN KNOWLEDGE BASE

دانش فنی اتوماسیون صنعتی

LEARN

Scan Cycle در PLC چیست و چگونه کار می‌کند؟

Scan Cycle چرخه تکرارشونده اجرای PLC است که طی آن ورودی‌ها پردازش می‌شوند، برنامه کنترلی اجرا می‌شود و وضعیت خروجی‌ها تعیین می‌شود. در این راهنما با Scan Time، Process Image، مراحل چرخه اسکن و تأثیر آن بر عملکرد PLC آشنا می‌شویم.

Scan Cycle در PLC و مراحل خواندن ورودی‌ها، اجرای برنامه و به‌روزرسانی خروجی‌ها

PLC برای کنترل یک ماشین یا فرایند صنعتی، برنامه را فقط یک‌بار اجرا نمی‌کند. در حالت عادی، کنترلر مجموعه‌ای از عملیات را بارها و با سرعت بالا تکرار می‌کند تا تغییر وضعیت ورودی‌ها را تشخیص دهد، منطق برنامه را اجرا کند و خروجی‌های مناسب را کنترل کند.

به این فرایند تکرارشونده معمولاً Scan Cycle یا چرخه اسکن PLC گفته می‌شود.

در مدل کلاسیک و ساده‌شده PLC، یک چرخه شامل خواندن وضعیت ورودی‌ها، اجرای برنامه و به‌روزرسانی خروجی‌ها است. این چرخه پس از پایان دوباره آغاز می‌شود و تا زمانی که کنترلر در وضعیت اجرای مناسب قرار دارد ادامه پیدا می‌کند.

درک Scan Cycle اهمیت زیادی دارد، زیرا به ما توضیح می‌دهد که چرا ترتیب دستورات مهم است، تغییر یک ورودی چه زمانی در برنامه دیده می‌شود، خروجی چه زمانی تغییر می‌کند و سرعت اجرای برنامه چه تأثیری بر عملکرد ماشین دارد.


Scan Cycle در PLC چیست؟

Scan Cycle چرخه‌ای است که PLC طی آن اطلاعات موردنیاز را از ورودی‌ها دریافت می‌کند، منطق برنامه کنترلی را اجرا می‌کند، وضعیت خروجی‌ها را تعیین می‌کند و عملیات سیستمی موردنیاز را انجام می‌دهد.

پس از پایان یک چرخه، کنترلر وارد چرخه بعدی می‌شود.

در یک مدل ساده می‌توان این فرایند را به شکل زیر نمایش داد:

Read Inputs → Execute Program → Update Outputs → System Tasks → Repeat

یا به فارسی:

خواندن ورودی‌ها → اجرای برنامه → به‌روزرسانی خروجی‌ها → پردازش‌های سیستمی → شروع چرخه بعد

این مدل برای درک اصول PLC بسیار مفید است، اما ترتیب دقیق مراحل و نحوه مدیریت I/O در تمام کنترلرها یکسان نیست.

برای نمونه، مستندات Rockwell برای یک Resource چرخه‌ای مراحلی مانند Scan Input Variables، اجرای POUها، Update Output Variables، پردازش پیام‌ها و انتظار تا چرخه بعدی را توصیف می‌کنند.


PLC چگونه برنامه را اجرا می‌کند؟

فرض کنید یک PLC وظیفه کنترل یک نوار نقاله را دارد.

یک سنسور حضور قطعه به ورودی PLC متصل است و برنامه باید هنگام تشخیص قطعه، تصمیم مناسبی برای موتور یا سایر تجهیزات بگیرد.

کنترلر باید مرتباً بررسی کند:

  • وضعیت سنسور چیست؟
  • شروط برنامه برقرار هستند یا خیر؟
  • کدام خروجی باید فعال باشد؟
  • آیا Timer یا Counter خاصی تغییر کرده است؟
  • آیا رویداد یا وظیفه دیگری باید پردازش شود؟

این عملیات با سرعت بالا تکرار می‌شوند.

در نتیجه PLC را نباید مانند برنامه‌ای تصور کرد که از خط اول شروع می‌شود، یک‌بار تا انتها اجرا می‌شود و سپس متوقف می‌شود. در کنترل معمول صنعتی، اجرای برنامه بخشی از یک فرایند تکرارشونده است.


مراحل Scan Cycle در PLC

برای آموزش مفهوم Scan Cycle می‌توان چرخه کلاسیک PLC را به چند مرحله اصلی تقسیم کرد.

1. خواندن ورودی‌ها

در ابتدای چرخه کلاسیک، PLC وضعیت ورودی‌های موردنظر را بررسی می‌کند.

این ورودی‌ها ممکن است از تجهیزاتی مانند موارد زیر دریافت شوند:

  • شستی
  • Limit Switch
  • Proximity Sensor
  • Photoelectric Sensor
  • Pressure Switch
  • سنسورهای مختلف ماشین

در معماری‌هایی که از Process Image استفاده می‌کنند، وضعیت ورودی‌ها در یک ناحیه حافظه ذخیره می‌شود تا برنامه در طول اجرای آن چرخه از این تصویر استفاده کند.

مستندات کلاسیک Rockwell نیز ساختاری را نشان می‌دهند که در آن وضعیت Input Terminals در Input Image Table قرار می‌گیرد.

2. اجرای برنامه

پس از آماده شدن اطلاعات موردنیاز، PLC منطق برنامه را اجرا می‌کند.

برای مثال در یک برنامه Ladder ممکن است شرطی شبیه این داشته باشیم:

اگر Start فعال است و Emergency Stop در وضعیت مجاز قرار دارد، فرمان موتور برقرار شود.

کنترلر دستورات برنامه را طبق قواعد اجرایی پلتفرم خود پردازش می‌کند و نتایج منطقی را در حافظه یا ساختارهای مربوط به خروجی‌ها ثبت می‌کند.

در مدل کلاسیک Ladder، ترتیب اجرای دستورات می‌تواند بر نتیجه برنامه اثر بگذارد؛ به همین دلیل درک Scan Cycle برای برنامه‌نویسی PLC اهمیت زیادی دارد.

3. به‌روزرسانی خروجی‌ها

پس از محاسبه نتایج برنامه، وضعیت خروجی‌های مرتبط به سخت‌افزار منتقل می‌شود.

این خروجی‌ها ممکن است برای کنترل تجهیزاتی مانند موارد زیر استفاده شوند:

  • رله
  • کنتاکتور
  • شیر برقی
  • چراغ سیگنال
  • ورودی فرمان درایو
  • سایر تجهیزات کنترلی

در معماری Process Image، نتیجه برنامه ابتدا می‌تواند در Output Image ذخیره شود و سپس به خروجی‌های فیزیکی منتقل شود.

مستندات Rockwell برای معماری کلاسیک خود نیز انتقال Output Image Table به Output Terminals را نشان می‌دهند.

4. پردازش وظایف سیستمی و ارتباطات

کار PLC فقط اجرای Ladder و مدیریت I/O نیست.

بسته به کنترلر، بخشی از زمان پردازشی می‌تواند صرف مواردی مانند:

  • ارتباطات شبکه
  • Diagnostics
  • مدیریت حافظه
  • سرویس‌های سیستم‌عامل
  • تبادل داده
  • اجرای Taskها یا Eventهای دیگر

شود.

به همین دلیل Scan Time فقط تابع تعداد خطوط Ladder نیست.

برای مثال Siemens در تعریف Cycle Time علاوه بر اجرای برنامه چرخه‌ای، بخش‌هایی که چرخه را Interrupt می‌کنند و فعالیت‌های سیستم مانند Process Image Update را نیز در محاسبه مطرح می‌کند.


Input Image و Output Image چیست؟

برای درک بهتر Scan Cycle باید با مفهوم Process Image آشنا شویم.

در بسیاری از معماری‌های PLC، برنامه لزوماً در تمام لحظات مستقیماً وضعیت الکتریکی ترمینال‌های فیزیکی را نمی‌خواند.

در عوض، کنترلر می‌تواند تصویری از وضعیت ورودی‌ها و خروجی‌ها را در حافظه نگهداری کند.

Input Image چیست؟

Input Image یا Process Image of Inputs ناحیه‌ای از حافظه است که وضعیت ورودی‌های مربوطه در آن ثبت می‌شود.

در مدل کلاسیک، PLC ورودی‌ها را می‌خواند و وضعیت آن‌ها را در این حافظه قرار می‌دهد.

سپس برنامه از این مقادیر استفاده می‌کند.

Output Image چیست؟

Output Image ناحیه‌ای است که نتایج مربوط به خروجی‌ها در آن قرار می‌گیرد.

برنامه وضعیت موردنظر خروجی‌ها را محاسبه می‌کند و سپس این وضعیت طبق معماری کنترلر به خروجی‌های فیزیکی منتقل می‌شود.


چرا Process Image اهمیت دارد؟

فرض کنید در ابتدای Scan، یک ورودی OFF است.

PLC این وضعیت را در Input Image ثبت می‌کند.

اگر ورودی فیزیکی در میانه اجرای همان چرخه تغییر کند، در یک معماری کلاسیک Process Image ممکن است برنامه تا به‌روزرسانی بعدی تصویر ورودی همچنان مقدار قبلی را ببیند.

این رفتار باعث می‌شود مجموعه‌ای از ورودی‌ها در طول اجرای بخش چرخه‌ای برنامه یک Snapshot نسبتاً منسجم داشته باشند.

اما این قانون را نباید بدون بررسی مستندات به تمام PLCها و تمام دستورات تعمیم داد؛ برخی کنترلرها روش‌هایی برای دسترسی مستقیم یا Immediate به I/O دارند و Taskها یا I/Oهای تخصصی نیز ممکن است رفتار دیگری داشته باشند.


Scan Time در PLC چیست؟

Scan Time مدت‌زمان لازم برای تکمیل یک Scan Cycle است.

برای مثال اگر PLC یک چرخه را در 5 میلی‌ثانیه کامل کند:

Scan Time = 5 ms

در شرایط ساده، کنترلر می‌تواند حدود 200 چرخه در ثانیه انجام دهد.

اما این محاسبه فقط یک برداشت ساده ریاضی است و به معنی زمان پاسخ قطعی 5 میلی‌ثانیه برای تمام رویدادهای سیستم نیست.

زمان واقعی پاسخ به عواملی مانند زمان وقوع تغییر ورودی، I/O update، Task scheduling، شبکه، فیلترهای ورودی و نحوه اجرای برنامه بستگی دارد.


تفاوت Scan Cycle و Scan Time چیست؟

این دو اصطلاح به هم مرتبط هستند، اما معنی یکسانی ندارند.

اصطلاحمعنی
Scan Cycleخود چرخه اجرای عملیات PLC
Scan Timeمدت‌زمان لازم برای تکمیل یک چرخه

بنابراین:

Scan Cycle = چه فرایندی انجام می‌شود

و

Scan Time = انجام آن فرایند چقدر طول می‌کشد


آیا Scan Time همیشه ثابت است؟

خیر.

Scan Time الزاماً در تمام چرخه‌ها دقیقاً یکسان نیست.

برای مثال ممکن است در یک چرخه یک Interrupt رخ دهد یا پردازش ارتباطی بیشتری انجام شود.

Siemens صراحتاً بیان می‌کند که Scan Cycle Time می‌تواند از یک Cycle به Cycle دیگر متفاوت باشد و مثال آن را با Interrupt در اجرای برنامه نشان می‌دهد.

در S7-1200 نیز Siemens توضیح می‌دهد که زمان Scan بسته به User Program و Communication Tasks می‌تواند از چرخه‌ای به چرخه دیگر تغییر کند.

بنابراین هنگام تحلیل عملکرد سیستم، فقط یک عدد لحظه‌ای Scan Time کافی نیست و در کاربردهای حساس باید رفتار زمانی کنترلر دقیق‌تر بررسی شود.


چه عواملی Scan Time را افزایش می‌دهند؟

عوامل مختلفی می‌توانند روی زمان اجرای چرخه اثر بگذارند.

حجم برنامه

هرچه برنامه بزرگ‌تر و پیچیده‌تر شود، معمولاً پردازش بیشتری نیاز خواهد داشت.

نوع دستورات

همه دستورات هزینه پردازشی یکسانی ندارند.

عملیات ساده Boolean با محاسبات پیچیده، پردازش داده، Loopها یا الگوریتم‌های سنگین یکسان نیست.

ارتباطات

تبادل اطلاعات با HMI، درایو، Remote I/O، سایر PLCها یا سیستم‌های بالادستی می‌تواند منابع پردازشی و زمانی مصرف کند.

Interruptها و Eventها

برخی رویدادها می‌توانند اجرای چرخه عادی را تحت تأثیر قرار دهند.

Taskهای مختلف

در کنترلرهای مدرن ممکن است چند Task با Priority و Triggerهای متفاوت وجود داشته باشد.

Diagnostics و عملیات سیستم

سیستم‌عامل PLC نیز وظایفی دارد که بخشی از منابع کنترلر را مصرف می‌کنند.


آیا همه PLCها دقیقاً یک Scan Cycle یکسان دارند؟

خیر.

مدل:

Input Scan → Program Scan → Output Scan

برای آموزش اصول PLC بسیار مفید است، اما نباید آن را یک قانون مطلق برای تمام کنترلرهای صنعتی دانست.

PLCهای مدرن می‌توانند از معماری‌های اجرایی پیچیده‌تری استفاده کنند.

برای مثال ممکن است کنترلر دارای موارد زیر باشد:

  • Continuous Task
  • Periodic Task
  • Event Task
  • Hardware Interrupt
  • Time Interrupt
  • Immediate I/O
  • Distributed یا Remote I/O
  • Communication Tasks

باشد.

حتی در مستندات Siemens، اجرای Cyclic Program می‌تواند توسط Interrupt قطع شود.

Rockwell نیز در برخی کنترلرهای جدیدتر چرخه Resource را با چند مرحله فراتر از سه مرحله ساده Input/Program/Output تعریف می‌کند.

بنابراین برای طراحی حرفه‌ای باید Execution Model همان PLC مشخص بررسی شود.


تأثیر Scan Time بر عملکرد ماشین چیست؟

Scan Time بخشی از زمان پاسخ سیستم کنترل را تشکیل می‌دهد.

فرض کنید یک سنسور وضعیت خود را تغییر می‌دهد.

PLC باید تغییر را تشخیص دهد، منطق مربوطه را اجرا کند و نتیجه را به خروجی منتقل کند.

اگر زمان اجرای سیستم برای کاربرد موردنظر بیش از حد طولانی باشد، واکنش ماشین نیز می‌تواند دیرتر از حد مطلوب انجام شود.

اما زمان پاسخ کل سیستم فقط Scan Time نیست.

می‌توان به‌صورت مفهومی گفت:

Response Time ≠ فقط Scan Time

عوامل دیگری نیز دخیل‌اند:

  • زمان پاسخ سنسور
  • Input Filter
  • زمان انتقال شبکه
  • زمان اجرای Task
  • I/O Update
  • تأخیر ماژول خروجی
  • زمان پاسخ عملگر

به همین دلیل در کاربردهای سریع باید کل زنجیره زمانی بررسی شود.


Scan Cycle و ورودی‌های سریع

یکی از اشتباهات رایج این است که تصور کنیم هر سیگنالی را می‌توان با Digital Input معمولی و Scan عادی PLC پردازش کرد.

فرض کنید یک سنسور پالس‌های بسیار سریع تولید می‌کند.

اگر تغییرات سیگنال سریع‌تر از توان نمونه‌برداری مسیر عادی سیستم باشند، ممکن است برخی Pulseها توسط منطق معمول تشخیص داده نشوند.

برای چنین کاربردهایی کنترلرها ممکن است امکاناتی مانند:

  • High-Speed Counter
  • High-Speed Input
  • Hardware Interrupt
  • Event Task
  • Motion Functions

ارائه کنند.

نوع و قابلیت دقیق این امکانات به مدل PLC بستگی دارد.

بنابراین برای Encoder، شمارش سریع، Positioning و کاربردهای مشابه باید دیتاشیت و Manual کنترلر بررسی شود.


Scan Cycle در برنامه Ladder چگونه دیده می‌شود؟

فرض کنید برنامه ساده‌ای داریم:

Start AND NOT Stop → Motor

اگر Start فعال و Stop در وضعیت مجاز باشد، شرط منطقی برقرار می‌شود و برنامه فرمان Motor را ایجاد می‌کند.

در اجرای چرخه‌ای، این منطق بارها بررسی می‌شود.

اگر وضعیت یکی از شروط تغییر کند، نتیجه در Scan مناسب بعدی یا مطابق مدل اجرایی کنترلر تغییر می‌کند.

آیا ترتیب Rungها مهم است؟

در بسیاری از برنامه‌های Ladder چرخه‌ای، بله.

برنامه معمولاً دارای یک ترتیب اجرایی مشخص است و نتیجه‌ای که در یک بخش برنامه تولید می‌شود می‌تواند در بخش بعدی همان اجرا مورد استفاده قرار گیرد.

به همین دلیل دو برنامه که ظاهراً از دستورات مشابه تشکیل شده‌اند، ممکن است با تغییر ترتیب منطق رفتار متفاوتی داشته باشند.

البته قواعد دقیق اجرای Program Organization Units و Taskها باید از مستندات محیط برنامه‌نویسی همان کنترلر بررسی شود.


مثال عملی Scan Cycle در PLC

فرض کنیم یک نوار نقاله داریم که باید با مشاهده قطعه توسط سنسور، یک خروجی را فعال کند.

تجهیزات:

  • سنسور حضور قطعه
  • PLC
  • مدار فرمان عملگر

مرحله اول: خواندن ورودی

PLC وضعیت سنسور را دریافت می‌کند.

فرض کنیم:

Sensor = ON

مرحله دوم: اجرای برنامه

برنامه شرط را بررسی می‌کند:

اگر Sensor = ON → Command = ON

نتیجه منطقی خروجی تعیین می‌شود.

مرحله سوم: به‌روزرسانی خروجی

PLC نتیجه را مطابق مدل I/O خود به خروجی مربوطه منتقل می‌کند.

مرحله چهارم: چرخه بعدی

PLC دوباره ورودی‌ها و برنامه را پردازش می‌کند.

اگر سنسور دیگر فعال نباشد، منطق برنامه در چرخه مناسب بعدی نتیجه جدید را محاسبه خواهد کرد.

این چرخه در زمان کار سیستم مرتباً تکرار می‌شود.


مثال زمانی Scan Cycle

فرض کنید برای ساده‌سازی:

Scan Time = 10 ms

و درست بعد از نمونه‌برداری ورودی، سنسور تغییر وضعیت دهد.

در مدل کلاسیک Process Image، ممکن است این تغییر تا Scan بعدی وارد تصویر ورودی نشود.

سپس برنامه باید آن را پردازش کند و خروجی نیز در مرحله مناسب به‌روزرسانی شود.

این مثال نشان می‌دهد چرا نمی‌توان صرفاً گفت:

«Scan Time ده میلی‌ثانیه است، پس هر ورودی دقیقاً در ده میلی‌ثانیه پاسخ می‌گیرد.»

زمان پاسخ واقعی به لحظه وقوع سیگنال نسبت به چرخه و معماری سیستم بستگی دارد.


Watchdog یا Maximum Scan Time چیست؟

PLC باید بتواند تشخیص دهد که اجرای برنامه بیش از حد انتظار طول کشیده است.

برای این منظور بسیاری از کنترلرها مکانیزمی برای نظارت بر Cycle Time دارند که معمولاً با مفاهیمی مانند Watchdog یا Maximum Scan Cycle Time دیده می‌شود.

اگر اجرای چرخه از حد تعیین‌شده عبور کند، کنترلر می‌تواند یک Diagnostic یا Fault ایجاد کند یا طبق تنظیمات واکنش دیگری نشان دهد.

برای مثال S7-1200 دارای Maximum Scan Cycle Time است و در صورت عبور از مقدار پیکربندی‌شده، Time Error ایجاد می‌کند؛ نحوه واکنش نیز می‌تواند به وجود Error Interrupt و تنظیمات CPU بستگی داشته باشد.

این مکانیزم کمک می‌کند اجرای غیرعادی یا بیش از حد طولانی برنامه قابل تشخیص باشد.


Minimum Scan Cycle Time چیست؟

در برخی PLCها می‌توان حداقل زمان چرخه را نیز تعیین کرد.

اگر برنامه زودتر از زمان مشخص‌شده تمام شود، کنترلر می‌تواند تا رسیدن به Minimum Cycle Time صبر کند یا زمان اضافه را برای فعالیت‌های دیگر مصرف کند.

برای مثال Siemens در S7-1200 قابلیت Minimum Scan Cycle Time را به‌صورت اختیاری ارائه می‌کند و توضیح می‌دهد که در صورت اتمام زودتر چرخه، CPU می‌تواند زمان باقی‌مانده را صرف Diagnostics یا Communication Processing کند.

این قابلیت را نباید با Maximum Scan Time اشتباه گرفت.


تفاوت Cyclic Task، Periodic Task و Event Task چیست؟

در PLCهای پیشرفته‌تر، تمام منطق لزوماً در یک Loop ساده و واحد اجرا نمی‌شود.

Cyclic یا Continuous Execution

برنامه پس از پایان دوباره اجرا می‌شود و این روند ادامه پیدا می‌کند.

Periodic Task

Task در بازه زمانی مشخص اجرا می‌شود.

برای مثال ممکن است بخشی از منطق کنترل با Period مشخصی اجرا شود.

Event Task

اجرای Task با وقوع یک رویداد مشخص Trigger می‌شود.

این ساختارها کمک می‌کنند بخش‌های مختلف برنامه بر اساس نیاز زمانی و اولویت مناسب سازمان‌دهی شوند.

پیاده‌سازی و نام دقیق این مفاهیم بین سازندگان متفاوت است؛ بنابراین تنظیم Taskها باید مطابق مستندات PLC مورد استفاده انجام شود.


خطاهای رایج در درک Scan Cycle

تصور اینکه PLC فقط یک‌بار برنامه را اجرا می‌کند

در اجرای عادی PLC، برنامه‌های چرخه‌ای مرتباً تکرار می‌شوند.

تصور اینکه خروجی همان لحظه تغییر وضعیت ورودی تغییر می‌کند

بین تغییر فیزیکی ورودی و واکنش فیزیکی خروجی مراحل مختلفی وجود دارد.

تصور اینکه Scan Time همیشه ثابت است

Scan Time می‌تواند بر اساس برنامه، Interruptها، Communication و سایر فعالیت‌ها تغییر کند.

تصور اینکه تمام PLCها یک مدل Scan دارند

معماری اجرایی PLCهای مختلف می‌تواند متفاوت باشد.

استفاده از ورودی معمولی برای پالس‌های بسیار سریع

برای سیگنال‌های سریع ممکن است نیاز به قابلیت سخت‌افزاری یا Task مناسب باشد.

تمرکز فقط روی Scan Time

زمان پاسخ کل سیستم علاوه بر PLC به سنسور، شبکه، I/O و عملگر نیز وابسته است.


چگونه Scan Time را بهینه کنیم؟

هدف بهینه‌سازی این نیست که Scan Time را بدون دلیل تا حد ممکن کوچک کنیم.

هدف اصلی ایجاد رفتار زمانی مناسب، قابل پیش‌بینی و متناسب با نیاز ماشین است.

ساختار برنامه را منطقی نگه دارید

برنامه‌ای که ساختار مشخصی دارد، علاوه بر نگهداری آسان‌تر، تحلیل عملکرد بهتری نیز دارد.

محاسبات غیرضروری را کاهش دهید

Loopهای بزرگ، پردازش‌های تکراری و محاسبات سنگین غیرضروری می‌توانند منابع CPU را مصرف کنند.

Taskها را درست طراحی کنید

لازم نیست همه بخش‌های برنامه با یک نرخ اجرا شوند.

برای مثال منطق بسیار سریع ماشین و ثبت داده‌های کم‌اهمیت ممکن است نیاز زمانی یکسانی نداشته باشند.

Communication را در نظر بگیرید

حجم زیاد تبادل داده یا طراحی نامناسب ارتباطات می‌تواند روی عملکرد سیستم اثر بگذارد.

از قابلیت‌های سخت‌افزاری مناسب استفاده کنید

برای Pulseهای سریع، Motion یا Counting بهتر است از قابلیت‌های اختصاصی کنترلر استفاده شود، نه اینکه همه چیز با Scan معمولی حل شود.

Cycle Time را Monitor کنید

در زمان Commissioning، مقادیر واقعی Cycle Time و رفتار CPU را بررسی کنید.

حدس زدن جای Measurement واقعی را نمی‌گیرد.


Scan Cycle چه ارتباطی با IEC 61131-3 دارد؟

IEC 61131-3 استاندارد مهمی در برنامه‌نویسی کنترلرهای صنعتی است و محیط‌هایی مانند CODESYS آن را پیاده‌سازی می‌کنند. CODESYS نیز محیط توسعه خود را مبتنی بر IEC 61131-3 معرفی کرده و زبان‌هایی مانند LD، FBD، ST و SFC را پشتیبانی می‌کند.

اما باید میان زبان برنامه‌نویسی و مدل زمان‌بندی Runtime تفاوت قائل شد.

اینکه برنامه با Ladder Diagram نوشته شده باشد، به‌تنهایی مشخص نمی‌کند تمام بخش‌های آن با چه Period، Priority یا Trigger اجرا می‌شوند.

این موارد به Runtime، Task Configuration و معماری کنترلر وابسته‌اند.


سؤالات متداول درباره Scan Cycle در PLC

Scan Cycle در PLC چیست؟

Scan Cycle چرخه تکرارشونده‌ای است که PLC طی آن ورودی‌ها و داده‌های موردنیاز را پردازش می‌کند، برنامه کنترلی را اجرا می‌کند، وضعیت خروجی‌ها را تعیین می‌کند و وظایف سیستمی لازم را انجام می‌دهد.

Scan Time چیست؟

Scan Time مدت‌زمان موردنیاز برای تکمیل یک چرخه Scan است.

تفاوت Scan Cycle و Scan Time چیست؟

Scan Cycle به فرایند اجرای چرخه اشاره دارد، در حالی که Scan Time مدت زمانی است که انجام آن چرخه طول می‌کشد.

آیا Scan Time همیشه ثابت است؟

خیر. زمان چرخه می‌تواند تحت تأثیر برنامه، ارتباطات، Interruptها و سایر وظایف سیستم تغییر کند.

آیا PLC ابتدا ورودی‌ها را می‌خواند و بعد خروجی‌ها را تغییر می‌دهد؟

در مدل کلاسیک Scan Cycle این توضیح صحیح و مفید است، اما معماری تمام PLCها یکسان نیست و برخی کنترلرها Taskها، Interruptها یا روش‌های متفاوت دسترسی به I/O دارند.

Input Image چیست؟

Input Image ناحیه‌ای از حافظه است که در معماری‌های مبتنی بر Process Image، وضعیت ورودی‌ها برای استفاده برنامه در آن نگهداری می‌شود.

Output Image چیست؟

Output Image ناحیه‌ای از حافظه است که نتایج مربوط به خروجی‌ها در آن ذخیره شده و مطابق معماری کنترلر به خروجی‌های فیزیکی منتقل می‌شوند.

Scan Time کمتر همیشه بهتر است؟

نه لزوماً. Scan Time باید متناسب با نیاز زمانی فرایند باشد. طراحی قابل پیش‌بینی و استفاده صحیح از منابع کنترلر مهم‌تر از تلاش برای کاهش بی‌هدف Scan Time است.

اگر Scan Time بیش از حد زیاد شود چه اتفاقی می‌افتد؟

بسته به PLC و تنظیمات آن، عبور از Maximum Cycle Time می‌تواند Diagnostic، Time Error، اجرای Error Handler یا حتی تغییر وضعیت CPU ایجاد کند. رفتار دقیق باید در مستندات همان کنترلر بررسی شود.

آیا Encoder را می‌توان با Scan معمولی PLC خواند؟

این موضوع به سرعت Pulse، مشخصات ورودی و قابلیت PLC بستگی دارد. برای Encoderها و سیگنال‌های سریع معمولاً باید قابلیت‌هایی مانند High-Speed Counter یا ورودی‌های تخصصی کنترلر بررسی شوند.


جمع‌بندی

Scan Cycle یکی از بنیادی‌ترین مفاهیم در عملکرد PLC است.

در مدل کلاسیک، PLC وضعیت ورودی‌ها را دریافت می‌کند، برنامه را اجرا می‌کند، نتایج خروجی را تعیین می‌کند و سپس چرخه را دوباره تکرار می‌کند.

مدت‌زمان انجام این عملیات Scan Time نامیده می‌شود.

اما PLCهای مدرن می‌توانند بسیار پیچیده‌تر از مدل ساده:

Input → Program → Output

عمل کنند.

Interruptها، Periodic Taskها، Event Taskها، ارتباطات، Remote I/O و قابلیت‌های تخصصی سخت‌افزار می‌توانند بر نحوه و زمان اجرای برنامه تأثیر بگذارند.

بنابراین مدل کلاسیک Scan Cycle بهترین نقطه برای یادگیری مفهوم است، اما در طراحی یک سیستم واقعی باید Execution Model همان کنترلر بررسی شود.

درک صحیح Scan Cycle کمک می‌کند رفتار برنامه PLC، ترتیب اجرای منطق، زمان پاسخ سیستم، Process Image و محدودیت‌های پردازش سیگنال‌های سریع را بسیار بهتر تحلیل کنیم.

سوالی دارید؟

اگر در انتخاب یا پیاده‌سازی سیستم‌های اتوماسیون نیاز به راهنمایی دارید، با ما تماس بگیرید.

تماس با ما