חדשות היום

שליטה במכשירי LXI באמצעות התקנים חכמים

ניל פורסייה,
Agilent Technologies

אתה בדרכך לתפוס טיסה להודו כדי לעזור ללקוח חשוב להטמיע את תחנת הבסיס הסולארית של החברה באזור חקלאי ליד בנגלור. כשאתה עולה למטוס אתה רוצה לבדוק את מצבן של הבדיקות הסביבתיות שהתבצעו במעבדת החברה על תחנת בסיס מעודכנת שתוכננה במיוחד לעבודה באקלים כפרי חם ולח. אתה שולף את האייפון שלך ומתחבר ליחידת המיתוג ללכידת נתונים העובדת בתקן Agilent 34972A LXI , וקורא את התוצאות העדכניות ביותר של סריקות הטמפרטורה. הכול מסתדר ואתה מעלה את הטמפרטורה של התא באמצעות מודול בקרה דיגיטלי הנמצא על מכשיר ה-DAQ. אתה מכבה את ההתקן החכם לקראת ההמראה ומתכונן לטיסה ארוכה.
מציאות או חלום רחוק?
תקן ה-I/O – LXI (ר”ת של LAN eXtensions for Instrumentation) מתבסס על תקן הרשתות הנפוץ ביותר Ethernet, או LAN, אותו תקן שבזכותו מתקיים האינטרנט. אחד היתרונות הגדולים של LXI נובע מהיותו מבוסס על Ethernet, מה שמאפשר גמישות רבה מבחינת המרחק הפיזי האפשרי בין המחשב, או הבקר, למכשיר ה-LXI שאליו הוא מחובר.
התקנים חכמים, לרבות טלפונים חכמים ומחשבי לוח (Tablet), הולכים ומשתלטים במהירות על המרחב התקשורתי. בשלב זה אף אחד לא יכול לומר בוודאות אילו השפעות יהיו להתקנים אלה על תעשיית הבדיקות והמדידות. התקנים חכמים אלה עובדים בטבעיות עם תקן LXI כיוון שבאפשרותם לתקשר עם רשת Ethernet, הן באמצעות חיבור Wi-Fi והן באמצעות רשתות סלולריות דרך האינטרנט. החופש האלחוטי שמקנים התקנים חכמים מגדיל עוד יותר את גמישות התפעול מרחוק של מכשירי LXI.
במאמר זה נחקור את האפשרות להשתמש בהתקנים חכמים לצורך תקשורת עם מכשירי LXI, מרמת הרשת ועד רמת הקוד. נציע תובנות באשר לתוספת הזמן הנדרשת ולמורכבויות שיעמדו בפניכם – לפחות בשלב זה בהתפתחותם של ההתקנים החכמים – בדרך להנות מהיתרונות שהם מספקים בהפעלה מרחוק של מכשירי LXI. תוספת הזמן והמורכבויות נובעות ממכשולים הנוגעים לאבטחת הרשת שבהם תתקלו במהלך השימוש מרחוק בהתקנים חכמים. בנוסף, השימוש בהתקנים חכמים לשליטה מרחוק במכשור הוא יישום חדש, על כן אין התחום משופע בתוכנות ובכלי תכנות זמינים. לסיום נספק לכם גישה לקוד חופשי לשליטה מרחוק על פלטפורמת iOS (אייפון, אייפוד, אייפד).

תקשורת ברמת הרשת

איור מס' 1. חיבור דרך רשת מקומית

איור מס’ 2. רשת Wi-Fi לא מקומית

איור מס’ 3. חיבור דרך רשת הספק הסלולרי

