Материал: MODBUS description

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

1.3.3 Кадровая синхронизация в режиме ascii

В режиме ASCII достигается использованием символа двоеточия ‘:’, указывающего начало кадра, и символов возврата каретки (CR) и перевода строки (LF), указывающих на конец кадра. Символ перевода строки также служит как синхронизирующий символ, который указывает на то, что передающая станция готова для приема ответного сообщения.

Таблица 4

Формат кадра сообщения в режиме ASCII

Начало кадра

Адрес

Функция

Данные

Контрольная сумма

EOF

Готовность приема ответного сообщения

:

2 символа

16-бит

2 символа

16 бит

N * 4 символа

N * 16 бит

2 символа

16 бит

CR

LF

1.3.4. Кадровая синхронизация в режиме rtu

В режиме RTU может поддерживаться только путем эмулирования синхронного сообщения. Приемное устройство отслеживает время между приемом символов. Если прошло время, равное периоду следования 3.5 символов, а кадр не был завершен или не поступило нового символа, устройство очищает кадр и предполагает, что следующий принимаемый байт - это адрес устройства в новом сообщении.

Таблица 5

Формат кадра сообщения в режиме RTU

Т1 Т2 Т3

Адрес

Функция

Данные

Контрольная сумма

Т1 Т2 Т3

8 бит

8 бит

N * 8 бит

16 бит

1.4.Поле адреса

Поле адреса следует сразу за началом кадра и состоит их одного 8-ми разрядного символа в режиме RTU или 2-х символов в режиме ASCII. Эти биты указывают пользователю адрес SL устройства, которое должно принять сообщение, посланное MS.

Каждый SL должен иметь уникальный адрес и только адресуемое устройство может ответить на запрос, который содержит его адрес. Когда SL посылает ответ, адрес SL информирует MS, с какой SL на связи. В широковещательном режиме используется адрес 0. Все SL интерпретируют такое сообщение как выполнение определенного действия, но без посылки подтверждения.

1.5. Поле функции

Поле кода функции указывает адресуемому SL какое действие выполнить. Коды функций Modbus специально разработаны для связи ПК и индустриальных коммуникационных систем Modbus.

Старший бит этого поля устанавливается в единицу SL в случае, если он хочет просигналить MS, что ответное сообщение не нормальное. (Смотри ). Этот бит остается в нуле, если ответное сообщение повторяет запрос или в случае нормального сообщения.

Таблица 6

Коды функций Modbus

Код

Название

Действие

01

READ COIL STATUS

Получение текущего состояния (ON/OFF) группы логических ячеек.

02

READ INPUT STATUS

Получение текущего состояния (ON/OFF) группы дискретных входов.

03

READ HOLDING REGISTERS

Получение текущего значения одного или нескольких регистров хранения.

04

READ INPUT REGISTERS

Получение текущего значения одного или нескольких входных регистров.

05

FORCE SINGLE COIL

Изменение логической ячейки в состояние ON или OFF.

06

FORCE SINGLE REGISTER

Запись нового значения в регистр хранения.

07

READ EXCEPTION STATUS

Получение состояния (ON/OFF) восьми внутренних логических ячеек, чье назначение зависит от типа контроллера. Пользователь может использовать эти ячейки по своему выбору.

08

LOOPBACK DIAGNOSTIC TEST

Тестовое сообщение, посылаемое SL для получения данных о связи.

11

FETCH EVENT COUNTER COMMUNICATIONS

Позволяет MS путем последовательной посылки одного сообщения определить выполнение операции.

12

FETCH COMMUNICATIONS EVENT LOG

Позволяет MS получить журнал связи, который содержит информацию о каждой Modbus транзакции данного SL. Если транзакция не выполнена, в журнал заносится информация об ошибки.

13

PROGRAM

Позволяет MS программировать SL.

14

POLL PROGRAM COMPLETE

Позволяет MS связываться с другими SL если один SL выполняет долговременную операцию программирования. SL периодически опрашивается на момент завершения программирования. Данный запрос посылается только в том случае, если предварительно был послан запрос PROGRAM.

15

FORCE MULTIPLE COILS

Изменить состояние (ON/OFF) нескольких последовательных логических ячеек.

16

FORCE MULTIPLE REGISTERS

Установить новые значения нескольких последовательных регистров.

17

REPORT SLAVE I.D.

Позволяет MS определить тип адресуемого SL и его рабочее состояние.

19

RESET COMMUNICATIONS LINK

Сбрасывает SL в известное состояние после неустранимой ошибки. Сбрасывает счетчик принятых байт.

20-64

Зарезервировано под расширения Modbus

65-72

Зарезервировано под пользовательские функции.

В дальнейшем не будет использоваться в продуктах Modicon.

73-119

ILLEGAL FUNCTION

120-127

Зарезервировано

Зарезервировано Modicon для внутреннего использования.

128-255

Зарезервировано

Зарезервировано для исключительных ситуаций.

1.6 Поле данных

Поле данных содержит информацию, необходимую SL для выполнения указанной функции, или содержит данные собранные SL для ответа на запрос.

1.7. Поле контрольной суммы

Это поле позволяет MS и SL проверять сообщение на наличие ошибок. Иногда, вследствие электрических помех или других воздействий, сообщение при пересылке от одного устройства к другому может незначительно измениться. Результат проверки контрольной суммы укажет SL или MS реагировать или не реагировать на такое сообщение. Это увеличивает надежность и эффективность систем MODBUS.

В режиме ASCII в поле контрольной суммы используется LRC, а в режиме RTU – CRC.

Если сообщения запроса и ответа могли бы читаться по-английски, то четыре поля этих сообщений выглядели как на рисунке. (Заметьте, что последовательность посылки полей каждый раз одна и та же – Адрес, Код функции, Данные и Контрольная сумма – независимо от направления.)

