מערכות רכישה בזמן אמת

מערכות מידע בזמן אמת (DAQ) מהוות את עמוד השדרה של ניטור הנדסי מודרני ושליטה.הם אוספים כל הזמן אותות אנלוגיים או דיגיטליים מחיישנים, טרנסנפצים וכלים, להמיר אותם לנתונים הניתנים לתהליכים, ולספק את התוצאות כדי לשלוט בלולאות, לוחות נתונים משמרים או מסדי נתונים היסטוריים עם שקיפות מוגבלת, יישומים טיפוסיים של תהליך אוטומציה תעשייתית ורשת חשמל ניטור לבדיקות רוח גבוהות של סוללות, כולל חיישנים ארוכי טווחים, לעתים קרובות, כגון:

מתן מערכת DAQ חיה הוא מסוכן מטבעו, כי תהליך downtime יכול להיות יקר או אפילו מסוכן. עם זאת, כאשר נעשה באופן שיטתי, הוא מניב מערכת כי הוא יותר חזק, דרוג, ו resilient. מאמר זה מזקק את השיטות הטובות ביותר להימשך מניסיון תעשייתי, להתמקד בהערכה ארכיטקטונית, עיצוב מחדש מודולרי, מסגרות מתקדמות, אופטימיזציה, בדיקה, בטיחות.

אדריכלות המערכת הנוכחית

לפני שאתם נוגעים בקו אחד של קוד או החלפת רכיב חומרה, עליכם לפתח הבנה מלאה של המערכת הקיימת.הערכה זו משמשת כבסיס לכל ההחלטות הבאות.

תיעוד זרימת נתונים ותלויים

ממפה את כל הנתיב של הנתונים מ-חיישנים קלט לצריכה הסופית.זהה כל שלב עיבוד, buffer, פרוטוקול תקשורת ו שכבת אחסון.ל לשים לב מיוחד לתלויות בלתי מחייבת - לדוגמה, קובץ תצורה אשר נקרא על ידי מודולים מרובים, או בלוק זיכרון משותף כי תהליכים מרובים ללא מנעולים מפורשים. כלים כמו C4 דיאגרמות, רצף או אפילו גיליון פשוט יכול לעזור לסימולציה גם את זרימת ה-S.

זיהוי צווארי בקבוק וחובות טכניים

ביצועים אנליסטיים מייצור: CPU כליליזציה, צריכת זיכרון, לבה רשת, דיסק I / O לחכות פעמים, איסוף אשפה הפסקה (אם משתמשים בשפות מנוהלות).

  • עיבוד אווירי על חוט יחיד: 1 (לא יכול לעמוד בקצב של חיישנים).
  • (ב) ,0) אדריכלות מבוססת-חשמל 1 (FLT:1) שבזבזה מחזורי CPU במקום להשתמש בגישות מונעות או מונעות על ידי אירועים.
  • (ב) ,0) ,ב"ג, "התחילת אחסון" (ב"ב) שחוסמת את הבלוק כותב במהלך הפצצות שיא.
  • (ב) ,0) ,ב"הבאה להפסד נתונים תחת עומס מתמשך.
  • (ב) הפיכה:0) הפיכה של 1:1 בין רכישת נתונים לבין שגרות אנליטיות, מה שהופך את זה לבלתי אפשרי כדי לדרג אותם באופן עצמאי.

כל כאב מצביע על ראיות קונקרטיות (למשל, "לכתוב שקיפות עולה על 50 מ"מ במהלך 1 דקות ספייקטים ").

הערכת דרישות סקלאלה

תחזיות נתונים עתידיות: האם החיישן ספירת כפול? האם שיעור הדגימה יגדל?האם סוגי נתונים חדשים (למשל, וידאו ברזולוציה גבוהה) צפויים?הההה לא רק לפתור את הבעיות של היום, אלא גם לספק חדר ראש לצמיחה.לדוגמה, מערכת שמתמודדת כיום עם 10,000 נקודות נתונים לשנייה עשויה לטפל ב-100,000 בתוך שנתיים.

אימוץ עיצוב מודולרי

אחד השלבים המשפיעים ביותר הוא לשבור מערכת DAQ מונוליטית לתוך מודולים מכווצים, משתנים.אדריכלות מודולרית מעוצבת היטב מבודדת חששות, מאפשר בדיקות עצמאיות, ומאפשרת לך לשדרג רכיבים אחד בכל פעם ללא ייצוב המערכת כולה.

הפרדה של דאגות

לחלק את המערכת לשכבות פונקציונליות נפרדות:

  • (FLT:0) שכבת איסוף: FLT:1 נהל תקשורת חיישן, מיזוג אותות ועיבוי נתונים גולמי.שכבה זו צריכה להיות חומרה - אך להציג ממשק אחיד לשכבות גבוהות יותר.
  • (FLT:0) שיעור הפחתת: FLT:1 Applies סינון, טרנספורמציה, זמן-מדגם, ואולי קצה ניתוח. שכבה זו ניתן בקנה מידה אופקי על ידי הוספת נקודות עבודה.
  • (ב) ⁇ :0) שכבת ההשגחה: 1FLT:1 Handles Standence - מסדי נתונים של זמן, חנויות אובייקטים, או ב-memory caches.It חייב לתמוך בכתיבה גבוהה באמצעות לוח זמנים ויעיל רטיוול.
  • (ב) ,0) שיעור הקידום / המחיקה: ⁇ 1 מספק לוחות, התראות או פקודות בקרה.

