संरचित पाठ: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Programming language for programmable logic controllers}} {{For|the lightweight text markup languages|StructuredText|reStructuredText}} संरचि...")
 
No edit summary
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Short description|Programming language  for programmable logic controllers}}
{{Short description|Programming language  for programmable logic controllers}}
{{For|the lightweight text markup languages|StructuredText|reStructuredText}}
{{For|अल्पभार पाठ्य भाग मार्कअप भाषाएं|संरचित मूलपाठ|प्रति संरचित मूलपाठ}}


संरचित पाठ, जिसे ST या STX के रूप में संक्षिप्त किया गया है, [[IEC 61131-3]] मानक द्वारा समर्थित पाँच भाषाओं में से एक है, जिसे [[ निर्देशयोग्य तर्क नियंत्रक ]]्स (PLCs) के लिए डिज़ाइन किया गया है।<ref>{{cite web |last1=Bacidore |first1=Mike |title=Should I limit programming to ladder logic or use all standards within IEC 61131? |url=https://www.controldesign.com/articles/2018/should-i-limit-programming-to-ladder-logic-or-use-all-standards-within-iec-61131/ |date=16 May 2018 |website=Control Design}}</ref><ref>{{cite web |last1=Stevic |first1=Tom |title=पीएलसी प्रोग्रामिंग प्लेटफॉर्म का एक बहुत छोटा इतिहास|url=https://www.controldesign.com/articles/2017/a-very-short-history-of-plc-programming-platforms/ |date=5 May 2017 |website=Control Design}}</ref> यह एक उच्च स्तरीय भाषा है जो [[ब्लॉक (प्रोग्रामिंग)]] है और वाक्यात्मक रूप से [[पास्कल (प्रोग्रामिंग भाषा)]] से मिलती जुलती है, जिस पर यह आधारित है।<ref name="nlpaper">{{cite journal |last1=Roos |first1=Nieke |title=संरचित पाठ का उपयोग करते हुए प्रोग्रामिंग पीएलसी|publisher=Department of Computing Science, University of Nijmegen|citeseerx=10.1.1.49.2016 }}</ref> सभी भाषाएँ [[IEC61131 सामान्य तत्व]]ों को साझा करती हैं। चर और फ़ंक्शन कॉल सामान्य तत्वों द्वारा परिभाषित किए जाते हैं इसलिए IEC 61131-3 मानक के भीतर विभिन्न भाषाओं का उपयोग एक ही कार्यक्रम में किया जा सकता है।
संरचित पाठ, जिसे एसटी या एसटीएक्स के रूप में संक्षिप्त किया गया है, [[IEC 61131-3]] मानक द्वारा समर्थित पाँच भाषाओं में से एक है, जिसे [[ निर्देशयोग्य तर्क नियंत्रक | निर्देशयोग्य तर्क नियंत्रक]] (PLCs) के लिए अभिकल्पित किया गया है। <ref>{{cite web |last1=Bacidore |first1=Mike |title=Should I limit programming to ladder logic or use all standards within IEC 61131? |url=https://www.controldesign.com/articles/2018/should-i-limit-programming-to-ladder-logic-or-use-all-standards-within-iec-61131/ |date=16 May 2018 |website=Control Design}}</ref><ref>{{cite web |last1=Stevic |first1=Tom |title=पीएलसी प्रोग्रामिंग प्लेटफॉर्म का एक बहुत छोटा इतिहास|url=https://www.controldesign.com/articles/2017/a-very-short-history-of-plc-programming-platforms/ |date=5 May 2017 |website=Control Design}}</ref> यह एक उच्च स्तरीय भाषा है जो [[ब्लॉक (प्रोग्रामिंग)|खण्ड (प्रोग्रामिंग)]] है और वाक्यात्मक रूप से [[पास्कल (प्रोग्रामिंग भाषा)]] से मिलती जुलती है, जिस पर यह आधारित है।<ref name="nlpaper">{{cite journal |last1=Roos |first1=Nieke |title=संरचित पाठ का उपयोग करते हुए प्रोग्रामिंग पीएलसी|publisher=Department of Computing Science, University of Nijmegen|citeseerx=10.1.1.49.2016 }}</ref> सभी भाषाएँ [[IEC61131 सामान्य तत्व]]ों को साझा करती हैं। चर और फलन निर्देश सामान्य तत्वों द्वारा परिभाषित किए जाते हैं इसलिए IEC 61131-3 मानक के भीतर विभिन्न भाषाओं का उपयोग एक ही कार्यक्रम में किया जा सकता है।


जटिल कथन और नेस्टेड निर्देश समर्थित हैं:
जटिल कथन और स्थिर निर्देश समर्थित हैं:


* पुनरावृति लूप (दोहराएँ-जब तक; जबकि-करें)
* पुनरावृति आवर्ती (REPEAT-UNTIL; WHILE-DO)
* सशर्त निष्पादन (IF-THEN-ELSE; CASE)<ref name="nlpaper"/>* कार्य (एसक्यूआरटी (), एसआईएन ())
* सशर्त निष्पादन (IF-THEN-ELSE; CASE)<ref name="nlpaper"/>
*कार्य (एसक्यूआरटी (), एसआईएन ())


== नमूना कार्यक्रम ==
== प्रतिरूप क्रमादेश ==


<syntaxhighlight lang="pascal">
<syntaxhighlight lang="pascal">
Line 23: Line 24:
END_CASE;
END_CASE;
</syntaxhighlight>
</syntaxhighlight>
कुछ अन्य प्रोग्रामिंग भाषाओं के विपरीत, CASE स्टेटमेंट के लिए कोई स्विच स्टेटमेंट # फॉलथ्रू नहीं है: पहली मिलान स्थिति दर्ज की जाती है, और इसके स्टेटमेंट चलाने के बाद, अन्य शर्तों की जाँच किए बिना CASE ब्लॉक छोड़ दिया जाता है।
कुछ अन्य प्रोग्रामिंग भाषाओं के विपरीत, सीएएसई वर्णन के लिए कोई फॉलथ्रू नहीं है: पहली मिलान स्थिति दर्ज की जाती है, और इसके वर्णन चलाने के बाद, अन्य स्तिथियों की जाँच किए बिना सीएएसई खण्ड छोड़ दिया जाता है।


=== अतिरिक्त एसटी प्रोग्रामिंग उदाहरण ===
=== अतिरिक्त एसटी प्रोग्रामिंग उदाहरण ===
Line 65: Line 66:




==== फ़ंक्शन ब्लॉक उदाहरण ====
==== फलन खण्ड उदाहरण ====
<वाक्यविन्यास हाइलाइट लैंग = एक्शनस्क्रिप्ट लाइन = 1>
<syntaxhighlight lang="actionscript" line="1">
//
//=======================================================================
// Function Block Timed Counter :  Incremental count of the timed interval
//=======================================================================
FUNCTION_BLOCK FB_Timed_Counter
    VAR_INPUT
        Execute        : BOOL := FALSE;        // Trigger signal to begin Timed Counting
        Time_Increment  : REAL := 1.25;        // Enter Cycle Time (Seconds) between counts
        Count_Cycles    : INT  := 20;          // Number of Desired Count Cycles
    END_VAR
   
    VAR_OUTPUT
        Timer_Done_Bit  : BOOL := FALSE;        // One Shot Bit indicating Timer Cycle Done
        Count_Complete  : BOOL := FALSE;        // Output Bit indicating the Count is complete           
        Current_Count  : INT  := 0;            // Accumulating Value of Counter
    END_VAR
   
    VAR
        CycleTimer      : TON;                  // Timer FB from Command Library
        CycleCounter    : CTU;                  // Counter FB from Command Library
        TimerPreset    : TIME;                // Converted Time_Increment in Seconds to MS
    END_VAR
       
    // Start of Function Block programming
    TimerPreset := REAL_TO_TIME(in := Time_Increment) * 1000;
 
    CycleTimer(
        in := Execute AND NOT CycleTimer.Q,
        pt := TimerPreset);
 
    Timer_Done_Bit := CycleTimer.Q;
   
    CycleCounter(
        cu := CycleTimer.Q,
        r := NOT Execute,
        pv := Count_Cycles);
 
    Current_Count := CycleCounter.cv;
    Count_Complete := CycleCounter.q;
   
END_FUNCTION_BLOCK
</syntaxhighlight>
 
 
 
 
 
 
 
 
 
 
 


==संदर्भ==
==संदर्भ==
{{reflist}}
{{reflist}}


<!--Categories-->[[Category: आईईसी मानकों]] [[Category: प्रोग्राम करने योग्य तर्क नियंत्रक]] [[Category: प्रोग्रामिंग भाषा]]
<!--Categories-->
 
 


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:CS1 errors]]
[[Category:Created On 02/05/2023]]
[[Category:Created On 02/05/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Template documentation pages|Short description/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:आईईसी मानकों]]
[[Category:प्रोग्राम करने योग्य तर्क नियंत्रक]]
[[Category:प्रोग्रामिंग भाषा]]

Latest revision as of 18:03, 18 May 2023

संरचित पाठ, जिसे एसटी या एसटीएक्स के रूप में संक्षिप्त किया गया है, IEC 61131-3 मानक द्वारा समर्थित पाँच भाषाओं में से एक है, जिसे निर्देशयोग्य तर्क नियंत्रक (PLCs) के लिए अभिकल्पित किया गया है। [1][2] यह एक उच्च स्तरीय भाषा है जो खण्ड (प्रोग्रामिंग) है और वाक्यात्मक रूप से पास्कल (प्रोग्रामिंग भाषा) से मिलती जुलती है, जिस पर यह आधारित है।[3] सभी भाषाएँ IEC61131 सामान्य तत्वों को साझा करती हैं। चर और फलन निर्देश सामान्य तत्वों द्वारा परिभाषित किए जाते हैं इसलिए IEC 61131-3 मानक के भीतर विभिन्न भाषाओं का उपयोग एक ही कार्यक्रम में किया जा सकता है।

जटिल कथन और स्थिर निर्देश समर्थित हैं:

  • पुनरावृति आवर्ती (REPEAT-UNTIL; WHILE-DO)
  • सशर्त निष्पादन (IF-THEN-ELSE; CASE)[3]
  • कार्य (एसक्यूआरटी (), एसआईएन ())

प्रतिरूप क्रमादेश

(* simple state machine *)
TxtState := STATES[StateMachine];

CASE StateMachine OF
   1: ClosingValve();
      StateMachine := 2;
   2: OpeningValve();
ELSE
    BadCase();
END_CASE;

कुछ अन्य प्रोग्रामिंग भाषाओं के विपरीत, सीएएसई वर्णन के लिए कोई फॉलथ्रू नहीं है: पहली मिलान स्थिति दर्ज की जाती है, और इसके वर्णन चलाने के बाद, अन्य स्तिथियों की जाँच किए बिना सीएएसई खण्ड छोड़ दिया जाता है।

अतिरिक्त एसटी प्रोग्रामिंग उदाहरण

// PLC configuration
CONFIGURATION DefaultCfg
    VAR_GLOBAL
        b_Start_Stop  : BOOL;         // Global variable to represent a boolean.
        b_ON_OFF      : BOOL;         // Global variable to represent a boolean.
        Start_Stop AT %IX0.0:BOOL;    // Digital   input of the PLC (Address 0.0)
        ON_OFF     AT %QX0.0:BOOL;    // Digital output of the PLC (Address 0.0). (Coil)
    END_VAR

    // Schedule the main program to be executed every 20 ms
    TASK Tick(INTERVAL := t#20ms);

    PROGRAM Main WITH Tick : Monitor_Start_Stop;
END_CONFIGURATION

PROGRAM Monitor_Start_Stop          // Actual Program
    VAR_EXTERNAL
        Start_Stop  : BOOL;
        ON_OFF      : BOOL;
    END_VAR
    VAR                             // Temporary variables for logic handling
        ONS_Trig    : BOOL;
        Rising_ONS  : BOOL;
    END_VAR

    // Start of Logic
    // Catch the Rising Edge One Shot of the Start_Stop input
    ONS_Trig    := Start_Stop AND NOT Rising_ONS;
    
    // Main Logic for Run_Contact -- Toggle ON / Toggle OFF ---
    ON_OFF := (ONS_Trig AND NOT ON_OFF) OR (ON_OFF AND NOT ONS_Trig);

    // Rising One Shot logic   
    Rising_ONS := Start_Stop;
END_PROGRAM


फलन खण्ड उदाहरण

//=======================================================================
// Function Block Timed Counter :  Incremental count of the timed interval
//=======================================================================
FUNCTION_BLOCK FB_Timed_Counter
    VAR_INPUT
        Execute         : BOOL := FALSE;        // Trigger signal to begin Timed Counting
        Time_Increment  : REAL := 1.25;         // Enter Cycle Time (Seconds) between counts
        Count_Cycles    : INT  := 20;           // Number of Desired Count Cycles
    END_VAR
    
    VAR_OUTPUT
        Timer_Done_Bit  : BOOL := FALSE;        // One Shot Bit indicating Timer Cycle Done
        Count_Complete  : BOOL := FALSE;        // Output Bit indicating the Count is complete            
        Current_Count   : INT  := 0;            // Accumulating Value of Counter
    END_VAR
    
    VAR
        CycleTimer      : TON;                  // Timer FB from Command Library
        CycleCounter    : CTU;                  // Counter FB from Command Library
        TimerPreset     : TIME;                 // Converted Time_Increment in Seconds to MS
    END_VAR
        
    // Start of Function Block programming
    TimerPreset := REAL_TO_TIME(in := Time_Increment) * 1000;

    CycleTimer(
        in := Execute AND NOT CycleTimer.Q,
        pt := TimerPreset);

    Timer_Done_Bit := CycleTimer.Q;
    
    CycleCounter(
        cu := CycleTimer.Q,
        r := NOT Execute,
        pv := Count_Cycles);

    Current_Count := CycleCounter.cv;
    Count_Complete := CycleCounter.q;
    
END_FUNCTION_BLOCK







संदर्भ

  1. Bacidore, Mike (16 May 2018). "Should I limit programming to ladder logic or use all standards within IEC 61131?". Control Design.
  2. Stevic, Tom (5 May 2017). "पीएलसी प्रोग्रामिंग प्लेटफॉर्म का एक बहुत छोटा इतिहास". Control Design.
  3. 3.0 3.1 Roos, Nieke. "संरचित पाठ का उपयोग करते हुए प्रोग्रामिंग पीएलसी". Department of Computing Science, University of Nijmegen. CiteSeerX 10.1.1.49.2016. {{cite journal}}: Cite journal requires |journal= (help)