Share to: share facebook share twitter share wa share telegram print page

نص غير منظم

نص منظم

النص غير منظم (بالإنجليزية: 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

مراجع

  1. ^ برمجة /النص غير منظم.
Kembali kehalaman sebelumnya