Таблица 7

MODBUS MS

ERROR CHECK

DATA

FUNCTION CODE (03)

ADDRESS (01)

MODBUS SL

Информация используется приемным устройством для проверки сообщения

Относительный адрес регистра

Чтение регистра хранения

Запрос для SL с номером 1

ADDRESS (01)

FUNCTION CODE (03)

DATA

ERROR CHECK

Ответ от SL с номером 1

Чтение регистра хранения

Значение, содержащееся в указанном регистре хранения

Информация, используемая приемным устройством для проверки сообщения

Исключительные ситуации

Коды исключительных ситуаций приведены в таблице. Когда SL обнаруживает одну их этих ошибок, он посылает ответное сообщение MS, содержащее адрес SL, код функции, код ошибки и контрольную сумму. Для указания на то, что ответное сообщение – это уведомление об ошибке, старший бит поля кода функции устанавливается в 1. На рисунке и представлен пример некорректного запроса и соответствующего ответа с кодом исключительной ситуации.

Таблица 8

Код

Название

Смысл

01

ILLEGAL FUNCTION

Функция в принятом сообщении не поддерживается на данном SL. Если тип запроса – POLL PROGRAM COMPLETE, этот код указывает, что предварительный запрос не был командой программирования.

02

ILLEGAL DATA ADDRESS

Адрес, указанный в поле данных, является недопустимым для данного SL.

03

ILLEGAL DATA VALUE

Значения в поле данных недопустимы для данного SL.

04

FAILURE IN ASSOCIATED DEVICE

SL не может ответить на запрос или произошла авария.

05

ACKNOWLEDGE

SL принял запрос и начал выполнять долговременную операцию программирования. Для определения момента завершения операции используйте запрос типа POLL PROGRAM COMPLETE. Если этот запрос был послан до завершения операции программирования, то SL ответит сообщением REJECTED MESSAGE.

06

BUSY, REJECTED MESSAGE

Сообщение было принято без ошибок, но SL в данный момент выполняет долговременную операцию программирования. Запрос необходимо ретранслировать позднее.

07

NAK-NEGATIVE ACKNOWLEDGMENT

Функция программирования не может быть выполнена. Используйте опрос для получения детальной аппаратно-зависимой информации об ошибке.

Таблица 9

Адрес SL

Функция

Старший байт адреса

Младший байт адреса

Старший байт числа ячеек

Младший байт числа ячеек

Контрольная сумма

0A

01

04

A1

00

01

4F

Этот запрос требует состояние ячейки с номером 1245 в SL с номером 10, и, если этот контроллер имеет 1К ячеек, то этот адрес является ошибочным. Соответственно, будет сгенерировано следующее ответное сообщение.

Таблица 10

Адрес SL

Функция

Код исключительной ситуации

Контрольная сумма

0A

81

02

73

Значение в поле функции равно оригинальному значению с установленным в единицу старшим битом. Код исключительной ситуации 02 указывает на ошибочный адрес данных.

2 Описание функций протокола

Цель данного раздела - определить общий формат соответствующих команд, доступных программисту системы MODBUS. В разделе описаны формат каждого запросного сообщения, выполняемая функция и формат нормального ответного сообщения.

Сообщения с номерами функций 1-6, 15 и 16 ссылаются на конкретные доступные переменные программируемого контроллера. Функция 1, 5 и 15 ссылаются на логические ячейки (0ХХХ(Х)), функция 2 на дискретные входы (1ХХХ(Х)), функция 4 на входные регистры (3ХХХ(Х)), функции 3,6 и 16 на внутренние регистры (4ХХХ(Х)). Все адреса ссылок в сообщениях MODBUS индексируются с нуля. Например, первый внутренний регистр в контроллере 584, будучи 40001-ым, имеет адрес ссылки 0. Точно также, ячейка 00127 будет иметь адрес 0126.

Примеры в данном разделе демонстрируют протокол независимо от режима RTU или ASCII. Программист может использовать следующий метод для корректировки пакета в зависимости от режима передачи.

Во всем разделе протокол будет представлен по возможности в формате, указанном на Рис.3-1. Числа имеют шестнадцатеричный формат.

Таблица 11

Адрес

Функция

Старший байт адреса первого регистра

Младший байт адреса первого регистра

Старший байт числа требуемых регистров

Младший байт числа требуемых регистра

Поле контроль-ной суммы

06

03

00

6B

00

03

89

LRC

Данный пример описывает чтение регистров 4108-4110 из SL с адресом 06. Это сообщение при форматировании в RTU и ASCII выглядит следующим образом:

Таблица 12

ЗАПРОС

RTU

ASCII

Заголовок

:

Адрес

0000

0110

0

6

Функция

0000

0011

0

3

Начальный адрес

H.O.

0000

0000

0

0

L.O.

0110

1011

6

В

Количество требуемых регистров

H.O.

0000

0000

0

0

L.O.

0000

0011

0

3

Поле контрольной суммы

0111

0101

8

9

1010

0000

Trailer

CR

LF

ОТВЕТ

RTU

ASCII

Заголовок

:

Адрес

0000

0110

0

6

Функция

0000

0011

0

3

Количество байт данных

0000

0110

0

6

Данные

H.O

0000

0010

0

2

L.O.

0010

1011

2

B

H.O.

0000

0000

0

0

L.O.

0000

0000

0

0

H.O.

0000

0000

0

0

L.O.

0110

0011

6

3

Контрольная сумма

CRC

6

1

Trailer

CR

LF

Длина пакета

11 байт

23 байта

Источник: https://studfile.net/preview/16521224/