Это старая версия документа.
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
====== peripherial ====== Модули ввода вывода, работающие через последовательный порт. ===== promauto.conf.yml ===== <code yaml> module.plci1: netaddr: 1 portnum: 1 enable: on emulate: off retrial: 3 type: promauto.pdio descr: my descr </code> ===== Общие настройки ===== |**portnum** | ''0'' |номер последовательного порта, который должен быть заранее определен (см. [[doc:jroboplc:modules:serial]]) | |**retrial** | ''1'' |кол-во повторных запросов при ошибке связи | |**emulate** | ''off'' |on/off - эмуляция работы | |**netaddr** | ''0'' |сетевой адрес | |**descr** | |описание (произвольный текст) | |**systag** | ''SYSTEM.'' |префикс для системных тегов | |**type** | |тип устройства | |**logerror** | ''0'' |количество лог записей, производимых при ошибках связи. Данный параметр также можно менять одноименной командой модуля| |**proxy** | |имя модуля-посредника, предоставляющего значения тегов | |**delay_ms** | ''0'' |задержка перед отправкой запроса, мс | |**chmap** | ''off'' |разрешение создания тегов ''CHANNELMAP'' | |**chmap.name** | ''f'' |короткое имя модуля, используемое в ''CHANNELMAP''. Если не указано, то используется имя модуля | |**chmap.value** | ''f'' |предопределенный вручную список тегов в ''CHANNELMAP'' | ===== Карта адресов каналов CHANNELMAP ===== Каждый периферийный модуль содержит в себе множество тегов. В некоторых ситуациях пользователю необходимо вводить имя тега вручную, например, чтобы прописать адрес в канал в [[doc:jroboplc:modules:roboplant]]. Чтобы облегчить пользователю процесс установки канала и исключить необходимость помнить имена тегов полностью, нужно предоставить пользователю возможность выбора тега из списка, содержащего только предназначенные для каналов теги. Данную задачу решает ''CHANNELMAP''. ''CHANNELMAP'' - это карта наиболее подходящих для установки в каналы тегов, сопоставляющая полные имена тегов с их короткими вариантами (адресами), и используемая в программах визуализации (hmi-клиентах). Другими словами, ''CHANNELMAP'' только подсказывает hmi-клиенту, какие теги модуля могут быть адресами каналов, а также способ их записи, удобный для пользователя. В тоже время ''CHANNELMAP'' не ограничивает hmi-клиент в выборе любого тега в качестве адреса канала, если это ему необходимо. При включенном параметре ''chmap'' некоторые периферийные модули автоматически создают карту часто используемых тегов в виде строкового значения в одном или нескольких тегах ''SYSTEM.CHANNELMAP.N'' (где N значение от 0), например: <code> run>l owen1 owen1:SYSTEM.CHANNELMAP.0 STRING = owen1:1 inp00:0 cnt00:cnt0 inp01:1 cnt01:cnt1 inp02:2 cnt02:cnt2 inp03:3 cnt03:cnt3 inp04:4 cnt04:cnt4 inp05:5 cnt05:cnt5 inp06:6 cnt06:cnt6 inp07:7 cnt07:cnt7 inp08:8 cnt08:cnt8 inp09:9 cnt09:cnt9 inp10:10 cnt10 inp11:11 cnt11 inp12:12 cnt12 inp13:13 cnt13 inp14:14 cnt14 inp15:15 cnt15 </code> Если значение строки слишком большое, то тегов ''SYSTEM.CHANNELMAP'' будет создано несколько. **Формат значения ''CHANNELMAP''**\\ Значение состоит из списка пар ключ-значение, разделенных между собой любым количеством пробелов, а между ключом и значением - двоеточием. Если ключ и значение равны, то двоеточие и значение не указываются. Первая пара в списке преобразует оригинальное имя модуля в адрес модуля (короткое имя модуля). Задать короткое имя модуля можно в параметре ''chmap.name''. Последующие пары преобразуют оригинальное имя тега в адрес тега (короткое имя тега). **Использование CHANNELMAP в HMI**\\ Задача HMI найти все имеющиеся теги, содержащие в имени подстроку ''CHANNELMAP'', и построить единую карту тегов, которая будет использоваться элементами управления пользовательского интерфейса. Например, из вышеприведенного примера получится следующее: ^Полное имя тега ^Адрес модуля ^Адрес тега ^ |owen1.inp00 |1 |0 | |owen1.inp01 |1 |1 | |: |: | |owen1.inp15 |1 |15 | |owen1.cnt00 |1 |cnt0 | |owen1.cnt01 |1 |cnt1 | |: |: | |owen1.cnt00 |1 |cnt15 | //Примечание: В таблице для примера использована точка для разделения имени модуля и тега. Разделитель может быть любым.// Далее, развивая пример, hmi-клиент дает пользователю возможность выбрать (или прописать) короткое имя модуля из одного выпадающего списка, а затем выбрать (или прописать) короткое имя тега из другого выпадающего списка, в котором будут содержаться только принадлежащие модулю теги. **Задание CHANNELMAP в ручную**\\ Значение тегов ''CHANNELMAP'' можно зададать вручную при помощи параметра ''chmap.value'', например: <code yaml> chmap.enable: on chmap.name: 1 chmap.value: inp00:A inp01:B </code> Карта тегов в hmi-клиенте: ^Полное имя тега ^Адрес модуля ^Адрес тега ^ |owen1.inp00 |1 |A | |owen1.inp01 |1 |B | ===== Общие теги ===== |SYSTEM.ErrorCount |Количество ошибок связи | |SYSTEM.ErrorFlag |Флаг ошибки связи | |SYSTEM.NetAddr |Сетевой адрес | |SYSTEM.Port |Номер последовательного порта | |SYSTEM.TimePeriod |Время, затраченной на опрос в одном цикле | |SYSTEM.UpdateDate |Дата последнего запроса | |SYSTEM.UpdateTime |Время последнего запроса |