---
id: information_support
title: Информационное обеспечение
---

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

Эти процессы, интерфейсы, программные и аппаратные компоненты их осуществляющие, а также порядок их взаимодействия, состав и форматы конкретных информационных объектов и рассматриваются в данном документе. Логично разрабатывать и описывать компоненты АПС (автоматических производственных систем) сразу же исходя из удобства восприятия этой информации самой АПС. Для этого нам надо сначала несколько погрузиться в то, как вообще должна обрабатываться информация в АПС.

**Вводные соображения**

Автоматическую производственную систему (АПС) можно рассматривать как своеобразного робота. Классическим роботам присуще целенаправленное поведение, обычно выражаемое через планирование траектории движения и стремление ее придерживаться с учетом динамично меняющейся обстановки. Робот прилагает усилия чтобы не сорваться с траектории, либо перестраивает траекторию если внешние обстоятельства вынуждают к этому. Все это происходит много раз в секунду порождая адаптивное гибкое поведение с высокой надежностью приводящее к выполнению поставленной задачи.

Рассматривая задачу в достаточно общем виде мы можем иметь в виду и такие АПС, которые работают с объектами не только в своей рабочей зоне, но и во внешней динамичной среде (или рассматривают ее как часть своей рабочей зоны). В этом случае, в контуры обратной связи одни объекты окружающей среды оказываются включенными, другие — взаимодействуют с ними.  Например, АПС может включать в себя мобильные роботы для сбора полезных ископаемых и какие-нибудь маяки или охранные системы, расставляемые на местности. А местные жители могут их систематически разрушать. В этом случае, АПС, запрограммированная поддерживать заданное количество и положение этих объектов, будет должна мониторить их состояние и при выходе из строя автоматически производить новые. Так поддержание фрагмента окружающего мира в определенном состоянии (за счет приведения  в неопределенное состояние других, менее интересующих нас фрагментов) оказывается включенным в контур обратной связи. То же относится и к работе внутри АПС, в условно защищенной среде (те или иные неблагоприятные факторы есть везде).

Таким образом, АПС присуще целенаправленное производственное поведение. Она планирует технологическую карту действий, нужных для выполнения производственного задания. Эта карта с учетом имеющихся мощностей, их возможностей и производительности превращается в план работ. АПС постоянно корректирует план по мере его выполнения с учетом происходящих событий (испортили заготовку, вышел из строя манипулятор, и т.п.). Без такой корректировки, происходящей постоянно (и технической возможности ее осуществления), шансов на автоматическое выполнение сколь-нибудь сложного производственного задания практически нет. 

Важным отличием АПС от классического робота является наличие у нее задач, широко распределенных во времени и пространстве и притом часто меняющихся. Под эти изменения тоже необходимо адаптировать производственный план. Особенно это касается многопользовательских АПС где важную роль приобретает деятельность по выявлению и разрешению конфликтов интересов пользователей. 

Пользователь может описать желаемое целевое поведение АПС одним из нескольких способов (или их комбинацией): 

- **Структурным** «Хочу один светодиодный фонарик мощностью 10 Вт» - это самый конкретный способ, сводится к изготовлению конкретного объекта из каталога, прямо указанного пользователем. При этом четко определено что именно мы хотим получить, но строго говоря. не регламентировано где, когда и как будет оно делаться. Оно может быть взято со склада или выменяно у соседней АПС или тут же изготовлено — не важно, пользователю в данном случае важен объект. Идеальный результат обработки этого запроса: изделие 100% идентично замыслу (оригиналу).
- **Функциональным**  «Нужно что-нибудь, отпугивающее крупных хищников» - здесь система имеет возможность выбора из каталога устройства, реализующего эту функцию. Может быть найдется что-то уже готовое. Здесь у системы есть возможность предложить в ответ на запрос пользователя то, что хорошо впишется в ее производственный план, обеспечено ресурсами, менее конфликтует с запросами других пользователей.  Идеальный результат обработки этого запроса: функция выполняется сама, без новых предметов.
- **Пространственно-временным** «Выровняй вот эту площадку сегодня к 15 часам» - здесь система имеет возможность выбора и подходящей функции и реализующего его устройства из каталога. Это может быть достигнуто имеющимися устройствами или произведенным под данную задачу. После чего эти устройства могут храниться или же утилизироваться. Они не передаются пользователю. Идеальный результат обработки этого запроса: состояние точно определенных участков пространства в точные интервалы времени 100% идентично замыслу. Есть и другие характеристики. Например, АПС получила задание поддерживать в порядке Великую китайскую стену, которая то и дело обваливается в разных местах, получает повреждения от каких-нибудь варваров, диверсий и природных катастроф и т.п. Тогда можно оценивать ее работу в таких категориях, как время между повреждением участка и его заменой (ремонтом), возможность параллельной замены большого числа участков, возможность прогнозирования и упреждающей реакции на повреждения, возможность автоматического интеллектуального принятия проактивных мер к предотвращению повреждений и т. п. 

При каждом из этих способов задания, как только построен маршрут выполнения запроса, можно в реальном времени информировать пользователя о степени его готовности, ожидаемом времени выполнения и прогнозируемой вероятности этого.  

