برنامه نویسی تیا پورتال

TIA Portal یک بسته نرم افزاری و ابزاری است که توسط زیمنس توسعه یافته است که هدف آن ادغام چندین ابزار توسعه برای دستگاه های اتوماسیون از یکپارچه سازی و بازسازی نرم افزارهای از قبل موجود مانند : Simatic Step 7، Simatic WinCC و Sinamics Starter است. این محیط ها برای برنامه نویسی، پیکربندی PLC های زیمنس، HMI ها و اینورترها هستند.

منطق برنامه نویسی تیا پورتال از ساختار بلوک‌ها پیروی می‌کند،  تیاپورتال یک نرم افزار تسهیل‌ کننده برای توسعه، تعمیر و نگهداری و برنامه نویسی ماشین‌ها و فرآیند های صنعتی میباشد.Simatic Step 7 برای برنامه ریزی PLC های خانواده S7-1200، S7-1500، S7-300 و S7-400 استفاده می شود. WinAC و جدیدترین کنترلر نرم افزاری S7-1500 کنترلر های جایگزین برای کامپیوتر های صنعتی هستند.

WinAC و جدیدترین کنترلر نرم افزاری S7-1500 کنترلر های جایگزین برای کامپیوتر های صنعتی هستند. زبان های برنامه نویسی موجود عبارتند از ladder، FBD (Function Block Diagram)، SCL (Structured Control Language)، STL (Statements List) و S7 GRAPH .

توسعه صفحه نمایش HMI در WinCC برای سیستم های نظارتی روی رایانه ها، SCADA، و Hmi های Basic، Comfort و Mobile اعمال می شود. پروتکل های ارتباطی Profibus، PROFINET و AS-I برای ارتباط با PLC ها می توان به وجود CM ها (Communication Modules) برای برقراری ارتباط در پروتکل های مختلف صنعتی مانند Modbus و CANOpen اشاره کرد. شکل زیر ویژگی های اصلی SIMATIC STEP 7 و SIMATIC WinCC را جمع آوری می کند .

بیشتر بخوانید : برای خواندن و کسب اطلاعات از کلید قطع و وصل کلیک کنید.

برنامه نویسی تیا پورتال

برنامه نویسی تیا پورتال

مانیتورینگ و کنترل عملگر ها توسط کنترلر انجام می شود. یک سیستم عامل cpu به عنوان یک عامل مترجم برای اجرای الگوریتم ها عمل می کند. سیستم عامل های PLC مسئول ترجمه دستورالعمل های منطقی برای فرمان به سخت افزار با توجه به برنامه کاربر و پیکربندی سخت افزاری PLC هستند. برنامه‌نویسی کنترل‌کننده ها بر اساس بلوک ها به اسامی OB (بلوک‌ های سازمان)، FCs (توابع)، FBs (بلوک‌ های تابع) و DBs (بلوک‌ های داده) تقسیم‌بندی شده است.

برنامه نویسی TIA PRTAL

آشنایی با بلوک های سازمانی در تیا پورتال 

بلوک های سازمانی مرتبط به چرخه های اجرایی برنامه و وقفه ها هستند، زیرا اجرای آنها به فلاسفی بلوک قبلی مانند بازه زمانی یا تشخیص خرابی سخت افزار مرتبط است. OB1 یا بلوک برنامه نویسی Main، برای مقداردهی اولیه و اسکن متوالی بلوک های برنامه نویسی شده مانند fc ها و fb ها میباشد، و این بلوک و فراخوانی فانکشن ها و فانکشن بلاک ها در آن برای اجرای برنامه ضروری است.

با توجه به نمایش شکل زیر، اجرای برنامه های در  OB1 به صورت خطی و همزمان، کد هایی از چپ به راست و از ابتدا تا انتهای بلوک شروع به پردازش می شود. در پایان این بلوک، CPU از ابتدا اجرای کد را از سر می گیرد و این روند به طور نامحدود تکرار می شود.

برنامه نویسی تیاپورتال

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

بیشتر بخوانید : برای کسب اطلاعات بیشتر از تابلو برق اصفهان کلیک کنید.

از آنجایی که برای اجرا دستورالعمل ها در تابع MAIN OB1 به پردازش همه دستور های برنامه نویسی شده نیاز است، زمان چرخه مانیتورینگ و دستور آن ممکن است با توجه به حجم برنامه و پیچیدگی آن و یا حتی هر شرایط برنامه ریزی پیش بینی نشده در هر سیکل متفاوت باشد. بنابراین، برای جلوگیری از عدم کارکرد برنامه PLC و تضمین اجرای چرخه ای در یک زمان منطقی خاص، OB وقفه چرخه ای توصیه می شود. بلوک های وقفه چرخه ای نیز به صورت چرخه ای با فاصله زمانی از پیش تعریف شده بین اجراها هنگام ایجاد بلوک ها اجرا می شوند .

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

