Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:jroboplc:modules:raduga [2023/09/28 16:21]
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''​.
 ===== Описание состояний ===== ===== Описание состояний =====
   ​   ​
Строка 359: Строка 367:
  
 ===== Состояния комбинированной линии (combo) ===== ===== Состояния комбинированной линии (combo) =====
 +
 Далее обозначение "​Аналогично simple"​ означает "​тоже самое, что и для простой линии"​. Далее обозначение "​Аналогично simple"​ означает "​тоже самое, что и для простой линии"​.
  
Строка 365: Строка 374:
  
 Аналогично simple Аналогично simple
-// +\\ 
-//+\\
  
 ---- ----
 ** 1   - IDLE           **- Ожидание команды старт ** 1   - IDLE           **- Ожидание команды старт
 +
 Аналогично simple Аналогично simple
-// +\\ 
-//+\\
  
 ---- ----
Строка 379: Строка 389:
 Ожидаем ''​HoldDosers==0''​ по всем combo-линиям,​ после чего, в соответствии с очередностью,​ устанавливаем 1 в ''​HoldDosers''​ и переход в следующее состояние. Ожидаем ''​HoldDosers==0''​ по всем combo-линиям,​ после чего, в соответствии с очередностью,​ устанавливаем 1 в ''​HoldDosers''​ и переход в следующее состояние.
 С этого момента основными дозаторами владеет данная линия. Остальные линии только читают и ничего не пишут в дозаторы,​ а также никак не реагируют на изменения счетчиков. С этого момента основными дозаторами владеет данная линия. Остальные линии только читают и ничего не пишут в дозаторы,​ а также никак не реагируют на изменения счетчиков.
-// +\\ 
-//+\\
  
 ---- ----
Строка 386: Строка 396:
  
 Аналогично simple, только для дозатора контроля Аналогично simple, только для дозатора контроля
-// +\\ 
-//+\\
  
 ---- ----
Строка 393: Строка 403:
  
 Аналогично simple, только для дозатора контроля Аналогично simple, только для дозатора контроля
-// +\\ 
-//+\\
  
 ---- ----
Строка 400: Строка 410:
  
 Устанавливаем тег ''​CmdSeqBeforeLoadC''​ и ожидаем 1 в теге ''​InpSeqBeforeLoadC''​ Устанавливаем тег ''​CmdSeqBeforeLoadC''​ и ожидаем 1 в теге ''​InpSeqBeforeLoadC''​
-// +\\ 
-//+\\
  
 ---- ----
Строка 407: Строка 417:
  
 Аналогично simple, только для основных дозаторов Аналогично simple, только для основных дозаторов
-// +\\ 
-//+\\
  
 ---- ----
Строка 414: Строка 424:
  
 Аналогично simple, только для основных дозаторов Аналогично simple, только для основных дозаторов
-// +\\ 
-//+\\
  
 ---- ----
Строка 421: Строка 431:
  
 Аналогично simple, только для основных дозаторов Аналогично simple, только для основных дозаторов
-// +\\ 
-//+\\
  
 ---- ----
Строка 428: Строка 438:
  
 Аналогично состоянию ''​HOLD_DOSERS'',​ только для тега ''​HoldTransport''​ Аналогично состоянию ''​HOLD_DOSERS'',​ только для тега ''​HoldTransport''​
-// +\\ 
-//+\\
  
 ---- ----
Строка 435: Строка 445:
  
 Аналогично simple, только для основных дозаторов Аналогично simple, только для основных дозаторов
-// +\\ 
-//+\\
  
 ---- ----
Строка 445: Строка 455:
 Задержка задается в теге ''​TimeTransportP''​. В теге ''​TimeCnt''​ идет обратный отсчет. Это время необходимо для полного прохождения Задержка задается в теге ''​TimeTransportP''​. В теге ''​TimeCnt''​ идет обратный отсчет. Это время необходимо для полного прохождения
 продукта после разгрузки основных дозаторов продукта после разгрузки основных дозаторов
-// +\\ 
-//+\\
  
 ---- ----
Строка 454: Строка 464:
  
 Ожидание 1 в теге ''​InpCrusherEmpty''​ Ожидание 1 в теге ''​InpCrusherEmpty''​
-// +\\ 
-//+\\
  
 ---- ----
Строка 465: Строка 475:
 Ожидаем на дозаторе контроля стабилизацию текущего веса ''​Stable==1''​ и достижение текущего веса до значения заданного с учетом допустимого недобора:​ Ожидаем на дозаторе контроля стабилизацию текущего веса ''​Stable==1''​ и достижение текущего веса до значения заданного с учетом допустимого недобора:​
   SetWeightP - <​контрольный дозатор>​.CurWeight <= UnderweightLimitC   SetWeightP - <​контрольный дозатор>​.CurWeight <= UnderweightLimitC
-// +\\ 
-//+\\
  
 ---- ----
Строка 476: Строка 486:
   * сохраняем зафиксированный вес в таблице ''​RD_TASK_CTL''​   * сохраняем зафиксированный вес в таблице ''​RD_TASK_CTL''​
   * рассчитываем ''​SetWeight''​ для микродозаторов в соответствии с зафиксированным весом   * рассчитываем ''​SetWeight''​ для микродозаторов в соответствии с зафиксированным весом
-// +\\ 
-//+\\
  
 ---- ----
Строка 483: Строка 493:
  
 Аналогично simple, только для микродозаторов Аналогично simple, только для микродозаторов
-// +\\ 
-//+\\
  
 ---- ----
Строка 490: Строка 500:
  
 Аналогично simple, только для микродозаторов Аналогично simple, только для микродозаторов
-// +\\ 
-//+\\
  
 ---- ----
Строка 497: Строка 507:
  
 Аналогично simple, только для микродозаторов Аналогично simple, только для микродозаторов
-// +\\ 
-//+\\
  
 ---- ----
Строка 504: Строка 514:
  
 Ожидание 1 в теге ''​InpMixerBusy''​ Ожидание 1 в теге ''​InpMixerBusy''​
-// +\\ 
-//+\\
  
 ---- ----
Строка 511: Строка 521:
  
 Устанавливаем тег ''​CmdSeqBeforeLoadMixer''​ и ожидаем 1 в теге ''​InpSeqBeforeLoadMixer''​ Устанавливаем тег ''​CmdSeqBeforeLoadMixer''​ и ожидаем 1 в теге ''​InpSeqBeforeLoadMixer''​
-// +\\ 
-//+\\
  
 ---- ----
Строка 518: Строка 528:
  
 Аналогично simple, только для микродозаторов и дозатора контроля Аналогично simple, только для микродозаторов и дозатора контроля
-// +\\ 
-//+\\
  
 ---- ----
Строка 525: Строка 535:
  
 Аналогично DELAY_TRANSPORT_P,​ только для тега ''​TimeAfterUnloadCM''​ Аналогично DELAY_TRANSPORT_P,​ только для тега ''​TimeAfterUnloadCM''​
-// +\\ 
-//+\\
  
 ---- ----
Строка 532: Строка 542:
  
 Устанавливаем тег ''​CmdSeqStartMixing''​ и ожидаем 1 в теге ''​InpMixerBusy'',​ после чего сбрасываем теги ''​CmdSeqBeforeLoadMixer''​ и ''​CmdSeqStartMixing''​ Устанавливаем тег ''​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.1695907265.txt.gz · Последние изменения: 2023/09/28 16:21 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0