۴۸صنعت
+۵۰۰زیرسیستم
+۱۰۰۰پروژه
۱۸سال
شرکتصنایعسامانه‌ها و APIتماسدانلود
درس ۱۴ از ۱۵۱۵ دقیقه

تایپ‌های همزاد با Twin Designer

هدف درس

یک نوع همزاد برای یک تجهیز پیچیده تعریف کنید (نقاط، رویدادها، نگاشت پروتکل و منبع)، آن را در شبیه‌ساز بیازمایید و نسخهٔ آن را منتشر کنید.

کجای نرم‌افزار

برنامهٔ مستقل «ARG Twin Designer» ← «کتابخانهٔ نوع‌ها»؛ در سامانه: «مدیریت انرژی» ← «مدیریت UPS» ← «دوقلوی دیجیتال»

برای تجهیزی مثل چیلر، پمپ، هواساز یا UPS، ده‌ها نقطه، چند هشدار و یک نگاشت پروتکل لازم است. به جای تعریف دوبارهٔ این‌ها برای هر دستگاه، یک‌بار «نوع همزاد» (twin type) تعریف می‌شود و همهٔ دستگاه‌های همان مدل از آن پیروی می‌کنند. این کار در ARG Twin Designer انجام می‌شود: یک برنامهٔ مهندسی جداگانه با رابط فارسی که روی ایستگاه مهندسی اجرا می‌شود و جزو منوی سامانه نیست. در این درس ساختار این ابزار و روند تعریف، آزمون و انتشار یک نوع را می‌آموزید.

صفحه را بشناسید

صفحهٔ اول کتابخانهٔ نوع‌ها است، با این توضیح: «هر نوع twin یک‌بار تعریف می‌شود؛ کد، مستند و تست از آن ساخته می‌شود.»

بخشکاربرد
از قالب دستگاه (دکمهٔ دوبخشی)ساخت نوع تازه از یک قالب آماده یا به‌صورت نوع خالی
شاخص‌هانوع‌ها، منتشرشده، نقاط، رویداد
جست‌وجو و تراشه‌های دستهجست‌وجوی نوع…؛ دسته‌ها مثل تهویه مطبوع، برق و UPS، آب
جدولستون‌های دسته، دسترسی (فقط‌خواندنی یا قابل‌فرمان)، نقاط، رویداد، پیش‌نویس، منتشرشده و آخرین تغییر
کتابخانهٔ نوع‌ها در Twin Designer
کتابخانهٔ نوع‌ها · چهار نوع نمونه (پمپ، چیلر، هواساز، UPS) با تعداد نقاط، رویدادها و وضعیت انتشار

با باز کردن یک نوع، فضای کار آن باز می‌شود. در بالا دکمه‌های ذخیره (Ctrl+S)، واگرد و ازنو، تراشه‌های نسخهٔ پیش‌نویس و منتشرشده، دکمهٔ اعتبار (معتبر یا «n مشکل») و انتشار نسخه دیده می‌شود. در کنار، درخت ساختار مدل و پانل مشخصات قرار دارد. فضای کار هشت زبانه دارد:

زبانهکاربرد
نمودار مدلنمای کلی نوع و ارتباط نقاط، رویدادها و نگاشت‌ها
نقاط دادهفهرست ویژگی‌ها با گروه، کلید، برچسب فارسی و انگلیسی، نوع داده، واحد، ضریب، دسترسی و آدرس
رویدادها و هشدارهاشرط‌هایی به شکل «اگر نقطه عملگر مقدار ← شدت»
نگاشت پروتکلآدرس هر نقطه در پروتکل، مثل Modbus، BACnet، SNMP یا MQTT، با نوار پوشش «n / m نگاشت»
منبع و هویتزمان مشاهده، مهلت کهنه‌شدن داده، تشخیص نوع منبع و فیلدهای هویت
شبیه‌ساز زندهاجرای نوع با دادهٔ شبیه‌سازی‌شده در چند سناریو
کد تولیدیفایل‌هایی که از تعریف نوع ساخته می‌شوند: کد، تست، مستند دوزبانه و فایل نوع
نسخه و انتشارانتشار نسخه، بررسی سازگاری و چرخهٔ عمر نسخه‌ها

