پاسخ کوتاه

زمان رویداد را طبق معنای مستند آن بخوانید، نه صرفاً ترتیب رسیدن پیام‌ها به داشبورد. زمان منبع، زمان سرور و زمان دریافت در دروازه ارتباطی ممکن است نقطه‌های متفاوتی از مسیر سابقه را نشان دهند. اختلاف و عدم‌قطعیت ساعت هم می‌توانند ترتیب ظاهری را برگردانند. مثال فرضی دو حسگر این مقاله، فقط با شواهد کافی اصلاح ساعت، توالی را بازسازی می‌کند. وقتی عدم‌قطعیت زمانی بزرگ‌تر از حد لازم است، ترتیب باید نامعلوم بماند.

نکته‌های کلیدی

ترتیب رویداد ماشین را از ترتیب دریافت پیام جدا کنید.

اصلاح ساعت مستند را با علامت روشن اعمال کنید.

از اختلاف زمانی نامطمئن، ادعای علت نسازید.

JSONدریافت سابقه بررسی زمان رویداد

فایل JSON با زمان فرضی خام، اصلاح‌شده و دریافت و فیلدهای خالی معنای فیلد، اختلاف ساعت، عدم‌قطعیت و تصمیم ترتیب.

هر ساعت و معنای زمان ثبت‌شده آن را نام ببرید

OPC UA زمان منبع را برای مقدار در منبع و زمان سرور را جدا تعریف می‌کند. معنای زمان سرور را از مشخصات استاندارد بخوانید؛ فرض نکنید همیشه زمان ورود شبکه است. دروازه ارتباطی می‌تواند فیلد مستقل receivedAt برای دریافت خودش هم ثبت کند.

فیلدهای مرتبط را نگه دارید و یکی را روی دیگری ننویسید. از UTC یا نمایش زمانی بدون ابهام استفاده و منطقه زمانی نمایش را جدا حفظ کنید. رقم‌های اعشار زیاد، درستی ساعت را ثابت نمی‌کنند.

برگشت ترتیب دریافت را در مثال بخوانید

فرض کنید رویدادهای واقعی منبع در یک ثانیه رخ دهند: A در 10:00:00.200 و B در 10:00:00.500. A در 10:00:00.900 و B در 10:00:00.700 به دروازه می‌رسد. ترتیب دریافت B و سپس A است، هرچند A زودتر رخ داده است.

تأخیر انتقال ۷۰۰ و ۲۰۰ میلی‌ثانیه در مثال، به دلیل نحوه ساخت داده معلوم است. در سامانه واقعی، پیش از تفریق زمان دستگاه‌های متفاوت برای گزارش تأخیر شبکه، باید شاهد هماهنگی ساعت یا حدود خطای آن‌ها را داشته باشید.

رویدادزمان منبع اصلاح‌شدهزمان دریافت در دروازهتأخیر در این مثال ساخته‌شده
A10:00:00.20010:00:00.900۷۰۰ میلی‌ثانیه
B10:00:00.50010:00:00.700۲۰۰ میلی‌ثانیه

اصلاح اختلاف ساعت را ثبت کنید

حالا فرض کنید ساعت دستگاه A، چهارصد میلی‌ثانیه جلو است. زمان خام آن 10:00:00.600 است. با اختلاف مثبت مستند ۴۰۰ میلی‌ثانیه، زمان اصلاح‌شده از کم‌کردن اختلاف از زمان خام به 10:00:00.200 برمی‌گردد. زمان خام B، مقدار 10:00:00.500 با اختلاف اعلام‌شده صفر است.

زمان خام، اصلاح، تاریخ شاهد و عدم‌قطعیت را نگه دارید. با تغییر هماهنگی ساعت، سابقه تاریخی را بی‌ردپا عوض نکنید. اگر اختلاف در طول مشاهده تغییر می‌کند، یک اصلاح ثابت شاید کافی نباشد.

قرارداد مستند علامت اختلاف ساعتt_corrected = t_raw − offset

t_raw زمان خام دستگاه است. offset مثبت یعنی ساعت دستگاه از مرجع جلو است. برای A، از 10:00:00.600 چهارصد میلی‌ثانیه کم می‌کنیم و به 10:00:00.200 می‌رسیم. فاصله اصلاح‌شده A تا B، سیصد میلی‌ثانیه است.

