Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:jroboplc:modules:wessvr [2022/02/05 11:27]
denis
doc:jroboplc:modules:wessvr [2025/05/12 09:37] (текущий)
vitaly [Переходный импорт данных]
Строка 7: Строка 7:
 ^Название в wesclient^Название в БД^Периферийный модуль^ ^Название в wesclient^Название в БД^Периферийный модуль^
 |**Standard** ​    ​|standard ​  ​|[[doc:​jroboplc:​modules:​peripherial:​wessvr_adapter]] ​ | |**Standard** ​    ​|standard ​  ​|[[doc:​jroboplc:​modules:​peripherial:​wessvr_adapter]] ​ |
-|Akkont 908       ​|akkont 908     ​| ​ -  | 
-|Atara ​           |atara ​         |  -  | 
 |Gelios ​          ​|gelios ​        ​|[[doc:​jroboplc:​modules:​peripherial:​promauto_gelios_flow]] ​ | |Gelios ​          ​|gelios ​        ​|[[doc:​jroboplc:​modules:​peripherial:​promauto_gelios_flow]] ​ |
 |Gelios.Maslo2v2 ​ |gelios.maslo2v2|[[doc:​jroboplc:​modules:​peripherial:​promauto_gelios_maslo2v2]] ​ | |Gelios.Maslo2v2 ​ |gelios.maslo2v2|[[doc:​jroboplc:​modules:​peripherial:​promauto_gelios_maslo2v2]] ​ |
-|TenzoM_TB009 ​    ​|tenzom_tb009 ​  ​|[[doc:​jroboplc:​modules:​peripherial:​tenzom_tb09]] ​ | 
-|  -              |mercury ​       |[[doc:​jroboplc:​modules:​peripherial:​mercury_m230]] ​ | 
  
 +Рекоммендуется во всех случаях использовать универсальный модуль [[doc:​jroboplc:​modules:​peripherial:​wessvr_adapter]].
  
  
 +В системе может быть более одного одновременно работающих модулей wessvr с разными svrnamе. Один модуль может содержать несколько устройств. Устройства - это весы и прочи
 +ее оборудование,​ данные которых подлежат архивации. Список устройств и их конфигурация содержится в базе данных (таблица ''​MODULES''​).
 +
 +Как и в старом wessvr значения счетчиков накапливаются в оперативных таблицах ''​MAIN''​ и ''​MAINHR'',​ после чего сбрасываются в архивы STAT и STATHR по одному из событий:​
 +    * наступление нового периода (смена или час)
 +    * изменение в таблице MODULES одного из значений IDPROD, IDBRIG или IDBATCH.
 +    * откат счетчиков
 +
 +===== Основные отличия от старого wessvr =====
 +
 +  * Уменьшено количество транзакций на цикл. Выборочно устанавливается режим одна транзакция на цикл, либо подтверждение после обработки каждого устройство (параметр ''​singleTransaction''​). ​
 +  * Отображение отката счетчиков в архивах ''​STAT''​ и ''​STATHR''​ отдельной записью и пометкой в поле ''​SETBACK''​. Пример ситуации:<​code>​
 +Диапазон счетчика веса = 1000. 
 +Значение SWEND откатывается с 950 на 50.
 +Расчет веса при откате:​ 100 = 1000 - 950 + 50.
 +
 +|  SWBEG| ​ SWEND| ​   WES|SETBACK|
 ++-------+-------+-------+-------+
 +|    750|    950|    200|      0|
 +|    950|     ​50| ​   100|      1| 
 +|     ​50| ​   450|    400|      0|
 +</​code>​Реальный пример:<​html><​br></​html>​{{:​doc:​jroboplc:​modules:​wessvr_setback_case.png?​direct&​200|}}
 +
 +  * Настраиваемые таблицы архивирования. Помимо стандартных MAIN/STAT и MAINHR/​STATHR можно сделать архивацию через любое количество минут.
 +  * В ''​MAIN''​ы добавлено поле ''​PERIOD''​.
 +  * Возможность отключать передачу значения в WesSvrState устройства.
 +  * Автоматическое создание базы данных при ее отсутствии.
 +
 +
 +===== Конфигурация =====
  
 <code yaml> <code yaml>
Строка 44: Строка 71:
 </​code>​ </​code>​
  
