Метод моделирования конечных автоматов технологических процессов с применением языка SQL
- Авторы: Холопов В.А.1, Клягин М.М.1, Огорельцев Р.М.1
-
Учреждения:
- МИРЭА – Российский технологический университет
- Выпуск: № 1 (2025)
- Страницы: 92-103
- Раздел: Математическое моделирование и его применение в научных исследованиях
- URL: https://bakhtiniada.ru/2413-0133/article/view/290130
- DOI: https://doi.org/10.25729/ESI.2025.37.1.009
- ID: 290130
Цитировать
Полный текст
Аннотация
В статье рассматривается применение языка SQL для моделирования конечных автоматов в управлении технологическими процессами. Конечные автоматы, как математическая модель, широко используются для автоматизации последовательных операций и управления сложными системами. Здесь предложен подход, при котором реляционная модель данных служит основой для реализации конечного автомата, а язык SQL используется для описания логики переходов между состояниями с помощью таблиц и триггеров. В статье обсуждается процесс проектирования таблиц состояний и переходов, где для каждого состояния фиксируются атрибуты, такие, как временная метка и статус, а переходы описываются условиями и событиями, инициирующими смену состояний. Триггеры, созданные в системе управления базами данных MySQL, автоматизируют логику работы, обеспечивая переходы между состояниями при выполнении заданных условий, что позволяет реализовать модель без необходимости в дополнительных внешних программных средствах. Предложенное решение является гибким и масштабируемым, что упрощает добавление новых состояний и переходов, а также адаптацию системы к изменяющимся требованиям. Применение SQL и реляционной модели также позволяет интегрировать полученную систему с другими аналитическими инструментами, обеспечивая сбор и анализ данных для оптимизации производственных процессов. Такой подход, построенный на SQL и реляционной базе данных, делает систему управления технологическим процессом более эффективной, простой в сопровождении и удобной для последующего анализа, что особенно актуально в условиях современных автоматизированных производств.
Полный текст
Введение. Конечные автоматы – это математическая модель, представляющая систему, которая может находиться в одном из конечного числа состояний и переходить из одного состояния в другое в зависимости от внешних событий или условий [1]. В технологических процессах конечные автоматы находят широкое применение благодаря своей способности моделировать последовательности операций, автоматизировать управление оборудованием и обеспечивать надежный контроль над состояниями системы.
Конечные автоматы активно используются в различных областях промышленности и производства для управления автоматизированными процессами. Они позволяют формализовать и автоматизировать сложные последовательности действий, обеспечивая точное выполнение технологических операций. Например, в сборочных линиях конечные автоматы могут управлять последовательностью операций по сборке деталей, контролируя этапы подачи компонентов, закрепления, проверки качества и последующей транспортировки готового изделия [2].
В робототехнике конечные автоматы применяются для управления движением роботов и манипуляторов. Например, робот-манипулятор может последовательно выполнять команды, такие, как захват детали, перемещение по заданной траектории и размещение на нужной позиции [3]. Каждое из этих действий можно рассматривать как состояние конечного автомата, а переходы между состояниями будут определяться датчиками или другими событиями, поступающими от системы управления.
Применение реляционной модели данных, представленной в виде таблиц, для моделирования конечного автомата обладает значительными преимуществами. Реляционная модель базируется на структуре, которая идеально подходит для представления состояний и переходов (рис. 1):
Рис. 1. Табличное представление состояний и переходов конечного автомата
- таблица состояний может содержать информацию о каждом состоянии автомата, включая его идентификатор, описание, временную метку и текущий статус (активное или неактивное состояние);
- таблица переходов может представлять переходы между состояниями, храня информацию о начальном и конечном состоянии каждого перехода, а также условиях, при которых переход осуществляется.
Запросы SQL позволяют легко получать информацию о текущем состоянии системы, истории переходов и условиях, которые привели к этим изменениям. Триггеры и хранимые процедуры могут использоваться для автоматизации переходов между состояниями на основе событий, поступающих в базу данных. Это позволяет настроить логику переходов, управляя процессами в реальном времени. Добавление новых состояний и переходов осуществляется путем простого обновления или добавления новых записей в соответствующие таблицы. Это упрощает модификацию системы при изменении требований или добавлении новых этапов процесса [4, 5]. Расширение функциональности достигается за счет добавления новых атрибутов в таблицы состояний и переходов, что позволяет хранить дополнительную информацию (например, временные метки, параметры оборудования или результаты проверки) [6]. Реляционная модель обеспечивает строгую ссылочную целостность данных (использование внешних ключей), которая позволяет гарантировать корректные связи между состояниями и переходами [7]. Например, можно спроектировать модель так, чтобы переходы всегда ссылались на существующие состояния.
Актуальность применения реляционной модели для моделирования конечных автоматов обусловлена растущими требованиями к автоматизации и интеллектуальному управлению технологическими процессами в различных отраслях промышленности [8]. Конечные автоматы предоставляют естественную модель для описания и автоматизации таких процессов, а использование реляционной модели данных в сочетании с SQL делает эту модель доступной, масштабируемой и совместимой с существующими инфраструктурами. Более того, SQL как язык универсален, широко поддерживается, а реляционные базы данных уже распространены в промышленных системах. Таким образом, применение SQL для моделирования конечных автоматов не только упрощает интеграцию с уже имеющимися системами, но и позволяет разработчикам и инженерам легко настраивать и модифицировать логику автоматизации.
- Описание технологического процесса и модели конечного автомата. В рамках рассматриваемого технологического процесса осуществляются две основные операции – фрезерование и сборка изделия. Процесс начинается с подачи заготовок на два фрезерных станка, где они обрабатываются для получения деталей двух типов: «крышка» и «основание». Из этих деталей формируется готовое изделие на следующем этапе процесса – этапе сборки [9].
Для выполнения операций задействованы следующие исполнительные механизмы:
- конвейерные ленты – транспортируют заготовки и готовые изделия между различными участками процесса;
- два роботизированных технологических комплекса (РТК);
- фрезерный станок для обработки заготовок (компонент РТК);
- манипулятор для перемещения деталей и их закрепления (компонент РТК);
- пульт управления (ПУ), оснащенный цифровым дисплеем и кнопками «Пуск» и «Стоп» (компонент РТК);
- позиционеры, фиксирующие детали в нужной позиции для сборки;
- двухосевой манипулятор, отвечающий за перемещение и закрепление крышки на основании (рис. 2).
Рис. 2. Общий вид рассматриваемого технологического процесса сборки
Для контроля технологического процесса установлены три оптических датчика, которые используются для:
- контроля положения деталей на конвейерах;
- отслеживания состояния сборочной области;
- проверки завершенности операций на разных этапах (рис. 2).
Для управления технологическим процессом используется пульт управления оператора, который инициирует запуск или остановку всего производства, а также осуществляет контроль над его текущим состоянием. Управление можно разделить на два уровня. Управляющий алгоритм для всей системы – определяет общее поведение производства и отвечает за обработку сигналов с ПУ:
- кнопка «Старт» – при запуске системы производится передача сигнала о старте на все устройства; производство должно обеспечить выпуск 20 сборочных единиц; в случае ошибки процесс автоматически останавливается для устранения сбоев;
- кнопка «Стоп» – при получении сигнала остановки с кнопки все устройства и механизмы (конвейеры, РТК и блок управления сборкой) получают команду на остановку.
Алгоритм управления сборкой – низкоуровневый процесс, непосредственно выполняющий операции сборки. Этот алгоритм подчинен управляющему алгоритму всей системы, что позволяет координировать его действия на каждом этапе.
Алгоритм управления сборкой включает следующие этапы:
- ожидание поступления деталей в сборочную область – детали перемещаются на соответствующие позиции на конвейерах;
- фиксация деталей – позиционеры закрепляют детали в сборочной области;
- перемещение и закрепление крышки – двухосевой манипулятор переносит крышку на основание, находящееся на другой стороне сборочной области;
- удаление готового изделия – готовая сборочная единица удаляется с области сборки с помощью конвейеров;
- подготовка к следующему циклу – система возвращается в исходное состояние и готова к повторению цикла [9].
Алгоритм управления процессом сборки с разграничением состояний конечного автомата представлен на рисунке 3.
Рис. 3. Алгоритм управления процессом сборки с разграничением состояний конечного автомата
Операции в конечном автомате объединяются в состояния на основе логической завершенности или целостности этапов технологического процесса. В одном состоянии могут объединяться операции, которые выполняются последовательно без необходимости проверки промежуточных условий, то есть одна операция сразу следует за другой, пока не будет достигнут конечный результат этого состояния.
Операции, объединенные в одно состояние, выполняются до тех пор, пока не наступит событие, инициирующее переход в следующее состояние. Таким образом, состояние может включать несколько действий, которые не требуют внешнего вмешательства до завершения.
Состояния рассматриваемой системы выделены по наборам состояний, задействованных в процессе сборки управляющих сигналов, переходы описаны в условных блоках. Важно отметить, что не показано состояние q0 по причине того, что спроектированный автомат является автоматом одного из режимов работы. Можно считать, что для данного автомата q0 является состоянием готовности к началу работы всей установки, которое остаётся за рамками рассматриваемого алгоритма.
Алгоритм, представленный на рис. 3, цикличен, цикл является бесконечным, последовательность переходов и входные сигналы (алфавит конечного автомата) определены, начальным является состояние q1. Этот конечный автомат можно описать следующим образом (1):
. (1)
В начале описано конечное множество состояний, далее функция переходов (таблица 1), начальное состояние и множество допускающих состояний.
Таблица 1. Функция переходов конченого автомата
F\q | Состояние q1 | Состояние q2 | Состояние q3 | Состояние q4 | Состояние q5 | Состояние q6 | Состояние q7 |
y1 | q2 | — | — | — | — | — | — |
!y1 | q1 | — | — | — | — | — | — |
y2 | — | q3 | — | — | q6 | — | — |
!y2 | — | q2 | — | — | q5 | — | — |
y3 | — | — | q4 | — | — | — | — |
!y3 | — | — | q3 | — | — | — | — |
y4 | — | — | — | q5 | — | q7 | — |
!y4 | — | — | — | q4 | — | q6 | — |
y5 | — | — | — | — | — | — | q1 |
!y5 | — | — | — | — | — | — | q7 |
- Табличное представление состояний конечного автомата. Состояния в конечном автомате представляют различные этапы технологического процесса, начиная с ожидания деталей и заканчивая завершением сборки. Для моделирования состояний создается таблица, которая фиксирует информацию о каждом состоянии, включая текущий статус и временную метку последнего изменения. Для определения логики переходов между состояниями создается таблица, которая фиксирует каждый возможный переход, его условия и временные метки.
При нажатии на кнопку «Старт» начальное состояние (q1, «Ожидание деталей») активируется, и система ожидает выполнения условий для перехода. Каждый переход происходит при выполнении соответствующих условий (например, поступление обеих деталей, выдвижение манипулятора), которые фиксируются в триггерах. При выполнении перехода текущее состояние деактивируется, а следующее активируется, что отражается в атрибуте status. Для отслеживания истории переходов данные записываются в соответствующую таблицу, что позволяет анализировать выполненные действия и контролировать корректность работы системы.
Для удобства восприятия была выполнена декомпозиция таблиц на каждое состояние и переход конечного автомата (рис. 4).
Рис. 4. Физическая реляционная модель состояний и переходов конечного автомата
Структура таблиц будет рассмотрена на примере состояния q2. Все состояния обладают обязательными атрибутами временной метки (datetime) и статуса (status), который может принимать значения «Active» или «Inactive». В соответствии с алгоритмом (рис. 3), в состоянии позиционеры фиксируют детали для точного позиционирования на конвейере, после чего манипулятор выдвигается по оси OX. Таким образом, в таблице необходимо учитывать информацию о положении захватов правого и левого позиционеров (clamp_right, clamp_left), а также положение манипулятора по оси OX (axis_x). Это состояние должно быть связано как с предыдущим, так и с последующим состояниями, поэтому в таблице содержатся внешние ключи, связывающие переходы из q1 в q2 и из q2 в q3. (листинг 1).
Листинг 1. Создание таблицы для второго состояния конечного автомата
-- Второе состояние
CREATE TABLE State_Two (
id int auto_increment,
clamp_right tinyint(1),
clamp_left tinyint(1),
axis_x tinyint(1),
status enum (‘Active’, ‘Inactve’) default ‘Inactive’,
datetime timestamp,
transition_st1_st2_id int,
transition_st2_st3_id int,
primary key (id),
foreign key (transition_st1_st2_id) references transition_st1_st2(id)
on delete cascade
on update cascade
);
ALTER TABLE State_Two
add foreign key (transition_st2_st3_id) references transition_st2_st3(id)
on delete cascade on update cascade;
Для объяснения структуры таблицы переходов рассмотрим переход из состояния q2 в состояние q3 (рис. 3). Каждый переход включает обязательный атрибут временной метки (datetime). Согласно алгоритму, переход в состояние q3 возможен при подаче сигнала от датчика, подтверждающего полное выдвижение манипулятора по оси OX. В связи с этим в таблице добавляется атрибут, отражающий движение манипулятора по оси OX (moving_x) (листинг 2).
Листинг 2. Создание таблицы для перехода из второго состояния в третье
-- Переход из второго состояния в третье
CREATE TABLE Transition_st2_st3 (
id int auto_increment,
moving_x tinyint(1),
datetime timestamp,
primary key (id)
);
Логика функционирования конечного автомата реализуется с помощью триггеров, созданных в системе управления базами данных (СУБД) MySQL. Они могут автоматически реагировать на изменения в таблицах состояний и переходов, что позволяет создать автономную систему управления без необходимости дополнительного программирования на внешних языках [10]. Например, триггеры типа after update или after insert могут отслеживать изменения статусов состояний и, в зависимости от этого, выполнять соответствующие переходы. Это позволяет эффективно описать логику переходов, минимизируя вероятность ошибок и снижая нагрузку на оператора. Триггеры также помогают обеспечить целостность и согласованность данных. Переходы между состояниями могут быть настроены так, что они срабатывают только при выполнении определенных условий, что исключает возможность случайного или некорректного перехода. Таким образом, триггеры позволяют гарантировать, что система всегда находится в одном из допустимых состояний и выполняет переходы в строгом соответствии с заданной логикой.
В данном примере используется триггер типа after update, который управляет переходом из третьего состояния в четвертое. Этот триггер встроен в структуру таблицы и применяет ветвление с помощью конструкции if/else. Если третье состояние завершено успешно и датчик, контролирующий состояние схвата манипулятора, подает сигнал, атрибут status в состоянии устанавливается в значение «Active», а временная метка обновляется в соответствующей строке. В противном случае атрибут status принимает значение «Inactive». Таким образом, обеспечивается переход системы из состояния q3 в q4 (листинг 3).
Листинг 3. Создание триггера для описания логики перехода из состояния в
CREATE TRIGGER `transition_st3_st4_AFTER_UPDATE` AFTER UPDATE ON `transition_st3_st4` FOR EACH ROW BEGIN
IF (NEW.GRAB_DETECTED=1) THEN
UPDATE State_four
SET STATUS = 'Active',
DATETIME = NOW()
WHERE NEW.ID = TRANSITION_ST3_ST4_id;
ELSE
UPDATE State_four
SET STATUS = 'Inactive',
DATETIME = NOW()
WHERE NEW.ID = TRANSITION_ST3_ST4_id;
END IF;
END
Заключение. В статье рассмотрен метод применения языка SQL для моделирования конечных автоматов в контексте управления технологическими процессами. Конечные автоматы, являясь мощной математической моделью, позволяют формализовать и структурировать последовательности операций, обеспечивая надежное управление состояниями системы и переходами между ними. Использование реляционной модели данных для представления состояний и переходов между ними позволяет создать гибкую и прозрачную систему управления, способную к адаптации и масштабированию в зависимости от потребностей производства. Реализация конечного автомата с использованием SQL в СУБД обеспечивает не только структурированное хранение и обработку данных о текущих состояниях и переходах, но и интеграцию с реальными исполнительными механизмами и датчиками. SQL-команды и структуры, такие, как таблицы состояний и переходов, а также триггеры и хранимые процедуры, дают возможность моделировать сложные технологические процессы, автоматизировать их выполнение и минимизировать ошибки, вызванные человеческим фактором.
Применение триггеров в MySQL для автоматизации переходов между состояниями продемонстрировало, как можно эффективно реализовать логику переходов на уровне базы данных. Такой подход позволяет быстро реагировать на события, поступающие от датчиков и оборудования, обеспечивая непрерывность и последовательность выполнения операций. В статье рассмотрена структура триггеров для управления состояниями и переходами на примере технологического процесса сборки изделий, что иллюстрирует практическое применение теоретических основ конечных автоматов в автоматизированных системах управления. Кроме того, использование реляционной базы данных в качестве платформы для моделирования конечного автомата открывает возможности для интеграции системы управления с другими информационными и аналитическими системами [11, 12]. Данные о текущих и прошлых состояниях, переходах и ошибках могут использоваться для анализа производственных процессов, выявления узких мест и оптимизации работы оборудования [13]. Таким образом, реализация конечного автомата на SQL предоставляет не только инструменты для управления технологическим процессом, но и данные для его совершенствования.
Перспективы использования SQL для моделирования конечных автоматов включают расширение возможностей для поддержки более сложных процессов, автоматизацию обработки ошибок и создание интерфейсов для мониторинга и управления в реальном времени [14]. Применение SQL позволяет обеспечить простоту и стандартизацию системы управления, а также способствует интеграции с существующими производственными инфраструктурами. Таким образом, подход к моделированию конечных автоматов с использованием SQL является универсальным, надежным и масштабируемым решением для управления технологическими процессами. Это решение не только снижает издержки и повышает точность управления, но и позволяет адаптировать систему к новым условиям. Предлагаемый подход может стать основой для создания цифровых двойников производственных процессов [15], обеспечивая более высокий уровень контроля, эффективности и гибкости в условиях современной промышленности.
Об авторах
Владимир Анатольевич Холопов
МИРЭА – Российский технологический университет
Email: Holopov@gmail.com
ORCID iD: 0000-0003-2108-8462
SPIN-код: 6007-8117
кандидат технических наук, доцент, заведующий кафедрой промышленной информатики
Россия, пр-т Вернадского, 78, Москва, 119454Марк Михайлович Клягин
МИРЭА – Российский технологический университет
Автор, ответственный за переписку.
Email: mmklyagin@gmail.com
старший преподаватель кафедры промышленной информатики
Россия, пр-т Вернадского, 78, Москва, 119454Роман Маркович Огорельцев
МИРЭА – Российский технологический университет
Email: ogorelcev@mirea.ru
SPIN-код: 4579-5530
ассистент кафедры промышленной информатики
Россия, пр-т Вернадского, 78, Москва, 119454Список литературы
- Литвинов А.И. Конечный цифровой автомат Мили / А.И. Литвинов, С.О. Бучнев // Новые аспекты моделирования систем и процессов: Материалы Международной научно-практической конференции, Воронеж, 26 мая 2023 года / Воронежский государственный лесотехнический университет им. Г. Ф. Морозова, 2023. – С. 540-544. – EDN:MROAPH.
- Канахин В.С. Применение теории конечных автоматов при проектировании дискретных САУ цикловыми технологическим процессами в пищевой промышленности / В.С. Канахин, В.Н. Гудинов // ИТ. Наука. Креатив. Материалы I Международного форума: в 5-ти томах. Том 1. Автоматизация, мехатроника, информационные технологии, Омск, 14-16 мая 2024 года. – Москва: Общество с ограниченной ответственностью «Издательско-книготорговый центр Колос-с», 2024. – С. 191-199. – EDN:CIFYVI.
- Yan Y., Xu P., Yue J., Chen Z. Robust control: from continuous-state systems to finite state machines. IEEE Transactions on automation science and engineering, 2024, vol. 21, iss. 2, p. 2156-2163, doi: 10.1109/TASE.2024.3362975.
- Благовещенский И.Г. Анализ проблемы разработки и использования в кондитерской промышленности цифровых двойников / И.Г. Благовещенский, В.Г. Благовещенский, В.А. Холопов и др. // Роговские чтения. Секция “Автоматизация технологических процессов и производств”: cборник докладов научно-практической конференции с международным участием, Москва, 30 ноября 2023 года. – Курск: Закрытое акционерное общество “Университетская книга”, 2023. – С. 148-154. – EDN:IUAWRL.
- Носенко А.С. Место цифровых двойников в цифровизации кондитерской промышленности / А.С. Носенко, В.Г. Благовещенский, И.Г. Благовещенский и др. // Роговские чтения. Секция «Автоматизация технологических процессов и производств»: cборник докладов научно-практической конференции с международным участием, Москва, 30 ноября 2023 года. – Курск: Закрытое акционерное общество “Университетская книга”, 2023. – С. 368-374. – EDN:QHKIRK.
- Клягин М.М. Особенности проектирования баз данных производственных процессов / М.М. Клягин, И.Ю. Зайцев // Концепция устройства современного мира в эпоху цифры: сборник научных трудов по материалам Международного научного форума, Москва, 15 декабря 2023 года. – Москва: Алеф, 2023. – С. 93-102. – doi: 10.26118/1300.2023.63.84.006. – EDN:JAFRXO.
- Холопов В.А. Разработка и применение цифрового двойника машиностроительного технологического процесса / В. А. Холопов, С. В. Антонов, Е. В. Курнасов, Е. Н. Каширская // Вестник машиностроения. – 2019. – № 9. – С. 37-43. – EDN:JAJSJU.
- Холопов В.В. Информационно-управляющая система для управления технологическим процессом посредством цифрового двойника / В.А. Холопов, Е.Н. Каширская, Ф.В. Соклаков, А.Б. Сухатерин // Промышленные АСУ и контроллеры, 2020. – №8. – С. 46-50. – doi: 10.25791/asu.8.2020.1211. – EDN RNQQPK.
- Огорельцев Р.М. Моделирование автоматизированных систем: Практикум: учебное пособие / Р.М. Огорельцев. – Москва: РТУ МИРЭА, 2023. – 86 с. – URL: https://e.lanbook.com/book/331616 (дата обращения: 28.10.2024).
- Рыбанов А.А. Математическая модель динамики роста реляционной базы данных / А.А. Рыбанов, О.В. Свиридова, Филиппова Е.М. и др. // Вестник Адыгейского государственного университета. Серия 4: Естественно-математические и технические науки, 2020. – №4(271). – С. 53-59. – EDN:RZMHYF.
- Tao F., Zhang H., Liu A., et al. Digital twin in industry: state-of-the-art. IEEE Transactions of industrial informatics, 2019, vol. 15, iss. 4, p. 2405-2415, doi: 10.1109/TII.2018.2873186.
- Холопов В.А. Применение информационных технологий при решении задач мониторинга выполнения производственных процессов в концепции Индустрии 4.0 / В.А. Холопов, И.С. Гантц, С.В. Антонов // Промышленные АСУ и контроллеры, 2019. – № 4. – С. 49-58. – EDN:ZCUHZR.
- Каширская Е.Н. Построение производственных информационных систем моделирования технологических процессов на основе цифрового двойника / Е.Н. Каширская, В.А. Холопов // Сборка в машиностроении, приборостроении, 2022. – № 11. – С. 518-524. – doi: 10.36652/0202-3350-2022-23-11-518-524. – EDN:EDHOVG.
- Антонов С.В. Функциональное моделирование системы мониторинга технологических процессов на основе концепции цифрового двойника / С.В. Антонов // Автоматизация. Современные технологии, 2023. – Т. 77. – № 8. – С. 345-351. – doi: 10.36652/0869-4931-2023-77-8-345-351. – EDN:WUQHVY.
- Rayhana R., Bai L., Xiao G., et al. Digital twin models: functions, challenges and industry applications. IEEE, 2024, vol. 8, p. 282-321, doi: 10.1109/JRFID.2024.3387996.
Дополнительные файлы
