
- •Технические характеристики интерфейса rs-485
- •Общее описание протокола Modbus rtu
- •Адресация данных в протоколе Modbus rtu
- •Контроль ошибок в протоколе Modbus rtu
- •Rtu фрейм
- •Логические ошибки
- •Стандартные коды ошибок
- •Стандартные коды функций протокола Modbus
- •0X10 Preset Multiple Registers (Установка значений в несколько регистров)
- •0X03 Read Holding Registers (Чтение значений из нескольких регистров)
- •0X06 Preset Single Register (Установка значения в один регистр)
- •0X01 Read Coil Status (Чтение значений из нескольких регистров флагов)
- •0X0f Force Multiple Coils (Запись значений в несколько регистров флагов)
- •0X05 Force Single Coil (Запись значения в один флаг регистра флагов)
- •0X50 Set date and time (Установка даты и времени)
- •Ссылки на используемые в статье источники
- •Утилиты
- •Правильная разводка сетей rs-485
- •Что такое витая пара и почему она используется?
- •Волновое сопротивление витой пары
- •Число витых пар на каждый передатчик
- •Согласующие резисторы
- •Максимальное число передатчиков и приемников в сети
- •Примеры правильных сетей
- •Один передатчик, один приемник
- •Неправильное расположение терминатора
- •Составные кабели
- •Длинные ответвители
0X0f Force Multiple Coils (Запись значений в несколько регистров флагов)
Тип адресации 0x
Команда:
Состоит из адреса флага, количества изменяемых флагов, количества передаваемых байт устанавливаемых значений. Адресация флагов начинается с 0, количество флагов с 1. Устанавливаемые значения передаются начиная с байта, в котором находится младшим битом значение, устанавливаемое по адресу указываемому в поле "00 адрес подчиненного устройства".
Ответ:
Состоит из начального адреса флага и количества записанных флагов. Адресация флагов начинается с 0, количество флагов с 1.
Ниже приведены примеры команды ведущего устройства (таблица 3-6) и ответ ведомого (таблица 3-7).
Направление передачи |
00 адрес подчиненного устройства |
01 номер функции |
02 Адрес ст. байт |
03 Адрес мл. байт |
04 Количество флагов ст. байт |
05 Количество флагов мл. байт |
06 Количество байт данных |
07 Данные (значения для флагов биты 0-7) |
08 Данные (значения для флагов биты 8-15) |
09 CRC мл. байт |
0A CRC ст. байт |
Master→Slave |
0x01 |
0x0F |
0x00 |
0x13 |
0x00 |
0x0A |
0x02 |
0xCD |
0x01 |
0x72 |
0xCB |
Таблица 3-7. Пример команды записи значения в один из регистр флагов |
Направление передачи |
00 адрес подчиненного устройства |
01 номер функции |
02 Адрес ст. байт |
03 Адрес мл. байт |
04 Количество флагов ст. байт |
05 Количество флагов мл. байт |
05 CRC мл. байт |
06 CRC ст. байт |
Slave→Master |
0x01 |
0x0F |
0x00 |
0x13 |
0x00 |
0x0A |
0x24 |
0x09 |
Таблица 3-7. Пример команды записи значения в один из регистр флагов |
0X05 Force Single Coil (Запись значения в один флаг регистра флагов)
Команда:
Состоит из адреса флага и устанавливаемого значения. Поле "Значение флага мл. байт" всегда равно нулю (0x00), поле "Значение флага ст. байт" принимает значения 0xFF если флаг устанавливается в "1"(ON) или 0x00 если флаг устанавливается в "0"(OFF), другие значения недопустимы и не влияют на значение флага. Адресация флагов начинается с 0.
Ответ:
Состоит из начального адреса флага и количества записанных флагов. Адресация флагов начинается с 0, количество флагов с 1.
Ниже приведены примеры команды ведущего устройства (таблица 3-6) и ответ ведомого (таблица 3-7).
Направление передачи |
00 адрес подчиненного устройства |
01 номер функции |
02 Адрес ст. байт |
03 Адрес мл. байт |
04 Значение флага ст. байт |
05 Значение флага мл. байт |
06 CRC мл. байт |
07 CRC ст. байт |
Master→Slave |
0x01 |
0x05 |
0x00 |
0x13 |
0xFF |
0x00 |
0x7D |
0xFF |
Таблица 4-4. Пример: команда установки значения в один флаг |
Направление передачи |
00 адрес подчиненного устройства |
01 номер функции |
02 Адрес ст. байт |
03 Адрес мл. байт |
04 Значение флага ст. байт |
05 Значение флага мл. байт |
06 CRC мл. байт |
07 CRC ст. байт |
Slave→Master |
0x01 |
0x05 |
0x00 |
0x13 |
0xFF |
0x00 |
0x7D |
0xFF |
Таблица 4-4. Пример: Ответ на команду установки значения в один флаг |