آموزش برنامه نویسی در Tia Portal زیمنس
تاریخ انتشار : 2024/08/02
TIA Portal (پورتال اتوماسیون کاملاً یکپارچه) یک بسته نرمافزاری و ابزارهای توسعهیافته توسط شرکت زیمنس است که هدف آن یکپارچهسازی چندین ابزار توسعه برای دستگاههای اتوماسیون صنعتی میباشد. این نرمافزار با ترکیب و بازسازی نرمافزارهای پیشین مانند SIMATIC STEP 7، SIMATIC WinCC و SINAMICS Starter، محیطی یکپارچه فراهم میکند. این محیطها وظیفه برنامهنویسی، توسعه و پیکربندی PLCها، HMIها و اینورترهای فرکانسی زیمنس را بر عهده دارند. منطق برنامهنویسی کاربر در TIA Portal بر پایه ساختار بلوکی است، که در صورت توسعهیافته بهصورت ساختاریافته و منظم، ابزاری تسهیلگر در توسعه، نگهداری و عیبیابی ماشینها و فرآیندهای صنعتی محسوب میشود. در این نشتار به آموزش برنامه نویسی در Tia Portal زیمنس پرداخته می شود.
STEP 7 برای برنامهنویسی PLCهای خانوادههای S7-1200، S7-1500، S7-300 و S7-400 مورد استفاده قرار میگیرد. WinAC و نسخه نرمافزاری جدید کنترلر S7-1500 نیز به عنوان کنترلرهای جایگزین برای کامپیوترهای صنعتی در دسترس هستند. زبانهای برنامهنویسی موجود شامل زبان نردبانی (LAD)، نمودار بلوک تابعی (FBD)، زبان کنترل ساختاریافته (SCL)، فهرست دستورات (STL) و S7-GRAPH میباشند. توسعه صفحات HMI در WinCC برای سیستمهای نظارتی بر روی کامپیوتر (چه به صورت مستقل و چه به صورت SCADA) و نیز برای پنلهای عملیاتی Basic، Comfort و Mobile به کار میرود. پروتکلهای ارتباطی شامل Profibus، PROFINET و AS-i (رابط حسگر-محرک) میباشند. برای ارتباط با PLCها، ماژولهای ارتباطی (CM) با عملکردهایی جهت برقراری ارتباط از طریق پروتکلهای صنعتی مختلف مانند Modbus و CANOpen نیز وجود دارند. شکل زیر ویژگیهای اصلی SIMATIC STEP 7 و SIMATIC WinCC را نشان میدهد.

ویژگیهای اصلی SIMATIC STEP 7 و SIMATIC WinCC
نظارت بر وضعیت کارخانه و کنترل عناصر محرک آن توسط دستگاههایی انجام میشود که به سختافزار کنترلر متصل هستند.
یک سیستمعامل بهعنوان عامل کامپایلر برای اجرای الگوریتمها عمل میکند. سیستمعاملهای PLC مسئول کامپایل دستورالعملهای منطقی به سختافزار هستند که این امر بر اساس برنامه کاربر و پیکربندی سختافزار PLC انجام میشود.

بلوک های برنامه نویسی در تیاپورتال
برنامهنویسی کنترلر بر پایه معماری تقسیمشده به بلوکهای OB (بلوکهای سازمانی)، FC (توابع)، FB (بلوکهای تابعی) و DB (بلوکهای داده) انجام میشود.
درک بلوکهای سازمانی (OB) در TIA Portal
بلوکهای سازمانی ارتباط نزدیکی با چرخههای اجرای برنامه و وقفهها دارند، زیرا اجرای آنها به تحریکات از پیش تعریفشده مانند یک بازه زمانی یا تشخیص خرابی سختافزار مرتبط است. بلوک OB1، که بهعنوان «main» نیز شناخته میشود، برای مقداردهی اولیه و اسکن متوالی فراخوانی بلوکهای کد اجراشده ضروری است، بهجز سایر OBها، چرا که این بلوک بهصورت چرخهای و پیوسته اجرا میشود. طبق نمودار نمایشدادهشده، اجرای برنامه بهصورت خطی و همزمان از محتوای OB1 آغاز میشود، از چپ به راست و از ابتدا تا انتهای بلوک. در پایان اجرای main، CPU اجرای کد را مجدداً از ابتدا آغاز میکند و این روند بهصورت نامحدود تکرار میشود.

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

