# roboplant

Модуль исполнения Roboplant-проектов.

    plugin.roboplant:
      enable: on

      module.SHDSH:
        project: rpp/SHDSH.rpp
        enable:   on
        connect:
          PLCI.M00:  ---
          PLCO.M00:  ---
          PLCI.M01:  plci1
          PLCO.M01:  plco1
          PLCI.M02:  plci2
          PLCO.M02:  plco2
          PLRKS.M03: prks1
          PLDAT.M04: pdat1

        flag.autosave: autosave.shdsh

Параметр | Умолчание | Описание
--- | --- | ---
project | `` | Путь и имя rpp-файла проекта Roboplant
useDescr | `off` | Добавлять строковый тег `.descr` в MCHB, MDTA, ZDV*, SEQD
connect | `` | Связывание логических блоков с модулями ввода/вывода (см. Связывание)
    <devtype.tagname>: <module>

## Связывание

Для того, чтобы roboplant-программа в ПЛК I7188xa могла работать с внешними устройствами используются логические блоки ввода/вывода, такие как: PLCI, PLCO, PLRKS и т.д. Для сохранения обратной совместимости roboplant-проектов в JRoboPLC также используются данные модули, но реальным вводом и выводом занимаются модули плагина peripherial. Для совместной работы логических блоков roboplant и модулей ввода/вывода необходимо выполнить связывание.

Условия связывания следующие:

- один логический блок roboplant может быть связан только с одним модулем ввода/вывода
- к одному модулю ввода/вывода может быть привязан только один логический блок одного roboplant-проекта
- каждый логический блок, предназначенный для связывания, должен быть связан с соответствующим модулем ввода/вывода
- если логический блок, предназначенный для связывания, не должен быть привязан (режим эмуляции), необходимо вместо имени модуля указать `---`

Для проверки правильности связывания используется общая команда `check`.

Таблица соответствия модулей плагина peripherial и логических блоков roboplant:

Модуль | Логический блок
--- | ---
promauto.pdio | PLCI, PLCO
promauto.pdionb | PLCI, PLCO
promauto.prks | PLRKS
promauto.pdat | PLDAT
icpcon.i7017 | I7017
icpcon.i7024 | I7024
owen.trm200 | TRM200
любой модуль | REFA (см.описание на блок самом Roboplant'е)

У связанного логического блока имеется дополнительный тег, в котором можно увидеть состояние связывания, с именем `BindStatus`. Значения тега:

    BIND_STATUS_OK = 0
    BIND_MODULE_NOT_FOUND = -1

Также проверить состояние связывания можно командой `check`.

## Логические блоки

STGA