درک و تعریف توابع (FCs) در TIA PORT

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

متغیرهای محلی اعلام شده در FC می توانند از نوع In (ورودی)، خروجی (خروجی)، InOut (ورودی و خروجی)، Temp (موقت) یا Fixed (ثابت) باشند.

ورودی: پارامترهای ورودی تابع.پارامتر هایی که معملا از سنسور ها و .. فیدبک گرفته شده ور در آلنالیز برنامه داخل FC  از آنها استفاده میگردد.
خروجی: پارامترهای خروجی تابع. نتایج خروجی برنامه نوشته شده توسط برنامه نویس به این خروجی ها منتقل میگردد که به عملگر ها مانند خروجی های دیجیتال و آنالوگ PLC  متصل میگردد
ورودی و خروجی: پارامتری که می تواند همزمان به عنوان ورودی و خروجی اختصاص داده شود.ابزاری مفید جهت سهولت در برنامه نویسی می باشد.مموری موقتی که هنگام شروع بلوک به فضای حافظه CPU اختصاص داده می شوند و در انتهای آن بازنویسی می شوند، بدون اینکه امکان حفظ یا ارجاع کلی وجود داشته باشد
ثابت: اینها متغیرهای موقتی هستند که مقادیر آنها ثابت است.

درک عملکرد بلوک ها (FBs) در تیا پرتال

در زیر نمودار ساده شده FB ها را می بینیم که ساختار و عملکردی مشابه FC ها دارند، با تفاوت اینکه قابلیت اضافه شدن ایجاد DB (نمونه بلوک های داده) مربوط به FB ممکن شده است و به بیان دیگر بلوک های حافظه دار بر خلاف FC ها هستند .

متغیر ها و مموری های موجود در FC برای FB نیز موجود هستند، اما FB یک نوع حافظه دیگر دارد که static نام دارد. متغیر های از نوع static حافظه های نگهدارنده ای هستند که در حافظه غیر فرار CPU ذخیره می شوند و می توانند در سراسر برنامه ارجاع داده شوند (آنها سراسری هستند). هنگامی که یک FB در یک روال برنامه نویسی فراخوانی می شود، لازم است که یک DB به آن بلوک اختصاص داده شود.

بنابراین، فراخوانی های مختلف یک مدل FB باید دارای فضای حافظه متفاوتی و به عبارت دیگر DB های متفاوت باشد.شکل نمونه ای از استفاده از فراخوانی های متعدد از یک FB است. با فرض یک FB به نام Motors که توسط برنامه نویس نوشته شده است بنابراین این فراخوانی بلاک در OB1 در دو خط کد متفاوت با دو DB منحصربفرد انجام شده است. و  هر متغیر استاتیک یا  DB به نام Motor_A و Motor B وضعیت آن موتور مربوطه خود را نشان می دهد.

به این ترتیب می توان نشان داد که موتور A از طریق DB1 و موتور B از طریق متغیر اختصاص داده شده در DB2 متصل است.

آشنایی با انواع داده های کاربر در برنامه نویسی تیا پورتال

علاوه بر انواع داده های معمول (INTIGER، REAL، BOOL…) یک متغیر در برنامه نویسی تیا پورتال می تواند از نوع داده از پیش تعریف شده به نام DATA TYPE باشد. ساختار آن قابل تغییر است و می تواند از هر ترکیبی از دیگر انواع داده های موجود و آرایه ها تشکیل شود. استفاده از UDT ها به سازماندهی و تکرار ساختار داده کمک می کند و توسعه و تشخیص برنامه ها را آسان تر می کند.

مثال عملی :

  • فعال سازی موتورها : در این مثال، ما از بلوک‌های تابع ، انواع داده‌ها و بلوک‌های داده برای برنامه نویسی و بهینه‌سازی یک عملیات کنترلی ساده موتورها استفاده می‌کنیم. در ابتدا، ما باید یک نوع داده به نام “Motor” ایجاد کنیم که شامل تمام اطلاعات لازم برای مبادله با HMI است.

پیشنهاد ویژه : برای آشنایی بیشتر با کنتاکتور کلیک کنید.