Вспомнив универсальные автоматические системы из фольклора, обратим внимание, что, например, скатерть-самобранка работала по функциональным запросам (произвести что-нибудь съедобное), а волшебные палочки — по пространственно-временным (ими удобно указывать в определенное место в определенное время). Универсальные исполнители структурных запросов характерны скорее для научной фантастики индустриальной эпохи. Сверхмощные интеллектуальные АПС вроде Золотой рыбки, Хоттабыча или Емелиной щуки справлялись с запросами любого типа. 

Конфликты интересов пользователей могут возникать вне зависимости от их отношений между собой, они могут возникать даже между различными процессами одного и того же пользователя. Например, по поводу использования дефицитного (или даже уникального) сырья или инструмента, по поводу приоритета заданий, выполнения несовместимых операций и т.п. Можно ожидать в многопользовательской АПС многих тысяч конфликтов одновременно. Специальный программный компонент может пытаться разрешать конфликты  видоизменяя один или оба противоречащих элемента плана (здесь многое можно прописать по аналогии с ТРИЗ). 

Например, для изготовления стола запланировано четыре операции по изготовлению ножки из прутка. А прутка на складе всего три. Тогда начинается поиск альтернативных технологий - дробление (сделать из бОльшей заготовки меньшую), объединение (собрать из маленьких волокон или дисков), разнесение во времени (что-то раньше, что-то подождет), в пространстве (одна ножка делается на другой фабрике) и т.п. Но, конечно, даже очень совершенный решатель не сможет решить все конфликты и их все равно останется очень много. Тогда проявляется различие между конфликтами процессов одного пользователя и между разными пользователями.

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

Конфликт процессов разных пользователей может быть решен путем установления привилегий пользователей, путем переговоров между ними или любым другим известным из экономической и юридической истории способом. Избегать конфликтов этого рода можно путем назначения пользователям квот заведомо меньших общей мощности АПС - подобно тому как выделяется место на хостингах, но это уменьшит эффективность использования АПС. Эту проблему в свою очередь может решить стек процессов-заполнителей, которыми заполняются недогруженные мощности. Это может быть, например, самовоспроизводство, крупный долгосрочный проект (вроде коллайдера) или особенно ликвидный в настоящее время товар.

**Декомпозиция контура обратной связи на уровни управления**

Таким образом, программное обеспечение АПС должно работать как контур обратной связи. При этом можно выделить ряд вложенных контуров, работающих с объектами разного уровня абстракции и в разном темпе:

- **Контур управления текущим состоянием.** Это самый быстродействующий контур, физически представленный драйверами сенсоров и актюаторов, непосредственно взаимодействующих с физическим миром. Он занят поддержанием заданных положений, скоростей, токов,температур, давлений и проч. на основе обратной связи. Цикл выполнения алгоритмов этого контура может занимать порядка 1 милисекунды.
- **Контур управления на уровне кадров.** Это более медленный контур, обеспечивающий синхронное выполнение команды элементами ячейки АПС, например нескольких манипуляторов. Он задает графики изменения во времени параметров для подчиненных контуров. Время выполнения алгоритмов этого контура может исчисляться условно секундами. 
- **Контур управления в 4D.** Самый медленный и вычислительно емкий контур, отвечающий за пространственно-временное планирование (время как 4-я координата). Он генерирует последовательности кадров для подчиненных контуров. Здесь происходит построение графов технологических операций, разрешение конфликтов. Время выполнения его алгоритмов может исчисляться минутами, а то и часами. Время на планирование производства минимально при использовании универсальных технологий (выращивание) и может быть большим при длинных цепочках специализированных операций.
- **Контур управления взаимодействием с пользователями** может быть довольно быстрым, так как он привязан не к физическим процессам, а к процессам восприятия и ввода человеком информации. Он задает правила по которым контур управления в 4D создает последовательности кадров.

Эти контуры можно представить функциональными аппаратными и программными компонентами, которые воплощаются определенными структурными модулями.

- **Драйверы** (управление текущим состоянием). Это небольшие коробочки с микроконтроллерами и силовыми ключами. К ним подключены все сенсоры и актюаторы элементов АПС. Например, робот-манипулятор может иметь по отдельному драйверу на каждый привод. 
- **Контроллеры**(управление на уровне кадров). Это коробочки с быстродействующими микроконтроллерами. Контроллер управляет группой драйверов от которых требуется взаимодействие. Например, манипулятор или производственная ячейка с несколькими манипуляторами могут иметь общий контроллер.
- **Планировщики** (управление в 4D). Это ящички с компьютерами (и жесткими дисками). Планировщик управляет большим количеством ячеек АПС. У небольшой АПС может быть всего один планировщик. Большие АПС для уменьшения вычислительной сложности уместно разбивать на кластеры с отдельными планировщиками (объединенными в информационную сеть и способными к кооперации при необходимости). Разбиение на кластеры может проходить так чтобы минимизировать транспортные потоки между ними. Для этого каждый кластер может    стремиться к автономности, к «умению всего». Однако в силу неоднородного распределения ископаемых, источников энергии и т.п. межкластерный обмен ресурсами неизбежен. Планирование состава и положения самих кластеров АПС и порядка их развертывания может осуществляться все в тех же планировщиках. Эти же планировщики  хранят у себя полный комплект конструкторской и технологической документации на всё (это как бы ДНК АПС) для быстрого к нему доступа, для автономной репликации и на случай выхода некоторых из них из строя. Обычно АПС стремится к тому чтобы иметь несколько планировщиков и управляемых ими кластеров. При выходе из строя одного планировщика управление подведомственными ему контроллерами передается другим планировщикам. При производстве нового планировщика наоборот, ему выделяется «удел» из хозяйства других планировщиков. 
- **Терминалы** (управление взаимодействием с пользователями) - в их роли могут выступать любые компьютеры или телефоны через специальное приложение или веб-интерфейс.

