نص غير منظم
تحتاج هذه المقالة إلى تهذيب لتتناسب مع دليل الأسلوب في ويكيبيديا. (سبتمبر 2020) |
النص غير منظم (بالإنجليزية: Structured Text ST) هي واحدة من خمس لغات البرمجة بالنسبة للبرمجة منطق جهاز تحكم الصناعية (API) يحددها معيار IEC 61131-3. وهي لغة عالية المستوى و هيكلها تشير إلى لغات ادا و باسكال.[1]
شكل هذه الملفات كانت موحدة إلى XML عن طريق PLCopen. تعليمات أكثر أو أقل تعقيدًا، معتمدة، على سبيل المثال:
- التكرار حلقات (كرر حتى، في حين-DO).
- (IF-THEN-ELSE; الحالة).
- وظائف (SQRT(), SIN()).
برنامج سبيل المثال
عدل(* بسيطة آلة الدولة *)
TxtState := الدول[StateMachine]; حالة من StateMachine 1: ClosingValve(); آخر ;;
BadCase(); END_CASE;
مثال آخر من ST البرمجة
عدل// PLC التكوين
التكوين DefaultCfg
VAR_GLOBAL
b_Start_Stop : منطقي; // متغير عمومي إلى تمثل منطقية.
b_ON_OFF : منطقي; // متغير عمومي إلى تمثل منطقية.
Start_Stop في المائة IX0.0:منطقي ؛ / / المدخلات الرقمية من المجلس التشريعي الفلسطيني (عنوان 0.0)
ON_OFF في المائة QX0.0:منطقي ؛ / / الإخراج الرقمي من المجلس التشريعي الفلسطيني (عنوان 0.0). (لفائف)
END_VAR
// جدول البرنامج الرئيسي ليتم تنفيذها كل 20 ms
مهمة وضع علامة(الفاصل الزمني := t#20ms);
البرنامج جنب مع القراد : Monitor_Start_Stop;
END_CONFIGURATION
برنامج Monitor_Start_Stop // الفعلية البرنامج
VAR_EXTERNAL
Start_Stop : منطقي ؛
ON_OFF : منطقي ؛
END_VAR
VAR // المتغيرات المؤقتة عن منطق التعامل مع
ONS_Trig : منطقي ؛
Rising_ONS : منطقي ؛
END_VAR
// بداية من المنطق
// القبض على ارتفاع الحافة طلقة واحدة من Start_Stop الإدخال
ONS_Trig := Start_Stop وليس Rising_ONS;
// الرئيسية المنطق Run_Contact -- تبديل / تبديل قبالة ---
ON_OFF := (ONS_Trig وليس ON_OFF) أو (ON_OFF وليس ONS_Trig);
// ارتفاع طلقة واحدة المنطق
Rising_ONS := Start_Stop;
END_PROGRAM
مثال آخر من إعلان وظيفة
عدل//=======================================================================
// وظيفة كتلة توقيت العداد : تدريجية عدد من توقيت الفاصل
//=======================================================================
FUNCTION_BLOCK FB_Timed_Counter
VAR_INPUT
تنفيذ : منطقي := FALSE; // الزناد إشارة البدء توقيت العد
Time_Increment :: = 1.25; // أدخل دورة الزمن (ثانية) بين التهم
Count_Cycles : الباحث := 20; // عدد المطلوب عد دورات
END_VAR
VAR_OUTPUT
Timer_Done_Bit : منطقي := FALSE; // طلقة واحدة بت مشيرا إلى توقيت دورة القيام به
Count_Complete : منطقي := FALSE; // Output بت مشيرا إلى العد كاملة
Current_Count : الباحث := 0; // تراكم قيمة العداد
END_VAR
فار
CycleTimer : طن; // الموقت الفيس بوك من الأوامر المكتبة
CycleCounter : الوحدة; // مكافحة الفيس بوك من الأوامر المكتبة
TimerPreset : الوقت; // تحويل Time_Increment في ثوان MS
END_VAR
// بداية من وظيفة كتلة البرمجة
TimerPreset := REAL_TO_TIME (: = Time_Increment) * 1000;
CycleTimer(
في := وتنفيذ ليس CycleTimer.س
,pt := TimerPreset);
Timer_Done_Bit := CycleTimer.Q;
CycleCounter(
cu := CycleTimer.س
r := يتم تنفيذ
pv := Count_Cycles);
Current_Count := CycleCounter.السيرة الذاتية;
Count_Complete := CycleCounter.q;
END_FUNCTION_BLOCK
مراجع
عدل- ^ برمجة /النص غير منظم.