[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