Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:jroboplc:modules:kkmansvr [2022/02/22 16:28]
denis [Теги]
doc:jroboplc:modules:kkmansvr [2023/09/28 12:14] (текущий)
denis [Установка задачи]
Строка 53: Строка 53:
 |''​TaskInstall ​  '' ​ |  ''​STRING'' ​ |  ''​RW'' ​ |см. [[doc:​jroboplc:​modules:​kkmansvr#​Установка задачи]] ​ | |''​TaskInstall ​  '' ​ |  ''​STRING'' ​ |  ''​RW'' ​ |см. [[doc:​jroboplc:​modules:​kkmansvr#​Установка задачи]] ​ |
 |''​TaskId ​       '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |id задачи (''​KM_TASK.ID''​) | |''​TaskId ​       '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |id задачи (''​KM_TASK.ID''​) |
-|''​RecipeId ​     '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |id рецепта (''​KM_RECIPE.ID''​) ​ |+|''​RecipeId ​     '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |id рецепта (''​KM_TASK.RECIPE.ID''​) ​ |
 |''​RecipeName ​   '' ​ |  ''​STRING'' ​ |  '' ​ '' ​ |Название рецепта (''​KM_RECIPE.NAME''​) ​ | |''​RecipeName ​   '' ​ |  ''​STRING'' ​ |  '' ​ '' ​ |Название рецепта (''​KM_RECIPE.NAME''​) ​ |
 |''​CycleReq ​     '' ​ |  ''​INT ​  '' ​ |  ''​RW'' ​ |Заданное количество циклов. Если ''​CycleReq''>​0 и ''​СусleCnt''>​=''​CycleReq'',​ то запуск нового цикла невозможен. Если =0, то работать без ограничений. CycleReq можно менять в процессе работы ​ | |''​CycleReq ​     '' ​ |  ''​INT ​  '' ​ |  ''​RW'' ​ |Заданное количество циклов. Если ''​CycleReq''>​0 и ''​СусleCnt''>​=''​CycleReq'',​ то запуск нового цикла невозможен. Если =0, то работать без ограничений. CycleReq можно менять в процессе работы ​ |
Строка 65: Строка 65:
 |''​SumWeightFin ​ '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |Зафиксированный суммарный вес по всем компонентам ​ | |''​SumWeightFin ​ '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |Зафиксированный суммарный вес по всем компонентам ​ |
 |''​SumWeightCtl ​ '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |Зафиксированный контрольный вес ​ | |''​SumWeightCtl ​ '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |Зафиксированный контрольный вес ​ |
-|''​ControlId ​    '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |id контрольного дозатора (далее ''//​ControlDoser//''​). Если 0, то не используется ​ |+|''​ControlId ​    '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |id контрольного дозатора (далее ​**''//​ControlDoser//''​**). Если 0, то не используется ​ |
 |''​ControlName ​  '' ​ |  ''​STRING'' ​ |  '' ​ '' ​ |Имя модуля контрольного дозатора. Если пусто, то не используется. Если ''​NOT FOUND'',​ то модуль с ''​ControlId''​ не найден ​  | |''​ControlName ​  '' ​ |  ''​STRING'' ​ |  '' ​ '' ​ |Имя модуля контрольного дозатора. Если пусто, то не используется. Если ''​NOT FOUND'',​ то модуль с ''​ControlId''​ не найден ​  |
 |''​ControlStable '' ​ |  ''​BOOL ​ '' ​ |  '' ​ '' ​ |Транслируется значение с ''//​ControlDoser//​.Stable'' ​ | |''​ControlStable '' ​ |  ''​BOOL ​ '' ​ |  '' ​ '' ​ |Транслируется значение с ''//​ControlDoser//​.Stable'' ​ |
 |''​ControlWeight '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |Транслируется значение с ''//​ControlDoser//​.WeightTot'' ​ | |''​ControlWeight '' ​ |  ''​INT ​  '' ​ |  '' ​ '' ​ |Транслируется значение с ''//​ControlDoser//​.WeightTot'' ​ |
-|''​Run ​          '' ​ |  ''​BOOL ​ '' ​ |  ''​RW'' ​ |Если записать 1, то начать весовой цикл. Нельзя извне ''​Run=1''​. Если ''​TaskId=0'',​ то нельзя ''​Run=1''​. Нельзя ''​Run=1'',​ если ''​Disable=1''​. ​ |+|''​Run ​          '' ​ |  ''​BOOL ​ '' ​ |  ''​RW'' ​ |Если записать 1, то начать весовой цикл. Нельзя извне ''​Run=0''​. Если ''​TaskId=0'',​ то нельзя ''​Run=1''​. Нельзя ''​Run=1'',​ если ''​Disable=1''​. ​ |
 |''​Disable ​      '' ​ |  ''​BOOL ​ '' ​ |  ''​RW'' ​ |Запрет начала весового цикла. Нельзя ''​Disable=1'',​ если ''​Run=1'' ​ | |''​Disable ​      '' ​ |  ''​BOOL ​ '' ​ |  ''​RW'' ​ |Запрет начала весового цикла. Нельзя ''​Disable=1'',​ если ''​Run=1'' ​ |
 |''​Commit ​       '' ​ |  ''​BOOL ​ '' ​ |  ''​RW'' ​ |Записать весовой цикл в базу данных и перейти к разгрузке ​ | |''​Commit ​       '' ​ |  ''​BOOL ​ '' ​ |  ''​RW'' ​ |Записать весовой цикл в базу данных и перейти к разгрузке ​ |
 |''​Cancel ​       '' ​ |  ''​BOOL ​ '' ​ |  ''​RW'' ​ |Отменить весовой цикл. Сбрасываются все зафиксированные весовые значения ​ | |''​Cancel ​       '' ​ |  ''​BOOL ​ '' ​ |  ''​RW'' ​ |Отменить весовой цикл. Сбрасываются все зафиксированные весовые значения ​ |
 ^Компоненты ​ ^^^^ ^Компоненты ​ ^^^^
-|''​Comp0.DoserId ​   '' ​ |  ''​INT ​     '' ​ |  '' ​ '' ​ |id дозатора компонента (далее ''//​CompDoser//''​) (''​KM_TASK_PRODUCT.DOSER_ID''​) ​ |+|''​Comp0.DoserId ​   '' ​ |  ''​INT ​     '' ​ |  '' ​ '' ​ |id дозатора компонента (далее ​**''//​CompDoser//''​**) (''​KM_TASK_PRODUCT.DOSER_ID''​) ​ |
 |''​Comp0.DoserName ​ '' ​ |  ''​STRING ​  '' ​ |  '' ​ '' ​ |Имя модуля дозатора ​ | |''​Comp0.DoserName ​ '' ​ |  ''​STRING ​  '' ​ |  '' ​ '' ​ |Имя модуля дозатора ​ |
 |''​Comp0.Manual ​    '' ​ |  ''​BOOL ​    '' ​ |  '' ​ '' ​ |Ручной дозатор ​ | |''​Comp0.Manual ​    '' ​ |  ''​BOOL ​    '' ​ |  '' ​ '' ​ |Ручной дозатор ​ |
Строка 93: Строка 93:
 База данных создается автоматически. Данные по линии и дозаторам автоматически добавляются в таблицы ''​KM_LINE''​ и ''​KM_DOSER''​. База данных создается автоматически. Данные по линии и дозаторам автоматически добавляются в таблицы ''​KM_LINE''​ и ''​KM_DOSER''​.
  
-Если необходимо удалить запись в таблице,​ имеющей поле ''​DELETED'',​ то установить в ''​DELETED=1''​ и в дальнейшем на стороне клиента отфильтровывать подобные записи. ​Фактическое удаление не делать!+Если необходимо удалить запись в таблице,​ имеющей поле ''​DELETED'',​ то установить в ''​DELETED=1''​ и в дальнейшем на стороне клиента отфильтровывать подобные записи. ​На стороне клиента в таблицах с полем ''​DELETED''​ фактическое удаление не делать!
 ===== Установка задачи ===== ===== Установка задачи =====
-Для установка задачи необходимо записать в тег ''​TaskInstall''​ значение ''​KM_TASK.ID''​ нужной задачи. После записи в ''​TaskInstall''​ возвращается результат выполнения установки:​ 
-  * ''​OK''​ - задача успешно установлена 
-  * ''​NOT EMPTY''​ - тег ''​TaskInstall''​ не был очищен перед запись id задачи 
-  * ''​LINK ERROR''​ - необходимо проверить конфигурацию,​ т.к. имеются не найденные модули дозаторов 
-  * ''​WRONG LINE''​ - задача предназначена для другой линии 
-  * ''​NOT FOUND''​ - задача с указанным id не найдена 
-  * ''​TOO MANY PRODUCTS''​ - задача рассчитана но большее кол-во компонентов,​ чем указано в параметре ''​compQnt''​ 
  
-Перед записью нового id в ''​TaskInstall''​ необходимо записать пустую строку. Далее при успешной записи id задачи обнуляются все счетчики веса и циклов,​ а в соответствующии теги устанавливаются данные по указанной задаче. 
  
-Также в ''​TagInstall''​ можно записать ​''​RESET''​ для полного сброса данных ​по ранее установленной задаче.+Для установка задачи необходимо записать ​в тег TaskInstall значение KM_TASK.ID нужной задачи. После записи в TaskInstall возвращается результат выполнения установки:
  
-Запись id возможна только при статусе линии ​''​IDLE''​.+  * OK - задача успешно установлена 
 +  * NOT EMPTY - тег TaskInstall не был очищен перед запись id задачи 
 +  * LINK ERROR - необходимо проверить конфигурацию,​ т.к. имеются не найденные модули дозаторов 
 +  * WRONG LINE - задача предназначена для другой линии 
 +  * NOT FOUND - задача с указанным id не найдена 
 +  * TOO MANY PRODUCTS - задача рассчитана но большее кол-во компонентов,​ чем указано в параметре compQnt 
 + 
 +Перед записью нового id в TaskInstall необходимо записать пустую строку. Далее при успешной записи id задачи обнуляются все счетчики веса и циклов,​ а в соответствующии теги устанавливаются данные по указанной задаче. 
 + 
 +Также в TagInstall можно записать RESET для полного сброса данных по ранее установленной задаче. 
 + 
 +Запись id возможна только при статусе линии IDLE.
  
 ===== Статус линии ===== ===== Статус линии =====
 Значени тeга ''​Status'':​ Значени тeга ''​Status'':​
  
-=== IDLE ===+=== 0 - IDLE ===
 Ожидание. Если извне прописать в ''​Run=1''​ и при этом ''​Disable==0''​ и ''​TaskId>​0''​ и (''​CycleReq==0''​ или ''​CycleCnt<​CycleReq''​),​ то ''​Status=PREPARING''​. Ожидание. Если извне прописать в ''​Run=1''​ и при этом ''​Disable==0''​ и ''​TaskId>​0''​ и (''​CycleReq==0''​ или ''​CycleCnt<​CycleReq''​),​ то ''​Status=PREPARING''​.
  
-=== PREPARING ===+=== 1 - PREPARING ===
 Подготовка. Если используется контрольный дозатор,​ то выполняется запись в ''//​ControlDoser//​.SetEmptyTot=1''​ и ожидание ''//​ControlDoser//​.IsEmptyTot==1'',​ после чего ''​Status=LOADING''​. Подготовка. Если используется контрольный дозатор,​ то выполняется запись в ''//​ControlDoser//​.SetEmptyTot=1''​ и ожидание ''//​ControlDoser//​.IsEmptyTot==1'',​ после чего ''​Status=LOADING''​.
  
 Если контрольный дозатор не используется,​ то сразу ''​Status=LOADING''​. Если контрольный дозатор не используется,​ то сразу ''​Status=LOADING''​.
  
-=== LOADING ===+=== 2 - LOADING ===
 Загрузка и взвешивание. Ожидание по всем используемым компонентам ''​Comp*.Status==FINISHED''​ (используемые компоненты - это те, у которых ''​WeightReq > 0''​),​ после чего ''​Status=COMMITING''​. Загрузка и взвешивание. Ожидание по всем используемым компонентам ''​Comp*.Status==FINISHED''​ (используемые компоненты - это те, у которых ''​WeightReq > 0''​),​ после чего ''​Status=COMMITING''​.
  
-=== COMMITTING ===+=== 3 - COMMITTING ===
 Фиксация контрольного веса и запись весового цикла в базу данных. Если извне прописать в ''​Commit=1'',​ то выполняется запись цикла и ''​Status=UNLOADING''​. При этом, если используется контрольный дозатор,​ то запись извне в ''​Commit=1''​ разрешена только при ''//​ControlDoser//​.Stable=1''​. Фиксация контрольного веса и запись весового цикла в базу данных. Если извне прописать в ''​Commit=1'',​ то выполняется запись цикла и ''​Status=UNLOADING''​. При этом, если используется контрольный дозатор,​ то запись извне в ''​Commit=1''​ разрешена только при ''//​ControlDoser//​.Stable=1''​.
  
-=== UNLOADING ===+=== 4 - UNLOADING ===
 Разгрузка. Выполняется запись ''​UnloadStart=1''​ и ожидание записи извне в ''​UnloadFinished=1''​. Если ''​UnloadTimerCnt < UnloadTimerSet'',​ то ''​UnloadFinished''​ считается ''​==0''​. После появления в ''​UnloadFinished==1''​ сбрасывается зафиксированный вес и ''​Status=IDLE''​. Разгрузка. Выполняется запись ''​UnloadStart=1''​ и ожидание записи извне в ''​UnloadFinished=1''​. Если ''​UnloadTimerCnt < UnloadTimerSet'',​ то ''​UnloadFinished''​ считается ''​==0''​. После появления в ''​UnloadFinished==1''​ сбрасывается зафиксированный вес и ''​Status=IDLE''​.
  
Строка 132: Строка 135:
 Значения тега ''​Comp0.Status'':​ Значения тега ''​Comp0.Status'':​
  
-=== IDLE ===+=== 0 - IDLE ===
 Ожидание. Если извне прописать в ''​Comp0.Run=1''​ и при этом по все компоненты с таким же ''​DoserId''​ находятся в ожидании,​ и при статусе линии ''​Status=LOADING'',​ и компонент используется (''​Comp0.WeightReq>​0''​),​ то ''​Comp0.Status=PREPARING''​. Ожидание. Если извне прописать в ''​Comp0.Run=1''​ и при этом по все компоненты с таким же ''​DoserId''​ находятся в ожидании,​ и при статусе линии ''​Status=LOADING'',​ и компонент используется (''​Comp0.WeightReq>​0''​),​ то ''​Comp0.Status=PREPARING''​.
  
-=== PREPARING ===+=== 1 - PREPARING ===
 Подготовка. ​ Подготовка. ​
   * Выполнить:​   * Выполнить:​
Строка 150: Строка 153:
  
  
-=== LOADING ===+=== 2 - LOADING ===
 Загрузка и взвешивание. ​ Загрузка и взвешивание. ​
   * Ожидание: ​   * Ожидание: ​
Строка 163: Строка 166:
  
  
-=== FINISHED === +=== 3 - FINISHED === 
-Взвешивание выполнено.+Взвешивание выполнено. Ожидание полного завершения цикла на линии, после чего ''​Comp0.Status=0''​.
  
doc/jroboplc/modules/kkmansvr.1645536500.txt.gz · Последние изменения: 2022/02/22 16:28 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0