כל שכבה מתקשרת באמצעות APIs מוגדרים היטב או תורי הודעות.לדוגמה, אתה יכול להשתמש gRPC עבור פקודות סינכרוניות ולוח הודעה עבור הזרמת נתונים סינכרוניים.

Defining Clear Interfaces

כל מודול צריך לחשוף חוזה המפרט פורמט נתונים קלט, פורמט נתונים פלט, קודים שגיאה, וערבויות ביצועים. זה decouples פיתוח צוותים (או אפילו בחירת ספקים) ומאפשר לך להחליף, לדוגמה, ממשק קנייני PLC עם יישום OPC-UA ללא נגיעה בתבנית העיבוד. השתמש ב- APIs כדי לנהל את הזמן.

שימוש בזריקת תלות ודיכוי

תלות קודר קשה (למשל, שם נהג חיישן ספציפי בתוך לוגיקה העיבוד) גורם לכאב.במקום, הזרקת התלויות בסטארט-אפ באמצעות תצורה, משתנים סביבתיים, או מיכל שירות.זה גם מאפשר סימולציה ובדיקה - אתה יכול להחליף נהג חיישן אמיתי עם לעג במהלך בדיקות יחידה.

יישום מודרני-Time Data Processs

מערכות Legacy DAQ מסתמכות לעתים קרובות על לולאות סקרים, תכנות סויה גולמי, או תוכנות ביניים שנכתבו באופן מותאם אישית, שאינן סובלניות או ניתנות לפלטפורמות הזרמת הנתבות הנתעבות, מפחיתות באופן דרמטי את מורכבות הקוד ומשפרות את האמינות המהימנות.

האפאצ'י קפקא

(FLT:0)ApacheekFLT:1 הוא פלטפורמה מבוזרת אירוע-זרם אשר יכול להתמודד עם מיליוני הודעות לשנייה עם עמידות ובדיוק על ce Semantics (כאשר מוגדר כראוי) בהקשר DAQ, כל חיישן או מקור נתונים יכול לייצר רשומות לנושא קפקא, ו downstream מעבדים (למשל, ניתוח, מסדי נתונים, לוחות נתונים) לצרוך אותם בקצב שלהם, מאפשר גם להורדתו של עיגולים אופקיים.

עם זאת, קפקא מציג עקומת למידה ותשתיות נוספות (Zooguarder/KRaft, ברוקרים, לקוחות) עבור עקשנות נמוכה (10

MQTT

(ב) [ה]פרוטוקולים של פרסום קל משקל המיועדים למכשירים מוגבלים ורשתות נמוכות של פסיליות (MQTTIRFLT:1] הוא פופולרי במיוחד ב-IoT ובהגדרות תעשייתיות בשל טביעת הרגל הקוד הקטן שלו ושלוש רמות איכות של שירות (ברוב פעם אחת, לפחות פעם אחת, בדיוק פעם אחת) חיישנים תעשייתיים רבים מדברים באופן טבעי על מערכת DAQ, ניתן להשתמש ב-MLT2 (F) כדי לאסוף יותר מ-Fccccret) או יותר מ-HQ2.

אפשרויות אחרות

עבור סביבות הדורשות תזמון רציונאלי (למשל, שליטה בתנועה, אלקטרוניקה כוח), לשקול שירות הפצה בזמן אמת נתונים (DDS) כגון RTI Connext או Eclipse Cyclo DDS. DDS מציע איכות מוטבעת של בקרות שירות (דליין, תקציב לגרות, עדיפות תחבורה) שאינם זמינים בקפאק או MQTT, הבחירה שלך צריך להתאים את הגמישות והאמינות של דרישות היישום.

פתרונות אחסון נתונים

