Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная 2

.doc
Скачиваний:
0
Добавлен:
31.01.2023
Размер:
365.57 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра вычислительной техники

отчет

по лабораторной работе №2

по дисциплине «Технические средства автоматизации и управлении»

Студент гр. 8091

Гришин И.Д.

Преподаватель

Немудрук М.Л.

Санкт-Петербург

2021

Задание

Цель – наполнить бак. Нагреть до срабатывания температурного сенсора. Открыть выпускной клапан.

Входные переменные процесса (контроль):

LoLoLevel – низкий уровень в баке.

HiHiLevel – высокий уровень в баке.

Temperature – температура (0 / 1)

Выходные – управление:

V1 – впускной клапан.

V2 – выпускной клапан.

Heater – нагреватель.

Error – ошибка.

Текст программы

C++

struct structure { int start = 0, stop = 0, status = 0, com_operator = 0, // → 1 counter = 0, error = 0, time2stop = 10, time2start = 10; bool work = false, ready = false, // → true local = false, remote = false, alarm_stop_button = false; }; void setState (int state, struct structure env) { switch (state) { case 0: // running env.status = 1; if (!env.work) setState(1, env); if (env.com_operator == 2 && env.ready) { env.stop = 1; env.error = 0; env.counter = 0; env.com_operator = 0; setState(3, env); } break; case 1: // stopped env.status = 2; if (env.work) { setState(0, env); } if (env.com_operator == 1 && env.ready && (!env.alarm_stop_button || !env.local || !env.remote)) { env.start = 1; env.error = 0; env.counter = 0; env.com_operator = 0; setState(2, env); } break; case 2: // try2start env.status = 3; env.counter++; if (env.work) { env.start = 0; setState(0, env); } if (!env.work && env.counter > env.time2start) { env.start = 0; env.error = 2; setState(1, env); } setState(2, env); break; case 3: // try2stop env.status = 4; env.counter++; if (env.work) { env.stop = false; setState(1, env); } if (env.work && env.counter > env.time2stop) { env.error = 1; env.stop = false; setState(0, env); } break; default: setState(0, env); } } int main() { struct structure start; do { setState(0, start); } while (!start.work); return 0; }

Пример запуска программы

Рисунок 1. Пример запуска программы

5

Соседние файлы в предмете Технические средства автоматизации и управления