ایجاد زیربرنامهها از طریق فراخوانی بلوکها در tia portal
از آنجایی که اجرای دستورالعملها در تابع اصلی (main) وابسته به پردازش تمام توابع اختصاص دادهشده است، زمان چرخه ممکن است با توجه به وضعیت کارخانه و شرایط پیشبینینشده برنامهنویسی تغییر کند. بنابراین، برای جلوگیری از اختلال منطقی یا تضمین اجرای چرخهای با دوره فعالسازی پیوسته برای یک منطق خاص، استفاده از OB وقفه چرخهای توصیه میشود.
بلوکهای وقفه چرخهای نیز بهصورت چرخهای اجرا میشوند، اما با بازه زمانی از پیش تعیینشده در هنگام ایجاد آنها.
بدین ترتیب، هر ۱۰۰ میلیثانیه، پردازش فعلی متوقف میشود تا دستورالعملهای موجود در بلوک وقفه چرخهای اجرا شود.
درک توابع (FC) در TIA Portal
FCها الگوریتم را فشرده کرده و مقادیر خروجی را بر اساس ورودیها و بررسیهای داخل بلوک به متغیرهای خروجی برمیگردانند.
متغیرهای محلی تعریفشده در FC میتوانند از نوعهای زیر باشند:
- In (ورودی): برای دریافت اطلاعات از خارج بلوک؛
- Out (خروجی): برای بازگرداندن نتایج؛
- InOut (ورودی و خروجی): برای ورودیهایی که ممکن است مقدارشان در طی بلوک تغییر یابد؛
- Temp (موقتی): متغیرهای موقتی که در حافظه CPU بهصورت تصادفی تخصیص داده شده و در انتها حذف میشوند؛
- Constant (ثابت): متغیرهای موقتی با مقادیر غیرقابل تغییر که در تعریف مشخص شدهاند.

مفهوم توابع در tia portal
درک بلوکهای تابعی (FB) در TIA Portal
در ادامه، نمودار سادهشدهای از FBها (Function Blocks) را مشاهده میکنیم که از نظر ساختار و عملکرد مشابه FCها (Functions) هستند، با این تفاوت که در FBها، به ازای هر فراخوانی، یک iDB (Instance Data Block) نیز ایجاد میشود که دادههای مربوط به همان نمونه خاص از FB را نگهداری میکند.

مفهوم بلوکهای تابعی (FB) در TIA Portal
متغیرهایی که در FC (Function) پشتیبانی میشوند، در FB (Function Block) نیز قابل استفاده هستند، اما FB یک نوع متغیر اضافی به نام Static دارد. متغیرهای از نوع Static حافظههای نگهدارندهای هستند که در حافظه غیرفرار CPU ذخیره میشوند و میتوانند در سرتاسر برنامه مورد ارجاع قرار گیرند (یعنی آنها به صورت سراسری هستند).
زمانی که یک FB در یک روتین برنامهنویسی فراخوانی میشود، لازم است که یک iDB (Instance Data Block) برای آن فراخوانی تخصیص داده شود. این کار باعث میشود که فراخوانیهای مختلف از همان FB دارای فضاهای حافظه مجزا باشند.
در شکل، استفاده از چندین فراخوانی از یک FB مشابه نشان داده شده است. فرض کنید یک FB به نام Motors داریم؛ در این حالت، این فراخوانی که در دو خط مختلف کد انجام میشود، به دو iDB منحصر به فرد مرتبط با فراخوانی خاص خود اختصاص مییابد. بنابراین، یک متغیر Static به نام Motor_On وضعیت آن موتور را نشان میدهد که به iDB مرتبط با آن موتور وابسته است.
این ساختار به شما امکان میدهد که برای هر موتور یا تجهیز، دادهها و وضعیتهای منحصر به فردی ذخیره کرده و آنها را به راحتی مدیریت کنید.

