====== wessvr.adapter ====== Модуль-адаптер для для связывания периферийного модуля источника, имеющего счетчики, с устройством ''Standard'' модуля [[doc:jroboplc:modules: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'' | |**outputPeriodS**| ''600'' |Период в секундах для расчета среднего значения производительности ''Output'' по ''SumWeight''. Расчет выполняется только, если не определен тег ''Output'' | |**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: SumWeightHigh, SumWeightLow По мере необходимости возможна разработка и дополнение вариантов сложных тегов. ===== Определение тегов по умолчанию ===== Автоматически в карту тегов добавляются следующие теги: ^ Адаптер ^ Источник ^ |SYSTEM.ErrorFlag |SYSTEM.ErrorFlag | |SYSTEM.UpdateTime |SYSTEM.UpdateTime | Данные теги прописывать не нужно. ===== Тег WesSvrState ===== Тег ''WesSvrState'' обнуляется через 10 секунд, если в него не производить запись. ===== Crc32 ===== Расчет значения выполняется по алгоритму Crc32. Исходный для расчета буфер данных формируется из 8-байтного представления следующих тегов в приведенной последовательности, указанной в разделе [[doc:jroboplc:modules:peripherial:wessvr_adapter#теги]]. ===== Теги ===== Список всех тегов модуля: 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