گام‌به‌گام

  1. نوع را از قالب بسازید. در کتابخانهٔ نوع‌ها روی از قالب دستگاه بزنید. در دیالوگ تعریف نوع جدید، از جدول قالب‌ها یکی را انتخاب کنید و پیش‌نمایش رجیسترهای قالب را بررسی کنید (کلید، برچسب انگلیسی، آدرس، نوع داده، ضریب، واحد و قابل‌نوشتن بودن). حدود ۲۵ قالب Modbus آماده وجود دارد، از جمله کنتور انرژی، چیلر، CRAC، UPS، درایو دور متغیر، ژنراتور و ایستگاه هواشناسی. برای تجهیزی که قالب ندارد، زبانهٔ نوع خالی را انتخاب کنید.
  2. هویت نوع را وارد کنید. برچسب فارسی، برچسب انگلیسی، برچسب موجودیت، فضای نام و کلید را پر کنید. برای تجهیزی که فقط پایش می‌شود، فقط‌خواندنی را روشن بگذارید. سپس ایجاد را بزنید. زبانهٔ نقاط داده باز می‌شود؛ نقطهٔ «آنلاین»، رویداد آفلاین شدن، منبع Modbus و مهلت کهنه‌شدن ۱۲۰ ثانیه خودکار ساخته شده‌اند.
  3. نقاط را کامل کنید. در نقاط داده، برچسب فارسی هر نقطه را ترجمه کنید؛ برچسب فارسی در ابتدا از توضیح انگلیسی قالب پر شده است. واحد، ضریب (scale) (مثلاً ×0.1 تا مقدار خام ۷۲ به ۷٫۲ تبدیل شود) و در صورت نیاز حداقل و حداکثر را کنترل کنید. هر خانه با دوبار کلیک یا Enter ویرایش می‌شود. افزودن ویژگی نقطهٔ تازه می‌سازد. نوع داده یکی از number، integer، boolean، string یا enum است و دسترسی «فقط خواندن» یا «نوشتن با سیاست».
  4. رویدادها و هشدارها را تعریف کنید. در زبانهٔ رویدادها و هشدارها، افزودن رویداد را بزنید و نقطه، عملگر (=، ≠، >، ≥، <، ≤)، مقدار و شدت (اطلاع، هشدار، آلارم، بحرانی) را تعیین کنید. مثال: فشار دهش بیشتر از ۲۰ bar ← آلارم. جملهٔ «اگر … → …» را در پانل مشخصات بازبینی کنید.
  5. نگاشت پروتکل را کامل کنید. در نگاشت پروتکل برای هر نقطه آدرس بدهید. قالب آدرس به پروتکل بستگی دارد: در Modbus مثلاً IR:100 یا HR:210، در BACnet مثلاً AI:1، در SNMP یک OID و در MQTT یک تاپیک. ردیف‌های بدون آدرس «بدون نگاشت» نشان داده می‌شوند. هدف این است که نوار پوشش کامل شود.
  6. منبع را تنظیم کنید. در منبع و هویت، کهنه‌شدن پس از (بین ۵ تا ۱۸۰۰ ثانیه) و فیلدهای هویت را تعیین کنید. اگر داده‌ای در این مدت نرسد، کیفیت آن کهنه اعلام می‌شود.
  7. ذخیره و اعتبارسنجی کنید. ذخیره را بزنید. دکمهٔ اعتبار باید معتبر باشد. اگر «n مشکل» نشان می‌دهد، روی آن بزنید و موارد را رفع کنید. پیام‌های اعتبارسنجی انگلیسی‌اند؛ مثلاً کلید تکراری، حداقلِ بزرگ‌تر از حداکثر، یا نقطهٔ قابل‌نوشتن در نوع فقط‌خواندنی.
  8. در شبیه‌ساز بیازمایید. در شبیه‌ساز زنده دکمهٔ اجرا را بزنید. سناریو را از عملکرد عادی به شرایط آلارم تغییر دهید و فعال شدن رویداد را در رویدادنگار ببینید. سپس قطع ارتباط، خرابی سنسور و خطای دریافت داده را امتحان کنید و تغییر کیفیت داده (GOOD، STALE، UNKNOWN، BAD) را دنبال کنید. تا شش نقطه را می‌توانید هم‌زمان در نمودار ببینید و سرعت را روی ×0.5، ×1 یا ×2.5 بگذارید.
    شبیه‌ساز زنده برای نوع چیلر
    شبیه‌ساز زنده · سناریوی «عملکرد عادی» با کیفیت GOOD، نمودار چهار نقطه و مقادیر لحظه‌ای در پایین
  9. نسخه منتشر کنید. در نسخه و انتشار، پانل سازگاری با آخرین انتشار را بخوانید؛ این پانل می‌گوید چه افزایش نسخه‌ای لازم است (MAJOR، MINOR، PATCH یا NONE). نسخه را طبق آن تعیین کنید یا استفاده از پیشنهاد را بزنید، نام منتشرکننده را وارد کنید و دکمهٔ انتشار نسخه را بزنید. نسخهٔ منتشرشده تغییرناپذیر است و checksum می‌گیرد.
  10. کد را بگیرید. در کد تولیدی فایل‌ها را با دانلود یا نوشتن در پوشهٔ out دریافت کنید. افزودن این فایل‌ها به سامانه یک مرحلهٔ دستیِ تیم توسعه است و نصب خودکار ندارد.

پس از استقرار، دستگاه‌های آن نوع در خود سامانه در صفحه‌هایی مثل «مدیریت انرژی» ← «مدیریت UPS» ← «دوقلوی دیجیتال» دیده می‌شوند. هر نمونه در بخش هویت دوقلو، نسخه نوع Twin، منبع و کلاس داده‌اش را نشان می‌دهد.

