Modbus_Rus (1031648), страница 4
Текст из файла (страница 4)
Количество регистров для чтения, вместе с другими полями в ответе, не должно превышать допустимую длину 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 обеспечивает серию тестов для проверки системы коммуникации между главным и подчиненным, или проверку на различные внутренние ошибки в подчиненном. Широкое вещание не поддерживается.
Функция использует два байта кода подфункции в запросе для определения типа теста который необходимо провести. Подчиненный возвращает оба кода функции и подфункции в нормальном ответе.
Большинство диагностических запросов используют два байта поля данных для посылки диагностических данных или контрольной информации подчиненному. Некоторые результаты диагностики могут возвращаться подчиненным в поле данных нормального ответа.
ЭФФЕКТ ДИАГНОСТИКИ НА ПОДЧИНЕННОМ
В общем, работа диагностической функции в подчиненном устройстве не влияет на работу пользовательской программы. Пользовательская логика, такая как дискретные выходы и регистры, не доступна для диагностики. Определенные функции могут выборочно сбросить счетчик ошибок в подчиненном.
КАК ОРГАНИЗОВАНА ИНФОРМАЦИЯ В ДАННОМ РУКОВОДСТВЕ
Примеры диагностических запросов и ответов показаны на последующих страницах. В них показано размещение кода функции, кода подфункции, и поля данных внутри сообщения.
Список кодов подфункций поддерживаемых различными контроллерами приведен ниже после примера ответа на запрос.
ЗАПРОС
Это пример запроса подчиненному устройству на возврат данных переданных в запросе. Здесь используется код подфункции 0.
Запрос
Имя поля Пример (Hex)
Адрес подчиненного 11
Функция 08
Подфункция ст. 00
Подфункция мл. 00
Данные ст. A5
Данные мл. 37
Контрольная сумма --
ОТВЕТ
Нормальный ответ возвращает те же данные.
Имя поля Пример (Hex)
Адрес подчиненного 11
Функция 08
Подфункция ст. 00
Подфункция мл. 00
Данные ст. A5
Данные мл. 37
Контрольная сумма --
ДИАГНОСТИЧЕСКИЕ КОДЫ ПОДДЕРЖИВАЕМЫЕ КОНТРОЛЛЕРАМИ
Код Имя 383 484 584 884 M84 984
00 Return Query Data Y Y Y Y Y Y