[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 | Зарезервированы |
Нет обратных ссылок на эту запись.
Leave a comment