Весоизмерительный преобразователь TD1-7730 совместим со стандартом ModBUS RTU, может использоваться для реализации АСУ ТП. Адреса переменных и пользовательские команды для работы с устройством приведены ниже.
MODBUS TABLE
Адрес | Описание | 0x0000 | НПВ (HI) | 0x0001 | НПВ (LO) | 0x0002 | ЭТАЛОННЫЙ ВЕС (HI) | 0x0003 | ЭТАЛОННЫЙ ВЕС (LO) | 0x0004 | LO BYTE: d (шаг измерения). | 0x0005 | HI BYTE: отображаемая ед.изм. LO BYTE: системная ед.изм. |
0x0006 | Настройки АЦП:
HI BYTE: HI WORD: SF (HI, SF11..SF4, byte0). LO BYTE: HI WORD: SF (SF3..SF0, byte1>>4). |
0x0007 | LO BYTE: Input voltage range (Mode register, RN1-RN0) | 0x0008 | Код АЦП нулевого веса | 0x0009 | Код АЦП эталонного веса | 0x000A | Вес (HI) | 0x000B | Вес (LO) | 0x000C | Код АЦП |
Поиск устройств:
Команда: 0х46 (70 DEC);
Параметр: 0x00
Запрос: ADR – 0x46 – 0x00 – CRC16_1 – CRC16_2
Ответ: ADR – 0x46 – 00 – 00 – 0x77 – 0x30 – 00 – CRC16-1 – CRC16_2.
Где «00 – 0x77 – 0x30 – 00» - идентификатор серии устройства, т.е. AD7730.
Задание нового адреса устройства:
Команда: 0х42 (66 DEC);
Параметр: new_adr (1 byte)
Запрос: ADR – 0x42 – new_adr – CRC16_1 – CRC16_2
Ответ: ADR – 0x42 – new_adr – CRC16_1 – CRC16_2.
Где «00 – 0x12 – 0x34 – 00» - идентификатор серии устройства.
Калибровка нулевого веса:
Команда: 0х43 (67 DEC);
Параметр: 0xF0
Запрос: ADR – 0x43 – 0xF0 – CRC16_1 – CRC16_2
Ответ: ADR – 0x43 – код – CRC16-1 – CRC16_2.
Где код: 0 – калибровка выполнена успешно,
5 – ошибка калибровки (в зависимости от модификации, не установлен джампер).
Калибровка эталонного веса:
Команда: 0х43 (67 DEC);
Параметр: 0xF1
Запрос: ADR – 0x43 – 0xF1 – CRC16_1 – CRC16_2
Ответ: ADR – 0x43 – код – CRC16-1 – CRC16_2.
Где код: 1 – калибровка выполнена успешно,
10 – ошибка калибровки (в зависимости от модификации, не установлен джампер).
Задание параметров дозатора:
Команда: 0х47 (71 DEC);
Параметр: 0xF1, mas[]
Запрос: ADR – 0x47 – 0xF1 – mas[] – CRC16_1 – CRC16_2
Ответ: ADR – 0x47 – 0xF1 – 123 – CRC16-1 – CRC16_2.
Где mas[] – массив параметров,
mas[] =
{
Режим работы (1 – дозатор)
Автоматическая настройка упреждений (1 – вкл)
Класс точности дозатора (/10)
Действие по окончании загрузки (согласно индексу в выпадающем списке)
Пауза после окончания загрузки (сек)
Действие по окончании разгрузки (согласно индексу в выпадающем списке)
Пауза после окончания разгрузки (сек)
Количество циклов загрузки/разгрузки
Время импульсов досыпа (х_мс/100)
}
Чтение параметров дозатора:
Команда: 0х47 (71 DEC);
Параметр: 0xF3
Запрос: ADR – 0x47 – 0xF3 –CRC16_1 – CRC16_2
Ответ: ADR – 0x47 – 0xF3 – mas[] – CRC16-1 – CRC16_2.
Где mas[] – массив параметров,
mas[] =
{
Режим работы (1 – дозатор)
Автоматическая настройка упреждений (1 – вкл)
Класс точности дозатора (/10)
Действие по окончании загрузки (согласно индексу в выпадающем списке)
Пауза после окончания загрузки (сек)
Действие по окончании разгрузки (согласно индексу в выпадающем списке)
Пауза после окончания разгрузки (сек)
Количество циклов загрузки/разгрузки
Время импульсов досыпа (х_мс/100)
}
Задание компонентов:
Команда: 0х47 (71 DEC);
Параметр: 0xF2, mas[]
Запрос: ADR – 0x47 – 0xF2 – mas[] – CRC16_1 – CRC16_2
Ответ: ADR – 0x47 – 0xF2 – 123 – CRC16-1 – CRC16_2.
Где mas[] – массив параметров,
mas[] =
{
Вес компонента_1 (3 байта, старший вперед)
Вес компонента_2 (3 байта, старший вперед)
Вес компонента_3 (3 байта, старший вперед)
Вес компонента_4 (3 байта, старший вперед)
Вес компонента_5 (3 байта, старший вперед)
Вес компонента_6 (3 байта, старший вперед)
Вес компонента_7 (3 байта, старший вперед)
Вес компонента_8 (3 байта, старший вперед)
Количество компонентов (1 байт)
}
Чтение компонентов:
Команда: 0х47 (71 DEC);
Параметр: 0xF4
Запрос: ADR – 0x47 – 0xF4 – CRC16_1 – CRC16_2
Ответ: ADR – 0x47 – 0xF4 – mas[] – CRC16-1 – CRC16_2.
Где mas[] – массив параметров,
mas[] =
{
Вес компонента_1 (3 байта, старший вперед)
Вес компонента_2 (3 байта, старший вперед)
Вес компонента_3 (3 байта, старший вперед)
Вес компонента_4 (3 байта, старший вперед)
Вес компонента_5 (3 байта, старший вперед)
Вес компонента_6 (3 байта, старший вперед)
Вес компонента_7 (3 байта, старший вперед)
Вес компонента_8 (3 байта, старший вперед)
Количество компонентов (1 байт)
}
Задание упреждений:
Команда: 0х47 (71 DEC);
Параметр: 0xF6, mas[]
Запрос: ADR – 0x47 – 0xF6 – mas[] – CRC16_1 – CRC16_2
Ответ: ADR – 0x47 – 0xF6 – 123 – CRC16-1 – CRC16_2.
Где mas[] – массив параметров,
mas[] =
{
Упреждение компонента_1
Упреждение компонента_2
Упреждение компонента_3
Упреждение компонента_4
Упреждение компонента_5
Упреждение компонента_6
Упреждение компонента_7
Упреждение компонента_8
Автоподстройка упреждений (1 – вкл)
}
Задание упреждений:
Команда: 0х47 (71 DEC);
Параметр: 0xF7
Запрос: ADR – 0x47 – 0xF7 – CRC16_1 – CRC16_2
Ответ: ADR – 0x47 – 0xF7 – mas[] – CRC16-1 – CRC16_2.
Где mas[] – массив параметров,
mas[] =
{
Упреждение компонента_1 (1 байт)
Упреждение компонента_2 (1 байт)
Упреждение компонента_3 (1 байт)
Упреждение компонента_4 (1 байт)
Упреждение компонента_5 (1 байт)
Упреждение компонента_6 (1 байт)
Упреждение компонента_7 (1 байт)
Упреждение компонента_8 (1 байт)
Автоподстройка упреждений (1 – вкл)
}
Запуск дозирования:
Команда: 0х47 (71 DEC);
Параметр: 0xF0, 0x01
Запрос: ADR – 0x47 – 0xF0 – 0x01 – CRC16_1 – CRC16_2
Ответ: ADR – 0x47 – 0xF0 – 0x01 – 123 – CRC16-1 – CRC16_2.
Остановка дозирования:
Команда: 0х47 (71 DEC);
Параметр: 0xF0, 0x00
Запрос: ADR – 0x47 – 0xF0 – 0x00 – CRC16_1 – CRC16_2
Ответ: ADR – 0x47 – 0xF0 – 0x00 – 123 – CRC16-1 – CRC16_2.