ישנן שלוש דרגות רשת שונות לשימוש בהתקן חכם לצורך התחברות למכשיר LXI: רשת Wi-Fi מקומית, רשת Wi-Fi לא מקומית ורשת סלולרית אלחוטית. נתחיל בדרגה הקלה ביותר, אם כי הכי פחות גמישה, הרשת המקומית. בתצורה זו מחובר ההתקן החכם באמצעות Wi-Fi לרשת המקומית שאליה מחובר מכשיר ה-LXI, כלומר אין ביניהם כל חומות אש או מחסומי אבטחה. חיבור מסוג זה מוצג באיור מס’ 1.
אין כל מחסום אבטחה בדרך, כך שקל מאוד להתחבר למכשיר. באפשרותכם לבדוק בקלות שיטה זו באמצעות שרת ה-Web המובנה במכשיר ה-LXI. פשוט חברו את רשת ה-Wi-Fi המקומית להתקן החכם, מצאו את כתובת ה-IP של מכשיר ה-LXI שמחובר לאותה רשת מקומית, פתחו את דפדפן האינטרנט בהתקן החכם, הכניסו את כתובת ה-IP של המכשיר ולחצו על “go”. עליכם לראות את דף הפתיחה של המכשיר באינטרנט. מן הסתם חיבור המכשיר באמצעות רשת אלחוטית מקומית אינו מספק כל גמישות מבחינת המיקום שכן טווח התקשורת של רשת אלחוטית מוגבל בדרך-כלל ל-32 מטר בתוך הבית ו-95 מטר מחוץ לבית.
הרשת השנייה בהיררכיה היא רשת Wi-Fi לא מקומית, כלומר חיבור לרשת אלחוטית באמצעות ההתקן החכם ומעבר דרך הענן לרשת המקומית שאליה מחובר מכשיר ה-LXI. האתגר שמציבה דרגת חיבור זו כרוכה במעבר דרך אמצעי האבטחה השונים של הרשת, חומות אש, למשל. רשת Wi-Fi לא מקומית מוצגת באיור מס’ 2.
היררכיה מסוג זה תפגשו כאשר תנסו להתחבר למכשיר הנמצא במשרד או במעבדה מהרשת האלחוטית הביתית.
בואו נדבר קודם על המקרה הפשוט ביותר: נניח שאתם מברי המזל שעובדים מהבית ומכשיר ה-LXI שלכם מחובר לנתב הביתי המחובר לאינטרנט. על פי הגדרות ברירת המחדל של הנתב, הוא מאפשר לבקשות התחברות לצאת מהרשת המקומית החוצה, אולם אינו מאפשר לבקשות חיבור להיכנס לרשת המקומית. תוכנת הרשת מניחה כי כל המכשירים המחוברים לרשת המקומית הם לקוחות, ולא שרתים, לפיכך היא חוסמת בקשות חיבור נכנסות על מנת להגן על המכשירים המחוברים לרשת המקומית שלכם. מכשיר ה-LXI הוא שרת, לכן כשההתקן החכם שלכם מנסה להתחבר אליו מהצד השני של הענן, הנתב חוסם אותו. על מנת להתגבר על בעיה זו, יש להשתמש ב-Port Forwarding או ב- DMZ  בנתב שלכם. הגדרת Port Forwarding אומרת לנתב להעביר הלאה את כל תעבורת הרשת המגיעה לפורט, או לפורטים מסוימים, שהוגדרו לכתובת IP מקומית ברשת שלכם (במקרה זה, מכשיר ה-LXI). עם DMZ, הנתב שלכם גורם למכונה ספציפית ברשת המקומית להיראות כמחוברת ישירות לאינטרנט. המחבר אינו ממליץ להשתמש ב-DMZ עם מכשירים הפועלים על מערכות Windows® שכן תצורה זו מותירה אותם פתוחים לרווחה להתקפות אינטרנט.
במרבית המקרים נמצא ציוד הבדיקה והמדידה על רשת החברה או הארגון, רשת המבוצרת היטב מפני האינטרנט. במקרה זה תצטרכו להתקין על ההתקן החכם תוכנת VPN שתאפשר לכם גישה לרשת המשרדית. בנוסף כדאי להתייעץ עם מחלקת ה-IT במקרים שבהם הגדרות הרשת מגבילות את הגישה לסוגים מסוימים של תעבורת רשת נכנסת, ביניהם ההתקן החכם שלכם.
לסיום, הדרגה השלישית, דהיינו, שימוש ברשת התקשורת האלחוטית של הספק הסלולרי על מנת להתחבר דרך הענן לציוד הבדיקה, כפי שמוצג באיור מס’ 3.
בתרחיש זה אנו עומדים בפני אותם אתגרי אבטחה שפגשנו בהיררכיה הקודמת. ההבדל היחידי הוא שהשימוש ברשת של הספק הסלולרי מאפשר גמישות רבה יותר בחיבור מרחוק, הואיל ואינכם מוגבלים לטווח התקשורת הטיפוסי של רשתות אלחוטיות, עם זאת רוחב הפס שלכם מוגבל בהשוואה לחיבור Wi-Fi. רוחב פס גדול אינו באמת נחוץ במודל זה של הפעלה מרחוק. הואיל ובהתקנים חכמים משתמשים בכל מקום, לא ניתן להבטיח חיבור עקבי ביניכם לבין המכשיר, ולכן אתם יכולים להשתמש בו רק ככלי לניטור מדידות ולביצוע פעולות בקרה פשוטות, לא קריטיות. תעבורת נתונים המורכבת מקריאות מדידה ופקודות SCPI פשוטות בלבד אינה דורשת רוחב פס ניכר.

