Интернет магазин китайских планшетных компьютеров



Компьютеры - Modbus - Стандартные функции протокола Modbus

25 апреля 2011


Оглавление:
1. Modbus
2. Стандарт MODBUS
3. Введение
4. Категории кодов функций
5. Стандартные функции протокола Modbus
6. Контроль ошибок в протоколе Modbus RTU



PDU запроса и ответа для стандартных функций
номер
функции
запрос/ответ
1 A1 A0 Q1 Q0
N D
2 A1 A0 Q1 Q0
N D
3 A1 A0 Q1 Q0
N D
4 A1 A0 Q1 Q0
N D
5 A1 A0 D1 D0
A1 A0 D1 D0
6 A1 A0 D1 D0
A1 A0 D1 D0
15 A1 A0 Q1 Q0 N D
A1 A0 Q1 Q0
16 A1 A0 Q1 Q0 N D
A1 A0 Q1 Q0
  • A1 и A0 — адрес элемента,
  • Q1 и Q0 — количество элементов,
  • N — количество байт данных
  • D — данные

Чтение данных

Для чтения значений из перечисленных выше таблиц данных используются функции с кодами 1—4:

  • 1 — чтение значений из нескольких регистров флагов
  • 2 — чтение значений из нескольких дискретных входов
  • 3 — чтение значений из нескольких регистров хранения
  • 4 — чтение значений из нескольких регистров ввода

Запрос состоит из адреса первого элемента таблицы, значение которого требуется прочитать, и количества считываемых элементов. Адрес и количество данных задаются 16-битными числами, старший байт каждого из них передается первым.

В ответе передаются запрошенные данные. Количество байт данных зависит от количества запрошенных элементов. Перед данными передается один байт, значение которого равно количеству байт данных.

Значения регистров хранения и регистров ввода передаются начиная с указанного адреса, по два байта на регистр, старший байт каждого регистра передаётся первым:

байт 1 байт 2 байт 3 байт 4 байт N-1 байт N
RA,1 RA,0 RA+1,1 RA+1,0 RA+Q-1,1 RA+Q-1,0

Значения флагов и дискретных входов передаются в упакованном виде: по одному биту на флаг. Единица означает включённое состояние, ноль — выключенное. Значения запрошенных флагов заполняют сначала первый байт, начиная с младшего бита, затем следующие байты, также от младшего бита к старшим. Младший бит первого байта данных содержит значение флага, указанного в поле «адрес». Если запрошено количество флагов, не кратное восьми, то значения лишних битов заполняются нулями:

байт 1 байт N
FA+7 FA+6 FA+5 FA+4 FA+3 FA+2 FA+1 FA 0 0 FA+Q-1 FA+Q-2

Запись одного значения

  • 5 — запись значения одного флага
  • 6 — запись значения в один регистр хранения

Команда состоит из адреса элемента и устанавливаемого значения.

Для регистра хранения значение является просто 16-битным словом.

Для флагов значение 0xFF00 означает включённое состояние, 0x0000 — выключенное, другие значения недопустимы.

Если команда выполнена успешно, ведомое устройство возвращает копию запроса.

Запись нескольких значений

  • 15 — запись значений в несколько регистров флагов
  • 16 — запись значений в несколько регистров хранения

Команда состоит из адреса элемента, количества изменяемых элементов, количества передаваемых байт устанавливаемых значений и самих устанавливаемых значений. Данные упаковываются так же, как в командах чтения данных.

Ответ состоит из начального адреса и количества изменённых элементов.

Ниже приведён пример команды ведущего устройства и ответа ведомого.

Направление передачи 00 адрес подчиненного устройства 01 номер функции 02 Адрес ст. байт 03 Адрес мл. байт 04 Количество флагов ст. байт 05 Количество флагов мл. байт 06 Количество байт данных 07 Данные 08 Данные 09 CRC мл. байт 0A CRC ст. байт
Master→Slave
0x01
0x0F
0x00
0x13
0x00
0x0A
0x02
0xCD
0x01
0x72
0xCB


Направление передачи 00 адрес подчиненного устройства 01 номер функции 02 Адрес ст. байт 03 Адрес мл. байт 04 Количество флагов ст. байт 05 Количество флагов мл. байт 05 CRC мл. байт 06 CRC ст. байт
Slave→Master
0x01
0x0F
0x00
0x13
0x00
0x0A
0x24
0x09


Просмотров: 11216


<<< Microsoft Media Server