מערכות DAQ מייצרות נתונים של זמן בקצב שמגבירים במהירות את מסדי הנתונים היחסיים המסורתיים.שכבת האחסון חייבת לעמוד בכתיבה גבוהה באמצעות חישוב, לתמוך בשאילתות ארוכות טווח יעילות, ולעמוד במדיניות שמירת נתונים.

זמן-Series Database

מאגרי מידע ייעודיים (TSDBs) כמו:0 [TimescaleDBFIRLT:1] (הנבנה על PostgreSQL), FLT:2InfluxDBirFLT 3, או (FLT:4VictoriaMetricsFLT:5 הם אופטימליים עבור עומסי עבודה כאלה.

ארכיון תגיות:Memory Caching and Fast Storage

עבור הנמוך ביותר האפשרי לכתוב שקיפות, השתמש בחנות נתונים של נתונים בתוך זיכרון כגון:0 RedisFLT:1 כ- buffer לטווח קצר. pholish Raw קורא ל- Redis זרמים או רשימות, ולאחר מכן יש רקע ערכת צרכנים-לשכתב אותם ל- TSDB.זה מעד את נתיב הרכישה מ- I/O מספק עמידות נגד רמות אחסון נמוכות יותר, גם כן, כי ניתן למנוע שימוש קבוע ב- SSD.

ניהול נתונים

לא כל הנתונים צריכים להיות נשמרים ב-NVMe אחסון חם.מיישם אסטרטגיית אחסון עניבה: לאחרונה (למשל, 7 ימים) ב- NVMe המהיר, מבוגר יותר (למשל, 6 חודשים האחרונים) ב- SSDs או HDDs, והנתונים הארכיביים באחסון אובייקטים (S3, GCS, או על גבי premises MinIO). TSDB או על צינורות נתונים (למשל, באמצעות ניתוח ארוך, כגון:

הבטחת סובלנות גבוהה וזמינות גבוהה

מערכת DAQ בזמן אמת חייבת להמשיך לפעול גם כאשר רכיבים נכשלים.הספק הוא ההזדמנות המושלמת להקשות במערכת נגד מצבי כישלונ נפוצים.

ריצוף בכל שכבה

שקול N+1 (או 2N) undancy עבור רכיבים קריטיים: אספקת כוח חיישן מגובה, נתיבי רשת כפולה, שרתי רכישה ראי, ושיכפלים עבור מסדי נתונים ומתווכים הודעה. השתמש באלגוריתם עומס או אלגוריתם של בחירה אדנית (למשל, רפס) כדי להיכשל באופן אוטומטי.עבור קפקא, להגדיר מחדש גורם לפחות 3; עבור MQTT, לפרוס מספר ברוקרים מאחורי עומס או שימוש קבוע הוא לא היה תרחישים לא הצטננות.

הערכה עמוקה ומניעת אובדן נתונים

כאשר החזרת האחסון היא בלתי ניתנת להשגה, שכבת הרכישה צריכה לספוג נתונים באופן מקומי (למשל, בגרף טבעת על RAM או כרטיס SD) ולנגן אותו שוב פעם מחדש, עיצוב המערכת כדי לשפוך נתונים לא קריטיים תחת עומס קיצוני ולא על מנת ליפול. מסמך זה מצבי השפלה כך מפעילי ידע מה לצפות.

בדיקה ואימות במהלך אישור

מתן ללא רשת בטיחות הוא פזיז. ליישם אסטרטגיה מקיפה לבדיקת בדיקות יחידה, בדיקות אינטגרציה, בדיקות ביצועים והנדסה כאוס.

מבחן יחידה ואינטגרציה

לכל מודול צריך רתום מבחן אשר תרגילים את ה- API הציבורי שלו עם נתונים תקפים ולא חוקיים. השתמש בלעגים עבור תלות חיצונית (רגישים, ברוקרים, מסדי נתונים) בדיקות אינטגרציה צריך להפעיל גרסה מופחתת של כל הצינור בסביבה CI, שליחת נתוני חיישן סינתטי ואמת עיבוד נכון ואחסון. Aim עבור לפחות 80% קוד על הקוד החדש.

ביצועים ובדיקות מתח

יצירת ריצוף כי תנאי ייצור (חומרה של סנסציה, אותה רשת) ליצור נתונים ב 2× את שיעור השיא הצפוי כדי לאמת כי המשרות נשאר בתוך גבולות, ואין אובדן נתונים מתרחשת.מד את התנהגות המערכת תחת עומס מתמשך - זה לא צריך להוריד דגימות שקט או לברוח מזיכרון.

הנדסה כאוס

להרוג תהליכים, רשתות ניתוק, רוחב פס של תותולעת, וכשלונות דיסקים בסביבה מבוקרת של עוקץ.בדוק כי המערכת עדיין יכולה לרכוש נתונים קריטיים, כי נכשל קורה ללא התערבות ידנית, וכי זה מדאיג אש כראוי.תעד את "רדיוס האחרון" של כל כישלון - כמה חיישנים מושפעים כאשר מתווך אחד יורד? הידע הזה הוא יקר ערך עבור מפעילי.

שיקולים ביטחוניים ב-Refactoring

מערכות DAQ בזמן אמת ממוקדות יותר ויותר על ידי מתקפות סייבר, במיוחד בתשתיות קריטיות.הספק הוא הזדמנות ל"שמאל מעצורים" אבטחה.

ערוץ תקשורת קשה

השתמש ב-TLS לכל תקשורת רשת בין צמתים רכישה, ברוקרים ואחסון. עבור MQTT, לאכוף את אישורי הלקוחות ולהימנע מגישה אנונימית. קפקא יכול להשתמש ב- SASL/SCRAM או אימות SSL. ודא כי ממשקי ניהול (RE APIs, לוחות נתונים ברשת) הם חומת אש או נגישים רק באמצעות VPN.

Inputation and Sensor Authentication

נניח כי קלטי חיישן יכולים להיות זדוניים (למשל, ערכות UDPed) אימות טווח נתונים, הסתברות פיאטאמפ, ותבנית הודעה לפני עיבוד. השתמש בחתימות קריפטוגרפיים או זהות חומרה (TPM) כדי לאמת חיישנים שבו סביר.זה מונע תוקף מהנתונים המזיקים שעלולים לגרום למערכת בקרה לא נכונה.

תכנון רולט

טקסי גומלין של מערכות בזמן אמת הם לעתים רחוקות מוצלחים.במקום, לאמץ גישה מצטברת שמפחיתה את הסיכון.

סטרנגלר Fig Pattern

לזהות מערכת משנה אחת כדי לספק מחדש בזמן, כגון שכבת האחסון. בנה את האחסון החדש במקביל, נתוני מסלול לאחסון הישן והחדש בו זמנית, ולאחר אימות, להעביר את הצרכן קורא למערכת החדשה. ולאחר מכן להשפיל את המרכיב הישן. דפוס זה, הידוע בשם "Figler סטרנג", שימש בהצלחה בפרויקטים תעשייתיים רבים.

המונחים: canary Deployments

עבור מערכת עם מספר רב של צמתים רכישה זהה, לשדרג אחד לגרסה החדשה בעוד אחרים נשארים על הגרסה הישנה.עקוב אחר ביצועיו ושיעורי השגיאה שלו במשך שבוע.אם זה עובר, להתגלגל בהדרגה.זה בטוח יותר מאשר לשדרג את כל הצי בבת אחת, וזה נותן לך נקודת נפילה אם בעיות מופיעות.

מסקנה

מתן מערכת רכישת נתונים בזמן אמת היא מאמץ הנדסי מורכב אך מתגמל. על ידי הערכה מעמיקה של האדריכלות הקיימת, אימוץ עיצוב מודולרי, מינוף מסגרות הזרמה מודרניות כגון Apache קפקא או MQTT, אופטימיזציה אחסון באמצעות מסדי נתונים עת ייעודיים של זמן, וכן על ידי שיפור איכות ניהולית, והטמעת השקעות פגומים, אבטחה קפדניות ובדיקה קפדנית לתוך התהליך, לבנות מערכת גמישה יותר, שמירה על תכונות קבועות יותר, סטנדרטיות, סטנדרטיות, סטנדרטיות, סטנדרטיות יותר, סטנדרטיות, שיפור, אופציונלית, אופציונלית, אופציונלית, אופציונלית, אופציונלית, אופציונלית, אופציונלית, היא תחזוקה, תחזוקה, אופציונלית, תחזוקה קפדנית יותר, אופציונלית, תחזוקה, תחזוקה קפדנית יותר, תחזוקה קפדנית יותר, אופציונלית, אופציונלית, אופציונלית, אופציונלית, אופציונלית, אופציונלית, אופציונלית, תחזוקה קפדנית של ציוד מחדש, אופציונלית, תחזוקה קפדנית, אופציונלית, היא יעילה יותר, תחזוקה קפדנית של תכונות קבוע, תחזוקה, תחזוקה, תחזוקה, תחזוקה, תחזוקה, תחזוקה, אופציונלית, אופציונלית, אופציונלית, אופציונלית, תחזוקה, תחזוקה, תחזוקה, תחזוקה, תחזוקה,