به این ترتیب، میتوان نشان داد که موتور A از طریق DB1 متصل است و موتور B از طریق متغیری که در DB2 تخصیص داده شده، متصل میباشد.
این ساختار به شما این امکان را میدهد که برای هر موتور، دادهها و وضعیتهای متفاوت را در iDBهای مجزا ذخیره کرده و آنها را بهطور مستقل مدیریت کنید. به عبارت دیگر، هر موتور بهطور خاص به DB مربوط به خودش متصل است و وضعیتها و پارامترهای آن مستقل از سایر موتورها ذخیره و بررسی میشوند.

استفاده از انواع داده در یک بلاک داده
مثال عملی: راهاندازی موتورها
در این مثال، ما از Function Blocks، Functions، Data Types و Data Blocks برای انجام و بهینهسازی یک وظیفه ساده برای راهاندازی موتورها استفاده خواهیم کرد. در ابتدا، باید یک نوع داده “Motor” ایجاد کنیم که تمامی اطلاعات لازم برای تبادل با HMI (رابط کاربری انسانی) را شامل شود.

DB مربوط به راه اندازی موتور در Tia Portal
برای FC راهاندازی موتور ما، پارامترهای ورودی و خروجی باید شامل تمام تجهیزات فیزیکی مورد نیاز برای عملکرد موتور باشند. این موارد میتوانند شامل انتخابگرهای محلی و از راه دور، دکمههای شروع و توقف و سنسور فیدبک وضعیت موتور باشند.
پارامتر “Data” از نوع دادهای “Motor” که به تازگی ایجاد کردهایم و خروجی (برای راهاندازی کنتاکتور موتور) باید بهعنوان InOut تعریف شوند، زیرا از آنها هم بهعنوان پارامتر ورودی و هم بهعنوان پارامتر خروجی در سرتاسر برنامه استفاده خواهیم کرد.

دادهی موتور ما با نام “Data” و از نوع دادهای “Motor” باید در یک بلوک داده سراسری (Global Data Block) ذخیره شود، بهگونهای که برای هر موتوری که قرار است کار کند، یک متغیر از این نوع دادهای وجود داشته باشد. بنابراین، مفید است که یک آرایهای از نوع دادهای “Motor” ایجاد شود که طول آن برابر با تعداد موتورهای مورد نیاز باشد.

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

زمانی که هیچ خطایی در موتور وجود نداشته باشد، تابع ما شرایط را برای روشن کردن واقعی موتور بررسی و اجرا میکند.
موتور میتواند از طریق ورودیهای دکمه فشاری محلی (Local Push-button)، فرمانهای دستی از راه دور (Remote Manual ON/OFF) و فرمانهای خودکار از راه دور (Remote Automatic) راهاندازی شود.
پس از ارزیابی موتور و فیدبک آن در مدت زمان مشخص شده برای پایش، یک حافظه فیدبک با نام “Motor Running” فعال میشود که برای نمایش وضعیت و اطلاعات در HMI استفاده میشود.

در مرحله بعد، بیایید اولین فراخوانی موتور (Motor Call) را به اولین موتور خود مرتبط کنیم.
تمام کاری که باید انجام دهیم این است که پارامترهای ورودی (Input) و پارامترهای ورودی مربوط به تجهیزات و سیگنالهای ناشی از راهاندازی آن موتور خاص را وارد کنیم.

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

ساختار منطقی دیگری که برای برنامه ممکن است استفاده شود، بهرهگیری از FB (Function Block) به جای FC (Function Block) است. به این صورت، نیازی به ایجاد یک Data Block برای ذخیره دادههای موتورها نیست، بلکه میتوان از برچسبهای ایستا (Static Tags) استفاده کرد که مربوط به Instance Data Block (iDB) از محیط فراخوانی موتور خاص هستند.
ساختار پارامترهای FB تقریباً مشابه خواهد بود، تنها تفاوت در این است که نوع پارامتر دادهها بهعنوان Static تعریف میشود.

