מבוא ל-Modered Text

טקסט מובנה (ST) הוא שפת תכנות ברמה גבוהה המוגדרת על ידי תקן IEC 61131-3 עבור בקרים לוגיים הניתנים לתוכנה (PLCs) שאושרה במקור בשנת 1993 ועודכן בשנת 2002 ו-2013, התקן הביא הוראה לנוף מפורש של שפות PLC קנייניות. טקסט מובנה נועד למלא פער: בעוד Ladder Diagram נשאר עבור חשמלאיטיביים ולוגיקה פשוטה, מספק טקסט , בדומה לגרסאות מתמטיות, כגון Ccusic, לעתים קרובות, כמו גם שיטות בקרה מודרניות, כמו גם אלגוריתם, או שיטות בקרה, כלומר, כמו Ccus, כלומר, לעתים קרובות, כלומר, כלומר, כמו אלגוריתם, כמו גם שיטות בקרה, כמו אלגוריתם, לעתים קרובות, כלומר, כמו אלגוריתם מתמטית, כלומר, כלומר, כלומר, כלומר, לעתים קרובות, כלומר, כמו גם שיטות בקרה מתמטית, כמו אלגוריתם מתמטית, לעתים קרובות, כלומר, כלומר, כמו שיטות בקרה, כמו שיטות בקרה, לעתים קרובות, כמו שיטות בקרה מורכבות, כמו גם שיטות בקרה, כמו אלגוריתם מתמטית, לעתים קרובות, עבור שיטות בקרה, כמו גם שיטות בקרה, כמו אלגוריתם, כמו שיטות בקרה, כמו אלגוריתם של טקסט מורכבות, כמו גם אלגוריתם, לעתים קרובות, כמו אלגוריתם, כמו

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

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

היתרונות של טקסט מובנה בתכנות מודרנית

קריאה ותחזוקה

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

כוח אלגורית

פונקציות מורכבות, trigonometric, יומניthms, ו פעולות bitwise הם אזרחים ברמה הראשונה ST. לדוגמה, יישום לולאה Ccaded PID עם תנאים מתקדמים דורש רק תריסר שורות של קוד. מומחי סולם יצטרכו לבנות בלוקים פונקציונליים משוכללים או פעולות מתמטיות המבוססות על הסולם כי הם קשה יותר ל debug. ST מטפל גם מבנים ו- Natively, המאפשרים מניפולציה יעילה של מתכונים, נתונים, או עמדות מתמטיות.

מודולריות וקוד Reuse

טקסט מובנה תומך באופן מלא במושגים של IEC 61131-3 של פונקציות, בלוקים פונקציה ותוכניות. A פונקציה בלוק כתוב ב- ST יכול להיות מיידי פעמים רבות, כל אחד עם הנתונים שלו לדוגמה שלו. עיצוב מודולרי זה מפחית את השכפול ומהירויות פיתוח עבור משימות חוזרות - לדוגמה, פונקציה "שליטה מוטורית" גנרית ניתן להשתמש מחדש עבור כל מנוע במפעל.

אפשרויות ל-IEC Languages

רוב הסביבות המודרניות של תכנות PLC מאפשרות ל-SFC לשלב עם Ladder, פונקציונלי בלוק דיגרמה (FBD), ו-Squential Function Chart (SFC) מהנדס יכול להשתמש ב-SFC כדי לעצב מכונה של מכונה, ליישם כל פעולות המדינה ב- ST ולהשאיר את ה-Intlocks הבטיחות ב-Ladder. גמישות זו משמעה לא תחליף שפות אחרות אלא משלימה אותן, ומאפשרת לצוותים לבחור את הכלי הטוב ביותר עבור כל אחת מאסטרטגיה של שליטה.

ויכוח וסימולציה

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

טקסט מובנה לעומת IEC 61131-3 שפות

Ladder Diagram (LD)

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

בלוק דיאגר (FBD)

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

טבלת פונקציונליות (SFC)

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

רשימת ההוראה (IL)

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

בפועל, רוב מערכות IEC 61131-3 תומךות בכל חמש השפות, אך ST הפכה לבחירה דה- Facto עבור אלגוריתמים חדשים, נהגי תקשורת ויישומים רגישים נתונים.

מפתח סינטקס ומבנה בטקסט מובנה

סוגים שונים והנתונים

