# rpclient

Добавляет функциональность клиента, позволяющую импортировать теги удаленной системы по протоколу RPSVR.

Протокол RPSVR является устаревшим, а модули rpsvrtcp и rpclient должны использоваться только для совместимости в старых проектах. В новых проектах использовать jrbustcp.

    plugin.rpclient:
      enable: on

      module.rpclient1:
        enable:     on
        host:       192.168.1.43
        port:       3033
        filter:     "W*;UVHL*"
        recon_s:    60
        timeout_ms: 3000

        alarm.values:
          - tag:    .*\.SYSTEM\.ErrorFlag
            value:  "on"

        flag.rpsvrtcp.skipmodname: external

Параметр | По умолчанию | Описание
--- | --- | ---
host | - | адрес или имя сервера
port | - | tcp порт сервера (см.также Правила выбора номера tcp-порта)
filter | - | фильтр имен тегов (см. Шаблоны фильтров)
recon_s | `60` | Интервал переподключения при потере связи
timeout_ms | `3000` | Тайм-аут подключения и ответа сервера
alarm.values | - | Список аварийных значений. При потере связи данные значения прописываются в теги, соответствующие заданным шаблонам
alarm.values
tag | `.*` | regex-шаблон имен тегов
value | - | аварийное значение в строковом виде

Довольно часто теги данного модуля (Y), импортированные с удаленного модуля (X), требуется передать другому удаленному модулю (Z), потом на верхний уровень (scada). Функционально схема взаимодействия выглядит так:

    [X.rpsvrtcp]  <-->  [Y.rpclient  Y.rpsvrtcp]  <-->  [Z.rpclient Z.rpsvrtcp]  <-->  [scada]

При этом имена тегов в scada будут содержать имена модулей rpclient всей цепочки:

    rpclZ:rpclY:modX.tagname1
    rpclZ:rpclY:modX.tagname2 и т.д.

Для того, чтобы получить имена тегов модуля X в оригинальном виде, нужно указать в настройках модулей rpclient, как отдавать свое имя модуля модулю rpsvrtcp:

    flag.rpsvrtcp.skipmodname: external

Подробней о флагах.