Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:jroboplc:modules:raduga [2023/09/28 15:44]
denis [Состояния простой линии]
doc:jroboplc:modules:raduga [2023/10/01 19:16] (текущий)
denis [Состояния комбинированной линии (combo)]
Строка 271: Строка 271:
 Каждый дозатор имеет физическое ограничение по весу, который он может набрать за один раз. Это значение может быть прописано в модуле дозатора в сохраняемом теге ''​SetWeightMax''​. По умолчанию равно 0, что означает "​без ограничений"​. ​ Каждый дозатор имеет физическое ограничение по весу, который он может набрать за один раз. Это значение может быть прописано в модуле дозатора в сохраняемом теге ''​SetWeightMax''​. По умолчанию равно 0, что означает "​без ограничений"​. ​
  
-В тоже время задача может требовать от дозатора загрузки в одном цикле веса, превышающего его ''​SetWeightMax''​. В этом случае дозатор выполняет дозирование несколько проходов,​ количество которых рассчитывается в начале цикла, а заданный вес цикла дозатора,​ делится на равный части для каждого прохода.+В тоже время задача может требовать от дозатора загрузки в одном цикле веса, превышающего его ''​SetWeightMax''​. В этом случае дозатор выполняет дозирование ​в несколько проходов,​ количество которых рассчитывается в начале цикла, а заданный вес цикла дозатора,​ делится на равный части для каждого прохода.
  
 Все действия по загрузке и разгрузке дозаторов выполняются синхронно,​ в том числе и выполнение проходов. Все действия по загрузке и разгрузке дозаторов выполняются синхронно,​ в том числе и выполнение проходов.
  
 ===== Совместное использование основных дозаторов комбинированными линиями ===== ===== Совместное использование основных дозаторов комбинированными линиями =====
-  todo + 
-  ​+Для дозирования основных компонентов комбинированные линии используют одну и ту же группу дозаторы. Т.к. группа основных дозаторов одномоментно может обслуживать только одну линию, то, во избежание конфликтов,​ организован шеринг основных дозаторов при помощи тегов ''​HoldDosers'',​ при этом действуют следующие правила:​ 
 + 
 +  ​- Если линия хочет начать работать с основными дозаторами,​ то она должна выставить 1 в своем теге ''​HoldDosers''​ 
 +  - Линия не может выставить 1 в своем теге ''​HoldDosers'',​ если: 
 +    - у другой линии уже установлен тег ''​HoldDosers''​ 
 +    - другая линия также хочет захватить основные дозаторы и она захотела это сделать раньше (соблюдение очереди) 
 +  - Если две и более линий имеют у себя тег ''​HoldDosers''​ установленным,​ то линии переходят в состояние ошибки 
 + 
 +Аналогично с оборудованием транспорта основных компонентов,​ только с использованием тега ''​HoldTransport''​.
 ===== Описание состояний ===== ===== Описание состояний =====
   ​   ​
-==== Состояния простой линии ​ ====+ 
 +===== Состояния простой линии ​(simple) =====
  
 ---- ----
Строка 316: Строка 325:
 ** 3   - SETTING ​       **- Установка задания дозаторам ** 3   - SETTING ​       **- Установка задания дозаторам
  
-Посылаем дозаторам команду "​установить задачу"​. Если хотя бы один из дозаторов по каким-либо причинам не принимает задачу,​ то переход в состояние ''​ERROR''​. ​+Посылаем дозаторам команды "​установить задачу"​. Если хотя бы один из дозаторов по каким-либо причинам не принимает задачу,​ то переход в состояние ''​ERROR''​.
 Если все дозаторы принимают задачу,​ то переход в следующее состояние. Если все дозаторы принимают задачу,​ то переход в следующее состояние.
 \\ \\
