Это старая версия документа.
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/inc/parser/handler.php on line 1458
Warning: Declaration of syntax_plugin_tablecalc::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/tablecalc/syntax.php on line 41
Warning: Declaration of syntax_plugin_tablecalc::render($mode, &$renderer, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/tablecalc/syntax.php on line 72
Warning: Declaration of syntax_plugin_offline::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/offline/syntax.php on line 60
Warning: Declaration of syntax_plugin_offline::render($format, &$renderer, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/lib/plugins/offline/syntax.php on line 67
Warning: preg_match(): Compilation failed: invalid range in character class at offset 3416 in /home/users/p/prom-auto/domains/prom-auto.ru/wiki/inc/parser/lexer.php on line 118
====== wessvr.adapter ====== Модуль-адаптер для для связывания периферийного модуля источника, имеющего счетчики, с устройством ''Standard'' модуля [[doc:jroboplc:modules:wessvr]]. <note important> Требует включения в одну задачу с источником (периферийным модулем, имеющим счетчики) последовательно друг за другом: сначала источник, затем адаптер. </note> Основная задача адаптера транслировать значения тегов источника в свои теги, имена которых понятны устройству ''Standard'' модуля ''wessvr''. Определение (сопоставление) имен тегов задается в карте тегов ''tags'', где обязательно должен быть определен хотя бы один тег счетчиков - ''SumWeight'' и/или ''SumNum''. Остальные теги определяются по необходимости. Если тег не определен, то используется значение 0. <code yaml> 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 </code> ===== Параметры ===== ^ Параметр ^ Умолчание ^ Описание ^ |**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**| '''' |Карта тегов:<html><br><ul> <li>SumWeight</li> <li>SumNum</li> <li>CurWeight</li> <li>LastWeight</li> <li>LastTime</li> <li>Status1</li> <li>Status2</li> <li>Status3</li> <li>Status4</li> <li>Status5</li> <li>Output</li> </ul></html> См. "Определение тегов" | ===== Определение тегов ===== Для определения тега нужно указать в качестве значения имя одного из тегов, который содержится в модуле источнике. Также в значении можно указать тег любого модуля, а не только того, что прописан в качестве модуля источника. Для этого значение имени тега записывается через двоеточие в формате: <имя модуля>:<имя тега> Пример: <code yaml> module.WFMAN: type: wessvr.adapter module: pfman tags: SumWeight: scrpg:pid1.SumVolume Output: scrpg:pid1.FlowInpMh </code> ===== Определение сложных тегов ===== В модуле источнике значение веса, счетчика и т.п. может состоять из двух тегов, каждый из которых есть двухбайтовое слово от 0 до 65535. В таком случае нужно в качестве значения прописать оба тега модуля источника через запятую, причем первым должен быть старший тег. Пример: <code yaml> WFMAN: type: wessvr.adapter module: pfman tags: SumWeight: SumWeightHihg, SumWeightLow </code> По мере необходимости возможна разработка и дополнение вариантов сложных тегов. ===== Определение тегов по умолчанию ===== Автоматически в карту тегов добавляются следующие теги: ^ Адаптер ^ Источник ^ |SYSTEM.ErrorFlag |SYSTEM.ErrorFlag | |SYSTEM.UpdateTime |SYSTEM.UpdateTime | Данные теги прописывать не нужно. ===== Тег WesSvrState ===== Тег ''WesSvrState'' обнуляется через 10 секунд, если в него не производить запись. ===== Crc32 ===== Расчет значения выполняется по алгоритму Crc32. Исходный для расчета буфер данных формируется из 8-байтного представления следующих тегов в приведенной последовательности, указанной в разделе [[doc:jroboplc:modules:peripherial:wessvr_adapter#теги]]. ===== Теги ===== Список всех тегов модуля: <code> 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 </code>