Урок 8 курса «Быстрый старт StreamDat»: создание программы пользователя. Показано добавление сервиса «Ядро Кругола», настройка таблиц переменных, написание программы на технологическом языке Кругол, трансляция и запуск ядра, а также проверка работы имитационной программы в среде исполнения.
- 00:00 Добавление сервиса Ядро Кругола
- 01:32 Создание таблицы переменных и привязка к тегам
- 02:26 Настройка входных аналоговых переменных
- 04:26 Настройка дискретных выходных переменных
- 05:20 Создание файла программы в среде разработки
- 06:39 Написание программы управления насосом
- 08:49 Алгоритм управления задвижкой с таймером
- 09:59 Имитация уровня, температуры и давления
- 11:02 Трансляция, настройка ядра и проверка работы
- StreamDat
- Кругол
Кому полезно: Инженерам АСУ ТП, изучающим среду разработки StreamDat и язык Кругол.
Описание составлено автоматически по расшифровке речи в ролике.
Расшифровка видео
0:00 Для оживления проекта напишем программу, имитирующую изменение состояния технологического процесса, сделаем это с помощью интегрированной среды разработки кругов. В стремдат и Саркругол выполнена в виде сервиса по умолчанию. При создании проектов этот сервис не добавлен список сервисов проекта, для начала необходимо. Его добавить в дереве проекта мы выбираем ветку сервисы, у нас открывается окно со списком сервисов и для добавления сервиса. Мы нажимаем кнопочку + добавить. Открывается окно, добавление сервиса в списке мы выбираем необходимый сервис. Это ядро кругола, остальные поля, это имя и описание заполняются автоматически при. Выборе сервиса нажимаем кнопочку сохранить, и мы видим, что сервис у нас добавился на данном этапе при запуске сервиса. Будет ошибка, так как еще нету пользовательских. Программ, давайте попробуем, вот мы видим, что ошибка при изменении программы не найдены. После добавления сервисов проект в настройках проекта появляются. Разделы для конфигурирования настроек сервиса и интегрированная среда разработки пользовательских программ на технологическом языке кругол теперь можно. Приступать к конфигурированию таблицы переменных кругов, написанию пользовательских программ и заданию параметров выполнения программ. Начнем с таблицы переменных.
1:32 Здесь происходит сопоставление тестов проекта с переменными, которые будут использоваться ядром кругов с помощью таблицы переменных пользователь создает переменные. Которые используются ядром кругов и связывает их с тегами проекта. То есть определяет, что уникальный тег проект, обязательно типизированный, теперь является источником? Или приемником для переменной ядра кругола таблица переменных содержит 5 типизированных таблиц, выбирать их можно из списка. Вот начнем с ва входная аналоговая в каждой. Таблице пользователь может задать количество тестов переменных для сопоставления, это количество, это количество задается в соответствующем поле, количество так у нас.
2:23 Тегов, созданных на основе. Тега, входная аналоговая, 3 это эти теги описывают температуру, уровень жидкости в резервуаре и давление жидкости в трубопроводе. Значит, мы вводим цифру? 3 И у нас добавились 3 переменные в программе, они обозначаются в А и соответствующий номер. Теперь мы переменные свяжем с тегами проекта, 1 у нас будет.
2:55 Уровень мы выбираем соответствующий объект и. ТЭК Ва. Дальше вы, а 2 мы привяжем. К тегу температура. И 3 переменную у нас можно уже сразу ее будет выбрать. Это у нас будет 3 переменная отвечать за давление, нажимаем сохранить и в поле ссылку на тег проекта. Мы видим, к какому тегу привязана переменная, дальше мы переходим к таблице входная дискретная дискретных. Переменных у нас тоже 3 1 из них отвечает за состояние насоса, и 2 по за состояние задвижки задвижка открыта или задвижка закрыта? Тоже вводим троечку, и у нас добавляются 3 переменные, также свяжем их с тегами.
4:05 Переменная воды 1 будет связано с Тегом на 1 состояние, описывающее состояние насоса. Переменную ВД 2 с вяжем стегом зд 1 открыто и переменную вд 3 свяжем стегом зд 1 закрыто.
4:26 Дальше откроем таблицу дискретная выходная тегов, созданных на основе тега. Дискретная выходная типизированного тега дискретные выходной у нас тоже 3. 1 Тег 1 переменную свяжем с Тегом. Управляющем состоянии насоса и на 1 УПР. И следующий свяжем с управлением задвижкой 2 дв 2 будет связана с Д, то есть подавать команду, открыть задвижку и 3. Стегом с за командой закрыть задвижку таким образом. Мы создали переменные, которые будут использоваться в среде кругов и связали их с тегами.
5:20 Объектов дальше мы перейдем в раздел интегрированная среда разработки. Здесь мы уже будем писать непосредственно текст программы 1 делом. Мы выберем платформу, пока у нас есть только 1 платформа в Стриндат. Это среда исполнения кругов 1 0 Линукс, далее необходимо создать файл для этого. Мы правой кнопочкой кликаем по файлы проекта, и в контекстном меню выбираем добавить. Новый файл открывается окно, создание нового файла на данный момент. Мы можем создать только ст файл в поле, имя файла можно задать какое то более понятное имя файла. Но следует обратить внимание, что имя не должно содержать. Пробелов и нажимаем кнопку сохранить. Мы оставим, оставили название по умолчанию, и когда мы кликнем по файлу, у нас открывается редактор среды разработки, то. Здесь мы можем уже писать программу, а теперь, а теперь перейдем к написанию текста самой программы. Любая программа начинается с со слова программа дальше.
6:39 Дальше необходимо ввести название имя программы. И начнем с управления насосом. Если атрибут номер 44 переменной дв 1 равен единице, то есть если поступила команда включить насос, то состояние насоса. Это атрибут номер 27 переменной ВД 1 принимает значение единицы, в противном случае. Выключить насос, это атрибут номер 27. Переменная вд 1 записывается, 0 где посмотреть можно номера атрибутов. Мы перейдем обратно к объектам на вкладке Теги. У нас отображаются все теги объектов проекта, и за управление насосом у нас отвечает тек и на 1 управление, если кликнуть по Айди. Т и готов откроется список атрибутов, и здесь, напротив каждого атрибута в столбце номер указывается номер атрибута. Как раз этот номер будет использоваться в программе у нас в.
8:05 Команда управления записывается в текущее значение переменной номер этого атрибута 44 для Тега, созданного на основе. Входной дискретный. Текущее значение это атрибут номер 27 и таким образом можно для других типов тестов, берегов посмотреть значения конкретных атрибутов. Теперь вернемся в среду разработки и продолжим написание программы. Следующим мы запишем алгоритм управления задвижкой.
8:49 Если пришла команда открыть задвижку, то состояние задвижка закрыта. Ложь включается таймер. Если прошло достаточно времени для открытия задвижки, поскольку задвижка открывается не мгновенно, то состояние задвижка открыта, будет истина и сбрасывается команда. Открытия задвижки далее выключается таймер и сбрасывается таймер. Если пришла команда закрыть задвижку, то состояние задвижка открыта, ложь включается таймер.
9:31 Если прошло достаточно времени для закрытия задвижки, поскольку задвижка открывается не мгновенно, то состояние задвижка закрыта, принимается значение истина. И сбрасывается команда. Закрытия задвижки выключается таймер и обнуляется таймер. Далее напишем алгоритм управления уровнем жидкости, если насос включен. То есть значение атрибута номер 29 текущее значение после преобразования контроллера увеличивается? То есть уровень растет, если задвижка открыта, то уровень падает.
10:24 Также добавим имитацию температуры жидкости в резервуаре. И давление на выходе насоса, если насос включен давление в трубопроводе, присутствует, в противном случае давление равно 0. Таким образом, мы написали текст программы, имитирующей изменение параметров технологического процесса. Далее необходимо выполнить трансляцию, для этого надо нажать вот на эту вот кнопочку, а внизу страницы у нас отобразится ход трансляции. Так не забываем нажать, сохранить текст программы и дальше переходим к разделу Ядро Кругола.
11:12 Здесь у нас отображается список пользовательских программ и можно настроить цикл выполнения программ, задать и процент свободного времени цикла и также управлять. Программами отмечать, какие будут выполняться, какие нет, и также здесь можно включить и выключить ядро. Кругола запустим ядро Кругола, включив переключатель.
11:36 И перейдем в среду исполнения, посмотрим, как у нас выполняется программа. Поскольку у нас изначально все атрибуты, текущее значение были равны, 0 то задвижка у нас находится неопределенном состоянии, сделаем закроем задвижку. Задвижка переведена в состоянии закрыта, а теперь включим насос, насос включен. Уровень жидкости начинает расти давление в трубопроводе. Присутствует уровень, увеличивается, но и температура у нас тоже отображается, не отображаются позиции тестов, потому что мы их не задали. Перейдем обратно в конфигуратор.
12:33 Ветки, объекты на закладке теги. Откроем атрибуты датчика уровня и найдем позицию, нет данных, уровень мы обозначим. Буквой Эль уровень жидкости. Сохраним значение. Дальше для Тега, отвечающего за температуру, тоже для позиции зададим значение, т Эль. И позиция для тега давления. Пл Мы вернемся к среде исполнения. И мы видим, что у нас уже позиции отображаются, так то здесь смотрим, что резервуар переполнен. Выключим насос и откроем задвижку. Задвижка в состоянии открыта, и уровень жидкости начинает падать.
Расшифровка сделана автоматически (Yandex SpeechKit) и может содержать ошибки в терминах.
Урок 8 курса «Быстрый старт StreamDat»: создание программы пользователя.
Ещё по StreamDat
все материалы
17:47▶ StreamDat. Установка, демо-режим и лицензии
StreamDat · 17:47Установка StreamDat (сборка 2.1.1), работа в демо-режиме и варианты лицензирования. С этого ролика стоит начать перед курсом «Быстрый старт».
6:42▶ StreamDat. Урок 10. История процесса
StreamDat · 6:42Урок 10 курса «Быстрый старт StreamDat»: история процесса.
8:21▶ StreamDat. Урок 9. Предотвращение аварийных ситуаций
StreamDat · 8:21Урок 9 курса «Быстрый старт StreamDat»: как предотвращать аварийные ситуации.
11:02▶ StreamDat. Урок 6.1. Динамика и реакции: резервуар и насос
StreamDat · 11:02Урок 6.1 курса «Быстрый старт StreamDat»: динамика и реакции объектов на примере резервуара и насоса.
18:19▶ StreamDat. Урок 6.2. Динамика и реакции: задвижка
StreamDat · 18:19Урок 6.2 курса «Быстрый старт StreamDat»: динамика и реакции объектов на примере задвижки.
9:29▶ StreamDat. Урок 7. Схема технологического процесса
StreamDat · 9:29Урок 7 курса «Быстрый старт StreamDat»: создание схемы технологического процесса.