====== raduga ======
Модуль управления процессом многокомпонентного дозирования. Данный модуль требует включения в задачу.
Позволяет управлять линиями дозирования двух типов:
* простая (классическая) линия - состоит из одной группы дозаторов
* комбинированная (увельская) линия - состоит из двух групп дозаторов и промежуточного контрольного дозатора
===== Поддерживаемые модули дозаторов =====
[[doc:jroboplc:modules:peripherial:promauto_gelios_dozman]]
===== Конфигурация =====
plugin.raduga:
module.rdsvr:
database: db
emulate: off
deleteOtherStuff: on
lines:
- name: LPS
num: 1
type: simple
descr: Линия предсмеси
hidden: off
dosers:
- name: "doser 11"
module: d11
srcBunkers:
- "b111"
- name: "doser 12"
module: d12
srcBunkers:
- "b121"
- "b122"
- name: "doser 13"
module: d13
srcBunkers:
- "b131"
- "b132"
- "b133"
- name: "doser 14"
module: d14
srcBunkers:
- "b141"
- "b142"
- "b143"
- "b144"
dstBunkers:
- "b101"
- "b102"
params:
- name: spf4
descr: СПФ4 в предкондиционер
tagname: FAT%l:%p.SetFlow
valtype: double
- name: L1A
num: 2
type: combo
descr: Линия 1А
ctlDoserModule: d2c
dosers:
- name: "doser 21"
module: d21
srcBunkers:
- "b211"
- name: "doser 22"
module: d22
srcBunkers:
- "b221"
- "b222"
microDosers:
- name: "doser 23"
module: d23
srcBunkers:
- "b231"
- "b232"
- "b233"
- name: "doser 24"
module: d24
srcBunkers:
- "b241"
- "b242"
- "b243"
- "b244"
dstBunkers:
- "b201"
- "b202"
- "b203"
- "b204"
===== Параметры =====
^ Параметр ^ Умолчание ^ Описание ^
|**database**| ''db'' |Модуль базы данных ([[doc:jroboplc:modules:database]]) |
|**emulate**| ''off'' |Режим эмуляции - свободная запись в теги без использования базы данных |
|**deleteOtherStuff**| ''on'' |Удаление записей, не относящихся к данному модулю (исключительное использование базы данных одним модулем) |
|**lines**| ''-'' |Список линий |
|**params**| ''-'' |Список параметров |
^ lines ^^^
|**type**| ''simple'' |Тип линии:
simple - простая линия (одна группа дозаторов)
combo - комбинированная линия (две группы дозаторов и промежуточный контрольный дозатор)
|
^ Для всех типов линий ^^^
|**num**| ''-'' |Номер линии. Используется только для формирования имен тегов |
|**name**| ''-'' |Уникальное имя линии |
|**descr**| ''-'' |Описание линии (произвольный текст) |
|**hidden**| ''off'' |Линия не будет видна в менеджере рецептов |
|**autostart**| ''off'' |Автоматический старт циклов дозирования |
|**duplicate**| ''-'' |Имя линии, для которой данная линия будет дублером |
|**dosers**| ''-'' |Список дозаторов |
|**dstBunkers**| ''-'' |Список имен бункеров готовой продукции |
^ Только для комбинированной линии (type=combo) ^^^
|**ctlDoserModule**| ''-'' |Имя модуля дозатора контроля |
|**microDosers**| ''-'' |Список микродозаторов (аналогичен списку дозаторов ''dosers'') |
^ dosers, microDosers ^^^
|**name**| ''-'' |Имя (уникальное) модуля дозатора |
|**module**| ''-'' |Имя модуля дозатора |
|**srcBunkers**| ''-'' |Список имен бункеров сырья |
^ params ^^^
|**name**| ''-'' |Имя (уникальное) параметра |
|**descr**| ''-'' |Описание параметра (произвольный текст) |
|**tagname**| ''-'' |Имя внешнего тега, в формате: module:tagname
Допускается использование подстановок:
%l - имя линии
%p - имя параметра
|
|**valtype**| ''-'' |Тип значения параметра: ''bool, int, long, double, string'' |
===== Теги =====
^ Имя тега ^ Тип данных ^ Доступ ^ Описание ^
|''connected '' | ''BOOL '' | '''' |Состояние подключения к базе данных |
| Линия (line) любого типа ||||
|''L1_Cancel '' | ''BOOL '' | ''RW'' |Отмена задачи (для оператора) - линия забудет установленную задачу, если дозирование еще не началось, либо после завершения цикла |
|''L1_CycleId '' | ''INT '' | '''' |Идентификатор цикла дозирования. Генерируется автоматически при начале цикла дозирования |
|''L1_Descr '' | ''STRING '' | '''' |Описание линии, задается в yml |
|''L1_Disable '' | ''BOOL '' | ''RW'' |Запрет выполнения загрузки/разгрузки дозаторов (для оператора) |
|''L1_EnableLoad '' | ''BOOL '' | ''RW'' |Разрешение загрузки дозаторов (для логики) |
|''L1_EnableUnload '' | ''BOOL '' | ''RW'' |Разрешение разгрузки дозаторов (для логики) |
|''L1_Error '' | ''STRING '' | '''' |Текст текущей ошибки |
|''L1_ExeWeight '' | ''LONG '' | '''' |Выполненный вес цикла по всем дозаторам линии |
|''L1_ExeWeightTot '' | ''LONG '' | '''' |Суммарный выполненный вес задачи (всех циклов) |
|''L1_Name '' | ''STRING '' | '''' |Имя линии, задается в yml |
|''L1_ProgressTot '' | ''INT '' | '''' |Процент выполнения задачи, рассчитываемый по ''ExeWeightTot'' и ''SetWeightTot'' |
|''L1_RcpWeight '' | ''LONG '' | '''' |Заданный вес цикла по рецепту |
|''L1_RecipeId '' | ''INT '' | '''' |Идентификатор рецепта |
|''L1_RecipeName '' | ''STRING '' | '''' |Название рецепта |
|''L1_Reset '' | ''BOOL '' | ''RW'' |Сброс задачи (для мастера) - линия мнгновенно забудет установленную задачу, даже если дозирование уже началось |
|''L1_SetWeight '' | ''LONG '' | ''RW'' |Заданный установочный вес цикла. Запись в тег возможно только при состоянии линии IDLE |
|''L1_SetWeightTot '' | ''LONG '' | ''RW'' |Заданный установочный вес задачи (для оператора) |
|''L1_Start '' | ''BOOL '' | ''RW'' |Старт цикла. После выполнения старта сбрасывается в ''off'' |
|''L1_State '' | ''INT '' | '''' |Состояние линии (см. ниже) |
|''L1_StateMsg '' | ''STRING '' | '''' |Текст состояния линии |
|''L1_TaskId '' | ''INT '' | ''RW'' |Идентификатор установленной задачи. Запись в тег возможно только при состоянии линии NONE |
| Дозатор (doser) ||||
|''L1_D1_Connected '' | ''BOOL '' | '''' |Состояния подключения к модулю дозатора |
|''L1_D1_CurProductName '' | ''STRING '' | '''' |Имя текущего дозируемого продукта |
|''L1_D1_CurWeight '' | ''LONG '' | '''' |Текущий набранный вес дозатора |
|''L1_D1_Error '' | ''STRING '' | '''' |Текст ошибки подключения к модулю дозатора |
|''L1_D1_ExeWeight '' | ''LONG '' | '''' |Выполненный вес цикла по всем питателям дозатора |
|''L1_D1_Name '' | ''STRING '' | '''' |Имя дозатора, задается в yml |
|''L1_D1_PassCnt '' | ''INT '' | '''' |Счетчик выполнения проходов |
|''L1_D1_PassQty '' | ''INT '' | '''' |Количество проходов, необходимое для выполнения заданного веса цикла |
|''L1_D1_RcpWeight '' | ''LONG '' | '''' |Заданный вес по рецепту по всем питателям дозатора |
|''L1_D1_SetWeight '' | ''LONG '' | '''' |Заданный вес по установочный всем питателям дозатора |
| Питатель (feeder) ||||
|''L1_D1_F1_ExeWeight '' | ''LONG '' | '''' |Выполненный вес цикла |
|''L1_D1_F1_ProductId '' | ''INT '' | '''' |Идентификатор установленного продукта по рецепту |
|''L1_D1_F1_ProductName '' | ''STRING '' | '''' |Имя продукта |
|''L1_D1_F1_RcpWeight '' | ''LONG '' | '''' |Заданный вес цикла по рецепту |
|''L1_D1_F1_SetWeight '' | ''LONG '' | '''' |Заданный вес цикла установочный |
|''L1_D1_F1_SetWeightPass '' | ''LONG '' | '''' |Заданный вес прохода |
|''L1_D1_F1_SumWeight '' | ''LONG '' | '''' |Текущие показания счетчика веса дозатора |
|''L1_D1_F1_SumWeightBeg '' | ''LONG '' | '''' |Зафиксированные показания счетчика веса дозатора на начало цикла |
| Параметры (feeder) ||||
|''L1_Prm_ '' | ''-'' | '''' |Значение параметра, которое записывается в связанный с параметром тег |
| Только для комбинированной линии (type=combo) ||||
|''L1_CmdSeqBeforeLoadC '' | ''BOOL '' | '''' |Выход для логики управления оборудованием загрузки в дозатор контроля |
|''L1_CmdSeqBeforeLoadMixer'' | ''BOOL '' | '''' |Выход для логики управления оборудованием загрузки миксера (разгрузки дозаторов контроля и микрокомпонентов) |
|''L1_CmdSeqStartMixing '' | ''BOOL '' | '''' |Выход для логики управления старта цикла смешивания |
|''L1_EnableLoadM '' | ''BOOL '' | ''RW'' |Разрешение загрузки основных дозаторов (для логики) |
|''L1_EnableLoadP '' | ''BOOL '' | ''RW'' |Разрешение разгрузки основных дозаторов (для логики) |
|''L1_EnableUnloadM '' | ''BOOL '' | ''RW'' |Разрешение загрузки микродозаторов (для логики) |
|''L1_EnableUnloadP '' | ''BOOL '' | ''RW'' |Разрешение разгрузки микродозаторов (для логики) |
|''L1_ExeWeightC '' | ''LONG '' | '''' |Зафиксированный набранный вес дозатора контроля |
|''L1_ExeWeightM '' | ''LONG '' | '''' |Выполненный вес по микродозаторам |
|''L1_ExeWeightP '' | ''LONG '' | '''' |Выполненный вес по основным дозаторам |
|''L1_HoldDosers '' | ''INT '' | '''' |Флаг владения основными дозаторами |
|''L1_HoldTransport '' | ''INT '' | '''' |Флаг владения траспортом разгрузки основных дозаторов |
|''L1_InpCrusherEmpty '' | ''BOOL '' | ''RW'' |Вход для логики, сигнализирующий об опустошении дробилки |
|''L1_InpMixerBusy '' | ''BOOL '' | ''RW'' |Вход для логики, сигнализирующий о неготовности миксера к загрузке |
|''L1_InpSeqBeforeLoadC '' | ''BOOL '' | ''RW'' |Вход для логики, сигнализирующий о полном включении оборудования загрузки в дозатор контроля |
|''L1_InpSeqBeforeLoadMixer'' | ''BOOL '' | ''RW'' |Вход для логики, сигнализирующий о полном включении оборудования загрузки в миксера |
|''L1_RcpWeightM '' | ''LONG '' | '''' |Заданный вес цикла по рецепту по микродозаторам |
|''L1_RcpWeightP '' | ''LONG '' | '''' |Заданный вес цикла по рецепту по основным дозаторам |
|''L1_SetWeightM '' | ''LONG '' | '''' |Заданный вес цикла установочный по микродозаторам |
|''L1_SetWeightP '' | ''LONG '' | '''' |Заданный вес цикла установочный по основным дозаторам |
|''L1_TimeAfterUnloadCM '' | ''INT S'' | ''RW'' |Время задержки после выполнения разгрузки дозаторов контроля и микрокомпонентов |
|''L1_TimeCnt '' | ''INT '' | '''' |Обратный счетчик времени |
|''L1_TimeTransportP '' | ''INT S'' | ''RW'' |Время задержки после выполнения разгрузки основных дозаторов |
|''L1_UnderweightLimitC '' | ''LONG S'' | ''RW'' |Допустимое недобор выполненного веса основных дозаторов и дозатора контроля |
|''L1_DC_Connected '' | ''BOOL '' | '''' |Состояние подключения дозатора контроля |
|''L1_DC_CurWeight '' | ''LONG '' | '''' |Текущий вес дозатора контроля |
|''L1_DC_Error '' | ''STRING '' | '''' |Текст ошибки подключения дозатора контроля |
|''L1_DC_Stable '' | ''BOOL '' | '''' |Флаг стабилизации текущего веса дозатора контроля |
Количество тегов линий (L*), дозаторов (L*_D*) и питателей (L*_D*_F*) зависит от конфигурации в yml-файле, нумерация от 1.
Временные задержки указываются в циклах выполнения jrobo-задачи, не в секундах.
===== База данных =====
[[doc:jroboplc:modules:raduga_db|sql]], [[doc:jroboplc:modules:raduga_dbscr|dbscr]]
База данных создается автоматически. Конфигурация (линии, дозаторам, питатели, бункеры, параметры) автоматически добавляются в соответствующие таблицы. Если включен параметр ''deleteOtherStuff'', то удаляется всё, не относящееся к текущей конфигурации.
Удаление записей происходит установкой поля ''DELETED=1'' и в дальнейшем на стороне клиента данные записи отфильтровываются.
===== Установка задачи =====
Для установка задачи необходимо записать в тег ''TaskId'' значение ''RD_TASK.ID'' существующей задачи, при этом линия должна находится в состоянии ''NONE''. После записи в ''TaskId'' появляется установленное значение.
Если задача установлена успешно, то ''State'' принимает одно из соответствующий последующих значений.
Если при установке задачи возникла ошибка, то ''State'' принимает значение ''ERROR'', а в теге ''Error'' текст сообщения об ошибке.
Из состояния ошибки линию можно вывести только установкой 1 в теги ''Cancel'' или ''Reset'' (см. [[doc:jroboplc:modules:raduga#отмена_и_сброс_задачи|следующий раздел]]).
===== Отмена и сброс задачи =====
Отменить установленную задачу записью 1 в тег ''Cancel'' можно, только если линия не начала дозирование (загрузку дозаторов), иначе отмена произойдет только после полного завершения цикла дозирования. После выполнения отмены значение тега ''Cancel'' сбрасывается в 0. Возможность отмены задачи тегом ''Cancel'' предоставляется оператору и является нормальным способом смены задач в линии.
Тег ''Reset'' делает тоже, что и ''Cancel'', но действует без промедления, вне зависимости от текущего состояния линии. Использование тега ''Reset'' предназначено только в аварийных ситуациях, когда завершить цикл уже нет возможности.
===== Параметры линии =====
Помимо дозируемых компонентов рецепт может содержать набор параметров с заданными значениями, которые при установке задачи должны будут прописаться в реальные внешние теги, например, задание потока жидких компонент. Количество параметров может быть любым, от 0 и более.
Если устанавливаемый в линию рецепт имеет параметры, то данная линия обязана иметь все эти же параметры, иначе установка задачи будет завершена с ошибкой. Если же ситуация обратная - линия поддерживает больше параметров, чем прописано в рецепте, то ошибки не будет.
===== Изменение заданного веса цикла =====
По умолчанию после установки задачи заданный вес цикла (т.е. вес одного замеса, дозы) принимается тот, который указан в рецепте (''RcpWeight''). Однако этот вес может изменен в большую или меньшую стороны, но при условии, что цикл дозирования еще не начат и линия находится в состоянии ''IDLE''. Для этого новое значение веса цикла записывается в тег ''SetWeight'', после чего одноименные теги дозаторов и питателей также пропорционально менют свое значение.
Если линия не находится в состоянии ''IDLE'', то изменение ''SetWeight'' не окажет никакого эффекта.
===== Изменение заданного веса задачи =====
Изначально вес задачи, т.е. сколько всего задача должна произвести продукта, задается на стороне клиента при формировании задачи. После того, как задачу установили в линию, клиент не может вносить какие-либо изменения, но через саму линию можно корректировать заданный вес задачи через тег ''SetWeightTot''. При этом значение прописывается как в тег, так и базе данных ''RD_TASK.SUM_WEIGHT_TOT''.
Данное действие может выполнять оператор линии.
===== Управление загрузкой и разгрузкой дозаторов =====
Для управления загрузкой и разгрузкой дозаторов в автоматическом режиме имеются теги ''EnableLoad'' и ''EnableUnload'' соответственно. Данные теги при необходимости связываются с внешней логикой. По умолчанию, если привязки нет, установлено значение ''on'' (разрешено).
Для линий типа ''combo'' разрешения кроме вышеперечисленных тегов есть дополнительные для каждой группы дозаторов (результат определяется по И):
* ''EnableLoadP'' и ''EnableUnloadP'' - для основных дозаторов
* ''EnableLoadM'' и ''EnableUnloadM'' - для микродозаторов
Например, для разрешения загрузки микродозаторов должно быть: ''EnableLoad==1 && EnableLoadM==1''
===== Проходы в цикле =====
Каждый дозатор имеет физическое ограничение по весу, который он может набрать за один раз. Это значение может быть прописано в модуле дозатора в сохраняемом теге ''SetWeightMax''. По умолчанию равно 0, что означает "без ограничений".
В тоже время задача может требовать от дозатора загрузки в одном цикле веса, превышающего его ''SetWeightMax''. В этом случае дозатор выполняет дозирование в несколько проходов, количество которых рассчитывается в начале цикла, а заданный вес цикла дозатора, делится на равный части для каждого прохода.
Все действия по загрузке и разгрузке дозаторов выполняются синхронно, в том числе и выполнение проходов.
===== Совместное использование основных дозаторов комбинированными линиями =====
Для дозирования основных компонентов комбинированные линии используют одну и ту же группу дозаторы. Т.к. группа основных дозаторов одномоментно может обслуживать только одну линию, то, во избежание конфликтов, организован шеринг основных дозаторов при помощи тегов ''HoldDosers'', при этом действуют следующие правила:
- Если линия хочет начать работать с основными дозаторами, то она должна выставить 1 в своем теге ''HoldDosers''
- Линия не может выставить 1 в своем теге ''HoldDosers'', если:
- у другой линии уже установлен тег ''HoldDosers''
- другая линия также хочет захватить основные дозаторы и она захотела это сделать раньше (соблюдение очереди)
- Если две и более линий имеют у себя тег ''HoldDosers'' установленным, то линии переходят в состояние ошибки
Аналогично с оборудованием транспорта основных компонентов, только с использованием тега ''HoldTransport''.
===== Описание состояний =====
===== Состояния простой линии (simple) =====
----
** 0 - NONE ** - Задача не установлена
Для установки задачи записать в ''TaskId'' значение ''RD_TASK.ID''
\\
\\
----
** 1 - IDLE **- Ожидание команды старт
Ожидание записи 1 в тег ''Start'', после чего:
* генерируется новое значение ''CycleId''
* запоминаются текущие значения счетчиков дозаторов в ''SumWeightBeg'' питателей
* переход в состояние ''PREPARING''
Если линия имеет установленный параметр ''autostart: on'', то ''Start'' всегда считается равным 1.
Если задача выполнена, т.е. ''SetWeightTot'' меньше или равно ''ExeWeightTot'', то переход в состояние ''TASK_FINISHED''.
\\
\\
----
** 2 - PREPARING **- Подготовка дозаторов к старту цикла
Посылаем дозаторам команду "старт цикла". Ожидаем от дозаторов состояния готовности к приему задачи.
Здесь и далее участвуют только дозаторы задействованные в рецепте, а остальные дозаторы игнорируются.
\\
\\
----
** 3 - SETTING **- Установка задания дозаторам
Посылаем дозаторам команды "установить задачу". Если хотя бы один из дозаторов по каким-либо причинам не принимает задачу, то переход в состояние ''ERROR''.
Если все дозаторы принимают задачу, то переход в следующее состояние.
\\
\\
----
** 4 - LOADING **- Идет дозирование (загрузка). Ожидание завершения дозирования
Если загрузка разрешена, то посылаем дозаторам команды "начать задачу" и "начать загрузку". Ожидаем все дозаторы в состоянии готовности к разгрузке и переход в следующее состояние.
\\
\\
----
** 5 - UNLOADING **- Идет разгрузка. Ожидание завершения разгрузки
Если разгрузка разрешена, то посылаем дозаторам команды "начать разгрузку". Ожидаем все дозаторы в состоянии стоп и, если все дозаторы выполнили все проходы, то переход в следующее состояние. Если же не все дозаторы выполнили все проходы, то возврат к состоянию ''PREPARING''.
\\
\\
----
** 99 - ERROR **- Ошибка установки задачи
Ожидание отмены или сброса задачи.
\\
\\
----
** 100 - CYCLE_FINISHED **- Цикл дозирования закончен
Возврат в состояние IDLE
\\
\\
----
** 101 - TASK_FINISHED **- Задача выполнена
Ожидание отмены или сброса задачи.
\\
\\
===== Состояния комбинированной линии (combo) =====
Далее обозначение "Аналогично simple" означает "тоже самое, что и для простой линии".
----
** 0 - NONE **- Задача не установлена
Аналогично simple
\\
\\
----
** 1 - IDLE **- Ожидание команды старт
Аналогично simple
\\
\\
----
** 8 - HOLD_DOSERS **- Ожидание захвата дозаторов ОК
Ожидаем ''HoldDosers==0'' по всем combo-линиям, после чего, в соответствии с очередностью, устанавливаем 1 в ''HoldDosers'' и переход в следующее состояние.
С этого момента основными дозаторами владеет данная линия. Остальные линии только читают и ничего не пишут в дозаторы, а также никак не реагируют на изменения счетчиков.
\\
\\
----
** 9 - PREPARING_C **- Подготовка дозатора контроля к старту цикла
Аналогично simple, только для дозатора контроля
\\
\\
----
** 10 - SETTING_C **- Установка задания дозатору контроля
Аналогично simple, только для дозатора контроля
\\
\\
----
** 11 - START_SEQ_BEFORE_LOAD_C **- Запуск оборудования перед дозатором контроля
Устанавливаем тег ''CmdSeqBeforeLoadC'' и ожидаем 1 в теге ''InpSeqBeforeLoadC''
\\
\\
----
** 12 - PREPARING_P **- Подготовка дозаторов ОК к старту цикла
Аналогично simple, только для основных дозаторов
\\
\\
----
** 13 - SETTING_P **- Установка задания дозаторам ОК
Аналогично simple, только для основных дозаторов
\\
\\
----
** 14 - LOADING_P **- Идет загрузка дозаторов ОК
Аналогично simple, только для основных дозаторов
\\
\\
----
** 15 - HOLD_TRANSPORT **- Ожидание захвата транспорта ОК
Аналогично состоянию ''HOLD_DOSERS'', только для тега ''HoldTransport''
\\
\\
----
** 16 - UNLOADING_P **- Идет разгрузка дозаторов ОК
Аналогично simple, только для основных дозаторов
\\
\\
----
** 17 - DELAY_TRANSPORT_P **- Задержка времени для транспорта ОК
Сбрасываем тег ''HoldDosers''.
Задержка задается в теге ''TimeTransportP''. В теге ''TimeCnt'' идет обратный отсчет. Это время необходимо для полного прохождения
продукта после разгрузки основных дозаторов
\\
\\
----
** 18 - WAIT_CRUSHER_EMPTY **- Ожидание опустошения дробилки
Сбрасываем тег ''HoldTransport''.
Ожидание 1 в теге ''InpCrusherEmpty''
\\
\\
----
** 19 - LOADING_C **- Идет загрузка дозатора контроля (набор мин.вес, стабилизация веса)
Сбрасываем тег ''CmdSeqBeforeLoadC''.
Если загрузка разрешена, то посылаем дозатору контроля команды «начать задачу» и «начать загрузку».
Ожидаем на дозаторе контроля стабилизацию текущего веса ''Stable==1'' и достижение текущего веса до значения заданного с учетом допустимого недобора:
SetWeightP - <контрольный дозатор>.CurWeight <= UnderweightLimitC
\\
\\
----
** 20 - STOP_LOAD_C **- Остановка загрузки дозатора контроля
Посылаем контрольному дозатору команду "стоп загрузки".
Ожидаем на дозаторе контроля стабилизацию текущего веса и состояния готовности к разгрузке, после чего:
* фиксируем текущий вес контрольного дозатора в теге ''ExeWeightC''
* сохраняем зафиксированный вес в таблице ''RD_TASK_CTL''
* рассчитываем ''SetWeight'' для микродозаторов в соответствии с зафиксированным весом
\\
\\
----
** 21 - PREPARING_M **- Подготовка дозаторов МК к старту цикла
Аналогично simple, только для микродозаторов
\\
\\
----
** 22 - SETTING_M **- Установка задания дозаторам МК
Аналогично simple, только для микродозаторов
\\
\\
----
** 23 - LOADING_M **- Идет загрузка дозаторов МК
Аналогично simple, только для микродозаторов
\\
\\
----
** 24 - WAIT_MIXER_READY **- Ожидание готовности миксера к загрузке
Ожидание 1 в теге ''InpMixerBusy''
\\
\\
----
** 25 - START_SEQ_BEFORE_LOAD_MIXER **- Запуск оборудования разгрузки дозаторов контроля и МК в миксер
Устанавливаем тег ''CmdSeqBeforeLoadMixer'' и ожидаем 1 в теге ''InpSeqBeforeLoadMixer''
\\
\\
----
** 26 - UNLOADING_C_M **- Идет разгрузка дозаторов контроля и МК
Аналогично simple, только для микродозаторов и дозатора контроля
\\
\\
----
** 27 - DELAY_AFTER_UNLOAD_C_M **- Задержка времени после разгрузки дозаторов контроля и МК
Аналогично DELAY_TRANSPORT_P, только для тега ''TimeAfterUnloadCM''
\\
\\
----
** 28 - START_MIXING **- Запуск цикла смешивания
Устанавливаем тег ''CmdSeqStartMixing'' и ожидаем 1 в теге ''InpMixerBusy'', после чего сбрасываем теги ''CmdSeqBeforeLoadMixer'' и ''CmdSeqStartMixing''
\\
\\
----
** 99 - ERROR **- Ошибка установки задачи
Аналогично simple
\\
\\
----
** 100 - CYCLE_FINISHED **- Цикл дозирования закончен
Аналогично simple
\\
\\
----
** 101 - TASK_FINISHED **- Задача выполнена
Аналогично simple
\\
\\