Переменные контроллера ====================== В каждом контроллере, который содержит FBD-программу содержится определенный набор переменных, который зависит от типа контроллера. Эти переменные делятся на группы: .. toctree:: device_ain device_aout device_din device_dout Newtopic1 dev_var_diag * Состояние устройства * Параметры порта Все переменные устройства можно использовать в главной схеме FBD-программы, так-же, как и локальные переменные. Вставлять переменные контроллера в макросхемы запрещено. **Входы и выходы** Переменные, описывающие входы и выходы устройства. Их количество и тип данных, для аналоговых переменных, зависит от типа контроллера. Блоки, создаваемые для чтение или записи этих переменных имеют следующий вид: **Аналоговый вход:** .. figure:: ../../zwb/lib/ain.png :align: center **Дискретный вход:** .. figure:: ../../zwb/lib/din.png :align: center **Аналоговый выход:** .. figure:: ../../zwb/lib/aout.png :align: center **Дискретный выход:** .. figure:: ../../zwb/lib/dout.png :align: center **Универсальный входы:** .. figure:: ../../zwb/lib/uin.png :align: center В свойствах блоков входов/выходов на сцене можно включить симуляцию. Этот параметр позволяет отключать физические входы и выходы контроллера и управлять ими через панель симулятора. **Параметры порта** Переменные для управления параметрами порта контроллера, а так же адресом контроллера. **Адрес контроллера** - эта переменная содержит текущий адрес контроллера, по которому к нему может обращаться мастер. Так же как и локальная переменная, эта переменная имеет настройку сетевого доступа и флаг сохранения в ПЗУ. В случае, если необходимо запретить изменение этого параметра извне, необходимо установить значение сетевого доступа "нет" или "чтение". По умолчанию сетевой доступ равен "чтение/запись", флаг записи в ПЗУ установлен. Использование этой переменной на схеме происходит так же, как и использование локальных переменных. **Параметры порта** - эта переменная определяет параметры порта устройства. Для Modbus RTU это скорость и четность порта. Тип данных переменной - ``Беззнаковый целый 1-байт``. Формат переменной: старшая тетрада - четность порта * 0 - нет/none * 1 - нечет/odd * 2 - чет/even * 3 - метка/mark * 4 - пробел/space младшая тетрада - скорость порта * 0 - 9600 * 1 - 2400 * 2 - 4800 * 3 - 9600 * 4 - 19200 * 5 - 38400 * 6 - 57600 * 7 - 115200 Например, если переменная имеет значение 0x23, то параметры порта следующие 9600-чет. Список поддерживаемых скоростей и четностей может отличаться у различных устройств. Так же как и для адреса, для этих переменных можно установить свойства, запрещающие изменять параметры порта. По умолчанию сетевой доступ равен "чтение/запись", флаг записи в ПЗУ установлен. **Состояние устройства** **Код ошибки** - беззнаковая целая 1-байт. переменная, в которой хранится код внутренней ошибки контроллера. Коды ошибок: * 1 - Ошибка чтения ПЗУ. Сбой процедуры чтения из ПЗУ контроллера. Возможно аппаратная неисправность. * 2 - Ошибка записи ПЗУ. Сбой процедуры записи в ПЗУ контроллера.Возможно аппаратная неисправность. * 3 - Слишком часто изменяется состояние дискретных выходов. Допускается изменение выходов не чаще чем 1 раз в секунду. * 4 - Слишком часто происходит запись в ПЗУ. Допускается запись не чаще чем 1 раз в секунду. Запись происходит только в том случае,если значение изменяется. * 7 - Слишком маленький интервал базового таймера, не успевает выполняться интерпретатор. * 8 - Не реализованная функция Modbus. * 10 - Ошибка очистки ПЗУ. * 11 - Ошибка инициализации переменных адреса и параметров порта, значения загружены по умолчанию. При возникновении ошибки FBD программа продолжает выполняться, однако в случае ошибок 3 и 4, которые критичны к безопасности контроллера, происходит блокировка этих действий. То есть соответственно блокируется запись в ПЗУ или в дискретные выходы. Эту переменную рекомендуется использовать в схеме для анализа ошибок. При отсутсвии этой переменной программа при проверке будет выдавать предупреждение. По умолчанию сетевой доступ к переменной установлен в "чтение/запись".