Записки программиста Программирование и не только

31Окт/120

[Modbus] Функции 16-17

  • 16 (10 Hex) Preset Multiple Regs
  • 17 (11 Hex) Чтение идентификатора подчиненного

16 (10 Hex) Preset Multiple Regs

ОПИСАНИЕ
Запись данных в последовательность регистров (ссылка 4Х). При широковещательной передаче, функция устанавливает подобные регистры во всех подчиненных устройствах.

ЗАМЕЧАНИЕ
Функция может пересекаться с установленной защитой памяти.

ЗАПРОС
Запрос специфицирует регистры для записи. Регистры адресуются начиная с 0.

Данные для записи в регистры содержатся в поле данных запроса. Контроллеры M84 и 484 используют 10-битовую величину, со старшими шестью битами установленными в 0. Все остальные контроллеры используют 16 бит.

Ниже приведен пример запроса на установку двух регистров начиная с 40002 в 00 0A и 01 02 Hex, в подчиненном устройстве 17:

Запрос

Имя поля Пример (Hex)
Адрес подчиненного 11
Функция 10
Начальный адрес 00
Начальный адрес 01
Кол-во регистров ст. 00
Кол-во регистров мл. 02
Счетчик байт 02
Данные ст. 00
Данные мл. 0A
Данные ст. 01
Данные мл. 02
Контрольная сумма (CRC или LRC)

ОТВЕТ
Нормальный ответ содержит адрес подчиненного, код функции, начальный адрес, и количество регистров.

Ответ

Имя поля Пример (Hex)
Адрес подчиненного 11
Функция 10
Начальный адрес 00
Начальный адрес 01
Данные ст. 01
Данные мл. 02
Контрольная сумма (CRC или LRC)

17 (11 Hex) Чтение идентификатора подчиненного

ОПИСАНИЕ
Возвращает описание типа контроллера представленного по данному адресу, текущее состояние индикатора пуска, и другую информацию о подчиненном устройстве.

ЗАПРОС

Имя поля Пример (Hex)
Адрес подчиненного 11
Функция 11
Контрольная сумма (CRC или LRC)

ОТВЕТ
Формат нормального ответа показан ниже. Содержание байтов данных специфично для каждого типа контроллера.

Имя поля Пример (Hex)
Адрес подчиненного Возврат адреса подчиненного
Функция 11
Счетчик байт Зависит от устройства
Идентификатор у-ва Зависит от устройства
Индикатор пуска 00=OFF, FF=ON
Добавочная информация Зависит от устройства
Контрольная сумма (CRC или LRC)

Список идентификаторов устройств

Идентификатор Контроллер
0 Micro 84
1 484
2 184/384
3 584
8 884
9 984

184/384
184 или 384 контроллеры возвращают счетчик байт 4 или 74. Если J347 Modbus Slave Interface инициализирован правильно, и если внутренняя PIB-таблица нормальная, счетчик байт будет содержать 74. Иначе — 4.

Эти четыре байта будут возвращены в любом случае:

Байт Содержимое
1 Идентификатор (2 для 184/384)
2 Индикатор пуска (0=OFF, FF=ON)
3,4 Слово статуса:
Бит 0 = 0
Бит 1 = Защита памяти (0=OFF, 1=ON )
Бит 2,3 = Тип контроллера :
Бит 2=0 и Бит 3=0 — 184
Бит 2=1 и Бит 3=0 — 384
Биты 4-15 = не используются
Байт Содержимое
5,6 Начальный адрес PIB-таблицы
7,8 Серийный номер контроллера
9,10 Идентификатор исполнителя
Байты 11-74 содержат PIB-таблицу.
Эти данные верны если контроллер работает
(см. байт 2).
11,12 Максимальное количество выходов
13,14 Таблица доступных выходов
15,16 Адрес таблицы входов coil/run
17,18 Количество входов
19,20 Таблица доступных входов
21,22 Первое ключевое число (должно быть кратно 16)
23,24 Последнее ключевое число (должно быть кратно 16)
25,26 Адрес входных регистров
27,28 Количество входных регистров
29,30 Количество выходных и захваченных регистров
31,32 Адрес пользовательской логики
33,34 Адрес output coil RAM table
35,36 Маска недоступных функций
37,38 Адрес программы расширенной функции
39,40 Адрес программы передачи данных
41,42 Адрес traffic cop
43,44 Не используются
45,46 Маска недоступных функций
47,48 Адрес таблицы истории «А»-режима
49,50 Таблица запросов для DX принтера
51,52 Количество групп последовательностей
53,54 Адрес таблицы последовательностей отображения
55,56 Адрес последовательности RAM (адрес ОЗУ)
57,58 Количество 50ХХ регистров
59,60 Адрес таблицы 50ХХ
61,62 Адрес output coil RAM image
63,64 Адрес input RAM image
65,66 Delayed output start group
67,68 Delayed output end group
69,70 Сторожевой таймер
71,72 RAM adress of latches (адрес ключей в ОЗУ)
73,74 Адрес delayed output groups

584
584 контроллер возвращает счетчик байт = 9.

