**************************** Пример: Простая ST-программа **************************** В этом разделе представлен простой пример ST-программы, которая выполняет базовую арифметическую операцию и демонстрирует работу с переменными. .. code-table:: PROGRAM HelloWorld_ST VAR counter : INT := 0; // Внутренняя переменная-счетчик, инициализированная значением 0 max_value : INT := 100; // Константа (псевдо-константа через инициализацию) END_VAR VAR_INPUT reset : BOOL; // Входной сигнал сброса END_VAR VAR_OUTPUT result : INT; // Выходное значение счетчика is_max_reached : BOOL; // Сигнал достижения максимального значения END_VAR // Тело программы IF reset THEN counter := 0; // Сброс счетчика ELSE counter := counter + 1; // Увеличение счетчика END_IF; result := counter; // Присваивание результата IF counter >= max_value THEN is_max_reached := TRUE; // Установка сигнала достижения максимума ELSE is_max_reached := FALSE; END_IF; END_PROGRAM Эта программа выполняет следующие действия: 1. Объявляет внутреннюю переменную ``counter`` и инициализирует её нулём. 2. Объявляет псевдо-константу ``max_value`` со значением 100. 3. Объявляет вход ``reset`` (тип ``BOOL``), который используется для сброса счетчика. 4. Объявляет выходы ``result`` (значение счетчика) и ``is_max_reached`` (флаг достижения максимума). 5. В теле программы: * Если вход ``reset`` активен (``TRUE``), счетчик ``counter`` сбрасывается в 0. * В противном случае, счетчик увеличивается на 1. * Значение ``counter`` присваивается выходу ``result``. * Проверяется, достиг ли ``counter`` значения ``max_value``. Если да, то ``is_max_reached`` устанавливается в ``TRUE``, иначе — в ``FALSE``. .. seealso:: * :doc:`program_structure` - для более подробного изучения структуры программ. * :doc:`operators` - для изучения условных операторов (IF, ELSIF, ELSE, END_IF).