صفحهٔ دوقلوی دیجیتال UPS در سامانه
دوقلوی دیجیتال UPS/DCIM · فهرست «نمونه‌های Twin» و بخش «هویت دوقلو» با نسخهٔ نوع، منبع و کلاس داده
پشت صحنه: Twin Designer نسخه‌بندی معنایی را خودکار بررسی می‌کند. تغییر شکننده، مثل حذف نقطه، تغییر نوع داده، واحد، ضریب یا دسترسی، یا تنگ‌تر کردن بازهٔ مجاز، افزایش MAJOR لازم دارد. افزودن نقطه یا رویداد MINOR لازم دارد و تغییر برچسب یا آدرس PATCH. چرخهٔ عمر نسخه فقط رو به جلو است: پیش‌نویس، منتشرشده، منسوخ و بازنشسته. شبیه‌ساز همان موتوری را اجرا می‌کند که در کد تولیدی به کار می‌رود، پس رفتار شبیه‌ساز با رفتار نهایی یکی است.

نکته‌ها و اشتباه‌های رایج

  • دکمهٔ «انتشار نسخه» فقط وقتی فعال است که تغییرات ذخیره شده باشند، نوع معتبر باشد، «منتشرکننده» پر شده باشد و نسخه به‌اندازهٔ کافی بالا رفته باشد.
  • زبانهٔ «کد تولیدی» تا وقتی تغییر ذخیره‌نشده وجود دارد غیرفعال است.
  • عملگرهای >، ≥، < و ≤ فقط برای نقاط عددی مجازند.
  • نوع فقط‌خواندنی نمی‌تواند نقطهٔ قابل‌نوشتن داشته باشد.
  • Twin Designer در نسخهٔ فعلی زبانه‌ای برای تعریف فرمان ندارد و انواع تولیدشده فرمانی ارسال نمی‌کنند؛ فرمان تجهیزات را از داشبوردها (درس‌های B9 و B10) پیکربندی کنید.
  • مؤلفه‌های فرعی (مثل باتری‌های UPS) از درخت «ساختار مدل» ویرایش می‌شوند، نه با دکمهٔ افزودن.

خلاصه

  • Twin Designer برنامهٔ مهندسی جداگانه است و هر نوع تجهیز را یک‌بار تعریف می‌کند.
  • تعریف نوع شامل نقاط داده، رویدادها و هشدارها، نگاشت پروتکل و منبع و هویت است.
  • شبیه‌ساز زنده سناریوهای عادی، آلارم، قطع ارتباط، خرابی سنسور و خطای دریافت را اجرا می‌کند.
  • انتشار نسخه تغییرناپذیر است و افزایش MAJOR، MINOR یا PATCH را خود ابزار تعیین می‌کند.
  • کد تولیدی را تیم توسعه به سامانه اضافه می‌کند؛ نتیجه در صفحه‌هایی مثل «دوقلوی دیجیتال» UPS دیده می‌شود.

تمرین عملی روی دموی زنده

Twin Designer روی ایستگاه مهندسی اجرا می‌شود و در دموی عمومی در دسترس نیست. تمرین را در خود دمو (bms.argsrv.com، پروژهٔ «هولدینگ ارگ») و فقط با دیدن انجام دهید؛ چیزی را تغییر ندهید.

  1. «مدیریت انرژی» ← «مدیریت UPS» ← «دوقلوی دیجیتال» را باز کنید.
  2. در نمونه‌های Twin یک UPS را انتخاب کنید.
  3. در هویت دوقلو، مقدار نسخه نوع Twin، منبع و کلاس داده را یادداشت کنید.
  4. برای هر یک توضیح دهید از کدام زبانهٔ تعریف نوع در Twin Designer آمده است (مثلاً منبع از «منبع و هویت»، نسخه از «نسخه و انتشار»).
  5. اگر Twin Designer در کلاس نصب است: از قالب یک کنتور انرژی Modbus یک نوع بسازید، برای ولتاژ بیشتر از ۲۵۰ یک رویداد «هشدار» تعریف کنید، در شبیه‌ساز سناریوی «شرایط آلارم» را اجرا کنید و پانل «سازگاری با آخرین انتشار» را بخوانید.
باز کردن دموی زنده

آزمون درس

برای گذراندن درس دست‌کم به ۳ پرسش از ۴ پرسش پاسخ درست بدهید.

  1. ۱. شرط «اگر فشار دهش > ۲۰ bar ← آلارم» در کدام زبانه تعریف می‌شود؟
  2. ۲. حذف یک نقطه از نوعی که قبلاً منتشر شده چه افزایش نسخه‌ای لازم دارد؟
  3. ۳. کدام سناریو در «شبیه‌ساز زنده» وجود ندارد؟
  4. ۴. دکمهٔ «انتشار نسخه» چه زمانی فعال است؟