Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:jroboplc:modules:kkormsvr [2020/10/13 11:01]
denis [Теги]
doc:jroboplc:modules:kkormsvr [2023/02/20 18:55] (текущий)
denis [Теги]
Строка 8: Строка 8:
  
 ===== Основные отличия от kkormrcpsvr2.exe ===== ===== Основные отличия от kkormrcpsvr2.exe =====
-  * В ситуации когда на линии несколько дозаторов,​ а по рецепту используются не все, то в неиспользуемые дозаторы не посылается нулевой рецепт,​ как это делал ''​kkormrcpsvr2''​. Также ''​Kkormsvr''​ для выполнения задачи не требует наличия связи с неиспользуемыми дозаторами. 
   * Опрос дозаторов и управление процессом дозирования выполняют независимые друг от друга модули. Добавление нового типа дозатора в ''​peripherial''​ не требует изменения программного кода модуля ''​kkormsvr''​.   * Опрос дозаторов и управление процессом дозирования выполняют независимые друг от друга модули. Добавление нового типа дозатора в ''​peripherial''​ не требует изменения программного кода модуля ''​kkormsvr''​.
   * Возможность размещаться как на сервере (старый вариант),​ так и в составе ПЛК с использованием сервера в качестве удаленного СУБД. Работа на одной аппаратной платформе с ПЛК позволяет отказаться от дискретных сигналов управления дозаторами без ущерба общей скорости дозирования.   * Возможность размещаться как на сервере (старый вариант),​ так и в составе ПЛК с использованием сервера в качестве удаленного СУБД. Работа на одной аппаратной платформе с ПЛК позволяет отказаться от дискретных сигналов управления дозаторами без ущерба общей скорости дозирования.
   * Хранение оперативных данных в базе данных,​ т.е. там же где и хранятся все остальные данные. Старый вариант использовал для сохранения оперативных данных обычные файлы, что в случае сбоя может привести к рассинхронизации. Другой минус старого варианта при использовании на борту ПЛК - это частые операции записи в файл, что также является потенциально опасным.   * Хранение оперативных данных в базе данных,​ т.е. там же где и хранятся все остальные данные. Старый вариант использовал для сохранения оперативных данных обычные файлы, что в случае сбоя может привести к рассинхронизации. Другой минус старого варианта при использовании на борту ПЛК - это частые операции записи в файл, что также является потенциально опасным.
 +  * В ситуации когда на линии несколько дозаторов,​ а по рецепту используются не все, то в неиспользуемые дозаторы не посылается нулевой рецепт,​ как это делал ''​kkormrcpsvr2''​. Также ''​Kkormsvr''​ для выполнения задачи не требует наличия связи с неиспользуемыми дозаторами.
   * Работа одной транзакцией на цикл, что гарантирует целостность данных и положительно влияет на производительность приложения.   * Работа одной транзакцией на цикл, что гарантирует целостность данных и положительно влияет на производительность приложения.
   * Возможность отключения,​ включения и перезагрузки ''​kkormsvr''​ без прерывания выполнения задачи дозирования. ​   * Возможность отключения,​ включения и перезагрузки ''​kkormsvr''​ без прерывания выполнения задачи дозирования. ​
Строка 109: Строка 109:
 |kksvr.d1.CurProduct  ​       |  STRING ​ |      |название текущего загружаемого продукта ​   |  |kksvr.d1.CurProduct  ​       |  STRING ​ |      |название текущего загружаемого продукта ​   | 
 |kksvr.d1.Error  ​       |  INT     ​| ​     |Текущая ошибка работы с дозатором (не путать с кодом ошибки самого дозатора):<​html><​br>​ |kksvr.d1.Error  ​       |  INT     ​| ​     |Текущая ошибка работы с дозатором (не путать с кодом ошибки самого дозатора):<​html><​br>​
