Это старая версия документа.
Содержание
wessvr.adapter
Модуль-адаптер для для связывания периферийного модуля источника, имеющего счетчики, с устройством Standard модуля wessvr.
Основная задача адаптера транслировать значения тегов источника в свои теги, имена которых понятны устройству Standard модуля wessvr. Определение (сопоставление) имен тегов задается в карте тегов tags, где обязательно должен быть определен хотя бы один тег счетчиков - SumWeight и/или SumNum. Остальные теги определяются по необходимости. Если тег не определен, то используется значение 0.
plugin.peripherial: module.WFMAN: type: wessvr.adapter module: pfman tags: SumWeight: cntWeight SumNum: cntNumHigh, cntNumLow # CurWeight: # LastWeight: Неиспользуемые теги определять не обязательно # LastTime: Status1: mode Status2: err # Status3: # Status4: # Status5: Output: output module.pfman: portnum: 1 netaddr: 2 type: modbus tags: - name: mode address: 0 - name: err address: 1 - name: output address: 5 - name: cntNumHigh address: 6 - name: cntNumLow address: 7 - name: cntWeight address: 8 type: uint32 plugin.task: module.task: period: 1000 modules: - pfman - wfman
Параметры
| Параметр | Умолчание | Описание |
|---|---|---|
| type | | wessvr.adapter |
| module | | Имя модуля источника |
| MaxWeight | 0x1_0000_0000 | Размер счетчика веса (макс.возможное значение + 1). Если 0, то счетчик безразмерный. Безразмерный счетчик используется в случае, если счетчик устройства сбрасываемый. Еще раз обратить внимание на то, что это РАЗМЕР, а не максимально возможное значение счетчика (название тега не совсем удачное и может ввести в заблуждение) |
| MaxNum | 0x1_0000_0000 | Аналогично MaxWeight |
| Mul | 1 | Множитель тега SumWeight |
| useNowForUpdateTime | off | Использовать текущее время для тега SYSTEM.UpdateTime. Необходимо в том случае, когда источник не имеет тега SYSTEM.UpdateTime |
| tags | | Карта тегов:
|
Определение тегов
Для определения тега нужно указать в качестве значения имя одного из тегов, который содержится в модуле источнике. Также в значении можно указать тег любого модуля, а не только того, что прописан в качестве модуля источника. Для этого значение имени тега записывается через двоеточие в формате:
<имя модуля>:<имя тега>
Пример:
module.WFMAN: type: wessvr.adapter module: pfman tags: SumWeight: scrpg:pid1.SumVolume Output: scrpg:pid1.FlowInpMh
Определение сложных тегов
В модуле источнике значение веса, счетчика и т.п. может состоять из двух тегов, каждый из которых есть двухбайтовое слово от 0 до 65535. В таком случае нужно в качестве значения прописать оба тега модуля источника через запятую, причем первым должен быть старший тег.
Пример:
module.WFMAN: type: wessvr.adapter module: pfman tags: SumWeight: SumWeightHihg, SumWeightLow
По мере необходимости возможна разработка и дополнение вариантов сложных тегов.
Определение тегов по умолчанию
Автоматически в карту тегов добавляются следующие теги:
| Адаптер | Источник |
|---|---|
| SYSTEM.ErrorFlag | SYSTEM.ErrorFlag |
| SYSTEM.UpdateTime | SYSTEM.UpdateTime |
Данные теги прописывать не нужно.
Тег WesSvrState
Тег WesSvrState обнуляется через 10 секунд, если в него не производить запись.
Crc32
Расчет значения выполняется по алгоритму Crc32. Исходный для расчета буфер данных формируется из 8-байтного представления следующих тегов в приведенной последовательности, указанной в разделе теги.
Теги
Список всех тегов модуля:
Crc32 LONG MaxNum LONG MaxWeight LONG Mul INT WesSvrState INT --- crc32 begin --- SumWeight LONG SumNum LONG CurWeight LONG LastWeight LONG LastTime LONG Output INT Status1 INT Status2 INT Status3 INT Status4 INT Status5 INT SYSTEM.ErrorFlag BOOL --- crc32 end --- SYSTEM.UpdateTime INT