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

HART_0 - чтение идентификационных данных


Назначение.
Функциональный блок HART_0 применяется для получения идентификационных данных HART-устройства на основании его короткого адреса.
 
Состав структурной переменной.
Переменная со структурным типом HART_0 будет добавлена в локальный словарь автоматически при добавлении блока в редактор.
Описание алгоритма.
Для связи с HART-устройством необходимо указать адрес модуля-мультиплексора на шине ST_BUS (параметр ADDR_MOD), номер канала модуля HART-мультиплексора в диапазоне 0..63, через который подключено HART-устройство (параметр CHN_MOD), и короткий адрес HART-устройства (параметр ADDR_HART_SHORT).
После запуска блока (RUN=TRUE), в адрес HART-устройства будет направлен запрос на получение его идентификационных данных. До получения ответа выход OK=FALSE, после получения OK=TRUE.
При отсутствии ошибок (выход FAULT=0), полученные данные передаются в выходные параметры. При наличии ошибки на выход FAULT передается ее номер, а остальные выходные параметры сохраняют последние выведенные значения.
При RUN=FALSE значения выходных параметров блока сбрасываются, им присваиваются значения по умолчанию.
 
Пример синтаксиса на языке ST.
//вызов функционального блока HART_0
Block.HART_0(RUN, ADDR_MOD, CHN_MOD, ADDR_HART_SHORT);
//чтение части выходных параметров
OK := Block.OK;   
FAULT := Block.FAULT;   
STA := Block.STA;          
OEM := Block.OEM;       
DTYPE := Block.DTYPE;      
PREAMB := Block.PREAMB;            
Кодирование статуса.
В выходной параметр STA передается целое число (4 байта), в битовой маске которого закодирован текущий статус HART-устройства. В первом (младшем) байте содержится информация об ошибках коммуникации (передачи данных), а оставшиеся байты равны нулю. При отсутствии ошибок коммуникации младший байт может содержать информацию о статусе полученной HART-устройством команды, а второй байт информацию о текущем состоянии устройства, оставшиеся два байта равны нулю. При нормальной работе HART-устройства все байты устанавливаются в логический ноль.
Кодирование ошибок коммуникации через битовую маску:
Байт
Бит
Значение и описание
1 байт
(младший)
7
1 - ошибка коммуникации, детальное описание ошибки указывается в оставшейся части первого байта (битовая маска)
6
1 - ошибка по четности
5
1 - перегрузка по скорости обмена
4
1 - ошибка синхронизации
3
1 - ошибка контрольной суммы
2
1 - модуль зарезервирован
1
1 - переполнение буфера приемника
0
1 - неизвестная ошибка
Все биты 2 байта равны нулю
 
Кодирование ошибок команд и текущего состояния через битовую маску:
Байт
Бит
Значение и описание
1 байт
(младший)
0-7
Если отсутствуют коммуникационные ошибки (7 бит=0), первый байт статуса представляет целое число от 1 до 127, соответствующее статусу выполнения отправленной команды на HART-устройстве. Коды выполнения команд и их описание приведено в следующей таблице.
При этом второй байт статусного поля кодируется битовой маской и отражает состояние HART-устройства.
2 байт
7
1 - неисправность
6
1- конфигурация изменена
5
1 - холодный старт, пропадало питание
4
1 - доступна дополнительная статусная информация
3
1 - значение аналогового выхода фиксировано
2
1 - значение тока аналогового выхода вышло за предел ограничения
1
1 - не первичная переменная вышла за предел ограничения
0
1 - первичная переменная вышла за предел ограничения
 
Коды выполнения команд на HART-устройстве и их описание (целочисленное значение 1 байта статуса при отсутствии ошибок коммуникации):
Код
 Описание
0
Нет ошибок, команда выполнена успешно
2
Недопустимый выбор
3
Переданный параметр слишком велик
4
Переданный параметр слишком мал
5
Принятое количество байт данных не соответствует ожидаемому
6
Команда не выполнена
7
HART-устройство находится в защищенном от записи режиме
8
Неверно выбран тип входного сигнала
9
  • Нижний предел больше максимально допустимого значения;
  • Значение температуры выше допустимого предела;
  • Установлено неверное значение фиксированного выходного тока;
  • Несоответствие счетчика изменений конфигурации;
  • Количество знаков после запятой слишком велико.
10
  • Нижний предел меньше минимально допустимого значения;
  • значение температуры ниже допустимого предела.
11
  • Верхний предел больше максимально допустимого значения;
  • токовый выход выключен (датчик в многоточечном режиме).
12
  • Неверный выбор режима функционирования токового выхода;
  • Верхний предел меньше минимально допустимого;
  • Ошибка восстановления заводских настроек или отсутствуют сохраненные заводские настройки.
13
Верхний и нижний пределы вне допустимых величин.
14
Минимальный диапазон слишком мал (точность может быть нарушена)
16
Доступ ограничен (некоторые параметры доступны только для чтения)
18
Неверный код единиц измерения.
29
Недопустимый диапазон
64
Команда не реализована (не задействована)
Коды ошибок на выходе FAULT и их описание.
Код
Описание
0
Нет ошибок
1
Устройство не отвечает (количество повторных запросов превысило допустимое значение),
для модулей S240H/M541HR - ошибка обмена с драйвером
2
Ошибка интерфейса (ошибка фрейма),
для модулей S240H/M541HR - нет ответа (отработан таймаут)
3
Ошибка контрольной суммы,
для модулей S240H/M541HR - ошибка системы
4
Ошибка ответного пакета,
для модулей S240H/M541HR - ошибка драйвера
5
Мезонин не найден,
для модулей S240H/M541HR - операция выполняется (при асинхронном режиме обмена)
6
Аппаратная ошибка мезонина,
для модулей S240H/M541HR - некорректные данные (нарушение формата, протокола и т.п.)
7
Обрыв линии,
для модулей S240H/M541HR - операция прервана
8
Некорректный запрос к модулю S240H/M541HR (превышение допустимой длины)
9
Некорректный адрес модуля S240H/M541HR
10
Ошибка выделения памяти
11
Некорректный описатель модуля S240H/M541HR
12
Некорректный формат ответа
13
Некорректная контрольная сумма ответа
14
Некорректная длина ответа
15
Некорректная команда в ответе
16
Модуль S240H/M541HR диагностировал ошибку (байт 0 = 16, байт [1..2] - статус модуля)
17
Модуль S240H/M541HR не в рабочем режиме
18
Обмен запрещен
19
Получен ответ-исключение от HART устройства
20
Время ожидания ответа от датчика истекло
21
Ошибка формата пакета на отправку по HART
22
Ошибка формата принятого пакета по HART
23
Ошибка контрольной суммы принятого по HART пакета
24
Ошибка физического интерфейса HART