برای FC Motor Actuation ، پارامترهای ورودی و خروجی باید تمامی تجهیزات فیزیکی مورد نیاز برای کارکرد موتور را پوشش دهند. مانند کلید AUTO/MANUAL ، دکمه‌ های استارت و توقف، و فیدبک MOTOR RUNING. پارامتر “Data” از نوع DATA TYPE “Motor” که به تازگی ایجاد کرده ایم و خروجی (برای فعال کردن کنتاکتور موتور) باید به عنوان InOut تعریف شود زیرا ما از آن ها به عنوان پارامتر های ورودی و خروجی در برنامه استفاده خواهیم کرد.

“Data” موتور ما از نوع DATA TYPE باید در یک Data Block گلوبال ذخیره شود، که متغیر های لازم برای هر موتوری است که باید کار کند. بنابراین، باید برای هر موتور یک DAA TYPE  اختصاص داده شود و ما این کار را با استفاده از AARAY انجام میدهیم به این گونه که یک دیتا بلاک ایجاد میکنیم و به تعداد موتور ها به صورت ARRAY دیتا تایپ اضافه خواهیم نمود.

این فانکشن قادر است وضعیت سنسور فیدبک و وضعیت خروجی موتور را برای تشخیص سناریو های خرابی احتمالی نظارت کند. در صورتی که فیدبک بدون دستور CLP برای راه اندازی موتور انجام شود، می توانیم سنسور یا کنتاکتور معیوب را شناسایی کنیم. شرایط دوم و سوم زمانی فعال می‌شوند که موتور حرکت نمی‌کند، حتی اگر PLC به  کنتاکتور فرمان دهد، که می‌توان آن را به‌ عنوان خطای جریان اضافه بار، سنسور معیوب یا کنتاکتور معیوب تشخیص داد. حافظه Motor Fault تا زمانی که اپراتور درخواست ریست کردن خطا از HMI را نداشته باشد روشن می ماند.

هنگامی که موتور هیچ مانعی و مشکلی جهت استارت ندارد، فانکشن ما شرایط را بررسی می کند تا در واقع موتور را روشن کند. موتور را می توان از شصتی های کنترلی لوکال، دستور های استپ و استارت REMOTE و دستورات خودکار فعال کرد. هنگامی که وضعیت موتور و فیدبک آن به مدت زمان نظارت از پیش تعریف شده ارزیابی شد، یک حافظه به نام “Motor Running” برای نمایش اطلاعات و وضعیت در HMI فعال می شود.

پیشنهاد ویژه : برای دریافت اطلاعات از نرم افزار طراحی تابلو برق کلیک کنید.

اکنون بیایید فانکشن خود را در OB1  فراخوانی کنیم و سپس اولین وروردی و خروجی موتور را به اولین موتور خود پیوند دهیم. تنها کاری که باید انجام شود این است که پارامتر های ورودی و خروجی مربوط به تجهیزات و سیگنال ها را وارد کنید.

یکی از مزایای اصلی استفاده از فانکشن، تکرار آن برای سیستم های مشابه است. به عنوان مثال، فعال سازی یک موتور مشابه (در مورد عملکرد پردازش)، به آسانی تکرار فراخوانی بلوک و وارد کردن پارامترها برای موتور مربوطه است.

یکی دیگر از فانکشن های ممکن برای برنامه نویسی، استفاده از یک FB به جای یک FC است. به این ترتیب، نیازی به ایجاد یک DATA BLOCK برای ذخیره کردن داده های موتور نمیباشد و با استفاده از مموری های Statics میتوان مقادیر را ذخیره و اصلاح نمود. ساختار پارامتر FB تقریباً مشابه FC خواهد بود، تنها تفاوت در نوع پارامتر است که داده ها در FB به عنوان Static تعریف می شوند.

به محض فراخوانی فانکشن بلاک موتور FB برای ایجاد موتور 3 در OB1  از کاربر برای ایجاد یک دیتا بلاک سوال میشود و این دیتا بلاک به صورت اتوماتیک تشکیل شده و مقادیر مربوطه در آن ذخیره خواهد شد.

همچنین می توان DB را تحت عنوان MULTIINSTANCE  تشکیل داد، که به عنوان یک تگ از نوع داده “Motor_FB” در پارامترهای استاتیک “Motors_Calls” FB تعریف شده است. این استراتژی کمک می کند که در تمامی دیتا بلک فانکشن بلک ها در یک دیتا بلک ذخیره شده و این گونه دسترسی به آنها منظم تر و سریع تر می باشد.

1 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *