تایمرها در TIA Portal: راهنمای جامع تعامل HMI با زمان
در پروژههای مانیتورینگ و اتوماسیون صنعتی، یکی از چالشهای تکراری، نحوه ورود زمان توسط اپراتور است. اپراتورها با فرمتهای زمانی استاندارد PLC (مثل T#2h30m) میانه خوبی ندارند؛ آنها ترجیح میدهند ساعت، دقیقه و ثانیه را در فیلدهای جداگانه وارد و به همان شکل زمان باقیمانده را مشاهده کنند.
در این مقاله، به کالبدشکافی دقیق ساختار دادههای زمانی در زیمنس پرداخته و یک فانکشن اختصاصی (FC) میسازیم که یکبار برای همیشه این چالش را در تمامی پروژههای شما حل کند.
۱. دادههای زمانی در PLC زیمنس (S7-1200/1500)
پیش از شروع کدنویسی، باید یک اشتباه رایج در منابع آموزشی را اصلاح کنیم. تایمرهای IEC در زیمنس بر پایه ساختار ۳۲ بیتی کار میکنند و برخلاف تصور عمومی، همیشه از صفر شروع میشوند.
محدوده واقعی و خطای Syntax
-
سقف زمانی: حداکثر زمان قابل تعریف در تایمرهای زیمنس، ۲۴ روز و ۲۰ ساعت و ۳۱ دقیقه و ۲۳ ثانیه و ۶۴۷ میلیثانیه است.
-
حساسیت میلیثانیهای: اگر در تیا پورتال عدد ۶۴۷ میلیثانیه را به ۶۴۸ تغییر دهید، سیستم بلافاصله خطای Not Valid میدهد. این نشاندهنده دقت ۳۱ بیتی (بدون احتساب بیت علامت) در معماری سیستم است.
چرا ورودی PT تایمر عدد صحیح (DINT) میپذیرد؟
ورودی PT (Preset Time) در تایمرهای زیمنس هوشمند طراحی شده است. شما میتوانید به جای فرمت Time، یک تگ از نوع DINT به آن بدهید. در این حالت:
-
سیستم هر واحد عددی را ۱ میلیثانیه در نظر میگیرد.
-
برای مثال، عدد ۱۰۰۰ در یک تگ DINT، توسط تایمر به عنوان ۱ ثانیه تفسیر میشود.
-
سقف این عدد همان مقدار حداکثری $2,147,483,647$ در مبنای دهدهی (یا 16#7FFFFFFF) است.
۲. طراحی و ساخت فانکشن اختصاصی (FC_Time_Manager)
برای بهینهسازی حافظه و جلوگیری از تکرار کد (Clean Coding)، از یک FC استفاده میکنیم. از آنجایی که در این محاسبات نیازی به ذخیره داده از سیکل قبلی (Instance DB) نداریم، استفاده از FC باعث سبکتر شدن برنامه میشود.
تعریف اینترفیس (Interface) تابع
در بخش تعریف متغیرهای تابع، موارد زیر را لحاظ کنید:
-
ورودیهای اپراتور: سه متغیر
Input_Hour،Input_MinuteوInput_Second(از نوع DINT برای دریافت داده از HMI). -
ورودی سیستمی: متغیر
ET_Timerکه زمان سپری شده را از خروجی ET تایمر دریافت میکند. -
خروجی نهایی:
PT_Final(نوع Time) که مستقیماً به ورودی تایمر متصل میشود. -
خروجیهای نمایشی:
Out_Hour،Out_MinوOut_Secبرای نمایش زمان معکوس به اپراتور.
۳. منطق محاسبات ریاضی و ضرایب تبدیل تایمرها در TIA Portal
گام اول: ترکیب ورودیها به میلیثانیه
برای تبدیل مقادیر مجزا به یک عدد واحد، از دستور Calculate استفاده میکنیم. ضرایب حیاتی که باید در ذهن داشته باشید:
-
۱ ساعت: ۳,۶۰۰,۰۰۰ میلیثانیه
-
۱ دقیقه: ۶۰,۰۰۰ میلیثانیه
-
۱ ثانیه: ۱,۰۰۰ میلیثانیه
گام دوم: محاسبه زمان معکوس (Remaining Time)
خروجی ET تایمر همیشه صعودی است. برای اینکه اپراتور بتواند “زمان باقیمانده” را ببیند، ابتدا باید تفاضل را محاسبه کنیم:
Remaining_ms = PT_Final - ET_Timer
۴. استخراج اجزای زمان (تفکیک به ساعت، دقیقه و ثانیه)
حالا باید عدد به دست آمده را دوباره تفکیک کنیم. این کار با استفاده از دستورات DIV (خارجقسمت) و MOD (باقیمانده) انجام میشود:
-
ساعت باقیمانده: عدد
Remaining_msتقسیم بر ۳,۶۰۰,۰۰۰. خارجقسمت برابر با ساعت است. -
دقیقه باقیمانده: باقیمانده مرحله قبل تقسیم بر ۶۰,۰۰۰. خارجقسمت برابر با دقیقه است.
-
ثانیه باقیمانده: باقیمانده مرحله قبل تقسیم بر ۱,۰۰۰. خارجقسمت برابر با ثانیه است.
نکته حرفهای: حتماً برای باقیماندههای میانی از متغیرهای Temp در بلاک خود استفاده کنید تا حافظه سیستم بهینهسازی شود.
۵. استراتژی پیشگیری از خطای اپراتور (Interlocking)
یک برنامهنویس حرفهای همیشه بدترین سناریو را در نظر میگیرد. اگر اپراتور در فیلد دقیقه عدد ۱۲۰ را وارد کند چه؟
برای جلوگیری از محاسبات غلط، قبل از انجام عملیات ضرب، از دستور LIMIT استفاده کنید. ورودیهای دقیقه و ثانیه را بین ۰ تا ۵۹ محدود کنید تا امنیت و پایداری پروسه تضمین شود.
۶. جدول مرجع ضرایب تبدیل زمانی
این جدول را برای دسترسی سریع در پروژههای آینده بوکمارک کنید:
| واحد زمانی | ضریب تبدیل به میلیثانیه | معادل هگزادسیمال (Hex) |
| ۱ ثانیه | ۱,۰۰۰ | 16#03E8 |
| ۱ دقیقه | ۶۰,۰۰۰ | 16#EA60 |
| ۱ ساعت | ۳,۶۰۰,۰۰۰ | 16#36EE80 |
۷. نکات اجرایی و تجربه عملی
در طول سالها اجرای پروژه و تدریس در مهار صنعت، به این نتیجه رسیدهام که تست کردن برنامه با ابزارهای ساده، بهترین راه برای اطمینان است.
-
تست با MD80: برای اثبات تبدیل خودکار، یک عدد DINT را به ورودی تایمر Move کنید. در حالت Online خواهید دید که زیمنس آن را به فرمت زمان تبدیل میکند.
-
رزولوشن نمایش: باقیمانده نهایی که کمتر از ۱۰۰۰ است (میلیثانیهها)، معمولاً برای اپراتور اهمیتی ندارد؛ لذا در نمایش خروجی HMI آن را نادیده بگیرید تا رابط کاربری خلوتتر بماند.
نتیجهگیری
مدیریت زمان در TIA Portal فراتر از انداختن یک بلوک تایمر ساده است. با ساخت این فانکشن، شما یک ابزار استاندارد و قابل بازیافت برای تمامی پروژههای آینده خود دارید که هم دقت فنی را بالا میبرد و هم رضایت اپراتور را جلب میکند