- 
-В системе может быть более одного одновременно работющих модулей wessvr с разными svrnamе. Один модуль может содержать несколько устройств. Устройства - это весы и прочи 
-ее оборудование,​ данные которых подлежат архивации. Список устройств и их конфигурация содержится в базе данных (таблица ''​MODULES''​). 
- 
-Как и в старом wessvr значения счетчиков накапливаются в оперативных таблицах ''​MAIN''​ и ''​MAINHR'',​ после чего сбрасываются в архивы STAT и STATHR по одному из событий:​ 
-    * наступление нового периода (смена или час) 
-    * изменение в таблице MODULES одного из значений IDPROD, IDBRIG или IDBATCH. 
-    * откат счетчиков 
- 
-===== Основные отличия от старого wessvr ===== 
- 
-  * Уменьшено количество транзакций на цикл. Выборочно устанавливается режим одна транзакция на цикл, либо подтверждение после обработки каждого устройство (параметр ''​singleTransaction''​). ​ 
-  * Отображение отката счетчиков в архивах ''​STAT''​ и ''​STATHR''​ отдельной записью и пометкой в поле ''​SETBACK''​. Пример ситуации:<​code>​ 
-Диапазон счетчика веса = 1000.  
-Значение SWEND откатывается с 950 на 50. 
-Расчет веса при откате:​ 100 = 1000 - 950 + 50. 
- 
-|  SWBEG| ​ SWEND| ​   WES|SETBACK| 
-+-------+-------+-------+-------+ 
-|    750|    950|    200|      0| 
-|    950|     ​50| ​   100|      1|  
-|     ​50| ​   450|    400|      0| 
-</​code>​Реальный пример:<​html><​br></​html>​{{:​doc:​jroboplc:​modules:​wessvr_setback_case.png?​direct&​200|}} 
- 
-  * Настраиваемые таблицы архивирования. Помимо стандартных MAIN/STAT и MAINHR/​STATHR можно сделать архивацию через любое количество минут. 
-  * В ''​MAIN''​ы добавлено поле ''​PERIOD''​. 
-  * Возможность отключать передачу значения в WesSvrState устройства. 
-  * Автоматическое создание базы данных при ее отсутствии. 
  
  
Строка 81: Строка 80:
 |**singleTransaction**| ​ ''​on'' ​ |Одна транзакция на цикл ''​on''​ или подтверждение после каждого устройства ''​off'' ​ | |**singleTransaction**| ​ ''​on'' ​ |Одна транзакция на цикл ''​on''​ или подтверждение после каждого устройства ''​off'' ​ |
 |**wesSvrStateEnabled**| ​ ''​on'' ​ |Разрешение записи в теги WesSvrState устройств ​ | |**wesSvrStateEnabled**| ​ ''​on'' ​ |Разрешение записи в теги WesSvrState устройств ​ |
 +|**ignoreZeroStat**| ​ ''​off'' ​ |Игнорировать нулевые записи в таблицы типа Stat при изменении у модуля ''​IDPROD'',​ ''​IDBRIG'',​ ''​IDBATCH''​. Нулевые записи - те у которых вес и кол-во навесок равны нулю ​ |
 |**<​del>​tagsources</​del>​**| ​ '''' ​ |//​Deprecated! Определения модулей источников тегов полностью автоматизировано.//​ \\ <​del>​Список модулей,​ предоставляющих теги устройств. Требуется в случае,​ если архивируемое устройство не находится непосредственно в системе,​ а импортируется посредством другого модуля,​ например,​ [[doc:​jroboplc:​modules:​rpclient]]</​del> ​ | |**<​del>​tagsources</​del>​**| ​ '''' ​ |//​Deprecated! Определения модулей источников тегов полностью автоматизировано.//​ \\ <​del>​Список модулей,​ предоставляющих теги устройств. Требуется в случае,​ если архивируемое устройство не находится непосредственно в системе,​ а импортируется посредством другого модуля,​ например,​ [[doc:​jroboplc:​modules:​rpclient]]</​del> ​ |
 |**arctables**| ​ '''' ​ |Список параметров таблиц архивирования. По умолчанию настроены стандартные для старого wessvr пары MAIN/STAT и MAINHR/​STATHR. Если данных параметр используется,​ то умолчание перекрывается новой конфиграцией ​ | |**arctables**| ​ '''' ​ |Список параметров таблиц архивирования. По умолчанию настроены стандартные для старого wessvr пары MAIN/STAT и MAINHR/​STATHR. Если данных параметр используется,​ то умолчание перекрывается новой конфиграцией ​ |
