Добавил:
МТУСИ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все_ЛР_Мягков_БАП2201.docx
Скачиваний:
0
Добавлен:
21.04.2026
Размер:
7.02 Mб
Скачать

3.1. Проверка исходных данных (Аналог первого sfc-шага).

Вместо инструкций IL (GE, JMPC, LD) используются стандартные операторы сравнения и присваивания ST:

if Расход < 1.0 then

Расход := 1.0; // Расход по умолчанию

end_if;

if Стоимость < 1.0 then

Стоимость := 1.0; // Стоимость по умолчанию

end_if;

Рисунок 2 – Аргументы программы

3.2. Базовый расчет расхода.

Вычисление расхода за период пересчета должно происходить всегда (независимо от положения выключателя), чтобы не потерять накопленные данные. Инструкции IL (MUL, ADD, ST) заменяются стандартной математикой ST:

// Вычисление суммарного расхода

Суммарный_расход := Предыдущий_суммарный_расход + (Расход * Период);

Предыдущий_суммарный_расход := Суммарный_расход;

3.3. Ветвление алгоритма (Аналог sfc-переходов и альтернативных шагов).

В исходной методичке проверка состояния выключателя служила для перехода к шагу «полный расчет» или шагу «расчет без вывода». В языке ST эта логика реализуется через условный оператор.

Если выключатель включен, мы вычисляем стоимость и выводим результаты (присваиваем значения выходным переменным var_output).

Если выключатель выключен, мы просто не выполняем эти действия, в результате чего на экране остаются старые (предыдущие) значения:

if Выключатель <> 0 then

// --- АНАЛОГ ШАГА "ПОЛНЫЙ РАСЧЕТ" ---

// Вычисление суммарной стоимости

Суммарная_стоимость := Суммарный_расход * Стоимость;

// Значения Суммарный_расход и Суммарная_стоимость автоматически

// отправляются на экран, так как они являются выходными (VAR_OUTPUT)

else

// --- АНАЛОГ ШАГА "РАСЧЕТ БЕЗ ВЫВОДА" ---

// При отключенном выключателе блок расчета стоимости просто пропускается.

// Переменные Суммарный_расход и Суммарная_стоимость не перезаписываются,

// поэтому на экране оператора индикация замораживается,

// хотя фоновый расчет (п. 3.2) продолжает идти корректно.

end_if;

Рисунок 3 – Листинг программы на языке ST

Задание 4. Запуск проекта.

Запустите проект. При обоих положениях переключателя должно происходить заполнение емкости. При включенном положении переключателя должен производиться вывод новых полученных значений суммарного расхода и стоимости. При выключенном положении переключателя новые значения суммарного расхода и стоимости на экран не выводятся (индикация замораживается).

Рисунок 4 – Пример исполнения программы

    1. ВЫВОДЫ

Из-за отсутствия в 7-й версии языков IL и графического SFC, алгоритм управления, изначально спроектированный как конечный автомат (SFC-диаграмма), адаптирован под язык структурированного текста (ST).

Логика SFC-переходов заменяется конструкциями IF...THEN...ELSE. Особенность реализации – работа с выходными переменными (var_output): для создания эффекта «заморозки» экрана при отключенном переключателе – прекращаем запись новых данных в выходные переменные, продолжая при этом фоновое вычисление в глобальных переменных программы.

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ

КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

(МТУСИ)

Кафедра «Интеллектуальные системы в управлении и автоматизации»

(ИСУиА)