Modbus_Rus (1032046), страница 4
Текст из файла (страница 4)
Байт Содержание
1 Идентификатор подчиненного (1 для 484)
2 Статус индикатора RUN (0=OFF, FF=ON)
3 Установка системы
4 Первый байт конфигурации
5 Второй байт конфигурации
884
884 контроллер возвращает счетчик байт 8:
Байт Содержание
1 Идентификатор подчиненного (0 для Micro 84)
2 Статус индикатора RUN (0=OFF, FF=ON)
3 Текущий номер порта
4 Размер пользовательской логики плюс
статическая память, в килобайтах
5 Зарезервирован
6 Биты:
Бит 0-2 = Зарезервированы
Бит 3 = Обход mapper:
1 = не использовать стандартный mapper
Бит 4 = Конец теста Scan
1 = Конец теста сканирования
Бит 5 = Зарезервирован
Бит 6 = Обход решателя логики:
1 = не использовать стандартный решатель
Бит 7 = зарезервирован
7,8 Зарезервированы
20 (14 Hex) Read General Reference
ОПИСАНИЕ
Возвращает содержание регистров файла расширенной памяти (6ХХХХ). Широкое вещание не поддерживается.
Функция может читать несколько групп. Группы могут быть разделены, но посылка внутри каждой группы должна быть непрерывной.
ЗАПРОС
Запрос специфицирует группу или группы для чтения. Каждая группа определяется в поле "суб-запроса" которое содержит 7 байт:
- Тип ссылки : 1 байт (должен быть специфицирован как 6)
- Номер файла расширенной памяти: 2 байта (от 1 до 10)
- Начальный адрес регистра внутри файла: 2 байта
- Количество регистров для чтения: 2 байта.
Количество регистров для чтения, вместе с другими полями в ответе, не должно превышать допустимую длину MODBUS-сообщения: 256 байт.
Доступное количество файлов расширенной памяти зависит от установленного размера расширенной памяти в подчиненном контроллере. Каждый файл, исключая последний, содержит 10000 регистров, адресуемых как 0000-270F Hex (0000-9999).
Для контроллеров кроме 984-785:
Размер расш. памяти Кол-во файлов Остаточные регистры
16К 2 6383
32К 4 2767
64К 7 5535
96К 10 8303
Для контроллеров 984-785:
984-785 с картриджем AS-M785-032:
Польз. Статич.
логика ОЗУ Размер расш. пам. Кол. файлов Ост. рег.
32К 32К 0 0 0
16К 64К 72К 8 3727
984-785 c картриджем AS-M785-048:
Польз. Статич.
логика ОЗУ Размер расш. пам. Кол. файлов Ост. рег.
48К 32К 24К 3 4575
32К 64К 96К 10 8303
Пример чтения двух групп с подчиненного устройства 17 показан ниже.
Группа 1 состоит из двух регистров из файла 4, начиная с регистра 2 (адрес 0001).
Группа 2 состоит из двух регистров из файла 3, начиная с регистра 10 (адрес 0009).
Запрос
Имя поля Пример (Hex)
Адрес подчиненного 11
Функция 14
Счетчик байт 0E
Суб-запрос 1, Тип ссылки 06
Суб-запрос 1, Номер файла ст. 00
Суб-запрос 1, Номер файла мл. 04
Суб-запрос 1, Стартовый адрес ст . 00
Суб-запрос 1, Стартовый адрес мл. 01
Суб-запрос 1, Кол-во регистров ст. 00
Суб-запрос 1, кол-во регистров мл. 02
Суб-запрос 2, тип ссылки 06
Суб-запрос 2, Номер файла ст. 00
Суб-запрос 2, Номер файла мл. 03
Суб-запрос 2, Стартовый адрес ст. 00
Суб-запрос 2, Стартовый адрес мл. 09
Суб-запрос 2, Кол-во регистров ст. 00
Суб-запрос 2, кол-во регистров мл. 02
Контрольная сумма (LRC или CRC) --
ОТВЕТ
Нормальный ответ состоит из серии суб-ответов, один на каждый суб-запрос.
Имя поля Пример (Hex)
Адрес подчиненного 11
Функция 14
Счетчик байт 0E
Суб-ответ 1, Счетчик байт 0C
Суб-ответ 1, Тип ссылки 06
Суб-ответ 1, Данные регистра ст. 0D
Суб-ответ 1, Данные регистра мл. FE
Суб-ответ 1, Данные регистра ст. 00
Суб-ответ 1, Данные регистра мл. 20
Суб-ответ 2, Счетчик байт 05
Суб-ответ 2, Тип ссылки 06
Суб-ответ 2, Данные регистра ст. 33
Суб-ответ 2, Данные регистра мл. CD
Суб-ответ 2, Данные регистра ст. 00
Суб-ответ 2, Данные регистра мл. 40
Контрольная сумма --
21 (15 Hex) Write general reference
Описание
Запись содержимого регистров в файл расширенной память (6ХХХХ).
ЗАПРОС
Запрос специфицирует группу или группы для записи, и данные которые содержатся в них.
Запрос специфицирует группу или группы для чтения. Каждая группа определяется в поле "суб-запроса" которое содержит 7 байт:
- Тип ссылки : 1 байт (должен быть специфицирован как 6)
- Номер файла расширенной памяти: 2 байта (от 1 до 10)
- Начальный адрес регистра внутри файла: 2 байта
- Количество регистров для чтения: 2 байта.
Количество регистров для записи, вместе с другими полями в ответе, не должно превышать допустимую длину MODBUS-сообщения: 256 байт.
Доступное количество файлов расширенной памяти зависит от установленного размера расширенной памяти в подчиненном контроллере. Каждый файл, исключая последний, содержит 10000 регистров, адресуемых как 0000-270F Hex (0000-9999).
Для контроллеров кроме 984-785:
Размер расш. памяти Кол-во файлов Остаточные регистры
16К 2 6383
32К 4 2767
64К 7 5535
96К 10 8303
Для контроллеров 984-785:
984-785 с картриджем AS-M785-032:
Польз. Статич.
логика ОЗУ Размер расш. пам . Кол. файлов Ост. рег.
32К 32К 0 0 0
16К 64К 72К 8 3727
984-785 c картриджем AS-M785-048:
Польз. Статич.
логика ОЗУ Размер расш. пам. Кол. файлов Ост. рег.
48К 32К 24К 3 4575
32К 64К 96К 10 8303
Пример запроса и ответа приведен ниже.
В данном примере требуется записать одну группу в подчиненное устройство 17.
Группа состоит из трех регистров в файле 4, начиная с регистра 8 (адрес 0007).
Запрос
Имя поля Пример (Hex)
Адрес подчиненного 11
Функция 15
Счетчик байт 0D
Суб-запрос 1, тип ссылки 06
Суб-запрос 1, Номер файла ст. 00
Суб-запрос 1, Номер файла мл. 04
Суб-запрос 1, Начальный адрес ст. 00
Суб-запрос 1, Начальный адрес мл. 07
Суб-запрос 1, Кол-во регистров ст. 00
Суб-запрос 1, Кол-во регистров мл. 03
Суб-запрос 1, Данные регистра ст. 06
Суб-запрос 1, Данные регистра мл. AF
Суб-запрос 1, Данные регистра ст. 04
Суб-запрос 1, Данные регистра мл. BE
Суб-запрос 1, Данные регистра ст. 10
Суб-запрос 1, Данные регистра мл. 0D
Контрольная сумма --
Ответ
Нормальный ответ повторяет запрос.
Имя поля Пример (Hex)
Адрес подчиненного 11
Функция 15
Счетчик байт 0D
Суб-ответ 1, тип ссылки 06
Суб-ответ 1, Номер файла ст. 00
Суб-ответ 1, Номер файла мл. 04
Суб-ответ 1, Начальный адрес ст. 00
Суб-ответ 1, Начальный адрес мл. 07
Суб-ответ 1, Кол-во регистров ст. 00
Суб-ответ 1, Кол-во регистров мл. 03
Суб-ответ 1, Данные регистра ст. 06
Суб-ответ 1, Данные регистра мл. AF
Суб-ответ 1, Данные регистра ст. 04
Суб-ответ 1, Данные регистра мл. BE
Суб-ответ 1, Данные регистра ст. 10
Суб-ответ 1, Данные регистра мл. 0D
Контрольная сумма --
22 (16 Hex) Mask Write 4X Register
Описание
Модифицирует содержание регистров 4ХХХХ используя комбинацию OR-маску, AND-маску и текущего содержимого регистра. Функция может использоваться для установки или сброса отдельного бита в регистре.
Функция поддерживается только 984-785 контроллерами.
ЗАПРОС
Алгоритм функции следующий:
Результат=(Текущ. знач. AND Маска_И) OR (Маска_ИЛИ AND ~Маска_И)
Например: Hex Двоичное
Текущее значение 12 0001 0010
Маска_И F2 1111 0010
Маска_ИЛИ 25 0010 0101
~Маска_И 0D 0000 1101
Результат 17 0001 0111
Пример записи с маской в регистр 5 в подчиненное устройство 17, с приведенной выше маской описан ниже.
Запрос
Имя поля Пример (Hex)
Адрес подчиненного 17
Функция 16
Адрес ссылки ст. 00
Адрес ссылки мл. 04
Маска_И ст. 00
Маска_И мл. F2
Маска_ИЛИ ст. 00
Маска_ИЛИ мл. 25
Контрольная сумма --
ОТВЕТ
Нормальный ответ повторяет запрос. Ответ возвращается после записи в регистр.
Ответ
Имя поля Пример (Hex)
Адрес подчиненного 17
Функция 16
Адрес ссылки ст. 00
Адрес ссылки мл. 04
Маска_И ст. 00
Маска_И мл. F2
Маска_ИЛИ ст. 00
Маска_ИЛИ мл. 25
Контрольная сумма --
23 (17 Hex) Read/Write 4X Registers
ОПИСАНИЕ
Производит операцию чтения и записи за одну MODBUS транзакцию. Функция может записывать новое содержание регистров 4ХХХХ и возвращать содержание другой группы регистров 4ХХХХ. Эта функция поддерживается только на 984-785 контроллерах.
ЗАПРОС
Запрос специфицирует начальный адрес и количество регистров группы для чтения. И также специфицирует начальный адрес, количество регистров, и данные для записи в группу регистров. Счетчик байтов содержит количество байт передаваемых в поле данных.
В примере, приведенном ниже требуется прочитать шесть регистров начиная с пятого, и записать три регистра начиная с 16, в подчиненном устройстве 17:
Запрос
Имя поля Пример (Hex)
Адрес подчиненного 17
Функция 17
Начальный регистр чтения ст. 00
Начальный регистр чтения мл. 04
Кол-во регистров для чтения ст. 00
Кол-во регистров для чтения мл. 06
Начальный регистр записи ст. 00
Начальный регистр записи мл. 0F
Кол-во регистров для записи ст. 00
Кол-во регистров для записи мл. 03
Счетчик байтов 06
Данные для записи 1 ст. 00
Данные для записи 1 мл. FF
Данные для записи 2 ст. 00
Данные для записи 2 мл. FF
Данные для записи 3 ст. 00
Данные для записи 3 мл. FF
Контрольная сумма --
ОТВЕТ
Нормальный ответ содержит данные прочитанных регистров.
Ответ
Имя поля Пример (Hex)
Адрес подчиненного 17
Функция 17
Счетчик байт 0C
Считанные данные 1 ст. 00
Считанные данные 1 мл. FE
Считанные данные 2 ст. 0A
Считанные данные 2 мл. CD
Считанные данные 3 ст. 00
Считанные данные 3 мл. 01
Считанные данные 4 ст. 00
Считанные данные 4 мл. 03
Считанные данные 5 ст. 00
Считанные данные 5 мл. 0D
Считанные данные 6 ст. 00
Считанные данные 6 мл. FF
Контрольная сумма --
24 (18 Hex) Read FIFO Queue
ОПИСАНИЕ
Чтение содержимого очереди FIFO (регистры 4ХХХХ). Функция возвращает счетчик регистров в очереди, следом идут данные очереди. До 32 регистров могут быть считаны: счетчик, плюс 31 регистр данных очереди.
Функция читает содержимое очереди, но не очищает ее.
Функция поддерживается только на 984-785 контроллерах.
ЗАПРОС
Запрос специфицирует начальный регистр 4ХХХХ для чтения FIFO очереди. Это адрес регистра указателя использующегося в функциональных блоках FIN и FOUT контроллеров.
Ниже показан пример чтения FIFO очереди с подчиненного устройства 17. Чтение очереди начинается с регистра указателя 41247 (04DE Hex).
Запрос
Имя поля Пример (Hex)
Адрес подчиненного 11
Функция 18
Адрес указателя FIFO ст. 04
Адрес указателя FIFO мл. DE
Контрольная сумма --
ОТВЕТ
В нормальном ответе, счетчик байт содержит количество следующих за ним байтов, включая счетчик байтов очереди и регистры данных (но не включая поле контрольной суммы).
Счетчик байтов очереди содержит количество регистров данных в очереди (не включая счетчик).
Если счетчик очереди содержит число больше 31, то в ответе возвращается код ошибки 03 (Недопустимая величина данных).
Ниже показан пример нормального ответа на запрос представленный выше:
Ответ
Имя поля Пример (Hex)
Адрес подчиненного 11
Функция 18
Счетчик байт ст. 00
Счетчик байт мл. 08
Счетчик FIFO ст. 00
Счетчик FIFO мл. 03
Регистр данных FIFO 1 ст. 01
Регистр данных FIFO 1 мл. B8
Регистр данных FIFO 2 ст. 12
Регистр данных FIFO 2 мл. 84
Регистр данных FIFO 3 ст. 13
Регистр данных FIFO 3 мл. 22
Контрольная сумма --
ФУНКЦИЯ ДИАГНОСТИКИ
Функция 08 - Диагностическая
ОПИСАНИЕ
Функция 08 обеспечивает серию тестов для проверки системы коммуникации между главным и подчиненным, или проверку на различные внутренние ошибки в подчиненном. Широкое вещание не поддерживается.
Функция использует два байта кода подфункции в запросе для определения типа теста который необходимо провести. Подчиненный возвращает оба кода функции и подфункции в нормальном ответе.
Большинство диагностических запросов используют два байта поля данных для посылки диагностических данных или контрольной информации подчиненному. Некоторые результаты диагностики могут возвращаться подчиненным в поле данных нормального ответа.
ЭФФЕКТ ДИАГНОСТИКИ НА ПОДЧИНЕННОМ
В общем, работа диагностической функции в подчиненном устройстве не влияет на работу пользовательской программы. Пользовательская логика, такая как дискретные выходы и регистры, не доступна для диагностики. Определенные функции могут выборочно сбросить счетчик ошибок в подчиненном.
КАК ОРГАНИЗОВАНА ИНФОРМАЦИЯ В ДАННОМ РУКОВОДСТВЕ
Примеры диагностических запросов и ответов показаны на последующих страницах. В них показано размещение кода функции, кода подфункции, и поля данных внутри сообщения.















