Это старая версия документа.



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
A PCRE internal error occured. This might be caused by a faulty plugin

====== jrbustcp ====== Плагин ''jrbustcp'' добавляет функции клиента и сервера для взаимодействия с внешними устройствами по протоколу [[doc:jroboplc:modules:jrbustcp-protocol|jrbustcp]]. Для проверки соединения и просмотра данных можно использовать jrviewer в качестве простого клиента. Скачать можно здесь: [[http://prom-auto.ru/download/jroboplc/jrviewer_win-x32.zip|jrviewer_win-x32]], [[http://prom-auto.ru/download/jroboplc/jrviewer_linux-x64.tar.gz|jrviewer_linux-x64]]. ===== Сервер ===== <code yaml> plugin.jrbustcp: module.jrsvr: type: server port: 30000 hidden: off idleTimeout_s: 180 logging: off compress: gzip ssl: off auth: off ipfilter: - 192.168.1.101 deny - 192.168.1.0/24 accept - deny </code> ^ Параметр ^ Умолчание ^ Описание ^ |**type** | ''-'' | Для работы в режиме сервера равно ''server'' | |**port** | ''-'' | Номер tcp порта, доступный для прослушивания (см.также [[doc:jroboplc:tcp_port_select_guide]]) | |**idleTimeout_s**| ''180'' | Тайм-аут бездействия клиента в секундах, после чего соединение разрывается | |**logging** | ''off'' | Логирование трафика и вывод отладочных сообщение netty | |**compress** | ''off'' | Использование сжатия. ''off'' - не использовать, ''gzip'' - формат сжатия [[https://en.wikipedia.org/wiki/Gzip|Gzip]] | |**ssl** | ''off'' | Шифрование трафика | |**auth** | ''off'' | Использование аутентификации | |**ipfilter** | '''' | Фильтр входящих подключений по ip адресу. Состоит из списка правил следующего формата:<code> [ip_addr[/cidr]] type</code><html> ip_addr - адрес в формате xxx.xxx.xxx.xxx<br> cidr - целое число (если не указано, то 32)<br> type - accept или deny<br> <br> Правила сканируются сверху вниз по списку до первого попадания.<br> <br> Последнее в списке правило может не содержать ip-адрес и будет распространятся на всех остальных, не попадающих в предыдущие правила. По умолчанию - accept. </html> | ^alarm.values ^^^ |**tag** | ''.*'' |regex-шаблон имен тегов | |**value** | - |аварийное значение в строковом виде | Примечания: - Для работы данного модуля в режиме сервера не требуется никаких дополнительных модулей и включения в задачу. - Все теги с флагом EXTERNAL, т.е. импортируемые извне, передаются клиенту без имени импортировавшего их модуля. ===== Клиент ===== <code yaml> plugin.jrbustcp: module.jrcl: type: client host: localhost port: 30000 descr: арм_оператора_N1 tagdescr: off filter: .* recon_s: 5 timeout_ms: 3000 ssl: off compress: gzip logging: off auth: off alarm.values: - tag: .*\.SYSTEM\.ErrorFlag value: "on" </code> ^ Параметр ^ Умолчание ^ Описание ^ |**type** | ''-'' | Для работы в режиме клиента равно ''client'' | |**host** | ''localhost'' | Имя или адрес сервера, доступный для подключения по протоколу ''jrbustcp'' | |**port** | ''-'' | Номер tcp порта, прослушиваемого сервером (см.также [[doc:jroboplc:tcp_port_select_guide]]) | |**descr** | ''имя модуля'' | Короткое описание клиента, которое можно будет увидеть на сервере при просмотре списка подключенных клиентов | |**recon_s** | ''5'' | Время переподключения при разъединении, секунды | |**timeout_ms** | ''3000'' | Тайм-аут ожидания ответа от сервера, мс | |**writeDelay_s** | ''0'' | Задержка команды записи (передачи измененных значений на сервер) после подключения, секунды | |**logging** | ''off'' | Логирование трафика и вывод отладочных сообщение netty | |**compress** | ''off'' | Использование сжатия. ''off'' - не использовать, ''gzip'' - формат сжатия [[https://en.wikipedia.org/wiki/Gzip|Gzip]] | |**setHidden** | ''off'' | Установка флага ''hidden'' всем импортируемым тегам | |**ssl** | ''off'' | Шифрование трафика | |**auth** | ''off'' | Использование аутентификации. Если аутентификация включена на сервере, то на клиенте также необходимо включить | |**authKey** | '''' | Имя приватного ключа, наличие которого необходимо, если включена аутентификация. Также необходимо разместить на сервере публичный ключ. Если приватный ключ не указан явно, и в каталоге хранения ключей будет всего лишь один приватный ключ, то будет использоваться данный ключ. Создание пары ключей можно выполнить командой ''keygen''. Каталог с ключами определяется [[doc:jroboplc:conf:about#глобальные_параметры|глобальным параметром]] ''keys.dir'' | ^ Параметры фильтрации ^^^ |**filter** | ''.*'' | Regex-выражение для отбора тегов на стороне сервера | |**excludeExternal** | ''off'' | Запрет импорта тегов, которые на стороне сервера имеют флаг ''external'' | |**includeHidden** | ''off'' | Разрешение импорта тегов, которые на стороне сервера имеют флаг ''hidden'' | ^ Channel Watchdog ^^^ |**chWdtEnable** | ''off'' | Включение режима ''Channel Watchdog'' | |**chWdtDelay_s** | ''0'' | Задержка выполнения обнуления тегов после потери связи с сервером | ^ В разработке ^^^ |**<del>tagdescr</del>** | ''off'' | Позволяет отключить передачу сервером описаний тегов, что может сократить сетевой трафик в процессе подключения | ==== Channel Watchdog ==== Данный режим позволяет автоматически обнулять теги, адресуемые [[doc:jroboplc:terminology#канал|каналами]] удаленного jrobo-приложения, при потере связи с данным приложением. Далее приводится описание работы режима на примере конфигураций двух jrobo-приложений. Первое приложение ''jrobo1'' только опрашивает один модуль ввода-вывода ''pdio1'' и раздает свои теги модулем ''jrsvr''. Также импортируются теги при помощи модуля ''jrcl1'' с удаленного приложения ''jrobo2'' (об этом подробнее ниже). <code yaml> # jrobo1 - поставщик адресов plugin.jrbustcp: module.jrsvr: type: server port: 30000 module.jrcl1: type: client port: 30001 filter: .*Ch.* # нужны только каналы chWdtEnable: on # включаем Channel Watchdog chWdtDelay_s: 5 # с задержкой срабатывания в 5 секунд excludeExternal: on # исключаем циклический setHidden: on # кросс-импорт между jrobo1 и jrobo2 plugin.peripherial: module.pdio1: portnum: 1 netaddr: 3 type: promauto.pdio </code> Второе приложение ''jrobo2'' выполняет roboplant-логику в модуле ''prj1'' и импортирует модулем ''jrcl2'' теги приложения ''jrobo1'' для использования в качестве [[doc:jroboplc:terminology#адрес|адресов]] в [[doc:jroboplc:terminology#канал|каналах]] ''prj1''. Свои теги раздаются модулем ''jrsvr'' всем желающим (например, hmi-клиентам, архиваторам и т.д.), в том числе и приложению ''jrobo1''. <code yaml> # jrobo2 - получатель адресов plugin.jrbustcp: module.jrsvr: type: server port: 30001 module.jrcl2: type: client port: 30000 filter: .* plugin.roboplant: module.prj1: project: projects/prj1.rpp </code> Предположим, что модуль ''prj1'' содержит блок MCHB с именем тега [[doc:jroboplc:terminology#канал|канала]] управления ''prj1.MCHB_001_Channel1'', имеющего строковое значение ''pdio1.out00'' в качестве [[doc:jroboplc:terminology#адрес|адреса]]. Далее происходит следующее: - MCHB подается команда старт, и в тег ''pdio1.out00'' приложения ''jrobo1'' устанавливается значение 1. Происходит запуск физического оборудования. - Происходит сбой в локальной сети, и связь между приложениями ''jrobo1'' и ''jrobo2'' теряется. - Оборудование продолжает работать, т.к. в ''pdio1.out00'' осталось значение 1, но работает оборудование уже бесконтрольно. - Если связь не восстанавливается в течение 5 секунд, то в модуле ''jrcl1'' срабатывает ''Channel Watchdog''. При этом выполняется следующее: модуль находит среди собственных импортированных тегов [[doc:jroboplc:terminology#канал|каналы]], [[doc:jroboplc:terminology#адрес|адресами]] которых являются теги приложения ''jrobo1'', и устанавливает им значение 0. - Физическое оборудование останавливается. ==== Теги ==== ^ Имя тега ^ Тип ^ Описание ^ |**client.connected** | ''boolean'' | Состояние подключения к серверу | |**client.reconnect.cnt** | ''int'' | Количество попыток переподключения после разрыва соединения | |**client.disconnect.cnt** | ''int'' | Количество разрывов соединения | |**client.last.error** | ''string'' | Описание последней произошедшей ошибки соединения |

doc/jroboplc/modules/jrbustcp.1643954739.txt.gz · Последние изменения: 2022/02/04 09:05 — denis
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0