فهرست مطالب
Toggleمعرفی بلاکهای برنامهنویسی LADDER در زیمنس
یکی از روشهای درآمدزایی از صنعت برق، برنامهنویسی PLC است. به دلیل سادگی و کاربرپسند بودن زبان Ladder Logic بیشتر از این زبان برای برنامهنویسی PLCهای زیمنس استفاده میشود. دلیل محبوبیت زبان لدر این است که میتوان از طریق آن به سادگی سیستمهای اتوماسیون را طراحی، پیادهسازی و عیبیابی کرد. در این مقاله، بلاکهای برنامهنویسی لدر در PLCهای زیمنس، شامل انواع تایمرها، کانترها، فانکشن بلاکها و دیگر اجزای موجود در جعبه ابزار Ladder Simatic را معرفی میکنیم. در انتها، یک مثال کاربردی و عملی از برنامهنویسی لدر ارائه خواهیم کرد. با مطالعه این مقاله، میتوانید یک دید کلی نسبت به برنامهنویسی PLCهای زیمنس به دست آورید.
برای یادگیری عملی و حرفهای برنامهنویسی، طراحی، عیبیابی سیستمهای اتوماسیون مبتنی بر زیمنس میتوانید در دوره اتوماسیون زیمنس ماهر ثبتنام کنید.
قبل از بررسی بلاکها و فانکشنهای برنامهنویسی در زبان لدر بهتر است کمی با PLC، زبانهای برنامهنویسی آن و نرمافزارهای برنامهنویسی PLC زیمنس آشنا شویم.
PLC چیست؟
PLC یا Programmable Logic Controller به معنای کنترل کننده منطقی برنامهپذیر است. از PLC برای کنترل خودکار فرآیندهای صنعتی و ماشینآلات استفاده میشود. PLC دادههای ورودی را طبق برنامه نوشتهشده توسط کاربر، پردازش کرده و فرمان فعال یا غیرفعال شدن خروجیها را صادر میکند.
مزایای اصلی PLC:
- مناسب برای انواع محیطهای صنعتی و کارگاهی در کاربردهای ساده و پیچیده
- دقت بالا در کنترل فرآیند
- انعطافپذیری (امکان توسعه یا تغییر آسان سیستم کنترلی در صورت نیاز)
- بالا بردن بهرهوری سیستم
- مدیریت مصرف انرژی
- کاهش احتمال خطای انسانی
- افزایش ایمنی تجهیزات و افراد
بیشتر بخوانید!
برای آشنایی بیشتر با این تجهیز، میتوانید مقاله PLC چیست؟ (مزایا و انواع مختلف) را بخوانید.
PLCهای زیمنس
یکی از بزرگترین تولیدکنندگان PLC در جهان شرکت زیمنس (Siemens) است که چندین سری PLC مختلف را به صنعت ارائه کرده است. سریهای PLC زیمنس شامل موارد زیر را هستند.
- S7-200: این سری از محصولات زیمنس دارای طراحی کامپکت و قابلیتهای بالا است و برای پروژههای کوچک و متوسط به کار میرود.
- S7-300: این سری PLC از نوع ماجولار است و برای پروژههای متوسط و کوچک صنعتی کارایی خوبی دارد.
- S7-400: سری S7-400 نسبت به S7-300 پیشرفتهتر است و توان پردازشی بالاتری دارد. معمولاً برای سیستمهای پیچیده و حساس از S7-400 استفاده میشود.
- S7-1200: این سری از PLCهای زیمنس برای کاربردهای کوچک و متوسط طراحی شده است. سری S7-1200 بسیار انعطافپذیر و مقرونبهصرفه است و از نظر عملکرد و کارایی و کاربرد بین S7-200 و S7-300 قرار میگیرد.
- S7-1500: جدیدترین سری از PLCهای زیمنس است که با ویژگیهای پیشرفته و انعطافپذیری بسیار بالا طراحی شده است. این سری قابلیتهایی مانند امکانات ارتباطی پیشرفته، امنیت و سرعت پردازش بالا دارد.
بیشتر بخوانید!
برای آشنایی کامل با سریهای مختلف PLC زیمنس مقاله زیر را در وبسایت ماهر بخوانید.
زبانهای برنامهنویسی PLC
PLCها را میتوان به زبانهای مختلف برنامهنویسی کرد. هر یک از این زبانها ویژگی و کاربرد مختص خود را دارد. در ادامه مطلب، زبانهای برنامهنویسی مورد تأیید استاندارد IEC برای برنامهنویسی PLC را معرفی میکنیم.
Ladder Logic یا LD
معماری زبان برنامهنویسی Ladder یا نردبانی، شبیه به ساختار یک مدار فرمان الکتریکی است. در این زبان از دو خط عمودی و تعدادی خطوط افقی برای پیادهسازی منطق کنترل استفاده میشود. این زبان به دلیل شباهت زیاد به مدارهای الکتریکی، بین مهندسان برق و تکنسینها بسیار محبوب است.
Function Block Diagram یا FBD
زبان برنامهنویسی FBD یا بلوکی، برنامه را به صورت بلوکهای گرافیکی نمایش میدهد. هر بلوک بیانگر یک تابع یا عملکرد خاص است. این بلوکها به هم متصل میشوند و یک سیستم پیچیده را تشکیل میدهند. این زبان برای طراحی سیستمهای کنترلی پیچیده و پردازش موازی به کار میرود و دومین زبان محبوب و پرکاربرد در صنعت است.
Structured Text یا ST
زبان برنامهنویسی ST یا ساختاری، شباهت زیادی به زبانهای برنامهنویسی سطح بالا مانند Pascal یا C دارد. برنامه به صورت یک سری دستورات متنی نوشته میشود و امکان نوشتن الگوریتمهای پیچیده، دستورات شرطی و حلقهها برای کاربر وجود دارد. این زبان برای فرآیندهای پیچیدهای که نیاز به محاسبات ریاضی پیشرفته دارند، بسیار مناسب است.
Sequential Function Chart یا SFC
زبان برنامهنویسی SFC یا توالی، برای نمایش و پیادهسازی فرآیندهای ترتیبی و حالتهای مختلف سیستم از این زبان برنامهنویسی استفاده میشود. این زبان هر مرحله از فرآیند را بهصورت نمودارهای گرافیکی نشان میدهد و امکان پیادهسازی و کنترل مرحلهبهمرحله فرآیند را برای کاربر فراهم میکند.
Instruction List یا IL
زبان برنامهنویسی IL یک زبان متنی بسیار نزدیک به زبان ماشین است که به شکل کدهای مختصر نوشته میشود. از این زبان برای برنامهنویسی دقیق در کاربردهای بسیار حساس استفاده میشود.
بیشتر بخوانید!
برای آشنایی بیشتر و بهتر با این زبانهای برنامهنویسی میتوانید مقاله برنامهنویسی صنعتی و مقایسه زبان لَدِر با دیگر زبانهای برنامهنویسی PLC را بخوانید.
نرمافزار برنامهنویسی PLC زیمنس
دو نرمافزار سیماتیک منیجر (SIMATIC Manager) و تیا پرتال (TIA Portal) از شرکت زیمنس برای برنامهنویسی و مدیریت سیستمهای اتوماسیون صنعتی بهکار میروند. در ادامه این دو نرمافزار را بررسی میکنیم.
تیا پورتال (TIA Portal)
تیا پورتال نرمافزار جدیدتری نسبت به سیماتیک منیجر است. از این نرمافزار بهعنوان پلتفرم یکپارچه شامل تمام ابزارهای مورد نیاز برای برنامهنویسی، پیکربندی و مانیتورینگ سیستمهای اتوماسیون صنعتی استفاده میشود. تیا پورتال PLCهای سری S7-1200، S7-1500 همچنین S7-300 و S7-400 و زبانهای برنامهنویسی مطابق با استاندارد IEC 61131-3 را پشتیبانی میکند.
این نرمافزار دارای رابط کاربری مدرن و کاربر پسند است و شامل قابلیتهای پیشرفتهتر HMI، شبکههای صنعتی، مدیریت انرژی، ابزارهای مانیتورینگ و آنالیز داده است.
برای سیستمها و سختافزارهای جدیدتر زیمنس طراحی شده و به روزرسانیهای مداومی برای آن ارائه میشود. همچنین علاوه بر زبانهای LAD، STL و FBD، از زبانهای SCL و GRAPH هم پشتیبانی میکند.
سیماتیک منیجر (SIMATIC Manager)
سیماتیک منیجر نرمافزار قدیمیتر شرکت زیمنس است. این نرمافزار برای برنامهنویسی و مدیریت PLCهای سری S7-300 و S7-400 زیمنس طراحی شده است. بهعنوان بخشی از مجموعه STEP 7 V5.x شناخته میشود و از زبانهای برنامهنویسی LAD، STL و FBD پشتیبانی میکند.
SIMATIC Manager دارای رابط کاربری کلاسیک و کمی پیچیدهتر از تیا پورتال است. این نرمافزار از ابزارهای جداگانهای برای پیکربندی و برنامهنویسی استفاده میکند. برای طراحی HIM ممکن است نیاز به استفاده از نرمافزارهای دیگر مانند WinCC باشد. SIMATIC Manager تمرکز بیشتری روی عملکردهای پایه دارد و معمولا برای سیستمها و سختافزارهای قدیمیتر زیمنس مناسب است.
بهطور کلی، تیاپورتال بهعنوان نسل جدید و پیشرفتهتر نرمافزارهای زیمنس شناخته و برای پروژههای پیچیدهتر بهتر است از این نرمافزار استفاده شود. سیماتیک منیجر برای پروژهها و سیستمهای با پیچیدگی کمتر هنوز نزد کاربران محبوبیت بالایی دارد.
توجه داشته باشید یکی از راههای ماهر شدن در برنامهنویسی PLC تمرین مستمر برنامهنویسی است. اولین گام برای شروع برنامهنویسی زیمنس دانلود نرمافزارهای برنامهنویسی زیمنس مانند SIMATIC STEP 7 و TIA Portal است.
بلاکهای برنامهنویسی در زبان Ladder
در PLC بلاکهای مختلفی برای مدیریت و سازماندهی فرایندها و دادهها وجود دارد. در ادامه بلاکهای سازمانی (OB)، فانکشن (FC)، فانکشن بلاک (FB) و دیتا بلاک (DB) را توضیح میدهیم.
بلاکهای سازمانی (Organization Blocks – OB)
بلاکهای OB توسط CPU مدیریت میشود و وظیفه اجرای برنامه را دارد. OBها به شکلهای مختلف فراخوانی و اجرا میشوند. مهمترین آنها OB1 است که بهعنوان بلاک اصلی برنامهنویسی شناخته میشود. برنامههای اصلی باید در OB1 پیادهسازی شوند. OBهای دیگر بر اساس نوع کاربرد به صورت زیر دستهبندی میشوند:
- OB راهاندازی (Startup OB): این OB فقط زمان راهاندازی سیستم (STARTUP) فراخوانی میشود. این OB برای اجرای وظیفه خاص هنگام روشنشدن سیستم استفاده میشود.
- OB وقفۀ مبتنی بر رخداد (Event-based Interrupt OB): این OB زمانی فراخوانی میشود که در سیستم یک اتفاق خاص رخ دهد. برای مثال، OBهای گروه TOD زمانی فراخوانی میشوند که تاریخ و زمان تنظیمشده سر برسد.
- OB وقفۀ مبتنی بر خطا (Error-based Interrupt OB): این OB زمانی فراخوانی میشود که خطایی در سیستم رخ دهد. برای مثال، زمانی که خطایی در شبکه پروفینت (Profinet) اتفاق بیفتد OB86 یا زمانی که خطایی مرتبط با ماژولهای I/O رخ دهد OB80 فراخوانی میشود. عدم وجود این OB ممکن است باعث توقف CPU شود.
فانکشن (Function – FC)
فانکشن بلاکی است که توسط کاربر ایجاد و برای تقسیم برنامه به بخشهای کوچکتر یا برای پیادهسازی منطقهای تکراری استفاده میشود. FC دادهای را در خود ذخیره نمیکند.
فانکشن بلاک (Function Block – FB)
فانکشن بلاک مشابه FC است، با این تفاوت که دارای حافظه اختصاصی به نام Data Block یا DB است. هر FB دارای یک Instance DB اختصاصی است که اطلاعات مرتبط با FB در آن ذخیره میشود.
دیتا بلاک (Data Blocks – DB)
دیتا بلاک (DB) برای ذخیرهسازی اطلاعات در حافظه PLC یه کار میرود. دیتا بلاکها به دو دسته کلی تقسیم میشوند:
- Global DB: این دیتا بلاک توسط تمام بلاکها قابل دسترسی است و در هنگام برنامهنویسی، به کاربر امکان استفاده آسان از متغیرهای تعریفشده را میدهد.
- Instance DB: این دیتا بلاک به طور خاص برای ذخیره دادههای در یک فانکشن بلاک (FB) استفاده میشود.
بلوکهای منطقی (Logic Blocks)
در بعضی از برنامههای اتوماسیون نیاز به انجام عملیات منطقی وجود دارد؛ برنامههای منطقی در برنامهنویسی PLC به وسیله بلاکهای منطقی پیادهسازی میشوند. در ادامه انواع بلاکهای منطقی را معرفی میکنیم.
- گیت AND
زمانی که تمام ورودیها 1 (فعال) باشند، خروجی این گیت 1 میشود.
در صورتی که حتی یکی از ورودیها 0 (غیرفعال) باشند، خروجی 0 میشود.
- گیت OR
زمانی که حتی فقط یکی از ورودیها 1 (فعال) باشد، خروجی 1 میشود.
اگر همه ورودیها 0 (غیرفعال) باشند، خروجی 1 میشود.
- گیت NOT
در این حالت با 1 شدن ورودی، خروجی 0 و با 0 شدن ورودی، خروجی 1 خواهد شد.
- گیت NAND
زمانی که یکی از ورودیها یا همه آن ها 0 باشند، خروجی 1 میشود.
اگر همه ورودیها 1 شود، خروجی 0 میشود.
- گیت NOR
اگر همه ورودیها 0 شود، خروجی 1 میشود.
زمانی که یکی از ورودیها یا همه آن ها 1 باشند، خروجی 0 میشود.
- گیت XOR
در صورتی که ورودیها مشابه (هر دو 0 یا هر دو 1) باشند خروجی 0 و اگر نامشابه باشند، 1 است.
- گیت EX-NOR
در صورتی که ورودیها نامشابه باشند خروجی 0 و اگر مشابه (هر دو 0 یا هر دو 1) باشند، 1 است.
بلوکهای ریاضی (Mathematical Blocks)
برای اجرای محاسبات ریاضی در PLC به عملگرهای محاسباتی نیاز داریم. تعدادی از بلوکهای ریاضی زبان لدر در PLC زیمنس را در ادامه معرفی میکنیم.
- جمع: ADD
- تفریق: SUB
- ضرب: MUL
- تقسیم: DIV
- باقیمانده تقسیم: MOD
- قدر مطلق: ABS
- جذر: SQRT
- مربع (توان دو): SQR
- تابع نمایی (عدد نِپِر به توان…) : EXP
- لگاریتم طبیعی: LN
- سینوس: SIN
- کسینوس: COS
- تانژانت: TAN
- آرک سینوس: ASIN
- آرک کسینوس: ACOS
- آرک تانژانت: ATAN
شرح نحوه عملکرد هر یک از بلاکهای محاسباتی فوق در ادامه آمده است.
- Addition) ADD): دو مقدار IN0 با IN1 را جمع و حاصل را در OUT ذخیره میکند.
- Subtraction) SUB): مقدار IN1 را از IN0 کم و مقدار حاصل را در OUT ذخیره میکند.
- Multiplication)MUL): دو مقدار IN0 را با IN1 ضرب و مقدار حاصل را در OUT ذخیره میکند.
- Division) DIV): مقدار IN1 را بر IN0 تقسیم و مقدار حاصل را در OUT ذخیره میکند.
نکته: نوع دادههای ورودی و خروجی در دستورالعملهای ADD ،SUB ،MUL و DIV باید به شکل Integer (عدد صحیح) یا Floating Point (اعشار شناور) باشد.
- Return Fraction)MOD): مقدار IN1 را بر IN0 تقسیم و مقدار باقیمانده را در OUT ذخیره میکند.
نکته: نوع داده ورودی و خروجی در دستورالعمل MOD باید Integer باشد.
- Absolute) ABS): قدر مطلق IN را در OUT برمیگرداند.
- Square Root) SQRT): مقدار ریشه دوم IN را در OUT برمیگرداند.
- Square) SQR): مقدار مربع IN را در OUT برمیگرداند.
- Exponential) EXP): مقدار نمایی IN را به پایه e در OUT برمیگرداند.
- Natural Logarithm) LN): مقدار لگاریتم طبیعی IN را در OUT برمیگرداند.
- Sine Value) SIN): مقدار سینوس IN را در OUT برمیگرداند.
- Cosine Value) COS): مقدار کسینوس IN را در OUT برمیگرداند.
- Tangent Value) TAN): مقدار تانژانت IN را در OUT برمیگرداند.
- Arc Sine Value) ASIN): مقدار آرک سینوس IN را در OUT برمیگرداند.
- Arc Cosine Value) ACOS): مقدار آرک کسینوس IN را در OUT برمیگرداند.
- Arc Tangent Value) ATAN): مقدار آرک تانژانت IN را در OUT برمیگرداند.
نکته: نوع دادههای ورودی و خروجی در دستورالعملهای EXP، LN، SIN، COS، TAN، ASIN، ACOS و ATAN باید Floating Point باشند.
مقایسهگرها (Comparators)
یکی از بلوکهای بسیار مهم در برنامهنویسی PLC بلوکهای مقایسه هستند. برای مثال، فرض کنید در یک فرایند صنعتی، لازم است دما را در محدوده خاص نگه دارید. سنسورهای دما دیتا را به PLC میدهند و دادههای دریافتی توسط مقایسهگر با مقدار مطلوب مقایسه شده و بر اساس این مقایسه فن یا هیتر فعال یا غیرفعال میشود.
مقایسهگرها در زبان لدر برای مقایسه «مساوی»، «نامساوی»، «بزرگتر» و «کوچکتر» به کار میروند.
- CMP == (تساوی): مقدار جاری و مقدار مطلوب را مقایسه میکند؛ اگر مقادیر برابر باشند، خروجی میدهد.
- CMP <> (نامساوی): مقدار جاری و مقدار مطلوب را مقایسه میکند؛ اگر مقادیر برابر نباشند، خروجی میدهد.
- CMP > (بزرگتر): دو مقدار را مقایسه میکند؛ اگر مقدار IN0 بزرگتر از مقدار IN1 باشد، خروجی میدهد.
- CMP < (کوچکتر): دو مقدار را مقایسه میکند؛ اگر مقدار IN0 کمتر از مقدار IN1 باشد، خروجی میهد.
- CMP >= (بزرگتر یا مساوی): دو مقدار را مقایسه میکند؛ اگر مقدار IN0 بزرگتر یا مساوی با مقدار IN1 باشد، خروجی میدهد.
- CMP <= (کوچکتر یا مساوی): دو مقدار را مقایسه میکند؛ اگر مقدار IN0 کمتر از یا مساوی با مقدار IN1 باشد، خروجی میدهد.
کویلها (Coils)
کویلها نمادی برای خروجیها (Q) در برنامه لدر در PLC هستن و با نماد ( ) در برنامه قرار میگیرند. در یک برنامه هر کویل مخصوص یک خروجی است. اما از کنتاکت آن در سایر خطوط برنامه میتوان استفاده کرد.
کنتاکتها (Contacts)
در برنامهنویسی PLC از دو کنتاکت NO (| |) و NC (|/|) بهعنوان تیغههای فرمان استفاده میشود. این کنتاکتها بر اساس سیگنال دریافتی از ورودیها (I) و خروجی المانهایی مانند تایمر (T)، کانتر (C) یا مقایسهگرها (CMP) در برنامه قرار میگیرند و عمل میکنند.
کنتاکت NO: با 1 شدن ورودی، کنتاکت Normally-open در برنامه PLC مسیر جریان را برقرار و در صورت 0 بودن، مسیر عبور جریان الکتریکی مسدود میکند.
کنتاکت NC: با 0 شدن ورودی، کنتاکت Normally-closed در برنامه PLC مسیر جریان را برقرار و در صورت 1 بودن، مسیر عبور جریان الکتریکی مسدود میکند.
تایمرها (Timers)
تایمر نقش مهمی در کنترل فرآیند در یک بازه زمانی خاص دارد. بهعنوان مثال برای تغییر حالت از ستاره به مثلث در راه اندازی الکتروموتور، به تایمر نیاز داریم. بهطور کلی سه نوع تایمر وجود دارد.
- تایمر تاخیر در وصل (On-delay): زمانی که بوبین تایمر تحریک (اعمال ولتاژ) میشود، تایمر زمان شماری کرده و پس از اتمام زمان شماری رله تغییر وضعیت میدهد.
- تایمر تاخیر در قطع (Off-delay): زمانی که ولتاژ از سر بوبین برداشته میشود، رله بلافاصله عمل نمیکند. ابتدا تایمر شروع به زمان شماری کرده پس از سپری شدن زمان تنظیم شده، رله تغییر وضعیت میدهد.
- تایمر تاخیر در وصل/قطع (On/Off delay): در این نوع تایمر هر دو حالت تاخیر در وصل و تاخیر در قطع وجود دارد.
هر بلوک تایمر دارای bitهایی مانند S ،R ،Q و wordهایی مانند TV ،BI و BCD است.
- S: راهاندازی بلوک تایمر
- R: بازنشانی بلوک تایمر
- Q: وضعیت خروجی تایمر
- TV: مقدار زمان شمارش
- BI: مقدار زمان باقیمانده در قالب integer
- BCD: مقدار زمان باقیمانده در قالب BCD
در PLC زیمنس دستورالعملهای مختلفی برای عملکرد تایمر وجود دارد که در ادامه آنها را معرفی میکنیم :
- S_PULSE (تایمر پالس): این تایمر حساس به سطح است. با 1 شدن ورودی، تایمر شروع به زمانشماری میکند. در صورتی که زمان تنظیمشده سپری شود و همچنان ورودی تایمر 1 باشد، خروجی فعال خواهد شد. اگر در حین زمان شماری ورودی از 1 به 0 تغییر کند، خروجی رله فعال نخواهد شد.
- S_PEXT (تایمر پالس حساس به لبه): این تایمر حساس به لبه است. به محض 1 شدن ورودی، تایمر شروع به زمان شماری میکند. و اگر در حین زمان شماری ورودی از 1 به 0 تغییر وضعیت دهد تایمر به زمانشماری ادامه میدهد و خروجی را پس از سپریشدن زمان تنظیمی فعال میکند.
- S_ODT (تایمر تاخیر در وصل): با 1 شدن ورودی، تایمر شروع به زمانشماری میکند و پس از سپری کردن زمان تنظیمشده خروجی را فعال میکند. خروجی تا زمانی که ورودی 1 باشد فعال است.
- S_ODTS (تایمر تاخیر در وصل ماندگار): با 1 شدن ورودی، تایمر شروع به زمانشماری میکند و پس از سپریکردن زمان تنظیمشده خروجی را فعال میکند. خروجی تایمر با 1 شدن ریست تایمر، غیرفعال میشود.
- S_OFFDT (تایمر تاخیر در قطع): با 0 شدن ورودی، تایمر شروع به زمانشماری میکند و پس از سپریکردن زمان تنظیمشده خروجی را غیرفعال میکند.
شمارندهها (Counters)
کانتر یا شمارنده برای شمارش در فرایندهای صنعتی بهکار میرود. برای مثال، در یک خط تولید برای شمارش محصول تولیدی میتوان آنها را از مقابل سنسور عبور داد. پس از اینکه هر قطعه یا محصول از مقابل سنسور عبور کند، سنسور یک سیگنال شمارش برای کنترلکننده ارسال مینماید. در نتیجه، کنترلکننده (PLC) با دریافت هر سیگنال، یک عدد به رقم کانتر اضافه میکند.
ورودیهای بلاکِ کانتر
- CU: افزایش به ازای رسیدن لبه بالا رونده
- CD: کاهش به ازای رسیدن لبه پایین رونده
- S: ست کردن ورودی
- PV: مقدار مورد نظر برای شمارش
- R: ریست ورودی
خروجیهای بلاکِ کانتر
- Q: خروجی کانتر
- CV: مقدار جاری شمارش شده در قالب integer
- CV_BCD: مقدار فعلی شمارش شده در قالب BCD
در PLC زیمنس سه نوع بلاکِ کانتر وجود دارد.
- کانتر افزایشی (S-CU)
- کانتر کاهش (S-CD)
- کانتر افزایشی/کاهشی (S-CUD)
فلیپ-فلاپ در برنامه لدر
قبل از معرفی فلیپ-فلاپ SR و RS بهتر است در مورد R و S یک توضیح مختصر دهیم.
R مخفف کلمه Reset است. با رسیدن سیگنال به پایه ریست، مقدار خروجی متصل به آن در NETWORK صفر میشود.
S مخفف کلمه SET است. با رسیدن سیگنال به پایه ست، مقدار خروجی متصل به آن در NETWORK یک میشود. خروجی در این حالت فعال میماند برای غیرفعال کردن آن باید ریست را فعال کنیم
فلیپ-فلاپ SR و RS
این فلیپ-فلاپها از ترکیب S (ست) و R (ریست) ایجاد شدهاند. در این فلیپ-فلاپ SR اولویت با ست و در فلیپ-فلاپ RS اولویت با ریست است.
مثال کاربردی
برای درک بهتر عملکرد بلاکهای برنامهنویسی به زبان لدر در PLC زیمنس سناریوی عملی و ساده از نوار نقاله در ادامه بررسی میکنیم.
سناریو
برنامهای بنویسید که در آن با فشار شستی استارت نوار نقاله شروع به حرکت کند. با حرکت جعبهها از مقابل سنسور، کانتر تعداد آنها را شمارش کند و با فشار شستی استپ کانتر و نوار نقاله ریست شود.
ورودی/خروجیها
- I0.0: شستی استارت (NO)
- I0.1: شستی استاپ (NC)
- Q0.0: نوار نقاله
- C01: کانتر
توضیح منطق برنامه
Network 01
با فشار شستی استارت پایه S (ست) فلیپ-فلاپ تحریک و کانوایر روشن میشود. با فشار استپ پایه R (ریست) فلیپ-فلاپ تحریک و موتور خاموش میشود. در نتیجه نوار نقاله از حرکت میایستد.
Network 02
با عبور جعبهها از مقابل سنسور یک پالس به PLC ارسال میشود. کانتر افزایشی با هر بار دریافت یک لبه بالا رونده یک عدد به مقدار شمارش شده اضافه میکند. در صورتی که مقدار شمارششده با مقدار مطلوب تنظیمشده در کانتر یکی شود، خروجی کانتر فعال میشود.
در نهایت با فشار شستی استپ، که به پایه R فلیپ-فلاپ و کانتر متصل است، کانتر و موتور نوار نقاله هر دو غیر فعال میشوند.
مزایای برنامهنویسی لدر (Ladder Logic)
- سادگی: یادگیری و استفاده از لدر لاجیک به دلیل شباهت به مدارهای فرمان برای مهندسان و تکنسینهای برق بسیار آسان است.
- ویژوال بودن: فرآیند کنترلی در برنامهنویسی نردبانی (Ladder Diagram) به دلیل محیط گرافیکی آن، بهراحتی قابل درک و تجزیه و تحلیل است. این ویژگی باعث تشخیص سریع خطا و عیبیابی آسانتر برنامهها میشود.
- استاندارد: لدر یک زبان برنامهنویسی استاندارد (IEC 61131-3) برای PLC است که توسط اکثر PLCهای موجود پشتیبانی میشود.
- مطابقت با مدارهای الکتریکی: برنامهنویسی لدر به دلیل شباهت به مدارهای الکتریکی، تطابق خوبی با سیستمهای الکتریکی و الکترونیکی دارد.
- پشتیبانی گسترده: به دلیل فراگیری و محبوبیت زبان Ladder، منابع آموزشی، نرمافزارها و ابزارهای پشتیبانی آن بسیار زیاد است که میتواند به آموزش و پیادهسازی آن کمک کند.
- انعطافپذیری: با وجود سادگی، از این زبان برنامهنویسی میتوان برای پیادهسازی برنامههای پیچیده نیز استفاده کرد. لدر قابلیتهای پیشرفتهای مانند توابع و بلوکهای برنامهریزی دارد.
- کاربرد صنعتی گسترده: به دلیل سازگاری با نیازهای صنعتی و تجهیزات کنترلی در فرآیندهای تولیدی در صنایع مختلف به طور گسترده استفاده میشود.
جمعبندی
در این مقاله آشنایی مختصری در مورد بلاکهای برنامهنویسی PLC در زبان لدر ارائه شد. این بلاکها ابزارهای زبان لدر برای پیادهسازی منطق کنترلی هستند. در ابتدای مقاله، PLC و زبانهای برنامهنویسی آن را به اختصار توضیح دادیم. در ادامه PLCهای زیمنس، نرمافزارهای برنامهنویسی این برند (تیا پورتال و سیماتیک منیجر) و بلوکهای برنامهنویسی در زبان لدر در PLCهای زیمنس از جمله تایمر، کانتر، بلاکهای منطقی، ریاضی و مقایسهگرها را بررسی کردیم. در نهایت، برای جا افتادن بهتر مطالب، یک مثال کاربردی و بسیار ساده از پیادهسازی منطق کنترلی به زبان لدر ارائه کردیم تا بهتر و بیشتر با این زبان برنامهنویسی محبوب در بین مهندسان برق آشنا شوید. یادگیری نحوه بهکارگیری ابزارهای برنامهنویسی لدر در اجرای پروژههای اتوماسیون صنعتی یک مهارت بسیار پرکاربرد و درآمدزا به شمار میرود. با شرکت در دوره اتوماسیونکار زیمنس ماهر میتوانید این مهارت ارزشمند را به صورت عملی و پروژهمحور به دست آورید.
سوالات متداول
بلوکهای منطقی (Logical Blocks)، مقایسهگرها (Comparators)، خروجیها (Coils)، کنتاکتها (Contacts)، تایمرها (Timers) و شمارندهها (Counters) المانها و بلاکهای برنامهنویسی در زبان لدر هستند.
برای یادگیری برنامهنویسی زیمنس با زبان لدر، آشنایی با مفاهیم اولیه برق و تئوری کنترل، درک اصول اتوماسیون و کاربرد PLCها، مدار فرمان، قدرت و مدارهای منطقی، تسلط بر محیط نرمافزارهایی برنامهنویسی PLCهای زیمنس، شناخت نوع و عملکرد سنسورها و عملگرها در یک سیستم کنترل به عنوان پیشنیاز مورد نیاز است.
برای ایجاد یک فانکشن بلاک جدید در SIMATIC Manager باید این مراحل را طی کنید: یک پروژه جدید باز یا پروژه موجود را انتخاب کنید، روی بلوکهای برنامه (Program Blocks) کلیک کنید، روی “New Object” کلیک کرده و “Function Block” را انتخاب کنید، نام فانکشن بلاک را وارد و تایید کنید، کد مورد نظر را بنویسید.