Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
doc:jroboplc:modules:wessvr [2022/02/05 11:29] denis |
doc:jroboplc:modules:wessvr [2025/05/12 09:37] (текущий) vitaly [Переходный импорт данных] |
||
---|---|---|---|
Строка 9: | Строка 9: | ||
|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]] | | ||
- | |Akkont 908 |akkont 908 | - | | ||
- | |Atara |atara | - | | ||
- | |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 устройства. | ||
+ | * Автоматическое создание базы данных при ее отсутствии. | ||
Строка 45: | Строка 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 устройства. | ||
- | * Автоматическое создание базы данных при ее отсутствии. | ||
Строка 82: | Строка 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. Если данных параметр используется, то умолчание перекрывается новой конфиграцией | | ||
Строка 143: | Строка 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 | - | - | - | - | - | | ||
Строка 257: | Строка 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>''. Пример использования: | ||
Строка 364: | Строка 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. | ||
+ | |||