חיבור ברמת הקוד

איור מס' 4. ממשק משתמש גרפי אינטרנטי למכשיר 33522A

עד כאן כיסינו את הדרכים המגוונות שבאמצעותן ניתן לחבר התקן חכם ולתקשר עם מכשיר LXI מנקודת המבט הרשתית. אחת מפיסות הפזל החשובות ביותר היא התוכנה המורה לחומרה ולרשת מה לעשות כדי ליצור את התקשורת.
למרבה הצער אין כיום שום אפליקציות לחיבור ותקשור עם מכשירי LXI באמצעות התקנים חכמים. תקן LXI דורש שכל מכשיר LXI יכלול שרת מובנה המסוגל לארח ממשק אינטרנט הנגיש דרך דפדפן. בצורתו הבסיסית ביותר, צריך ממשק אינטרנטי זה לספק למשתמשים גישה להגדרות ה-LAN של המכשירים. מרבית יצרני ציוד הבדיקה והמדידה עשו צעד נוסף קדימה והוסיפו לדף האינטרנט יכולת בקרה על המכשיר. באיור מס’ 4 להלן דוגמא לדף אינטרנט המשמש לבקרה על מכשיר LXI – מחולל פונקציות/צורות גל שרירותיות 33522A של Agilent.
להתקנים חכמים יש דפדפני אינטרנט שבאמצעותם ניתן להתחבר ולשלוט במכשירי LXI בעלי אפשרות בקרה מרחוק, נכון? כל החלק של החיבור עובד מצוין כשאתם משתמשים בדפדפן אינטרנט של התקן חכם. אתם מכניסים את כתובת ה-IP לדפדפן, לוחצים על “go”, ורואים את מסך הכניסה בדף האינטרנט של המכשיר. הבעיה היא שרוב ממשקי האינטרנט של המכשירים מחייבים סוג כלשהו של plug-in, בדרך-כלל Java, על מנת להיכנס לממשק המשתמש. נכון להיום יישומי plug-in אלה עדיין אינם זמינים במערכות ההפעלה של ההתקנים החכמים, מה שאומר שבמרבית המקרים לא ניתן לשלוט במכשיר דרך דפי אינטרנט.
אם אנחנו רוצים להשתמש בהתקן החכם שלנו לצורך שליטה במכשיר ה-LXI נותרת בידינו רק ברירה אחת: ליצור את התוכנה בעצמנו. כשאתם יוצרים תוכנה על מחשב מבוסס Windows, זמינים לרשותכם כלים רבים כדוגמת VISA ומנהלי התקנים IVI-COM, המאפשרים לתכנת מכשירים בקלות יחסית שכן הם מבצעים עבורכם את כל הניהול של החיבור והטיפול בנתונים.
נכון לשעת כתיבת מאמר זה, הדרך היחידה להתחבר ולתקשר עם מכשיר LXI באמצעות התקן חכם היא להשתמש בשקעים של הרשת (sockets).
כל מי שעבד עם שקעים יודע שמטלת התכנות אינה קלה. השימוש בדרייברים מאפשר לכם להיפטר מחלק מאתגרי התכנות ששקעים בסיסיים (low-level sockets) מציבים בדרך כלל. לדוגמא, אינכם צריכים לדאוג בכל הנוגע לניהול החיבור ולפורמט הנתונים הנכנסים והיוצאים.
לניהול של ההתחברות למכשיר יש היבטים רבים, אך אחד המורכבים שבהם קשור לפונקציות החוסמות, או עוצרות, את הביצוע עד לסיום הפעולה. אשתמש כדוגמא ב-API המוכר ביותר – socket C BSD. ב-BSD פונקציות ה-connect() וה-recv() במצב ברירת המחדל יעצרו המשך ביצוע עד לקבלת תגובה. אם ההתקן שאיתו מדברת התוכנית שלכם מאבד את החיבור לרשת ואתם קוראים לפונקציה connect() או recv(), התוכנית שלכם תפסיק להתבצע, ללא יכולת התאוששות, למעט אתחול מחדש. כמובן שמצב זה אינו רצוי. ישנן מספר דרכים למנוע מפונקציות אלה לחסום, למשל לקבוע זמן המתנה (timeout), או לבצע את הפונקציות בתהליכון (thread) נפרד. כמובן שכל זה מוסיף מורכבות לפיתוח התוכנה.
הטיפול בנתונים הוא אספקט נוסף של השימוש ב-low-level sockets, ואף הוא גוזל זמן ומוסיף מורכבות למטלות התכנות. לדוגמא, אתם נדרשים לטפל ברצפי נתונים (data streams) באורכים משתנים הזורמים אליכם מהמכשיר. הנתונים מגיעים במחרוזות (strings), כך שתצטרכו להמירן ל-integers ו-floats ברמת הדיוק הרצויה לכם. חלק מסביבות הפיתוח של התקנים חכמים מספקות כלים המוסיפים רמות של הפשטה ל-low-level sockets. כלים אלה יכולים לסייע בניהול החיבור או בטיפול בנתונים. אולם כשאתם עושים שימוש בכלים אלה, אל תשכחו שהם מיועדים לחיבור ועבודה מול אתרי אינטרנט, ולא מול ציוד בדיקה ומדידה.
בבלוג של  המחבר, העוסק בציוד בדיקה סטנדרטי (http://gpete-neil.blogspot.com/), תמצאו קובץ של תוכנית iOS שנקרא starIDN. התוכנית נוצרה באייפון. StarIDN מאפשר לכם להתחבר למכשיר באמצעות כתובת IP. שלחו את פקודת ה-SCPI “*IDN”, והיא תקרא ותציג את התוצאה. הקוד משתמש ב-C BSD sockets על מנת לתקשר עם המכשיר. הרגישו חופשי להשתמש ב-socket class כנקודת התחלה בבניית אפליקציית הבדיקה והמדידה של ההתקן החכם שלכם.

מסקנה
התקנים חכמים מספקים לכם גישה ניידת ואינטראקטיבית למידע ונתונים כמעט מכל מקום. דרך הגישה העיקרית של התקנים חכמים למידע ונתונים היא באמצעות Ethernet תוך שימוש ברשת של ספק סלולרי או חיבור Wi-Fi. הואיל ותקן החיבור של LXI גם הוא מבוסס Ethernet, LXI מתאים בטבעיות לניטור ובקרה של מכשור בדיקה ומדידה באמצעות התקנים חכמים. שימוש בהתקנים חכמים לניטור ובקרה מרחוק על ציוד בדיקה ומדידה מספק גמישות חסרת תקדים מבחינת המיקום. הוא מספק לכם גישה למכשירים כמעט מכל מקום, כך שאינכם צריכים עוד להיות כבולים לשולחן העבודה או למעבדה במהלכן של בדיקות ארוכות.
נכון לשעת כתיבתו של מאמר זה, עדיין אין כל תוכנות או דרייברים המאפשרים להתקנים חכמים לשלוט מרחוק בציוד. ומכאן שהדרך היחידה להשתמש בהתקנים חכמים לניטור ובקרה של מכשירי בדיקה ומדידה היא ללכלך את הידיים ולכתוב את הקוד בעצמכם. דבר אחד בטוח: ככל שיגדל חלקם של ההתקנים החכמים בחיינו הדיגיטליים והאלחוטיים, הם ימצאו את דרכם גם לתעשיית ציוד הבדיקה והמדידה.
Windows הוא סימן מסחרי רשום בארה”ב של Microsoft Corporation.

תגובות סגורות