ST תומך בסוגי הנתונים הסטנדרטיים של IEC 61131-3: BOOL, INT, DINT, REAL, LREAL, Time, DATE, DEATE, DEING, ומבנהים המוגדרים למשתמש. Variables ניתן להכריז בתוכנית, בלוק הפונקציה או רמת תפקוד עם VAR INPU, VAR OuttPU, VAR IN Out, VAR out ו-ARAT ST.

VAR
 Setpoint : REAL := 100.0;
 processVariable : REAL;
 gain : REAL := 1.5;
 output : REAL;
END_VAR

הצהרות מצב

ה- IF בונה תומך בחוזים ELSE ו- ELSIF. CASE נוח להחלטות מרובות ברמת ההחלטות המבוססות על אינפורטר או האנהמכה:

CASE mode OF
 1:
 output := Setpoint * gain;
 2:
 output := Setpoint * 2.0;
 3:
 output := 0.0;
 ELSE
 output := 0.0;
END_CASE

סיומות ו-Iteration

עבור לולאות זהר מעל טווח; הלולאות למהל ו- REPEAT לרוץ עד מצב משתנה. אלה חיוניים עבור מערך עיבוד, ניהול חיץ, או סינכרון גרזן. לדוגמה, תוך מתן 100 הדגימות האחרונות ב-buffer:

sum := 0.0;
FOR i := 0 TO 99 DO
 sum := sum + buffer[i];
END_FOR
average := sum / 100.0;

פונקציות ובלוקים פונקציונליים

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

FUNCTION_BLOCK MovingAverage
VAR_INPUT
 newValue : REAL;
 trigger : BOOL;
END_VAR
VAR_OUTPUT
 average : REAL;
END_VAR
VAR
 buffer : ARRAY[0..99] OF REAL;
 index : INT := 0;
 count : INT := 0;
END_VAR
IF trigger THEN
 buffer[index] := newValue;
 index := index + 1;
 IF index >= 100 THEN index := 0; END_IF
 IF count < 100 THEN count := count + 1; END_IF
 average := 0.0;
 FOR i := 0 TO count-1 DO
 average := average + buffer[i];
 END_FOR
 average := average / REAL(count);
END_IF

דוגמה זו מראה כיצד ST מטפל במדד, לוגיקה מותנית, לולאות ונקודת צף באופן ברור, בולט.עבור צלילה עמוקה יותר לתוך הסינמס, מתייחס ל-FLT:0PLCopen IEC 61131-3iberFLT:1.

יישומים מעשיים של טקסט מובנה

בקרת תהליכים מתקדמים ובקרת תהליכים מתקדמים

לולאות PID הן עמוד השדרה של בקרת תהליכים. בעוד ש- PLCs מציעים בלוקים PID שנבנו מראש, יישום מותאם אישית ST מאפשר עבור משב רוח אנטי-reset, פיצוי קדימה, תזמון, וכוונון הסתגלות. לדוגמה, בלוק פונקציה יחידה ST יכול לחטוף אלגוריתם PID שפועל במרווחים, עם תפוקה בקנה מידה גבוה ל-0- V10- 20A גם עושה את זה כדי ליישם את ה-FD אסטרטגיות.

בקרת תנועה ורובוטיקה

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

קידוד וניתוח

PLCs לפעול יותר ויותר כמו מכשירים קצה, איסוף נתוני ייצור לניתוח.ST יכול לכתוב נתונים לקבצים על כרטיס SD או לשלוח מחרוזת מעוצבת על פני Ethernet באמצעות TCP / IP או MQTT יכולים להשתמש ב- ST כדי למקם סיכומים סטטיסטיים תואמים (ממוצע, סטייה סטנדרטית, מינוס / מקסימום) על הטיסה, צמצום הצורך עבור מחשב נפרד.

פרוטוקול תקשורת

רבים משתמשים ב- ST כדי ליישם פרוטוקולים מותאמים אישית על פני ה- Ethernet או Ethernet.לדוגמה, נהג עבור מאסטר RTU MODBUS או קורא קוד קנייני ניתן לכתוב לחלוטין ב- ST, נותן שליטה מלאה על תזמון וטיפול שגיאה. מפעילי bitwise של השפה (AND, או, XOR, SHL, SHR) חיוניים לבניית ומסגרת של פרוטוקולים.

בטיחות ו Fault Handling

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

