<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://docs.kb-agava.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_ST_%D0%B2_AgavaSCADA%2FAgavaPLC</id>
	<title>Описание языка ST в AgavaSCADA/AgavaPLC - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://docs.kb-agava.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_ST_%D0%B2_AgavaSCADA%2FAgavaPLC"/>
	<link rel="alternate" type="text/html" href="https://docs.kb-agava.ru/index.php?title=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_ST_%D0%B2_AgavaSCADA/AgavaPLC&amp;action=history"/>
	<updated>2026-08-14T01:40:29Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://docs.kb-agava.ru/index.php?title=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_ST_%D0%B2_AgavaSCADA/AgavaPLC&amp;diff=3683&amp;oldid=prev</id>
		<title>TaushkanovKV: /* Ограничения */</title>
		<link rel="alternate" type="text/html" href="https://docs.kb-agava.ru/index.php?title=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_ST_%D0%B2_AgavaSCADA/AgavaPLC&amp;diff=3683&amp;oldid=prev"/>
		<updated>2026-08-11T10:59:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Ограничения&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 10:59, 11 августа 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l432&quot; &gt;Строка 432:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 432:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Ограничения ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Ограничения ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Указатели (&amp;lt;code&amp;gt;POINTER TO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ADR&amp;lt;/code&amp;gt;, оператор &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;) не поддерживаются.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Указатели (&amp;lt;code&amp;gt;POINTER TO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ADR&amp;lt;/code&amp;gt;, оператор &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;) не поддерживаются.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;RETAIN&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;PERSISTENT&amp;lt;/code&amp;gt; — не поддерживаются &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(warning).&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;RETAIN&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;PERSISTENT&amp;lt;/code&amp;gt; — не поддерживаются&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, работают как обычные &lt;/ins&gt;&amp;lt;code&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;VAR&lt;/ins&gt;&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* &lt;/del&gt;&amp;lt;code&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;CONTINUE&lt;/del&gt;&amp;lt;/code&amp;gt; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;как оператор цикла — не поддерживается&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;PROGRAM&amp;lt;/code&amp;gt; нельзя использовать как экземплярный FB из другого POU&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, вызов возможен только из задачи&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;PROGRAM&amp;lt;/code&amp;gt; нельзя использовать как экземплярный FB из другого POU.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Пример ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Пример ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_mw:diff::1.12:old-3682:rev-3683 --&gt;
&lt;/table&gt;</summary>
		<author><name>TaushkanovKV</name></author>
	</entry>
	<entry>
		<id>https://docs.kb-agava.ru/index.php?title=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_ST_%D0%B2_AgavaSCADA/AgavaPLC&amp;diff=3682&amp;oldid=prev</id>
		<title>TaushkanovKV: /* Арифметические операторы */</title>
		<link rel="alternate" type="text/html" href="https://docs.kb-agava.ru/index.php?title=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_ST_%D0%B2_AgavaSCADA/AgavaPLC&amp;diff=3682&amp;oldid=prev"/>
		<updated>2026-08-11T10:47:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Арифметические операторы&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 10:47, 11 августа 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l301&quot; &gt;Строка 301:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 301:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Сложение&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Сложение&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| +&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|x + y&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|+&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|+&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|x + y&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Вычитание&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Вычитание&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| -&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|x − y&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|x − y&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_mw:diff::1.12:old-3681:rev-3682 --&gt;
