النص غير منظم (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
مراجع
- برمجة /النص غير منظم.