Modbus_Rus (1031648), страница 2
Текст из файла (страница 2)
Начальный адрес Lo 13
Количество Hi 00
Количество Lo 25
Контрольная сумма (CRC или LRC) --
ОТВЕТ
Статус выходов в ответном сообщении передается как один выход на бит.
Если возвращаемое количество выходов не кратно восьми, то оставшиеся биты в последнем байте сообщения будут установлены в 0. Счетчик байт содержит количество байт передаваемых в поле данных.
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 01
Счетчик байт 4 005
Данные(Выхода 27-20) CD
Данные(Выхода 35-28) 6B
Данные(Выхода 43-36) B2
Данные(Выхода 51-44) 0E
Данные(Выхода 56-52) 1B
Контрольная сумма (CRC или LRC) --
02 Read Input Status
ОПИСАНИЕ
Чтение ON/OFF состояния дискретных входов (ссылка 1Х) в пдчиненном.
ЗАПРОС
Запрос содержит номер начального входа и количество входов для чтения. Входа адресуются начиная с 0.
Ниже приведен пример запроса на чтение входов 10197-10218 с подчиненного устройства 17.
Запрос
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 02
Начальный адрес ст. 00
Начальный адрес мл. C4
Кол-во входов ст. 00
Кол-во входов мл. 16
Контрольная сумма --
ОТВЕТ
Статус входов в ответном сообщении передается как один выход на бит.
Если возвращаемое количество входов не кратно восьми, то оставшиеся биты в последнем байте сообщения будут установлены в 0. Счетчик байт содержит количество байт передаваемых в поле данных.
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 01
Счетчик байт 4 005
Данные(Входы 10204-10197) AC
Данные(Входы 10212-10205) DB
Данные(Входы 10218-10213) 35
Контрольная сумма (CRC или LRC) --
03 Read Holding Registers
ОПИСАНИЕ
Чтение двоичного содержания регистров (ссылка 4Х) в подчиненном.
ЗАПРОС
Сообщение запроса специфицирует начальный регистр и количество регистров для чтения. Регистры адресуются начина с 0: регистры 1-16 адресуются как 0-15.
Ниже приведен пример чтения регистров 40108-40110 с подчиненного устройства 17.
Запрос
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 03
Начальный адрес ст. 00
Начальный адрес мл. 6B
Кол-во регистров ст. 00
Кол-во регистров мл. 03
Контрольная сумма --
ОТВЕТ
Данные регистров в ответе передаются как два бйта на регистр. Для каждого регистра, первый байт содержит старшие биты второй байт содержит младшие биты.
За одно обращение может считываться 125 регистров для контроллеров 984-Х8Х (984-685 и т.д.), и 32 регистра для других контроллеров. Ответ дается когда все данные укомплектованы.
Это пример ответа на запрос представленный выше:
Ответ
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 03
Счетчик байт 06
Данные (регистр 40108) ст. 02
Данные (регистр 40108) мл. 2B
Данные (регистр 40109) ст. 00
Данные (регистр 40109) мл. 00
Данные (регистр 40110) ст. 00
Данные (регистр 40110) мл. 64
Контрольная сумма --
04 Read Input Registers
СОДЕРЖАНИЕ
Чтение двоичного содержания входных регистров (ссылка 3Х) в подчиненном.
ЗАПРОС
Запрос содержит номер начального регистра и количество регистров для чтения.
Ниже приведен пример запроса для чтения регистра 30009 с подчиненного устройства 17.
Запрос
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 03
Начальный адрес ст. 00
Начальный адрес мл. 6B
Кол-во регистров ст. 00
Кол-во регистров мл. 03
Контрольная сумма --
ОТВЕТ
Данные регистров в ответе передаются как два бйта на регистр. Для каждого регистра, первый байт содержит старшие биты второй байт содержит младшие биты.
За одно обращение может считываться 125 регистров для контроллеров 984-Х8Х (984-685 и т.д.), и 32 регистра для других контроллеров. Ответ дается когда все данные укомплектованы.
Это пример ответа на запрос представленный выше:
Ответ
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 03
Счетчик байт 02
Данные (регистр 30009) ст. 00
Данные (регистр 30009) мл. 2A
Контрольная сумма --
05 Force Single Coil
ОПИСАНИЕ
Установка единичного выхода (ссылка 1Х) в ON или OFF. При широковещательной передаче функция устанавливает все выходы с данным адресом во всех подчиненных контроллерах.
ЗАМЕЧАНИЕ Функция может пересекаться с установкой защиты
памяти и установкой недоступности выходов.
ЗАПРОС
Запрос содержит номер выхода для установки. Выходы адресуются начиная с 0. Выход 1 адресуется как 0.
Состояние, в которое необходимо установить выход (ON/OFF) описывается в поле данных. Величина FF00 Hex - ON. Величина 0000 - OFF. Любое другое число неверно и не влияет на выход.
В приведенном ниже примере устанавливается выход 173 в состояние ON в подчиненном устройстве 17.
Запрос
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 05
Адрес выхода мл. 00
Адрес выхода ст. AC
Данные ст. FF
Данные мл. 00
Контрольная сумма --
ОТВЕТ
Нормальный ответ повторяет запрос.
Ответ
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 05
Адрес выхода мл. 00
Адрес выхода ст. AC
Данные ст. FF
Данные мл. 00
Контрольная сумма --
06 Preset Single Register
ОПИСАНИЕ
Записывает величину в единичный регистр (ссылка 4Х). При щироковезательной передаче на всех подчиненных устройствах устанавливается один и тот же регистр.
ЗАМЕЧАНИЕ
Функция может пересекаться с установленной защитой памяти.
ЗАПРОС
Запрос содержит ссылку на регистр, который необходимо установить. Регистры адресуются с 0.
Величина, в которую необходимо установить регистр передается в поле данных. Контроллеры M84 и 484 используют 10-ти битную величину, старшие шесть бит заполняются 0. Все другие контроллерыиспользуют 16 бит.
В приведенном ниже примере в регистр 40002 записывается величина 0003 Hex в подчиненном устройстве 17.
Запрос
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 06
Адрес регистра мл. 00
Адрес регистра ст. 01
Данные ст. 00
Данные мл. 03
Контрольная сумма --
ОТВЕТ
Нормальный ответ повторяет запрос.
Ответ
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 06
Адрес регистра мл. 00
Адрес регистра ст. 01
Данные ст. 00
Данные мл. 03
Контрольная сумма --
07 Read Exception Status
ОПИСАНИЕ
Чтение статусных выходов в подчиненном контроллере. Назначение некоторых выходов в контроллерах заранее определено. Другие же могут программироваться пользователем для вывода информации о контроллере, например "машина ВКЛ/ВЫКЛ" и др.
Функция обеспечивает простой метод доступа к данной информации, потому что адрес статусных выходов известен (нет необходимости указывать адрес выхода).
Статусные выходы имеют следующие предопределения:
Модель контроллера Выход Назначение
M84,184/384,584,984 1-8 Определяемые пользователем
484 257 Состояние батареи
258-264 Определяемые пользователем
884 761 Состояние батареи
762 Статус Защиты памяти
763 RIO Health Status
764-768 Определяемые пользователем
ЗАПРОС
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 07
Контрольная сумма --
ОТВЕТ
Нормальный ответ содержит состояние восьми выходов статуса.
Пример ответа на запрос описанный выше:
Ответ
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 06
Данные выходов 6D
Контрольная сумма --
11 (0B Hex) Fetch Comm Event Ctr
ОПИСАНИЕ
Возвращает слово состояния и счетчик событий из коммуникационного счетчика событий подчиненного устройства. Просматривая текущий счетчик перед и после серии сообщений , главный может увидеть какие сообщения были нормально приняты подчиненным.
Счетчик событий инкрементируется после каждого удачного приема сообщения. Он не инкрементируется после сообщений об ошибке, команд регистрации, или команд просмотра счетчика событий.
Счетчик событий может быть переустановлен посредством Диагностической функции (код 08), подфункциями Restart Communication Option (код 00 01) или Clear Counters and Diagnostic Register (код 00 0A).
ЗАПРОС
Ниже приведен пример запроса на чтение коммуникационного счетчика событий в подчиненном устройстве 17:
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 0B
Контрольная сумма --
ОТВЕТ
Нормальный ответ содержит два байта слова состояния, и два байта счетчика событий. Слово состояния содержит все 1 если предыдущая команда еще выполняется. Иначе слово состояния содержит все нули.
Ниже приведен пример ответа на описанный выше запрос:
Ответ
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 0B
Состояние ст. FF
Состояние мл. FF
Счетчик событий ст. 01
Счетчик событий мл. 08
Контрольная сумма --
В этом примере слово состояния содержит число FFFF Hex, что говорит о том, что в подчиненном все еще выполняется функция. Счетчик событий содержит число 264, что говорит о том, что на данный момент произошло 264 события.
12 (0C Hex) Fetch Comm Event Log
ОПИСАНИЕ
Возвращает слово состояния, счетчик событий, счетчик сообщений, и поле байтов событий.
Слово состояния и счетчик событий идентичны возвращаемым функцией 11 (0B Hex).
Счетчик сообщений обработанных подчиненным со времени последнего рестарта, операции очистки счетчиков или с момента включения питания. Этот счетчик идентичен возвращаемому функцией диагностики (код 08), подфункцией Return Bus Message Count (код 11).
Поле байтов событий содержит 0-64 байта, каждый байт содержит статус одной посылки или приема сообщения подчиненным. События размещаются подчиненным в поле в хронологическом порядке. Байт 0 содержит последнее по времени событие.
ЗАПРОС
Ниже приведен пример запроса на посылку коммуникационного журнала сообщений главному с подчиненного устройства 17:
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 0C
Контрольная сумма --
ОТВЕТ
Нормальный ответ содержит два байта слова состояния, два байта счетчика событий, два байта счетчика сообщений, и поля содержащего 0-64 байта описания событий. Поле счетчика данных определяет общую длину данных в четырех полях.
Это пример ответа на запрос представленный выше:
Ответ
Имя поля Пример
(Hex)
Адрес подчиненного 11
Функция 0C
Счетчик байтов 08
Состояние ст. 00
Состояние мл. 00
Счетчик событий ст. 01
Счетчик событий мл. 08
Счетчик сообщений ст. 01
Счетчик сообщений мл. 21
Событие 0 20
Событие 1 00
Контрольная сумма --
Вданном примере, слово состояния содержит 00 00 Hex, это говорит о том, что подчиненный не занят выпонением программной функции. Счетчик событий содержит 264. Счетчик сообщений показывает, что 289 сообщений было обработано.
Последнее коммуникационное событие показано в 0-ом байте событий. Его содержимое говорит о том, что подчиненный был введен в режим Listen Only Mode.
Предыдущее событие показано в 1-ом байте событий. Его содержимое (00) говорит о том, что подчиненный принял Communications Restart.
Содержимое байтов событий описано ниже.
ЧТО СОДЕРЖАТ БАЙТЫ СОБЫТИЙ
Байты событий, возвращаемые функцией Fetch Communication Event Log, могут быть одним из четырех типов. Тип определяется старшим битом в каждом байте. Кроме того, он может определятся битом 6.
Slave Modbus Receive Event
Этот тип байта события сохраняется подчиненным когда сообщение-запрос было принято. Он сохраняется перед тем как подчиненный обработает сообщение. Этот тип события определяется установкой бита 7 в "1". Остальные биты устанавливаются в "1" если произошли описанные ниже события:
Бит Описание
0 Не используется
1 Коммуникационная ошибка
2 Не используется
3 Не используется
4 Character Overrun
5 Currently in Listen Only Mode
6 Широковещательный прием
7 1
Slave Modbus Send Event
Этот тип байта события сохраняется подчиненным когда он закончил обработку сообщения запроса. Он сохраняется если подчиненный возвращает нормальный ответ или возвращает сообщение об ошибке, или не отвечает на запрос. Это событие определяется установкой бита 7 в 0, с установкой бита 6 в 1. Остальные биты устанавливаются в 1 если произошли описанные ниже события:
Бит Описание
0 Read Exeption Sent (Код ошибки 1-3)
1 Slave Abort Exeption Sent (Код ошибки 4)
2 Slave Busy Exeption Sent (Код ошибки 5-6)
3 Slave Program NAK Exeption Sent (Код ошибки 7)
4 Write Timeout Error Occured
5 Currently in Listen Mode