Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:jroboplc:modules:kkormsvr [2020/10/12 20:51]
denis [Основные отличия от kkormrcpsvr2.exe]
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''​ без прерывания выполнения задачи дозирования. ​
Строка 115: Строка 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    |      |Заданный вес по рецепту. ​   |
Строка 126: Строка 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    |      |  ---\\--- ​ |
Строка 137: Строка 139:
  
 [[doc:​jroboplc:​modules:​kkormsvr_old_tags]] [[doc:​jroboplc:​modules:​kkormsvr_old_tags]]
 +
 +
 +===== Группы =====
 +
 +Процесс приготовления комбикормовой смеси может происходить в несколько этапов.
 +
 +Например,​ некоторые добавки могут предварительно дозироваться и смешиваться (в предсмесителе) отдельно от основной массы ингредиентов. Затем они выгружаются в основной смеситель одновременно с разгрузкой дозаторов,​ дозирующих основные ингредиенты.
 +
 +В таком случае для ускорения цикла приготовления комбикормовой смеси целесообразно разрешить дозаторам,​ разгрузка которых происходит в предсмеситель,​ набирать продукт заранее. Т.е. если линия выполняет первый цикл дозирования - дозаторы основного смесителя выполняют первый цикл, то дозаторы предсмесителя могут выполнять первый и (если все они выгрузились) второй цикл дозирования.
 +
 +Параметр ''​grouplevel''​ определяет на сколько циклов дозирования группа может «обгонять» цикл дозирования линии.
 +
 +В группу целесообразно объединять ДОЗАТОРЫ ОДНОВРЕМЕННО РАЗГРУЖАЕМЫЕ В ОДИН СМЕСИТЕЛЬ.
 +
 +Для дозаторов группы которая заканчивает процесс приготовления комбикормовой смеси (или если группа одна) параметр ''​grouplevel''​ должен быть равен 0.
  
  
Строка 147: Строка 164:
  
 ===== Переходный импорт данных ===== ===== Переходный импорт данных =====
-Для перехода со старого архиватора ​wessvr.exe ​на новый требуется перенести данные из старой базы данных в новую, создаваемою автоматически модулем ''​wessvr''​. Описание действий по шагам:+Для перехода со старого архиватора ​''​kkormrcpsvr2'' ​на новый требуется перенести данные из старой базы данных в новую, создаваемою автоматически модулем ''​kkormsvr''​. Описание действий по шагам:
   * создать два модуля ''​database''​ для подключения к новой (не существующей) и старой (существующей) базам данных.<​code yaml>   * создать два модуля ''​database''​ для подключения к новой (не существующей) и старой (существующей) базам данных.<​code yaml>
 plugin.database:​ plugin.database:​
doc/jroboplc/modules/kkormsvr.1602525062.txt.gz · Последние изменения: 2020/10/12 20:51 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0