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

מהו פרוטוקול Modbus RTU?
Modbus RTU הוא פרוטוקול תקשורת טורית שפותח במקור על ידי Modicon (כיום חלק משניידר אלקטריק) בשנת 1979 עבור ה-PLC שלה (בקרי לוגיקה ניתנים לתכנות).
כיום, הוא הפך לאחד מהפרוטוקולים הנפוצים ביותר באוטומציה תעשייתית, נתמך על ידי למעלה מ-400 יצרנים ברחבי העולם.
למה זה נקרא "RTU"? RTU הוא קיצור של "Remote Terminal Unit", המציין כי פרוטוקול זה משמש בעיקר לתקשורת בין מכשירים מרוחקים. זה כמו "מערכת הודעות טקסט" בין ציוד חשמלי, החלפת נתונים באמצעות מנגנון בקשה ותגובה פשוט.
כיצד עובד Modbus RTU?
Modbus RTU משתמש בארכיטקטורת תקשורת-מאסטר, כמו מורה ותלמידים בכיתה.
- מאסטר: ה"מורה", בדרך כלל מחשב, PLC או רכז, אחראי ליזום שאלות ופקודות.
- עבד: ה"תלמיד", כמו מד חשמל או חיישן, יכול לענות רק על שאלות המורה ואינו יכול לדבר באופן עצמאי. (ביישומי מדי חשמל...)