Строка 142: Строка 142:
     * 99 - старт архивации     * 99 - старт архивации
     * 100 - архивация отключена     * 100 - архивация отключена
- 
- 
-^Модуль ​     ^STATUS1 ​ ^STATUS2 ​ ^STATUS3 ​ ^STATUS4 ​ ^STATUS5 ​ ^ 
-|akkont 908     ​| ​ -  |  StageNum ​ |  -  |  -  |  -  | 
-|atara ​         |  -  |  -  |  -  |  -  |  -  | 
-|gelios ​        ​| ​ State  |  ErrorCode ​ |  -  |  -  |  -  | 
-|gelios.dozkkorm| ​ State  |  ErrorCode ​ |  -  |  -  |  -  | 
-|gelios.maslo2v2| ​ State  |  ErrorCode ​ |  StopCode ​ |  -  |  -  | 
-|mercury ​       |  -  |  -  |  -  |  -  |  -  | 
-|tenzom_tb009 ​  ​| ​ -  |  -  |  -  |  -  |  -  | 
  
  
Строка 256: Строка 246:
 Другой способ перехода - использовать старую базу. При этом потребуется добавить поле ''​PERIOD''​ типа ''​integer''​ в таблицы ''​MAIN''​ и ''​MAINHR''​. Другой способ перехода - использовать старую базу. При этом потребуется добавить поле ''​PERIOD''​ типа ''​integer''​ в таблицы ''​MAIN''​ и ''​MAINHR''​.
  
 +Перенос нестандартной таблицы для энергоучета
 +<​code>​
 +wessvr:​import dbold uvkrec_stat stat300
 +</​code>​
 ===== Удаление старых STAT-записей ===== ===== Удаление старых STAT-записей =====
 В архивных таблицах ''​STAT''​ и ''​STATHR''​ данные сохраняются без циклической перезаписи,​ и таким образом постоянно накапливаются. Для удаления ненужных данных используется команда ''​w:​sweep <​year>''​. Пример использования:​ В архивных таблицах ''​STAT''​ и ''​STATHR''​ данные сохраняются без циклической перезаписи,​ и таким образом постоянно накапливаются. Для удаления ненужных данных используется команда ''​w:​sweep <​year>''​. Пример использования:​
Строка 363: Строка 357:
     OUTWES0 double precision, ... OUTWES9 double precision)     OUTWES0 double precision, ... OUTWES9 double precision)
 </​code>​ </​code>​
 +
 +
 +==== Предотвращение миллионов при физической замене устройства ====
 +Иногда работающий в учете весовой блок выходит из строя, и на его место ставят другой блок с таким же сетевым адресов,​ но с совершенно другими значениями суммарных счетчиков. Как результат,​ через некоторое время в отчетах появляются некорректные данные - "​миллионы"​. ​
 +
 +Данную ситуацию можно предотвратить,​ если у периферийного устройства,​ есть серийный (уникальный) номер, и если он меняется в процессе работы,​ то ''​wessvr''​ расценивает это как замену устройства,​ сбрасывает накопленные данные в STAT и меняет состояние текущих счетчиков в MAIN. Серийный номер отслеживается в теге ''​SYSTEM.SN''​ типа ''​STRING''​ в следующих устройствах:​
 +
 +  * [[doc:​jroboplc:​modules:​peripherial:​wessvr_adapter]]
 +  * [[doc:​jroboplc:​modules:​peripherial:​promauto_gelios_flow]]
 +
 +
 +Помимо серийного номера в данных устройствах отслеживается тег ''​Replacement''​ типа ''​BOOL'',​ при установке которого ''​wessvr''​ действует аналогичным образом,​ как при изменении серийного номера.
 +
 +Записи STAT, которые образовались в результате данной ситуации,​ имеют в поле ''​SETBACK''​ значение 2.
 +
  
doc/jroboplc/modules/wessvr.1644049649.txt.gz · Последние изменения: 2022/02/05 11:27 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0