שיטות טובות לפיתוח טקסט מובנה

אימוץ אמנה מותאמת

(ב) השתמשו בשמות משמעותיים למשתנים, לפונקציות ולחסומי תפקוד (למשל, FLT:0) ;fSetpointsFLT:1 עבור נקודת מפנה אמיתית, FLT:2xStart 3LT 3 עבור אות התחלה BOOL) הוא נפוץ באוטומציה תעשייתית.

מסמך ומכתב טורב

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

קוד מבנה עם פונקציות ובלוקים פונקציונליים

לשבור את התוכנית ליחידות קטנות, ניתנות לבדיקה.כל בלוק פונקציה צריך להיות אחריות אחת.אם בלוק עולה על 200 שורות או יש יותר מ 10 קלטות / ספארי, לשקול refactoring. השתמש VAR IN out עבור נתונים כי הבלוק מודולים, ובאופן ברור הפרדה קלטות שליטה מ קלטות נתונים.

מיפוי כל משתנה

משתנים בלתי חוקיים יכולים לגרום להתנהגות בלתי צפויה.תמיד להקצות ערך ראשוני בהכרזה (למשל, FLT:0counter: INT:= 003FLT:1).

מבחן בסימולציה ראשונה

רוב ספקי PLC מספקים סביבות סימולציה אשר מבצעים את ST ללא חומרה אמיתית.לכתוב בדיקות יחידה עבור פונקציות קריטיות - לדוגמה, לאמת כי בלוק PID מחזיר את הפלט הצפוי עבור קלטות ידועות. השתמש מלכודות טיעון (למשל, FLT:0IF ...N ExITFLT:1) כדי לתפוס מצבים לא חוקיים במהלך בדיקות.

בקרת קוד ו-code Reviews

השתמש בקוד ST כמו כל תוכנה אחרת: להשתמש במערכת בקרת גרסאות (Git, SVN) כדי לעקוב אחר שינויים. ביקורות קוד לתפוס שגיאות לוגיות ולשפר את הידע של הצוות.

עבור קבוצה מפורטת יותר של קווים מנחים, להתייעץ עם מדריך הנדסת תוכנה פתוח:0PLCopen Software Engineering Guide

הדרכה ואימוץ של טקסט מובנה

למרות ש- ST הוא חלק מסטנדרט IEC מאז 1993, אנשי מקצוע אוטומציה רבים הוכשרו בעיקר על שפות ספציפיות ל-Ladder או הספק. עקומת הלמידה עבור ST היא יחסית עדינה עבור כל אחד עם ניסיון תכנות בסיסי. [+] הדרכות באינטרנט, ספק-מסופק e-learning, וקורסים מארגונים כמו האגודה הבינלאומית של אוטומציה (ISA) ללמד ST syntax ושיטות הטובות ביותר.

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

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

עתיד הטקסט המובנה באוטומציה תעשייתית

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

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

תקן IEC 61499FLT:1, אשר בונה על IEC 61131-3 עבור שליטה מבוזרת, תומך גם סינטקס טקסטיאלי דומה ST.As מבוזר אוטומציה (חיישנים חכמים, בקרה מבוזרת) מקבל את המעצמה, ST ישמש כדבק המשלב מכשירים heterogeneous לבסוף, תנועת הקוד הפתוח באוטומציה מייצרת מדפים ומנוהל לסביבות כניסה למתחילים למתחמיכים קטנים למתחרים למתחמיכים למתחרים.

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

מסקנה

טקסט מובנה הפך כלי חיוני ערכת הכלים של מהנדס האוטומציה.בהירות שלו, כוח חישובי, מבנה מודולרי מאפשר לוגיקה שליטה מתוחכמת כי יהיה לא מעשי בשפות גרפיות.כאשר בשילוב עם אחרים IEC 61131-3 שפות, ST מספק את הטוב ביותר של שני העולמות: עיצוב חזותי עבור בקרת רצף ברמה גבוהה וקוד מדויק, שמירה על אלגוריתמים מורכבים כמו מערכות תעשייתיות לגדול חכם יותר ויותר, פונקציות מחובר, יישום של פורמט טקסט מודרני, רק של תקשורת מודרנית, כלומר, כלומר, יש צורך יעיל של פורמט מערכת תקשורת מודרנית, או יותר, יש צורך יעיל יותר, יש צורך.

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