به محض اینکه Motor FB به برنامه کاربر کشیده میشود تا فراخوانی موتور ۳ ایجاد شود، یک ویزارد (راهنمای خودکار) برای کمک به ایجاد یک Data Block که با آن فراخوانی FB مرتبط باشد، فعال میشود.

همچنین این امکان وجود دارد که DB را به یک Data Block چندگانه (multi-instance Data Block) مرتبط کنید که بهعنوان یک برچسب از نوع داده “Motor_FB” در پارامترهای ایستای FB “Motors_Calls” تعریف شده است.
این استراتژی در برخی از ساختارهای برنامه کاربرد دارد که در آنها تجهیزات و عملیاتهای مختلف به Function Blockهای جداگانه تقسیم میشوند، که این امر باعث سهولت در تکرار و سازماندهی حافظه میشود، زیرا تمام DBهای چندگانه در یک DB واحد از فراخوانی اصلی تابع فشرده میشوند.

سوالات متداول (FAQ)
TIA Portal چیست و چرا برای پروژههای اتوماسیون اهمیت دارد؟
TIA Portal یک محیط مهندسی یکپارچه از شرکت زیمنس برای پیکربندی، برنامهنویسی و راهاندازی سیستمهای اتوماسیون صنعتی است.
اهمیت:
- کاهش زمان مهندسی
- مدیریت متمرکز پروژه
- مقیاسپذیری بالا
- استاندارد صنعتی جهانی
کدام PLCهای زیمنس در TIA Portal پشتیبانی میشوند؟
- S7-1200
- S7-1500
- S7-300 و S7-400 (پشتیبانی محدود)
- ET 200SP
- LOGO! (پشتیبانی محدود)
آیا بدون سختافزار واقعی میتوان TIA Portal را یاد گرفت؟
بله، با استفاده از PLCSim میتوانید پروژههای خود را شبیهسازی کنید.
چه زبانهای برنامهنویسی در TIA Portal وجود دارد؟
- LAD (نردبانی)
- FBD (بلوک تابعی)
- SCL (متنی ساختاریافته)
- STL (لیست دستورات)
- GRAPH (نمودار ترتیبی)
اشتباهات رایج مبتدیان در TIA Portal چیست؟
- انتخاب نسخه اشتباه سختافزار
- نامگذاری ضعیف متغیرها
- ساختار ضعیف کد
- نادیده گرفتن خطاها و هشدارها
- دانلود ناقص تغییرات نرمافزار/سختافزار
تفاوت OB، FC و FB چیست؟
- OB: بلوک سازمانی برای مدیریت چرخه اجرا (مثل OB1)
- FC: تابع بدون حافظه دائمی
- FB: تابع با حافظه دائمی (Static)
نحوه رفع مشکل ارتباط بین TIA Portal و PLC چیست؟
بررسی:
- آدرس IP و subnet
- انتخاب صحیح PG/PC Interface
- تنظیمات فایروال
- نسخه سازگار firmware
- کابلها و سوییچها
استفاده از ابزار “Accessible Devices” توصیه میشود.
آیا امکان ارتقاء پروژه به نسخه جدیدتر TIA Portal وجود دارد؟
بله، اما امکان بازگشت (Downgrade) وجود ندارد.
همیشه نسخه پشتیبان بگیرید.
آیا نسخه رایگان از TIA Portal وجود دارد؟
بله، نسخه آزمایشی ۲۱ روزه رایگان در وبسایت زیمنس موجود است.
جمعبندی
TIA Portal امکانات بسیاری برای توسعه، ساختاردهی دادهها، نگهداری، و مقیاسپذیری سیستمهای صنعتی فراهم میکند. انتخاب روش بهینه نهتنها باعث کارایی بیشتر، بلکه موجب کدنویسی بهتر و قابل نگهداری نیز میشود.
اگر مایل باشید، میتوانم این ترجمه را در قالب PDF یا فایل Word نیز برای شما آماده کنم. آیا علاقهمندید؟