-|kksvr.d1.ReqWeightZero  ​       |  INT     ​| ​     | =1, если суммарный заданный вес равен 0, иначе =0    | 
 0 - ошибки нет<​br>​ 0 - ошибки нет<​br>​
 1 - LINK - теги дозатора не найдены (проверить,​ есть ли теги, правильность параметра ''​bind''​)<​br>​ 1 - LINK - теги дозатора не найдены (проверить,​ есть ли теги, правильность параметра ''​bind''​)<​br>​
Строка 116: Строка 115:
 4 - TASKDIFFER - заданный вес в дозаторе отличается от заданного по рецепту 4 - TASKDIFFER - заданный вес в дозаторе отличается от заданного по рецепту
 </​html> ​   | </​html> ​   |
 +|kksvr.d1.ReqWeightZero  ​       |  INT     ​| ​     | =1, если суммарный заданный вес равен нулю, иначе =0    |
 |kksvr.d1.Product1 | ​ STRING ​ |      |Название продукта,​ заданного по рецепту. ​   | |kksvr.d1.Product1 | ​ STRING ​ |      |Название продукта,​ заданного по рецепту. ​   |
 |kksvr.d1.ReqWeight1 | ​ LONG    |      |Заданный вес по рецепту. ​   | |kksvr.d1.ReqWeight1 | ​ LONG    |      |Заданный вес по рецепту. ​   |
Строка 127: Строка 127:
 |kksvr.d2.CurProduct  ​       |  STRING ​ |      |  ---\\--- ​ | |kksvr.d2.CurProduct  ​       |  STRING ​ |      |  ---\\--- ​ |
 |kksvr.d2.Error  ​       |  INT     ​| ​     |  ---\\--- ​ | |kksvr.d2.Error  ​       |  INT     ​| ​     |  ---\\--- ​ |
 +|kksvr.d1.ReqWeightZero  ​       |  INT     ​| ​     |  ---\\--- ​ |
 |kksvr.d2.Product1 | ​ STRING ​ |      |  ---\\--- ​ | |kksvr.d2.Product1 | ​ STRING ​ |      |  ---\\--- ​ |
 |kksvr.d2.ReqWeight1 | ​ LONG    |      |  ---\\--- ​ | |kksvr.d2.ReqWeight1 | ​ LONG    |      |  ---\\--- ​ |
Строка 138: Строка 139:
  
 [[doc:​jroboplc:​modules:​kkormsvr_old_tags]] [[doc:​jroboplc:​modules:​kkormsvr_old_tags]]
 +
 +
 +===== Группы =====
 +
 +Процесс приготовления комбикормовой смеси может происходить в несколько этапов.
 +
 +Например,​ некоторые добавки могут предварительно дозироваться и смешиваться (в предсмесителе) отдельно от основной массы ингредиентов. Затем они выгружаются в основной смеситель одновременно с разгрузкой дозаторов,​ дозирующих основные ингредиенты.
 +
 +В таком случае для ускорения цикла приготовления комбикормовой смеси целесообразно разрешить дозаторам,​ разгрузка которых происходит в предсмеситель,​ набирать продукт заранее. Т.е. если линия выполняет первый цикл дозирования - дозаторы основного смесителя выполняют первый цикл, то дозаторы предсмесителя могут выполнять первый и (если все они выгрузились) второй цикл дозирования.
 +
 +Параметр ''​grouplevel''​ определяет на сколько циклов дозирования группа может «обгонять» цикл дозирования линии.
 +
 +В группу целесообразно объединять ДОЗАТОРЫ ОДНОВРЕМЕННО РАЗГРУЖАЕМЫЕ В ОДИН СМЕСИТЕЛЬ.
 +
 +Для дозаторов группы которая заканчивает процесс приготовления комбикормовой смеси (или если группа одна) параметр ''​grouplevel''​ должен быть равен 0.
  
  
doc/jroboplc/modules/kkormsvr.1602576096.txt.gz · Последние изменения: 2020/10/13 11:01 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0