![Уровни управления АПС](Images/archi1.png)

На диаграммах видно, что АПС взаимодействует с двумя частями материального мира, приводя одну из них в соответствие другой. Это своего рода экзоскелет для творческой мысли, облекающий мечты пользователей в материю (в идеале - в реальном времени).
	
Если говорить о моделировании и прототипировании отдельного кластера минималистичной АПС, то терминалы и планировшик могут быть реализованы на базе обычных компьютеров. Контроллеры и драйверы, как довольно известные и предсказуемые устройства могут быть довольно просто симулированы. Для симуляции многообразия технологических процессов можно использовать следующий подход. В памяти планировщика должна быть база возможных процессов с указанием входов и выходов.

Например, токарная обработка может сделать из цилиндра втулку. Пока нам не так важны детали всех операций, как важно то, что любая из них получается всегда с определенной вероятностью. То есть, заготовка может превратиться в брак, а инструмент - выйти из строя. так вот симуляция технологических процессов может заключаться в том, что они с некоторыми вероятностями заканчиваются браком, а каждый элемент самой АПС (включая планировщики, терминалы и т.п.) с некоторой вероятностью в единицу времени выходит из строя. 
	
АПС должна уметь с этим справляться - удалять и утилизировать брак и сломанное оборудование, восполнять утраченное и устанавливать на место. Тогда можно симулировать ее работу и получить количественные оценки той надежности комплектующих и процессов которая необходима для ее стабильной работы. 	Таким образом при наличии полноценного ПО планировщика и терминала можно симулировать и визуализировать работу АПС в отсутствие ее физической реализации. 

Для этого, тем не менее, планировщик должен располагать описаниями и моделями всех объектов с которыми может иметь дело АПС и всех процессов в ходе которых эти объекты преобразуются.

**Объекты, процессы и зоны**

Каждый объект как-то попадает в АПС и как-то ее покидает. Каждый объект в определенный момент выступает в качестве изделия (то, где желательны изменения) или инструмента (лучше ему в этом процессе вообще не меняться). Некоторые объекты используются в качестве инструмента редко (какой-нибудь сложный припой для спец. сплавов), некоторые - постоянно (контроллеры, манипуляторы). То что вчера было изделием сегодня может быть инструментом, и наоборот. 

Технологический процесс - это превращение одной группы объектов в другую путем применения к нему одного или нескольких инструментов одновременно. Кроме материальных инструментов определяющих абстрактный процесс (напр. фрезеровка) используется и программа обработки, делающая техпроцесс конкретным (фрезеровка шестеренки такой-то). При одних процессах количество объектов не меняется (окраска, гибка), при других - меняется (нарезка, сборка). Технологический процесс тоже появляется в системе определенным образом (заносится в базу), и, при определенных условиях, удаляется. Чем больше в системе абстрактных техпроцессов тем она гибче и функциональнее. На практике это значит что конструктор изделия может прописать для него больше альтернативных техпроцессов и планировщику будет легче составить хороший план изготовления изделия.

Техпроцессы происходят в определенных местах, объекты тоже находятся в определенных местах. Можно представить себе АПС где все без исключения объекты находятся в местах где над ними проводятся техпроцессы, но на практике, их, скорее всего, придется перемещать, хранить, а значит, нужно свободное место во избежание столпотворения.  Можно разделить пространство на три зоны:

- **Рабочая** - где техпроцессы меняют объекты
- **Складская** - где объекты просто хранятся
- **Транспортная** - где объекты могут быть перемещены между складскими и рабочими зонами, а также выданы вовне или приняты извне

Транспортная зона, таким образом, может простираться далеко за пределы рабочей и складской зоны АПС. Рабочая зона может состоять из одной или нескольких ячеек, а складская может быть огромной, на тысячи объектов. Рабочая зона может быть оснащена зажимными и прочими устройствами для облегчения работы. 
	
В принципе, транспортные и рабочие операции могут осуществляться одинаковыми или одними и теми же подвижными манипуляторами (есть еще вариант с неподвижными манипуляторами и подвижным складом, но большой подвижный склад трудно реплицировать, а подвижность относительно друг друга манипуляторам все равно нужна). Если нужно жесткое и точное позиционирование при обработке, его может обеспечивать как конструкция подвижного манипулятора, так и специальные стационарные манипуляторы (тиски, патроны).

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