Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Методы программирования
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
Mitya78
Дано: имеется, например, вакуумная установка под управлением S7-1200


Можно бы и программировать контроллер самым простым способом - клапан открылся - переходим к следующему шагу...

Но вот только какие-то агрегаты требуют прогрева и остывания, после пропажи питания не со всех стадий можно продолжить процесс, любое добавление клапана или насоса выливается в непредсказуемое ветвление условий.

А как можно иначе программировать такие объекты, описывать все элементы как объекты со своими входными и выходными условиями?

Буду благодарен за любые идеи, за советы куда посмотреть и что почитать.
Aard
Можно попробовать Автоматное программирование.
https://ru.wikipedia.org/wiki/Автоматное_программирование

Все "непредсказуемые ветвления" будут только на бумаге, в коде - довольно изящно и читаемо будет.

Если каждый компонент имеет сложную собственную логику, то можно:
1) под каждый класс объектов создать структуру, которая хранит все необходимые состояния и настройки конкретного экземпляра объекта;
2) под каждый класс объектов создать функциональный блок (ФБ), внутри которого прописать логику
3) сопоставить структуру и функциональный блок каждого экземпляра.

А состоянием ФБ, т.е. состоянием объекта, уже управлять из-вне, по по алгоритму работы всей установки
OlegM
Запишитесь на курсы к Игорю Альтерману. Автоматное программирование его конёк.
kosmos440o
Сначала нужно изучить общие требования к АСУ согласно ГОСТ 24.104-85.
Изучить требования к техническому заданию на АСУ согласно ГОСТ 34.602-89.
Изучить требования к ТЗ на ПО согласно ГОСТ 19.201-78.
Взять задание на технологическую часть у технолога.
Согласно вышеописанным документам составить техзадание и согласовать его с заказчиком.
Изучить методы управления согласно теории автоматического управления.
Разбить систему на подсистемы, контура управления.
Определить входные и выходные переменные.
Определить главные, подчинённые и независимые контура и способы контроля и управления ими, алгоритмы работы.
Предусмотреть риски возникновения техногенных аварий, катастроф и способы их недопущения.
Разработать интуитивно-понятный человеко-машинный интерфейс.
Обеспечить контроль основных сигналов работоспособности и аварийных режимов.
После этого можно перевести в код вышеописанное.
Впоследствии сделать подробное описание системы и инструкцию по эксплуатации.

Всё иное - обычно неработающая блевотина, которую при следующей итерации заменят на что-то более соответствующее, а автор попадёт в ад, зачастую ещё при этой жизни и в ближайшее время.

Что касается автоматного программирования, то знать его конечно надо, но лучше изучать что-то более классическое, где и в карты Карно играть научат, и про минимизацию булевых функций расскажут. Но я лично в написанных мною десятках разных типов программ применял чистый автомат пару раз , один для большой релейной логики в АВР и второй раз для написания автономного клиента/сервера модбас. То есть там, где много входных и выходных переменных в одном контуре и много состояний объекта. И это обычно к технологиям не относится, там всё либо включено, либо выключено. Контур включается управлением человека либо от других контуров. Выключается человеком либо аварией, либо от других блоков. Главное определить подходящий способ управления - либо это П, либо ПИ, ПИД, дискретный регулятор. С обратной связью или без. Иногда требуется каскадное регулирование. Иначе в динамике может болтать выходной параметр.

Рекомендую ТС писать программу сначала на бумаге, а потом переводить в код в проге. Так будет быстрее. И, очень хорош для начала FBD, там всё визуально видно.

Ну и схему электрическую принципиальную шкафа управления надо сначала сделать.
Mitya78
Цитата(kosmos440o @ 3.12.2017, 11:40) *
Сначала нужно изучить общие требования к АСУ согласно ГОСТ 24.104-85.
...

Рекомендую ТС писать программу сначала на бумаге, а потом переводить в код в проге. Так будет быстрее. И, очень хорош для начала FBD, там всё визуально видно.

Ну и схему электрическую принципиальную шкафа управления надо сначала сделать.


Простите, но это как-то ... ниочём.

Если вы не поняли сути вопроса, то извините.
kosmos440o
Цитата(Mitya78 @ 1.12.2017, 13:06) *
Но вот только какие-то агрегаты требуют прогрева и остывания, после пропажи питания не со всех стадий можно продолжить процесс, любое добавление клапана или насоса выливается в непредсказуемое ветвление условий.

А как можно иначе программировать такие объекты, описывать все элементы как объекты со своими входными и выходными условиями?

Буду благодарен за любые идеи, за советы куда посмотреть и что почитать.

Ну, как мне показалось, Ваша интуиция Вам правильно подсказывает, что программирование на основе постепенно усложняемого хелловорлда не совсем правильный метод в этом случае. Это признак, что у Вас есть задатки. Поэтому я рассказал о системе, которая работает, и которой по идее рекомендовано пользоваться нормативными актами и ведущими специалистами в стране. Не верите, можете ознакомиться с ГОСТ 19.102-77. "Единая система программной документации. Стадии разработки".
Я дал Вам по вашей просьбе идеи, а также советы, куда посмотреть и что почитать. И даже дал структуру программы.
Ну наверно надо ещё что-то почитать про вакуумные установки.
Образец инструкции с пояснениями (Инструкция на контролер отопления и ГВС HC1) можете посмотреть у меня на сайте в разделе "документация":
https://elstars.nethouse.ru/documents
Люди берут по два.
Удачи.
Andrew_2610
Цитата(Mitya78 @ 5.12.2017, 10:26) *
Простите, но это как-то ... ниочём.

Если вы не поняли сути вопроса, то извините.


Вы просто хотите быстро получить решение. Не ответ, а именно решение. Но так не бывает.Вы 1978 года рождения - так ведь. И верите в деда мороза.
OlegM
Цитата(kosmos440o @ 5.12.2017, 17:45) *
Образец инструкции с пояснениями (Инструкция на контролер отопления и ГВС HC1) можете посмотреть у меня на сайте в разделе "документация":

Особенно впечатлил на вашем сайте раздел "Контактная информация". biggrin.gif
kosmos440o
Цитата(OlegM @ 8.12.2017, 21:13) *
Особенно впечатлил на вашем сайте раздел "Контактная информация". biggrin.gif

Ну. там вверху есть кнопка "Напишите нам". Просто пока мои инвесторо-партнёры не сильно инвестируют в производство (в результате на складе всего по 30-50 шт устройств, и то быстро разбирают до следующего заказа), и я подумываю, не послать ли их в далёкое, но эротичное путешествие.
Andrew_2610
Цитата(OlegM @ 8.12.2017, 20:13) *
Особенно впечатлил на вашем сайте раздел "Контактная информация". biggrin.gif

Не судите о фирме по офису. Хотя корреляция есть всегда.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.