Байт Содержимое
1 Идентификатор (3 для 584)
2 Индикатор пуска (0=OFF, 1=ON)
3 Количество 4К секций нулевой страницы памяти
4 Количество 1К секций в статическом ОЗУ
5 Количество сегментов пользовательской логики
6,7 Слово состояния машины (слово таблицы конфигурации 101, 65 Hex)
Организация этого слова показана ниже:
Байт 6:
Бит 15 = Port 1 setup
Бит 14 = Port 2 setup
Бит 13 = Port 1 adress set
Бит 12 = Port 2 adress set
Бит 11 = Не присвоен
Бит 10 = Статус Constant Sweep (0=Constatnt Sweep OFF, 1=ON)
Бит 9 = Статус Single Sweep (0=Single Sweep OFF, 1=ON)
Бит 8 = 16/24-битовый узел (0=24-битовый, 1=16-битовый)
Байт 7:
Бит 7 = Питание ON (1=ON, никогда OFF)
Бит 6 = RUN — индикатор (0=ON, 1=OFF)
Бит 5 = Защита памяти (0=ON, 1=OFF)
Бит 4 = Состояние батареи (0=OK, 1=Not OK)
Биты 3-0 Не используются
8,9 Машинный код стопа
(таблица конфигурации слово 105, 69 Hex)
Организация этого слова показана ниже:
Байт 8:
Бит 15 = Стоп переферийного порта (стоп контроллера)
Бит 14 = Не используется
Бит 13 = Dim awareness
Бит 12 = Недопустимое вторжение периферии
Бит 11 = Неправильная таблица задач
Бит 10 = Старт узла не является стартом сегмента
Бит 9 = Ошибка теста статического ОЗУ
Бит 8 = Не обнаружен конец логики, или неверное количество сегментов
Байт 9:
Бит 7 = Сторожевой таймер накрылся
Бит 6 = Ошибка часов реального времени
Бит 5 = Ошибка диагностики процессора
Бит 4 = Неправильный тип traffic cop
Бит 3 = Неправильный тип узла
Бит 2 = Ошибка контрольной суммы логики
Бит 1 = Ошибка резервной контрольной суммы
Бит 0 = Неверная конфигурация

984
984 контроллер возвращает счетчик байт = 9.

Байт Содержимое
1 Идентификатор подчиненного (9 для 984)
2 Статус RUN-индикатора (0=OFF, 1=ON)
3 Количество 4К секций нулевой страницы памяти
4 Количество 1К секций в статическом ОЗУ
5 Количество сегментов пользовательской логики
6,7 Слово состояния машины (слово таблицы конфигурации 101, 65 Hex)
Организация этого слова показана ниже:
Байт 6:
Бит 15 = Не используется
Бит 14-11 = Не используется
Бит 10 = Статус Constant Sweep (0=Constatnt Sweep OFF, 1=ON)
Бит 9 = Статус Single Sweep (0=Single Sweep OFF, 1=ON)
Бит 8 = 16/24-битовый узел (0=24-битовый, 1=16-битовый)
Байт 7:
Бит 7 = Питание ON (1=ON, никогда OFF)
Бит 6 = RUN — индикатор (0=ON, 1=OFF)
Бит 5 = Защита памяти (0=ON, 1=OFF)
Бит 4 = Состояние батареи (0=OK, 1=Not OK)
Биты 3-1 = Не используются
Бит 0 = Флаг размера памяти

Размер памяти : Бит 0 слова состояния машины определяет использование величины размера памяти в словах 00, 100, 175 (63, 64, AF Hex) таблицы конфигурации. Если бит 0 = логической 1, размер памяти вычисляется следующим образом:
Размер 0 страницы(16 бит) = (Слово 99*4096)-(Слово 175 мл.байт*16)
Размер статической таблицы(16 бит) = (Слово 100*1024)-(Слово 175 ст. байт*16)

8,9 Машинный код стопа (таблица конфигурации слово 105, 69 Hex)
Организация этого слова показана ниже:
Байт 8:
Бит 15 = Стоп периферийного порта (стоп контроллера)
Бит 14 (984A,B,X) = Ошибка паритета расширенной памяти
Бит 13 = Dim awarness
Бит 12 = Недопустимое вторжение периферии
Бит 11 = Неверная таблица списков сегментов
Бит 10 = Старт узла не является стартом сегмента
Бит 9 = Ошибка теста статического ОЗУ
Бит 8 = Не обнаружен конец логики, или неверное количество сегментов
Байт 9:
Бит 7 = Сторожевой таймер накрылся
Бит 6 = Ошибка часов реального времени
Бит 5 (984A, B, X) = Ошибка диагностики процессора
Бит 5 (Другие 984) = Плохая таблица использования выходов
Бит 4 = S908 remote IO head failure
Бит 3 = Неправильный тип узла
Бит 2 = Ошибка контрольной суммы логики
Бит 1 = Выхода недоступны пока контроллер работает
Бит 0 = Неверная конфигурация

Micro 84
Micro 84 возвращает счетчик байт 8:

Байт Содержимое
1 Идентификатор подчиненного (0 для Micro 84)
2 Статус индикатора RUN (0=OFF, FF=ON)
3 Текущий номер порта
4 Размер памяти (1 = 1К, 2 = 2К)
5 Не используется (все 0)

484
484 контроллер возвращает счетчик байт 5:

Байт Содержимое
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 Зарезервированы
Комментарии (0) Пинги (0)

Пока нет комментариев.


Leave a comment

Нет обратных ссылок на эту запись.