&lt;/table&gt;</summary>
		<author><name>TaushkanovKV</name></author>
	</entry>
	<entry>
		<id>https://docs.kb-agava.ru/index.php?title=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_ST_%D0%B2_AgavaSCADA/AgavaPLC&amp;diff=3681&amp;oldid=prev</id>
		<title>TaushkanovKV в 10:46, 11 августа 2026</title>
		<link rel="alternate" type="text/html" href="https://docs.kb-agava.ru/index.php?title=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_ST_%D0%B2_AgavaSCADA/AgavaPLC&amp;diff=3681&amp;oldid=prev"/>
		<updated>2026-08-11T10:46:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия 10:46, 11 августа 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Данное описание содержит базовое руководство по созданию программ на языке &amp;lt;code&amp;gt;Structured Text&amp;lt;/code&amp;gt; (ST, IEC 61131-3) и их использованию в [[Универсальная среда разработки|среде разработки Agava]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Данное описание содержит базовое руководство по созданию программ на языке &amp;lt;code&amp;gt;Structured Text&amp;lt;/code&amp;gt; (ST, IEC 61131-3) и их использованию в [[Универсальная среда разработки|среде разработки Agava]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Документ предназначен для &amp;lt;code&amp;gt;AgavaSCADA/AgavaPLC 1.7+&amp;lt;/code&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Дополнительные документы ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Дополнительные документы ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Standard &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;- стандартная библиотека&lt;/del&gt;|Стандартная библиотека IEC (iecstdlib)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]].&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Библиотека &lt;/ins&gt;Standard &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;AgavaSCADA/AgavaPLC&lt;/ins&gt;|Стандартная библиотека IEC (iecstdlib)]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* [[Основы AgavaScript|Основы синтаксиса AgavaScript&lt;/del&gt;]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*[[Описание базовых классов AgavaSCADA/AgavaPLC]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Описание базовых классов AgavaSCADA/AgavaPLC]].&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Объектная модель AgavaSCADA/AgavaPLC]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Объектная модель AgavaSCADA/AgavaPLC]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l427&quot; &gt;Строка 427:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 428:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Стандартные FB (&amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CTU&amp;lt;/code&amp;gt;, …) и функции IEC описаны в [[Standard - стандартная библиотека]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Стандартные FB (&amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CTU&amp;lt;/code&amp;gt;, …) и функции IEC описаны в [[Standard - стандартная библиотека]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Связь с AgavaScript ==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;!Тема&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;!Поведение&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Файлы &amp;lt;code&amp;gt;.st&amp;lt;/code&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Компилируются ST-frontend&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Имена IEC-функций&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|В ST обычно в UPPER (&amp;lt;code&amp;gt;SIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ABS&amp;lt;/code&amp;gt;); в движке — lowercase (&amp;lt;code&amp;gt;sin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;abs&amp;lt;/code&amp;gt;)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Поля стандартных FB&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|В UPPER (&amp;lt;code&amp;gt;IN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PT&amp;lt;/code&amp;gt;)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Host API Agava&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Доступен из ST без учёта регистра (&amp;lt;code&amp;gt;GetNodeValueAsFloat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;StoreMessage&amp;lt;/code&amp;gt;, …)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|PROGRAM&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|Локальный &amp;lt;code&amp;gt;VAR&amp;lt;/code&amp;gt; сохраняется между вызовами&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Ограничения ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Ограничения ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l453&quot; &gt;Строка 453:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 433:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;RETAIN&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;PERSISTENT&amp;lt;/code&amp;gt; — не поддерживаются (warning).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;RETAIN&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;PERSISTENT&amp;lt;/code&amp;gt; — не поддерживаются (warning).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;CONTINUE&amp;lt;/code&amp;gt; как оператор цикла — не поддерживается.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;CONTINUE&amp;lt;/code&amp;gt; как оператор цикла — не поддерживается.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* Нельзя переопределить зарегистрированную IEC-функцию с той же сигнатурой.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*&amp;lt;code&amp;gt;PROGRAM&amp;lt;/code&amp;gt; нельзя использовать как экземплярный FB из другого POU.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;code&amp;gt;PROGRAM&amp;lt;/code&amp;gt; нельзя использовать как экземплярный FB из другого POU.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Пример ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Пример ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_mw:diff::1.12:old-3680:rev-3681 --&gt;
&lt;/table&gt;</summary>
		<author><name>TaushkanovKV</name></author>
	</entry>
	<entry>
		<id>https://docs.kb-agava.ru/index.php?title=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_ST_%D0%B2_AgavaSCADA/AgavaPLC&amp;diff=3680&amp;oldid=prev</id>
		<title>TaushkanovKV: Новая страница: «Данное описание содержит базовое руководство по созданию программ на языке &lt;code&gt;Structured Text&lt;...»</title>
		<link rel="alternate" type="text/html" href="https://docs.kb-agava.ru/index.php?title=%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_ST_%D0%B2_AgavaSCADA/AgavaPLC&amp;diff=3680&amp;oldid=prev"/>
		<updated>2026-08-11T10:44:40Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Данное описание содержит базовое руководство по созданию программ на языке &amp;lt;code&amp;gt;Structured Text&amp;lt;...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Данное описание содержит базовое руководство по созданию программ на языке &amp;lt;code&amp;gt;Structured Text&amp;lt;/code&amp;gt; (ST, IEC 61131-3) и их использованию в [[Универсальная среда разработки|среде разработки Agava]].&lt;br /&gt;
&lt;br /&gt;
== Дополнительные документы ==&lt;br /&gt;
&lt;br /&gt;
* [[Standard - стандартная библиотека|Стандартная библиотека IEC (iecstdlib)]].&lt;br /&gt;
* [[Основы AgavaScript|Основы синтаксиса AgavaScript]].&lt;br /&gt;
* [[Описание базовых классов AgavaSCADA/AgavaPLC]].&lt;br /&gt;
* [[Объектная модель AgavaSCADA/AgavaPLC]].&lt;br /&gt;
&lt;br /&gt;
Вы также можете ознакомиться с другими документами, размещенными в [[:Категория:AgavaSCADA/AgavaPLC|категории AgavaSCADA/AgavaPLC]].&lt;br /&gt;
&lt;br /&gt;
== Основы синтаксиса ==&lt;br /&gt;
Программа на ST состоит из объявлений (типы, переменные, POU) и операторов. Операторы завершаются точкой с запятой. Присваивание выполняется оператором &amp;lt;code&amp;gt;:=&amp;lt;/code&amp;gt;, сравнение на равенство — оператором &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 iCounter := iCounter + 1;&lt;br /&gt;
 bOk := (iCounter = 10);&lt;br /&gt;
&lt;br /&gt;
=== Комментарии ===&lt;br /&gt;
Поддерживаются три вида комментариев:&lt;br /&gt;
&lt;br /&gt;
 (* IEC-комментарий *)&lt;br /&gt;
 /* C-style комментарий */&lt;br /&gt;
 // комментарий до конца строки&lt;br /&gt;
&lt;br /&gt;
== Единицы организации программ (POU) ==&lt;br /&gt;
&lt;br /&gt;
=== PROGRAM ===&lt;br /&gt;
Программа — единица, вызываемая задачей/хостом. Локальные переменные секции &amp;lt;code&amp;gt;VAR&amp;lt;/code&amp;gt; сохраняют значения между вызовами (ретенция в рамках скана/повторных вызовов).&lt;br /&gt;
&lt;br /&gt;
 PROGRAM PumpCtrl&lt;br /&gt;
 VAR&lt;br /&gt;
     iState : INT := 0;&lt;br /&gt;
 END_VAR&lt;br /&gt;
     iState := iState + 1;&lt;br /&gt;
 END_PROGRAM&lt;br /&gt;
&lt;br /&gt;
=== FUNCTION ===&lt;br /&gt;
Функция — подпрограмма без собственного «состояния» между вызовами (кроме локальных экземпляров FB). Тип результата указывается после имени; результат записывается в переменную с именем функции.&lt;br /&gt;
&lt;br /&gt;
 FUNCTION Add : INT&lt;br /&gt;
 VAR_INPUT&lt;br /&gt;
     a : INT;&lt;br /&gt;
     b : INT;&lt;br /&gt;
 END_VAR&lt;br /&gt;
     Add := a + b;&lt;br /&gt;
 END_FUNCTION&lt;br /&gt;
&lt;br /&gt;
 FUNCTION main : BOOL&lt;br /&gt;
 VAR&lt;br /&gt;
     r : INT;&lt;br /&gt;
 END_VAR&lt;br /&gt;
     r := Add(a := 2, b := 3);&lt;br /&gt;
     main := (r = 5);&lt;br /&gt;
 END_FUNCTION&lt;br /&gt;
&lt;br /&gt;
Если тип результата опущен, функция соответствует &amp;lt;code&amp;gt;void&amp;lt;/code&amp;gt; (ничего не возвращает).&lt;br /&gt;
&lt;br /&gt;
=== FUNCTION_BLOCK ===&lt;br /&gt;
Функциональный блок — экземплярный тип со входами/выходами и внутренним состоянием. Экземпляр объявляется в секции переменных и вызывается как процедура.&lt;br /&gt;
&lt;br /&gt;
 FUNCTION_BLOCK FB_Inc&lt;br /&gt;
 VAR_INPUT&lt;br /&gt;
     IN : BOOL;&lt;br /&gt;
 END_VAR&lt;br /&gt;
 VAR_OUTPUT&lt;br /&gt;
     Q : BOOL;&lt;br /&gt;
 END_VAR&lt;br /&gt;
 VAR&lt;br /&gt;
     bPrev : BOOL := FALSE;&lt;br /&gt;
 END_VAR&lt;br /&gt;
     Q := IN AND NOT bPrev;&lt;br /&gt;
     bPrev := IN;&lt;br /&gt;
 END_FUNCTION_BLOCK&lt;br /&gt;
&lt;br /&gt;
 FUNCTION main : BOOL&lt;br /&gt;
 VAR&lt;br /&gt;
     fb : FB_Inc;&lt;br /&gt;
 END_VAR&lt;br /&gt;
     fb(IN := TRUE);&lt;br /&gt;
     main := fb.Q;&lt;br /&gt;
 END_FUNCTION&lt;br /&gt;
&lt;br /&gt;
Внутри FB поддерживаются методы Codesys-стиля &amp;lt;code&amp;gt;METHOD … END_METHOD&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Переменные ==&lt;br /&gt;
Переменные объявляются в секциях &amp;lt;code&amp;gt;VAR*&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;VAR_GLOBAL&amp;lt;/code&amp;gt; в виде:&lt;br /&gt;
&lt;br /&gt;
 имя {, имя} : тип [:= начальное_значение];&lt;br /&gt;
&lt;br /&gt;
 VAR&lt;br /&gt;
     a, b : INT := 0;&lt;br /&gt;
     sMsg : STRING := 'готово';&lt;br /&gt;
 END_VAR&lt;br /&gt;
&lt;br /&gt;
=== Секции переменных ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Секция&lt;br /&gt;
!Назначение&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;VAR&amp;lt;/code&amp;gt;&lt;br /&gt;
|Локальные переменные&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;VAR_INPUT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Входные параметры&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;VAR_OUTPUT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Выходные параметры&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;VAR_IN_OUT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Параметры «вход-выход» (по ссылке)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;VAR_TEMP&amp;lt;/code&amp;gt;&lt;br /&gt;
|Временные локали PROGRAM (не сохраняются между вызовами)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;VAR_GLOBAL&amp;lt;/code&amp;gt;&lt;br /&gt;
|Глобальные переменные compilation unit&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;VAR CONSTANT&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;VAR_GLOBAL CONSTANT&amp;lt;/code&amp;gt;&lt;br /&gt;
|Константы&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Модификаторы &amp;lt;code&amp;gt;RETAIN&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;PERSISTENT&amp;lt;/code&amp;gt; в текущей реализации не поддерживаются (выдаётся предупреждение; объявление обрабатывается как обычный &amp;lt;code&amp;gt;VAR&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Типы данных ===&lt;br /&gt;
==== Логический тип ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Тип ST&lt;br /&gt;
!Тип AS&lt;br /&gt;
!Значения&lt;br /&gt;
|-&lt;br /&gt;
|BOOL&lt;br /&gt;
|bool&lt;br /&gt;
|FALSE (0), TRUE (1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Целочисленные типы ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Тип ST&lt;br /&gt;
!Тип AS&lt;br /&gt;
!Диапазон (кратко)&lt;br /&gt;
|-&lt;br /&gt;
|SINT&lt;br /&gt;
|int8&lt;br /&gt;
|−128 … 127&lt;br /&gt;
|-&lt;br /&gt;
|INT&lt;br /&gt;
|int16&lt;br /&gt;
|−32 768 … 32 767&lt;br /&gt;
|-&lt;br /&gt;
|DINT&lt;br /&gt;
|int&lt;br /&gt;
|−2 147 483 648 … 2 147 483 647&lt;br /&gt;
|-&lt;br /&gt;
|LINT&lt;br /&gt;
|int64&lt;br /&gt;
|64-битное знаковое&lt;br /&gt;
|-&lt;br /&gt;
|USINT / BYTE&lt;br /&gt;
|uint8&lt;br /&gt;
|0 … 255&lt;br /&gt;
|-&lt;br /&gt;
|UINT / WORD&lt;br /&gt;
|uint16&lt;br /&gt;
|0 … 65 535&lt;br /&gt;
|-&lt;br /&gt;
|UDINT / DWORD&lt;br /&gt;
|uint&lt;br /&gt;
|0 … 4 294 967 295&lt;br /&gt;
|-&lt;br /&gt;
|ULINT / LWORD&lt;br /&gt;
|uint64&lt;br /&gt;
|64-битное беззнаковое&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Вещественные типы ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Тип ST&lt;br /&gt;
!Тип AS&lt;br /&gt;
|-&lt;br /&gt;
|REAL&lt;br /&gt;
|float&lt;br /&gt;
|-&lt;br /&gt;
|LREAL&lt;br /&gt;
|double&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Нетипизированный вещественный литерал (&amp;lt;code&amp;gt;1.5&amp;lt;/code&amp;gt;) трактуется как &amp;lt;code&amp;gt;REAL&amp;lt;/code&amp;gt;. Для &amp;lt;code&amp;gt;LREAL&amp;lt;/code&amp;gt; используйте явный литерал: &amp;lt;code&amp;gt;LREAL#3.14159&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Строки ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Тип ST&lt;br /&gt;
!Описание&lt;br /&gt;
|-&lt;br /&gt;
|STRING / STRING(n) / STRING[n]&lt;br /&gt;
|Строка (UTF-8). С размером — ограничение длины при присваивании&lt;br /&gt;
|-&lt;br /&gt;
|WSTRING / WSTRING(n) / WSTRING[n]&lt;br /&gt;
|Широкая строка (UTF-16)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Строковые литералы заключаются в одинарные или двойные кавычки. Удвоение кавычки внутри строки экранирует её. Также поддерживаются escapes через &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; (например &amp;lt;code&amp;gt;$N&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Функции работы со строками (&amp;lt;code&amp;gt;LEN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LEFT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RIGHT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MID&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CONCAT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FIND&amp;lt;/code&amp;gt; и др.) описаны в документе [[Standard - стандартная библиотека]].&lt;br /&gt;
&lt;br /&gt;
==== Время и дата ====&lt;br /&gt;
Типы &amp;lt;code&amp;gt;TIME&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TOD&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;TIME_OF_DAY&amp;lt;/code&amp;gt;), &amp;lt;code&amp;gt;DATE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;DT&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;DATE_AND_TIME&amp;lt;/code&amp;gt;) и L-варианты представляются как &amp;lt;code&amp;gt;int64&amp;lt;/code&amp;gt; (семантика OSCAT: TIME/TOD — миллисекунды; DATE/DT — секунды).&lt;br /&gt;
&lt;br /&gt;
Литералы:&lt;br /&gt;
 T#50ms&lt;br /&gt;
 T#1h30m&lt;br /&gt;
 DATE#2025-01-01&lt;br /&gt;
 TOD#14:03:30&lt;br /&gt;
 DT#2025-11-19-14:03:30&lt;br /&gt;
&lt;br /&gt;
==== Массивы ====&lt;br /&gt;
Объявление:&lt;br /&gt;
&lt;br /&gt;
 ARR : ARRAY [0..9] OF INT;&lt;br /&gt;
 MATRIX : ARRAY [0..2, 0..2] OF REAL;&lt;br /&gt;
&lt;br /&gt;
Индексация с учётом нижней границы объявления. Литерал инициализации:&lt;br /&gt;
&lt;br /&gt;
 A : ARRAY [0..2] OF INT := [10, 20, 30];&lt;br /&gt;
&lt;br /&gt;
==== Структуры ====&lt;br /&gt;
 TYPE Person :&lt;br /&gt;
 STRUCT&lt;br /&gt;
     name   : STRING;&lt;br /&gt;
     age    : INT;&lt;br /&gt;
     height : REAL;&lt;br /&gt;
 END_STRUCT&lt;br /&gt;
 END_TYPE&lt;br /&gt;
&lt;br /&gt;
 VAR&lt;br /&gt;
     p1 : Person := (name := 'John', age := 30, height := 1.85);&lt;br /&gt;
 END_VAR&lt;br /&gt;
&lt;br /&gt;
 p1.age := 31;&lt;br /&gt;
&lt;br /&gt;
==== Перечисления ====&lt;br /&gt;
 TYPE TrafficLight : (Red := 1, Yellow := 2, Green := 3);&lt;br /&gt;
 END_TYPE&lt;br /&gt;
&lt;br /&gt;
 VAR&lt;br /&gt;
     light : TrafficLight := TrafficLight#Red;&lt;br /&gt;
 END_VAR&lt;br /&gt;
&lt;br /&gt;
Перечисление компилируется как целочисленный тип; доступ к значениям — через &amp;lt;code&amp;gt;Type#Enumerator&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Операторы ==&lt;br /&gt;
&lt;br /&gt;
=== Присваивание и сравнение ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Оператор&lt;br /&gt;
!Символ&lt;br /&gt;
!Пример&lt;br /&gt;
!Операция&lt;br /&gt;
|-&lt;br /&gt;
|Присваивание&lt;br /&gt;
|:=&lt;br /&gt;
|x := y&lt;br /&gt;
|Присвоить y переменной x&lt;br /&gt;
|-&lt;br /&gt;
|Равно&lt;br /&gt;
|=&lt;br /&gt;
|x = y&lt;br /&gt;
|TRUE, если x равно y&lt;br /&gt;
|-&lt;br /&gt;
|Не равно&lt;br /&gt;
|&amp;amp;lt;&amp;amp;gt;&lt;br /&gt;
|x &amp;amp;lt;&amp;amp;gt; y&lt;br /&gt;
|TRUE, если x не равно y&lt;br /&gt;
|-&lt;br /&gt;
|Меньше&lt;br /&gt;
|&amp;amp;lt;&lt;br /&gt;
|x &amp;amp;lt; y&lt;br /&gt;
|TRUE, если x меньше y&lt;br /&gt;
|-&lt;br /&gt;
|Больше&lt;br /&gt;
|&amp;amp;gt;&lt;br /&gt;
|x &amp;amp;gt; y&lt;br /&gt;
|TRUE, если x больше y&lt;br /&gt;
|-&lt;br /&gt;
|Меньше или равно&lt;br /&gt;
|&amp;amp;lt;=&lt;br /&gt;
|x &amp;amp;lt;= y&lt;br /&gt;
|TRUE, если x ≤ y&lt;br /&gt;
|-&lt;br /&gt;
|Больше или равно&lt;br /&gt;
|&amp;amp;gt;=&lt;br /&gt;
|x &amp;amp;gt;= y&lt;br /&gt;
|TRUE, если x ≥ y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Арифметические операторы ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Оператор&lt;br /&gt;
!Символ&lt;br /&gt;
!Пример&lt;br /&gt;
|-&lt;br /&gt;
|Сложение&lt;br /&gt;
|+&lt;br /&gt;
|x + y&lt;br /&gt;
|-&lt;br /&gt;
|Вычитание&lt;br /&gt;
|-&lt;br /&gt;
|x − y&lt;br /&gt;
|-&lt;br /&gt;
|Умножение&lt;br /&gt;
|*&lt;br /&gt;
|x * y&lt;br /&gt;
|-&lt;br /&gt;
|Деление&lt;br /&gt;
|/&lt;br /&gt;
|x / y&lt;br /&gt;
|-&lt;br /&gt;
|Остаток&lt;br /&gt;
|MOD&lt;br /&gt;
|x MOD y&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Логические и побитовые операторы ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Оператор&lt;br /&gt;
!Символ&lt;br /&gt;
!Примечание&lt;br /&gt;
|-&lt;br /&gt;
|НЕ&lt;br /&gt;
|NOT&lt;br /&gt;
|Для BOOL — логическое; для целых — побитовое&lt;br /&gt;
|-&lt;br /&gt;
|И&lt;br /&gt;
|AND / &amp;amp;amp;&lt;br /&gt;
|Для BOOL — логическое; для целых — побитовое&lt;br /&gt;
|-&lt;br /&gt;
|ИЛИ&lt;br /&gt;
|OR / |&lt;br /&gt;
|Для BOOL — логическое; для целых — побитовое&lt;br /&gt;
|-&lt;br /&gt;
|ИСКЛ. ИЛИ&lt;br /&gt;
|XOR&lt;br /&gt;
|Для BOOL — логическое; для целых — побитовое&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Сдвиги и ротации — стандартные функции IEC: &amp;lt;code&amp;gt;SHL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SHR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ROL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ROR&amp;lt;/code&amp;gt; (см. [[Standard - стандартная библиотека]]).&lt;br /&gt;
&lt;br /&gt;
=== Литералы ===&lt;br /&gt;
* Целые и вещественные: &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;3.14&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;1e-3&amp;lt;/code&amp;gt;; допускается разделитель &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; в числах.&lt;br /&gt;
* Базированные: &amp;lt;code&amp;gt;2#1010&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;8#77&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;16#FF&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Типизированные: &amp;lt;code&amp;gt;DINT#0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;REAL#1.5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;BYTE#255&amp;lt;/code&amp;gt;.&lt;br /&gt;
* BOOL: &amp;lt;code&amp;gt;TRUE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;FALSE&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Доступ к биту: &amp;lt;code&amp;gt;dwordVar.3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Условия ==&lt;br /&gt;
&lt;br /&gt;
=== IF / ELSIF / ELSE ===&lt;br /&gt;
 IF iState = 0 THEN&lt;br /&gt;
     iState := 1;&lt;br /&gt;
 ELSIF iState = 1 THEN&lt;br /&gt;
     iState := 2;&lt;br /&gt;
 ELSE&lt;br /&gt;
     iState := 0;&lt;br /&gt;
 END_IF&lt;br /&gt;
&lt;br /&gt;
=== CASE ===&lt;br /&gt;
 CASE selector OF&lt;br /&gt;
     0:&lt;br /&gt;
         result := 10;&lt;br /&gt;
     1, 3:&lt;br /&gt;
         result := 20;&lt;br /&gt;
     4..7:&lt;br /&gt;
         result := 30;&lt;br /&gt;
 ELSE&lt;br /&gt;
     result := 0;&lt;br /&gt;
 END_CASE&lt;br /&gt;
&lt;br /&gt;
Ветки без «проваливания» (fall-through). При пересечении диапазонов выбирается первая подходящая ветка.&lt;br /&gt;
&lt;br /&gt;
== Циклы ==&lt;br /&gt;
&lt;br /&gt;
=== WHILE ===&lt;br /&gt;
 i := 0;&lt;br /&gt;
 WHILE i &amp;lt; 5 DO&lt;br /&gt;
     i := i + 1;&lt;br /&gt;
 END_WHILE&lt;br /&gt;
&lt;br /&gt;
=== REPEAT ===&lt;br /&gt;
 i := 0;&lt;br /&gt;
 REPEAT&lt;br /&gt;
     i := i + 1;&lt;br /&gt;
 UNTIL i &amp;gt;= 5&lt;br /&gt;
 END_REPEAT&lt;br /&gt;
&lt;br /&gt;
Тело &amp;lt;code&amp;gt;REPEAT&amp;lt;/code&amp;gt; выполняется хотя бы один раз.&lt;br /&gt;
&lt;br /&gt;
=== FOR ===&lt;br /&gt;
 FOR i := 0 TO 10 BY 2 DO&lt;br /&gt;
     sum := sum + i;&lt;br /&gt;
 END_FOR&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;BY&amp;lt;/code&amp;gt; опционален (по умолчанию +1). Для обратного счёта: &amp;lt;code&amp;gt;BY -1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== EXIT и RETURN ===&lt;br /&gt;
* &amp;lt;code&amp;gt;EXIT;&amp;lt;/code&amp;gt; — выход из ближайшего цикла.&lt;br /&gt;
* &amp;lt;code&amp;gt;RETURN;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;RETURN expr;&amp;lt;/code&amp;gt; — выход из функции (без выражения в FUNCTION возвращается переменная результата).&lt;br /&gt;
&lt;br /&gt;
Оператор &amp;lt;code&amp;gt;CONTINUE&amp;lt;/code&amp;gt; как statement не поддерживается; пропуск итерации оформляйте через &amp;lt;code&amp;gt;IF&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Вызовы функций и функциональных блоков ==&lt;br /&gt;
&lt;br /&gt;
Позиционные и именованные аргументы:&lt;br /&gt;
&lt;br /&gt;
 r := Add(2, 3);&lt;br /&gt;
 r := Add(a := 2, b := 3);&lt;br /&gt;
&lt;br /&gt;
Для выходов FB/функций используется &amp;lt;code&amp;gt;=&amp;gt;&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 TestOUT(in1 := 15, iOut =&amp;gt; intVal, bOut =&amp;gt; boolVal);&lt;br /&gt;
&lt;br /&gt;
Вызов экземпляра FB:&lt;br /&gt;
&lt;br /&gt;
 ton1 : TON;&lt;br /&gt;
 ton1(IN := TRUE, PT := T#50ms);&lt;br /&gt;
 ton1();   (* повторный опрос с сохранённым состоянием *)&lt;br /&gt;
&lt;br /&gt;
Опущенные входы FB сохраняют предыдущие значения экземпляра (поведение IEC / CoDeSys).&lt;br /&gt;
&lt;br /&gt;
Стандартные FB (&amp;lt;code&amp;gt;TON&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TOF&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;TP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;RS&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;SR&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;CTU&amp;lt;/code&amp;gt;, …) и функции IEC описаны в [[Standard - стандартная библиотека]].&lt;br /&gt;
&lt;br /&gt;
== Связь с AgavaScript ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Тема&lt;br /&gt;
!Поведение&lt;br /&gt;
|-&lt;br /&gt;
|Файлы &amp;lt;code&amp;gt;.st&amp;lt;/code&amp;gt;&lt;br /&gt;
|Компилируются ST-frontend&lt;br /&gt;
|-&lt;br /&gt;
|Имена IEC-функций&lt;br /&gt;
|В ST обычно в UPPER (&amp;lt;code&amp;gt;SIN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ABS&amp;lt;/code&amp;gt;); в движке — lowercase (&amp;lt;code&amp;gt;sin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;abs&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|Поля стандартных FB&lt;br /&gt;
|В UPPER (&amp;lt;code&amp;gt;IN&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Q&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PT&amp;lt;/code&amp;gt;)&lt;br /&gt;
|-&lt;br /&gt;
|Host API Agava&lt;br /&gt;
|Доступен из ST без учёта регистра (&amp;lt;code&amp;gt;GetNodeValueAsFloat&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;StoreMessage&amp;lt;/code&amp;gt;, …)&lt;br /&gt;
|-&lt;br /&gt;
|PROGRAM&lt;br /&gt;
|Локальный &amp;lt;code&amp;gt;VAR&amp;lt;/code&amp;gt; сохраняется между вызовами&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ограничения ==&lt;br /&gt;
* Указатели (&amp;lt;code&amp;gt;POINTER TO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ADR&amp;lt;/code&amp;gt;, оператор &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;) не поддерживаются.&lt;br /&gt;
* &amp;lt;code&amp;gt;RETAIN&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;PERSISTENT&amp;lt;/code&amp;gt; — не поддерживаются (warning).&lt;br /&gt;
* &amp;lt;code&amp;gt;CONTINUE&amp;lt;/code&amp;gt; как оператор цикла — не поддерживается.&lt;br /&gt;
* Нельзя переопределить зарегистрированную IEC-функцию с той же сигнатурой.&lt;br /&gt;
* &amp;lt;code&amp;gt;PROGRAM&amp;lt;/code&amp;gt; нельзя использовать как экземплярный FB из другого POU.&lt;br /&gt;
&lt;br /&gt;
== Пример ==&lt;br /&gt;
 FUNCTION_BLOCK FB_Counter&lt;br /&gt;
 VAR_INPUT&lt;br /&gt;
     CU : BOOL;&lt;br /&gt;
     R  : BOOL;&lt;br /&gt;
 END_VAR&lt;br /&gt;
 VAR_OUTPUT&lt;br /&gt;
     CV : INT;&lt;br /&gt;
     Q  : BOOL;&lt;br /&gt;
 END_VAR&lt;br /&gt;
     IF R THEN&lt;br /&gt;
         CV := 0;&lt;br /&gt;
     ELSIF CU THEN&lt;br /&gt;
         CV := CV + 1;&lt;br /&gt;
     END_IF&lt;br /&gt;
     Q := (CV &amp;gt;= 10);&lt;br /&gt;
 END_FUNCTION_BLOCK&lt;br /&gt;
&lt;br /&gt;
 FUNCTION main : BOOL&lt;br /&gt;
 VAR&lt;br /&gt;
     fb : FB_Counter;&lt;br /&gt;
     i  : INT;&lt;br /&gt;
 END_VAR&lt;br /&gt;
     FOR i := 1 TO 10 DO&lt;br /&gt;
         fb(CU := TRUE, R := FALSE);&lt;br /&gt;
         fb(CU := FALSE, R := FALSE);&lt;br /&gt;
     END_FOR&lt;br /&gt;
     main := fb.Q AND (fb.CV = 10);&lt;br /&gt;
 END_FUNCTION&lt;br /&gt;
&lt;br /&gt;
[[Категория:AgavaSCADA/AgavaPLC]]&lt;/div&gt;</summary>
		<author><name>TaushkanovKV</name></author>
	</entry>
</feed>