Строка 357: Строка 366:
  
  
-==== Состояния комбинированной линии ====+===== Состояния комбинированной линии ​(combo) =====
  
 +Далее обозначение "​Аналогично simple"​ означает "​тоже самое, что и для простой линии"​.
 +
 +----
 ** 0   - NONE           **- Задача не установлена ** 0   - NONE           **- Задача не установлена
  
 +Аналогично simple
 +\\
 +\\
 +
 +----
 ** 1   - IDLE           **- Ожидание команды старт ** 1   - IDLE           **- Ожидание команды старт
  
 +Аналогично simple
 +\\
 +\\
 +
 +----
 ** 8  - HOLD_DOSERS ​                **- Ожидание захвата дозаторов ОК ** 8  - HOLD_DOSERS ​                **- Ожидание захвата дозаторов ОК
  
 +Ожидаем ''​HoldDosers==0''​ по всем combo-линиям,​ после чего, в соответствии с очередностью,​ устанавливаем 1 в ''​HoldDosers''​ и переход в следующее состояние.
 +С этого момента основными дозаторами владеет данная линия. Остальные линии только читают и ничего не пишут в дозаторы,​ а также никак не реагируют на изменения счетчиков.
 +\\
 +\\
 +
 +----
 ** 9  - PREPARING_C ​                **- Подготовка дозатора контроля к старту цикла ** 9  - PREPARING_C ​                **- Подготовка дозатора контроля к старту цикла
  
 +Аналогично simple, только для дозатора контроля
 +\\
 +\\
 +
 +----
 ** 10 - SETTING_C ​                  **- Установка задания дозатору контроля ** 10 - SETTING_C ​                  **- Установка задания дозатору контроля
  
 +Аналогично simple, только для дозатора контроля
 +\\
 +\\
 +
 +----
 ** 11 - START_SEQ_BEFORE_LOAD_C ​    **- Запуск оборудования перед дозатором контроля ** 11 - START_SEQ_BEFORE_LOAD_C ​    **- Запуск оборудования перед дозатором контроля
  
 +Устанавливаем тег ''​CmdSeqBeforeLoadC''​ и ожидаем 1 в теге ''​InpSeqBeforeLoadC''​
 +\\
 +\\
 +
 +----
 ** 12 - PREPARING_P ​                **- Подготовка дозаторов ОК к старту цикла ** 12 - PREPARING_P ​                **- Подготовка дозаторов ОК к старту цикла
  
 +Аналогично simple, только для основных дозаторов
 +\\
 +\\
 +
 +----
 ** 13 - SETTING_P ​                  **- Установка задания дозаторам ОК ** 13 - SETTING_P ​                  **- Установка задания дозаторам ОК
  
 +Аналогично simple, только для основных дозаторов
 +\\
 +\\
 +
 +----
 ** 14 - LOADING_P ​                  **- Идет загрузка дозаторов ОК ** 14 - LOADING_P ​                  **- Идет загрузка дозаторов ОК
  
 +Аналогично simple, только для основных дозаторов
 +\\
 +\\
 +
 +----
 ** 15 - HOLD_TRANSPORT ​             **- Ожидание захвата транспорта ОК ** 15 - HOLD_TRANSPORT ​             **- Ожидание захвата транспорта ОК
  
 +Аналогично состоянию ''​HOLD_DOSERS'',​ только для тега ''​HoldTransport''​
 +\\
 +\\
 +
 +----
 ** 16 - UNLOADING_P ​                **- Идет разгрузка дозаторов ОК ** 16 - UNLOADING_P ​                **- Идет разгрузка дозаторов ОК
  
 +Аналогично simple, только для основных дозаторов
 +\\
 +\\
 +
 +----
 ** 17 - DELAY_TRANSPORT_P ​          **- Задержка времени для транспорта ОК ** 17 - DELAY_TRANSPORT_P ​          **- Задержка времени для транспорта ОК
  
 +Сбрасываем тег ''​HoldDosers''​.
 +
 +Задержка задается в теге ''​TimeTransportP''​. В теге ''​TimeCnt''​ идет обратный отсчет. Это время необходимо для полного прохождения
 +продукта после разгрузки основных дозаторов
 +\\
 +\\
 +
 +----
 ** 18 - WAIT_CRUSHER_EMPTY ​         **- Ожидание опустошения дробилки ** 18 - WAIT_CRUSHER_EMPTY ​         **- Ожидание опустошения дробилки
  
 +Сбрасываем тег ''​HoldTransport''​.
 +
 +Ожидание 1 в теге ''​InpCrusherEmpty''​
 +\\
 +\\
 +
 +----
 ** 19 - LOADING_C ​                  **- Идет загрузка дозатора контроля (набор мин.вес,​ стабилизация веса) ** 19 - LOADING_C ​                  **- Идет загрузка дозатора контроля (набор мин.вес,​ стабилизация веса)
  
 +Сбрасываем тег ''​CmdSeqBeforeLoadC''​.
 +
 +Если загрузка разрешена,​ то посылаем дозатору контроля команды «начать задачу» и «начать загрузку».
 +Ожидаем на дозаторе контроля стабилизацию текущего веса ''​Stable==1''​ и достижение текущего веса до значения заданного с учетом допустимого недобора:​
 +  SetWeightP - <​контрольный дозатор>​.CurWeight <= UnderweightLimitC
 +\\
 +\\
 +
 +----
 ** 20 - STOP_LOAD_C ​                **- Остановка загрузки дозатора контроля ** 20 - STOP_LOAD_C ​                **- Остановка загрузки дозатора контроля
  
 +Посылаем контрольному дозатору команду "​стоп загрузки"​.
 +Ожидаем на дозаторе контроля стабилизацию текущего веса и состояния готовности к разгрузке,​ после чего:
 +  * фиксируем текущий вес контрольного дозатора в теге ''​ExeWeightC''​
 +  * сохраняем зафиксированный вес в таблице ''​RD_TASK_CTL''​
 +  * рассчитываем ''​SetWeight''​ для микродозаторов в соответствии с зафиксированным весом
 +\\
 +\\
 +
 +----
 ** 21 - PREPARING_M ​                **- Подготовка дозаторов МК к старту цикла ** 21 - PREPARING_M ​                **- Подготовка дозаторов МК к старту цикла
  
 +Аналогично simple, только для микродозаторов
 +\\
 +\\
 +
 +----
 ** 22 - SETTING_M ​                  **- Установка задания дозаторам МК ** 22 - SETTING_M ​                  **- Установка задания дозаторам МК
  
 +Аналогично simple, только для микродозаторов
 +\\
 +\\
 +
 +----
 ** 23 - LOADING_M ​                  **- Идет загрузка дозаторов МК ** 23 - LOADING_M ​                  **- Идет загрузка дозаторов МК
  
 +Аналогично simple, только для микродозаторов
 +\\
 +\\
 +
 +----
 ** 24 - WAIT_MIXER_READY ​           **- Ожидание готовности миксера к загрузке ** 24 - WAIT_MIXER_READY ​           **- Ожидание готовности миксера к загрузке
  
 +Ожидание 1 в теге ''​InpMixerBusy''​
 +\\
 +\\
 +
 +----
 ** 25 - START_SEQ_BEFORE_LOAD_MIXER **- Запуск оборудования разгрузки дозаторов контроля и МК в миксер ** 25 - START_SEQ_BEFORE_LOAD_MIXER **- Запуск оборудования разгрузки дозаторов контроля и МК в миксер
  
 +Устанавливаем тег ''​CmdSeqBeforeLoadMixer''​ и ожидаем 1 в теге ''​InpSeqBeforeLoadMixer''​
 +\\
 +\\
 +
 +----
 ** 26 - UNLOADING_C_M ​              **- Идет разгрузка дозаторов контроля и МК ** 26 - UNLOADING_C_M ​              **- Идет разгрузка дозаторов контроля и МК
  
 +Аналогично simple, только для микродозаторов и дозатора контроля
 +\\
 +\\
 +
 +----
 ** 27 - DELAY_AFTER_UNLOAD_C_M ​     **- Задержка времени после разгрузки дозаторов контроля и МК ** 27 - DELAY_AFTER_UNLOAD_C_M ​     **- Задержка времени после разгрузки дозаторов контроля и МК
  
 +Аналогично DELAY_TRANSPORT_P,​ только для тега ''​TimeAfterUnloadCM''​
 +\\
 +\\
 +
 +----
 ** 28 - START_MIXING ​               **- Запуск цикла смешивания ** 28 - START_MIXING ​               **- Запуск цикла смешивания
  
 +Устанавливаем тег ''​CmdSeqStartMixing''​ и ожидаем 1 в теге ''​InpMixerBusy'',​ после чего сбрасываем теги ''​CmdSeqBeforeLoadMixer''​ и ''​CmdSeqStartMixing''​
 +\\
 +\\
 +
 +----
 ** 99  - ERROR          **- Ошибка установки задачи ** 99  - ERROR          **- Ошибка установки задачи
  
 +Аналогично simple
 +\\
 +\\
 +
 +----
 ** 100 - CYCLE_FINISHED **- Цикл дозирования закончен ** 100 - CYCLE_FINISHED **- Цикл дозирования закончен
  
 +Аналогично simple
 +\\
 +\\
 +
 +----
 ** 101 - TASK_FINISHED ​ **- Задача выполнена ** 101 - TASK_FINISHED ​ **- Задача выполнена
 +
 +Аналогично simple
 +\\
 +\\
 +
  
doc/jroboplc/modules/raduga.1695905076.txt.gz · Последние изменения: 2023/09/28 15:44 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0