دو رویداد فرضی در منبع با ترتیب A سپس B رخ می‌دهند، ولی B سپس A دریافت می‌شوند؛ اختلاف ساعت ۴۰۰ میلی‌ثانیه از تأخیر انتقال جدا مانده است.
بازسازی ترتیب، اصلاح مستند ساعت و عدم‌قطعیت می‌خواهد؛ ترتیب دریافت پیام کافی نیست. باز کردن نمودار در اندازهٔ کامل

ببینید اختلاف زمانی از عدم‌قطعیت بزرگ‌تر است یا نه

اگر هر زمان اصلاح‌شده تا ۲۰۰ میلی‌ثانیه در هر جهت عدم‌قطعیت داشته باشد، فاصله B منهای A در حدود ساده بدترین حالت، از منفی ۱۰۰ تا مثبت ۷۰۰ میلی‌ثانیه می‌رود. علامت فاصله معلوم نیست. اختلاف اسمی ۳۰۰ میلی‌ثانیه برای اثبات ترتیب کافی نیست.

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

  1. منشأ زمان را حفظ کنید

    ساعت فیزیکی، معنای فیلد، مقدار خام و زمان دریافت را ثبت کنید.

  2. اصلاح موجه را اعمال کنید

    علامت اختلاف، منبع و دوره اعتبار را با عدم‌قطعیت نگه دارید.

  3. ترتیب لازم را بازسازی کنید

    از هویت منبع، توالی و حدود زمان استفاده کنید، نه فقط ترتیب دریافت.

  4. مقایسه نامعلوم را مشخص کنید

    ترتیب مبهم بین دستگاه‌ها را از ادعای علت و مدت محاسبه‌شده دور نگه دارید.

مقدار ثابت و پرش ساعت را هشدار کاذب نکنید

وقتی مقدار تغییر نکرده، زمان منبع OPC UA ممکن است ثابت بماند. تازگی را با وضعیت و شواهد اتصال بسنجید. زمان پرس‌وجو نمی‌تواند لحظه گذار مشاهده‌نشده ماشین را بازسازی کند.

پرش ساعت، تغییر نمایشی ساعت تابستانی، راه‌اندازی دستگاه، اختلاف ساعت نامعلوم و پیام بازپخش‌شده را بررسی کنید. مدیریت صفرشدن شمارنده به گسست مرتبط می‌پردازد. پایش لحظه‌ای باید محدودیت داده را آشکار کند، نه هموار و پنهان.

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

توقف یک ماشین و سپس رسیدن پیام ماشین دیگر، علت را ثابت نمی‌کند. تعریف رویداد، هویت، ترتیب اصلاح‌شده و سازوکار ممکن فرایند را مشخص کنید. زمان می‌تواند توضیحی را رد کند، بدون اینکه توضیح جایگزین را ثابت کند.

فایل، زمان خام و اصلاح‌شده رویدادهای فرضی و فرم بررسی خودتان را دارد. هماهنگ‌بودن همه ساعت‌های کارخانه را فرض نکنید؛ فقط مدت و ترتیبی را گزارش کنید که داده پشتیبانی می‌کند.

مثالی مرتبط از ابوالفضل

پیش از اعتماد به شمارش زنده، زمان رخداد، تأخیر و تکرار را بررسی کنید.

مطالعهٔ یادداشت تکمیلی

به انگلیسی در وبلاگ شخصی ابوالفضل، بنیان‌گذار Vrolen. مطالعهٔ مرتبط است، نه منبع فنی مستقل.

چک‌لیست عملی

  • هر فیلد زمان را تعریف کنید.
  • ساعت فیزیکی را شناسایی کنید.
  • زمان خام و دریافت را جدا نگه دارید.
  • مبنای زمان بدون ابهام به کار ببرید.
  • علامت اختلاف و اعتبار آن را حفظ کنید.
  • اختلاف‌ها را با عدم‌قطعیت مقایسه کنید.
  • در صورت وجود، توالی و هویت واحد را به کار ببرید.
  • ترتیب مبهم و رابطه علّی را نامعلوم نگه دارید.

پرسش‌های متداول

پرسش‌های متداول

منابع و مطالعهٔ بیشتر

منابع معتبر استفاده‌شده برای پژوهش و بررسی این راهنما.