संरचित पाठ: Difference between revisions
(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| | {{For|अल्पभार पाठ्य भाग मार्कअप भाषाएं|संरचित मूलपाठ|प्रति संरचित मूलपाठ}} | ||
संरचित पाठ, जिसे | संरचित पाठ, जिसे एसटी या एसटीएक्स के रूप में संक्षिप्त किया गया है, [[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> | ||
कुछ अन्य प्रोग्रामिंग भाषाओं के विपरीत, | कुछ अन्य प्रोग्रामिंग भाषाओं के विपरीत, सीएएसई वर्णन के लिए कोई फॉलथ्रू नहीं है: पहली मिलान स्थिति दर्ज की जाती है, और इसके वर्णन चलाने के बाद, अन्य स्तिथियों की जाँच किए बिना सीएएसई खण्ड छोड़ दिया जाता है। | ||
=== अतिरिक्त एसटी प्रोग्रामिंग उदाहरण === | === अतिरिक्त एसटी प्रोग्रामिंग उदाहरण === | ||
Line 65: | Line 66: | ||
==== | ==== फलन खण्ड उदाहरण ==== | ||
< | <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--> | <!--Categories--> | ||
[[Category: | [[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
संदर्भ
- ↑ Bacidore, Mike (16 May 2018). "Should I limit programming to ladder logic or use all standards within IEC 61131?". Control Design.
- ↑ Stevic, Tom (5 May 2017). "पीएलसी प्रोग्रामिंग प्लेटफॉर्म का एक बहुत छोटा इतिहास". Control Design.
- ↑ 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)