פורמט הודעה Modbus RTU
"תבנית SMS" בין מכשירים
הודעות תקשורת Modbus RTU הן כמו הודעות טקסט מעוצבות בקפידה, עם דרישות פורמט קבועות.
הודעת Modbus RTU מלאה מכילה את החלקים הבאים:
| קוד כתובת | קוד פונקציה | שדה נתונים | בדוק את הקוד |
|---|---|---|---|
| 8-ביטים | 8-ביטים | N × 8-Bits | 16 סיביות |
- קוד כתובת (בייט אחד): שווה ערך ל"מספר טלפון של נמען", המזהה את הכתובת של מד האנרגיה היעד (1-247), עם 0 עבור כתובת שידור.
- קוד פונקציה (1 בייט): שווה ערך ל"סוג הודעת טקסט", המורה למד האנרגיה על הפעולה לבצע (למשל, קריאת נתונים, כתיבת נתונים וכו').
- שדה נתונים (N בתים): המידע הספציפי שיש להעביר, כגון כתובת רישום, ערך נתונים וכו'.
- CRC Checksum (2 בתים): שווה ערך ל"קוד נגד-זיוף", המשמש לבדיקת שגיאות במהלך השידור.
הודעה טיפוסית לקריאת נתוני אנרגיה פעילה חיובית הכוללת ממד אנרגיה של UBS היא כדלקמן:
[כתובת 00][קוד פונקציה 03][כתובת התחלה 00 0C][אורך קריאה 00 02][CRC Checksum 05 D9]
זה שווה ערך לאמירה: "כל המונים, אנא קרא את הנתונים מאוגר 000C, החל מאוגר 1."
לאחר קבלת ההודעה, מד #1 יענה עם:
[כתובת 01][קוד פונקציה 03][אורך נתונים 04][נתונים 00 00 00 00][CRC Checksum FA 33]
משמעות הדבר היא: "מד מס' 1 השיב: ערך נתוני האנרגיה הפעילה החיובית הכולל שנקרא הוא 00 00 00 00 (הקסדצימלי)" (הערה: מד מס' 1 זה הוא מד חדש שאינו בשימוש). התמונה למטה היא הדגמת מבחן:

"ספר הנתונים" במד חשמל: הסבר רישום
בפרוטוקול Modbus RTU, כל הנתונים ממונה חשמל מאוחסנים ב"גיליון אלקטרוני"-באוגר. המרשם מתחלק בעיקר לארבעה סוגים:
| סוג הרשמה | הרשאת קריאה/כתיבה | קודי פונקציה | תוכן מאוחסן טיפוסי |
|---|---|---|---|
| רישום סליל | קריאה/כתיבה | 01, 05 | מצב ממסר, בקרת מתג |
| רישום קלט דיסקרטי | קריאה-בלבד | 02 | קלט דיגיטלי (למשל, אותות אזעקה) |
| רישום קלט | קריאה-בלבד | 04 | נתוני מדידה-בזמן אמת (מתח, זרם וכו') |
| רישום אחזקות | קריאה/כתיבה | 03, 06 | פרמטרים של מכשיר, אנרגיה מצטברת וכו'. |
ביישומי מדי חשמל, הרשמים הנפוצים ביותר הם:
רישום קלט
(קוד פונקציה 04H): מאחסן נתונים שנמדדו בזמן אמת, כגון מתח, זרם והספק.
רישום אחזקות
(קוד פונקציה 03H): מאחסן את צריכת החשמל המצטברת, פרמטרי המכשיר וכו'.
UBS Energy Meter Modbus Register טבלת מידע כתובות
כתובת השידור של פרוטוקול Modbus היא 0x00. לקבלת מידע מפורט על כתובת רישום פרוטוקול Modbus עבור מדי אנרגיה של UBS, אנא עיין בטבלה שלהלן:
| הרשמה (Hex) | שם משתנה | תכונה (יחידה / R/W) | סוג נתונים | לִסְפּוֹר | הערות |
|---|---|---|---|---|---|
| 0x0000 | מתח DC | יחידה: V, R/W: RO | S16 | 1 | טווח: -9999~9999; קריאת=ערך אפקטיבי × 10^(נקודה עשרונית) |
| 0x0001 | מתח עשרוני | יחידה: ללא, R/W: RO | U16 | 1 | ערך קבוע: 0 |
| 0x0002 | ערך נוכחי של DC | יחידה: A, R/W: RO | S16 | 1 | טווח: -9999~9999 |
| 0x0003 | נקודה עשרונית נוכחית | יחידה: ללא, R/W: RO | U16 | 1 | ערך קבוע: 1 |
| 0x0008 | ערך כוח | יחידה: קילוואט, R/W: RO | S16 | 1 | טווח: -9999~9999 |
| 0x0009 | כוח נקודה עשרונית | יחידה: ללא, R/W: RO | U16 | 1 | ערך קבוע: 1 |
| 0x000C | Total Forward Active Energy | יחידה: 0.001kWh, R/W: RO | U32 | 2 | בית גבוה ראשון, בית נמוך אחרון; דוגמה: אם הנתונים נקראים=5000, נקודה עשרונית=2 → ערך בפועל=5000 × 10^(2-3)=500.0 |
| 0x203C | מתח ערוץ 1 | יחידה: 0.0001V, R/W: RO | I32 | 2 | בייט גבוה ראשון, בייט נמוך אחרון |
| 0x203E | מתח ערוץ 2 | יחידה: 0.0001V, R/W: RO | I32 | 2 | תמיד 0 |
| 0x2040 | ערוץ 1 שוטף | יחידה: 0.0001A, R/W: RO | I32 | 2 | בייט גבוה ראשון, בייט נמוך אחרון |
| 0x2042 | ערוץ 2 שוטף | יחידה: 0.0001A, R/W: RO | I32 | 2 | תמיד 0 |
| 0x2044 | ערוץ 1 כוח | יחידה: 0.0001kW, R/W: RO | I32 | 2 | בייט גבוה ראשון, בייט נמוך אחרון |
| 0x2046 | ערוץ 2 כוח | יחידה: 0.0001kW, R/W: RO | I32 | 2 | תמיד 0 |
| 0x9A00 | קדימה אנרגיה כוללת פעילה | יחידה: קוט"ש, R/W: RO | לָצוּף | 2 | |
| 0xA001/0x8900 | כתובת המכשיר | יחידה: ללא, R/W: RW | U16 | 1 | טווח: 0~247 |
הדגמה של קריאת הודעות מד אנרגיה של UBS
באמצעות תוכנת המחשב המארח של מד האנרגיה של UBS, קרא את הנתונים הבאים ממד האנרגיה החכם DJZ1226 DC: סך אנרגיה פעילה חיובית, מתח, זרם, הספק וכתובת מד.

כפי שמוצג בתרשים למעלה, תוכן ההודעה המפורט שנשלח והתקבל על ידי המחשב המארח הוא כדלקמן:
13:25:30.229 סך אנרגיה פעילה חיובית(000C0002) ...
13:25:30.256 ▼שלח:00 03 00 0C 00 02 05 D9
13:25:30.344 ▲קבל:01 03 04 00 00 00 00 FA 33
13:25:30.359 מתח DC(00000002) ...
13:25:30.424 ▼שלח:00 03 00 00 00 02 C5 DA
13:25:30.428 ▲קבל:01 03 04 00 17 00 03 0A 36
13:25:30.494 זרם DC(00020002) ...
13:25:30.522 ▼שלח:00 03 00 02 00 02 64 1א
13:25:30.610 ▲קבל:01 03 04 00 30 00 02 7B FD
13:25:30.621 Power(00080002) ...
13:25:30.682 ▼שלח:00 03 00 08 00 02 44 18
13:25:30.690 ▲קבל:01 03 04 00 01 00 02 2A 32
13:25:30.702 כתובת תקשורת 2(A0010001) ...
13:25:30.779 ▼שלח:00 03 A0 01 00 01 F6 1B
13:25:30.783 ▲קבל:01 03 02 00 01 79 84
13:25:30.795 סוף קריאת נתונים.
בעיות נפוצות וטכניקות פתרון בעיות
למרות שפרוטוקול Modbus RTU פשוט יחסית, עדיין עלולות להתעורר בעיות שונות ביישומים מעשיים. להלן תקלות ופתרונות נפוצים בתקשורת מוני חשמל:
אין תגובת תקשורת
● בדוק חיבורים פיזיים:
▪ האם חיווט RS-485 נכון (קווי A/B הפוכים)?
▪ האם נגדי הסיום מתאימים (בדרך כלל, חבר נגדי 120Ω בכל קצה של האוטובוס)?
▪ האם מרחק התקשורת חורג מהמגבלה (RS-485 יכול להגיע תיאורטית ל-1200 מטר, אך המרחקים בפועל מושפעים מגורמים סביבתיים).
● אמת הגדרות פרמטר:
▪ האם הגדרות קצב הביאוד, סיביות הנתונים, סיביות הסטופ והזוגיות עולות בקנה אחד עם מד החשמל?
▪ האם כתובת המכשיר מוגדרת כהלכה (ללא כתובות כפולות)?
תקשורת לסירוגין
● בדוק אם יש הפרעות קו:
▪ השתמש בכבל מסוכך-מעוות וודא שהמגן מוארק בקצה אחד.
▪ הימנע מהפעלת הכבל במקביל לכבלי-מתח גבוה.
● בדיקת מכשירים בודדים:
▪ חבר כל מד חשמל בנפרד כדי לפתור תקלות במכשירים תקולים.
▪ השתמש בתוכנת המחשב המארח הייעודית של UBS Electronics (כגון AMS) כדי לתקשר ישירות עם מד החשמל ולאתר את הבעיה.
שגיאות נתונים
● אימות בדיקת CRC:
▪ בדוק אם קודי ה-CRC שנשלחו והתקבלו עקביים.
▪ אשר את סדר הביטים של הנתונים (Modbus RTU הוא בדרך כלל קטן-endian).
● בדיקת מיפוי רישום:
▪ אשר שכתובות האוגר המשמשות תואמות את המדריך של מד החשמל.
▪ שימו לב לקיזוז כתובת הרישום.
אם אתה צריך להשתמש בתוכנת המחשב המארח של UBS (פרוטוקול Modbus RTU) המוזכרת במאמר זה, צור קשר עם האחראי על הזמנת מד החשמל של UBS וקבל תמיכה טכנית נוספת לאחר-מכירה.




