Среда разработки Unimod PRO 2 (версия 2.3.40)
 Руководство пользователя
×

10.2.1 Состав модульных структур


Все переменные модульных структур сгруппированы в логические блоки. Данные блоки можно разделить на три группы: «Рабочие», «Служебные» и «Контроль обмена».
Рабочие данные. В блоке «in» содержаться рабочие данные на чтение, а в блоке «out» рабочие данные на запись. В блоке «in» содержатся текущие значения каналов ввода-вывода, флаги текущего состояния модуля и поканальная диагностика. В блок «out» записываются значения, которые должны быть установлены на каналах ввода-вывода. Чтение и запись рабочих данных выполняется мастер-модулем автоматически в каждом цикле.
Количество блоков с рабочими данными и их состав зависит от выбранной модульной структуры. Описание рабочих данных и допустимых значений приведено в руководстве по эксплуатации на соответствующий модуль ввода-вывода.
 
Служебные данные. Служебные данные содержатся в блоках «statistic», «param» и вложенных в них блоках. В блоке «statistic» содержатся статистические данные о работе модуля ввода-вывода, а в блоке «param» – настройки модуля ввода-вывода и его отдельных каналов. При этом значения переменных, содержащихся в блоке «param» и его подблоках, однократно автоматически записываются на модуль ввода-вывода сразу после старта мастер-модуля. После успешной записи блока «param», мастер-модуль переходит в режим обмена рабочими данными с модулем ввода-вывода. Поэтому, для первоначального задания настроек модулю ввода-вывода и его отдельным каналам, необходимо в глобальном словаре для переменной с типом модульной структуры в блоке «param» указать требуемые значения. Для изменения настроек модуля ввода-вывода в процессе обмена рабочими данными, необходимо использовать управляющие переменные из группы «control». Для уменьшения времени цикла мастер-модуля чтение и запись служебных блоков выполняется не в каждом цикле, а по необходимости (с использованием управляющих переменных группы «control»).
Количество блоков со служебными данными и их состав зависит от выбранной модульной структуры. Описание служебных данных и допустимых значений приведено в руководстве по эксплуатации на соответствующий модуль ввода-вывода.
Контроль обмена. Значения переменных из группы «control» одинаковы для всех типов модулей и используются для управления чтением и записью служебных блоков «statistic» и «param», диагностики ошибок обмена с модулем ввода-вывода и управления блокировкой обмена (переменная «block_poll»).
Значения первой части переменных не участвуют в обмене с модулем ввода-вывода, а устанавливаются и анализируются мастер-модулем. Также эти переменные доступны для чтения и записи по внешним коммуникациям.
Описание параметров первой части:
 Переменная
Тип данных
Описание
  not_valid
Логический
Наличие ошибки обмена с модулем ввода-вывода:
  • true – выявлены ошибки обмена;
  • false – нет ошибок.
    Устанавливается в true при наличии ошибок конфигурации модуля ввода-вывода (переменная err_cfg содержит отличное от нуля значение) или при одновременных ошибках на всех линиях связи.
  err_cfg
Целый
Код ошибки обмена с модулем ввода-вывода:
  • 0 – нет ошибок;
  • 1 – несоответствие типа подключенного модуля и добавленного в приложении (название модели физического модуля должно совпадать с именем модульной структуры в проекте);
  • 2 – несоответствие версии аппаратной конфигурации подключенного модуля и добавленного в приложении, версия конфигурации указывается в конце имени модульной структуры ();
  • 3 – несоответствие описания аппаратной конфигурации на модуле и в проекте, обратитесь к разработчикам;
  • 4 – не удалось определить тип модуля;
  • 5 – ошибка записи блока «param» (блок №3 – Параметры) на модуль;
  • 6 – ошибка чтения уникального идентификатора модуля;
  • 7 – модуль находится в режиме загрузчика (в процессе обновления программного обеспечения);
  • 8 – выполняется инициализация модуля;
  • 9 – несовпадение параметров;
  • 10 – несовпадение счетчиков пакетов ST-BUS;
  • 11 – произошла замена модуля.
  err_line1,
err_line2
Целый
Код транспортной ошибки обмена с модулем ввода-вывода по конкретной линии, представляет собой целое число, соответствующее битовой маске , где:
  • 0 бит – нет ошибки, широковещательный запрос;
  • 1 бит – ошибка переполнения UART;
  • 2 бит – ошибка на линии;
  • 3 бит – адрес ответа не совпадает с адресом запроса;
  • 4 бит – ошибочное количество байт данных;
  • 5 бит – повторная стартовая комбинация;
  • 6 бит – ошибка контрольной суммы;
  • 7 бит – срабатывание таймаута при ожидании очередного байта на приеме.
block_poll
Логический
Блокировка обмена с модулем ввода-вывода:
  • true – обмен с модулем заблокирован;
  • false – осуществляется обмен.
command
Целый
Зарезервирован, не используется.
Вторая часть переменных блока «control» позволяет управлять чтением и записью переменных служебных блоков. Состав второй части переменных зависит от типа модуля ввода-вывода и состава его служебных блоков.
Описание параметров второй части:
Переменная
Тип данных
Описание
read_statistic
Логический
Отвечает за чтение с модуля ввода-вывода статистических данных из блока «statistic»:
  • true – чтение статистики в каждом цикле мастер-модуля;
  • false – чтение не производится (по умолчанию).
read_param
Логический
Отвечает за чтение параметров модуля ввода-вывода из блока «param»:
  • true – чтение параметров в каждом цикле мастер-модуля;
  • false – чтение параметров не производится (по умолчанию).
write_param
Логический
Запись значений на модуль в служебный блок «param»  осуществляется однократно, только при изменении данного значения с false на true. Для новой записи значений в служебные блоки требуется вернуть для данного параметра значение false и снова изменить его на true.
err_rw_statistic
Целый
Код завершения последнего асинхронного чтения/записи блока «statistic»:
  • 0 – безошибочные чтение или запись;
  • 1 – неверный код команды, команда не поддерживается модулем;
  • 2 – неверные данные в запросе, неверный формат запроса;
  • 3 – выполнение запроса недопустимо в текущем режиме работы модуля;
  • 255 – модуль занят обработкой полученного запроса.
err_rw_param
Целый
Код завершения последнего асинхронного чтения/записи блока «param»:
  • 0 – безошибочные чтение или запись;
  • 1 – неверный код команды, команда не поддерживается модулем;
  • 2 – неверные данные в запросе, неверный формат запроса;
  • 3 – выполнение запроса недопустимо в текущем режиме работы модуля;
  • 255 – модуль занят обработкой полученного запроса.