Category Archives: ПЛК. Ликбез

Функция ModBUS 16

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

Контрольная сумма                                                                             —

 

ОТВЕТ

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

 

Функция ModBUS 15

15 (0F Hex) Force Multiple Coils

ОПИСАНИЕ

Устанавливает каждый выход (ссылка 0Х) последовательности выходов в одно из состояний ON или OFF. При широковещательной передаче функция устанавливает подобные выходы на всех всех подчиненных.

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

ЗАПРОС

Запрос специфицирует выходы для установки. Выходы адресуются начиная с 0.

Ниже показан пример запроса на установку последовательности выходов начиная с 20 (адресуется как 19) в подчиненном устройстве 17.

Поле данных запроса содержит 2 байта: CD 01 Hex (1100 1101 0000 0001 двоичное). Соответствие битов и выходов представлено ниже:

Бит: 1 1 0 0 1 1 0 1                                                               0 0 0 0 0 0 0 1

Выход: 27 26 25 24 23 22 21 20                           — — — — — — 29 28

Запрос

Имя поля                                                                                              Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              0F

Адрес выхода ст.                                                                                 00

Адрес выхода мл.                                                                13

Кол-во выходов ст.                                                                             00

Кол-во выходов мл.                                                                            0A

Счетчик байт                                                                                        02

Данные для установки (Выходы 27-20)                                            CD

Данные для установки (Выходы 29-28)                                            01

Контрольная сумма                                                                             —

 

ОТВЕТ

Нормальный ответ возвращает адрес подчиненного, код функции, начальный адрес, и количество установленных выходов.

Это пример ответа на представленный выше запрос.

Ответ

Имя поля                                                                                              Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              0F

Адрес выхода ст.                                                                                00

Адрес выхода мл.                                                                 13

Кол-во выходов ст.                                                                              00

Кол-во выходов мл.                                                                             0A

Контрольная сумма                                                                             —

Функция ModBUS 12

12 (0C Hex) Fetch Comm Event Log

ОПИСАНИЕ

Возвращает слово состояния, счетчик событий, счетчик сообщений, и поле байтов событий.

Слово состояния и счетчик событий идентичны возвращаемым функцией 11 (0B Hex).

Счетчик сообщений обработанных подчиненным со времени последнего рестарта, операции очистки счетчиков или с момента включения питания. Этот счетчик идентичен возвращаемому функцией диагностики (код 08), подфункцией Return Bus Message Count (код 11).

Поле байтов событий содержит 0-64 байта, каждый байт содержит статус одной посылки или приема сообщения подчиненным. События размещаются подчиненным в поле в хронологическом порядке. Байт 0 содержит последнее по времени событие.

ЗАПРОС

Ниже приведен пример запроса на посылку коммуникационного журнала сообщений главному с подчиненного устройства 17:

Имя поля                                                                                              Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              0C

Контрольная сумма                                                                             —

 

ОТВЕТ

Нормальный ответ содержит два байта слова состояния, два байта счетчика событий, два байта счетчика сообщений, и поля содержащего 0-64 байта описания событий. Поле счетчика данных определяет общую длину данных в четырех полях.

Это пример ответа на запрос представленный выше:

Ответ

Имя поля                                                                                             Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              0C

Счетчик байтов                                                                                   08

Состояние ст.                                                                                       00

Состояние мл.                                                                                      00

Счетчик событий ст.                                                                           01

Счетчик событий мл.                                                                          08

Счетчик сообщений ст.                                                                       01

Счетчик сообщений мл.                                                                      21

Событие 0                                                                                            20

Событие 1                                                                                            00

Контрольная сумма                                                                            —

 

Вданном примере, слово состояния содержит 00 00 Hex, это говорит о том, что подчиненный не занят выпонением программной функции. Счетчик событий содержит 264. Счетчик сообщений показывает, что 289 сообщений было обработано.

Последнее коммуникационное событие показано в 0-ом байте событий. Его содержимое говорит о том, что подчиненный был введен в режим Listen Only Mode.

Предыдущее событие показано в 1-ом байте событий. Его содержимое (00) говорит о том, что подчиненный принял Communications Restart.

Содержимое байтов событий описано ниже.

ЧТО СОДЕРЖАТ БАЙТЫ СОБЫТИЙ

Байты событий, возвращаемые функцией Fetch Communication Event Log, могут быть одним из четырех типов. Тип определяется старшим битом в каждом байте. Кроме того, он может определятся битом 6.

Slave Modbus Receive Event

Этот тип байта события сохраняется подчиненным когда сообщение-запрос было принято. Он сохраняется перед тем как подчиненный обработает сообщение. Этот тип события определяется установкой бита 7 в «1». Остальные биты устанавливаются в «1» если произошли описанные ниже события:

Бит                         Описание

0                             Не используется

1                             Коммуникационная ошибка

2                             Не используется

3                             Не используется

4                             Character Overrun

5                             Currently in Listen Only Mode

6                             Широковещательный прием

7                             1

Slave Modbus Send Event

Этот тип байта события сохраняется подчиненным когда он закончил обработку сообщения запроса. Он сохраняется если подчиненный возвращает нормальный ответ или возвращает сообщение об ошибке, или не отвечает на запрос. Это событие определяется установкой бита 7 в 0, с установкой бита 6 в 1. Остальные биты устанавливаются в 1 если произошли описанные ниже события:

Бит                         Описание

0                             Read Exeption Sent (Код ошибки 1-3)

1                             Slave Abort Exeption Sent (Код ошибки 4)

2                             Slave Busy Exeption Sent (Код ошибки 5-6)

3                             Slave Program NAK Exeption Sent (Код ошибки 7)

4                             Write Timeout Error Occured

5                             Currently in Listen Mode

6                             1

7                             0

Slave Entered Listen Only Mode

Этот тип байта события сохраняется подчиненным когда он вводится в режим Listen Only Mode.

Описание битов:

Бит                         Описание

0                             0

1                             0

2                             1

3                             0

4                             0

5                             0

6                             0

7                             0

Slave Initiated Communication Restart

Этот тип байта события сохраняется подчиненным когда был сделан рестарт коммуникационного порта. Рестарт подчиненного может быть сделан посредством диагностической функции (код 08 Hex) подфункция Restart Communication Option (код 00 01).

Эта функция также может переводить подчиненного в режим ‘Continue on Error’ или ‘Stop on Error’. Если подчиненный находится в режиме ‘Continue on Error Mode’, байт события добавляется к существующему журналу событий. Если подчиненный находится в режиме ‘Stop on Error’ байт добавляется в журнал и остаток журнала сбрасывается в 0.

Описание битов

Бит                         Содержание

0                             0

1                             0

2                             0

3                             0

4                              0

5                             0

6                             0

7                             0

 

Функция ModBUS 11

11 (0B Hex) Fetch Comm Event Ctr

ОПИСАНИЕ

Возвращает слово состояния и счетчик событий из коммуникационного счетчика событий подчиненного устройства. Просматривая текущий счетчик перед и после серии сообщений , главный может увидеть какие сообщения были нормально приняты подчиненным.

Счетчик событий инкрементируется после каждого удачного приема сообщения. Он не инкрементируется после сообщений об ошибке, команд регистрации, или команд просмотра счетчика событий.

Счетчик событий может быть переустановлен посредством Диагностической функции (код 08), подфункциями Restart Communication Option (код 00 01) или Clear Counters and Diagnostic Register (код 00 0A).

ЗАПРОС

Ниже приведен пример запроса на чтение коммуникационного счетчика событий в подчиненном устройстве 17:

Имя поля                                                                                              Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              0B

Контрольная сумма                                                                             —

 

ОТВЕТ

Нормальный ответ содержит два байта слова состояния, и два байта счетчика событий. Слово состояния содержит все 1 если предыдущая команда еще выполняется. Иначе слово состояния содержит все нули.

Ниже приведен пример ответа на описанный выше запрос:

Ответ

Имя поля                                                                                             Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              0B

Состояние ст.                                                                                       FF

Состояние мл.                                                                                      FF

Счетчик событий ст.                                                                           01

Счетчик событий мл.                                                                          08

Контрольная сумма                                                                             —

 

В этом примере слово состояния содержит число FFFF Hex, что говорит о том, что в подчиненном все еще выполняется функция. Счетчик событий содержит число 264, что говорит о том, что на данный момент произошло 264 события.

 

Функция ModBUS 07

07 Read Exception Status

ОПИСАНИЕ

Чтение статусных выходов в подчиненном контроллере. Назначение некоторых выходов в контроллерах заранее определено. Другие же могут программироваться пользователем для вывода информации о контроллере, например «машина ВКЛ/ВЫКЛ» и др.

Функция обеспечивает простой метод доступа к данной информации, потому что адрес статусных выходов известен (нет необходимости указывать адрес выхода).

Статусные выходы имеют следующие предопределения:

Модель контроллера                          Выход                    Назначение

M84,184/384,584,984 1-8                                    Определяемые пользователем

484                                         257                          Состояние батареи

258-264  Определяемые пользователем

884                                         761                          Состояние батареи

762                          Статус Защиты памяти

763                          RIO Health Status

764-768 Определяемые пользователем

ЗАПРОС

Имя поля                                                                                              Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              07

Контрольная сумма                                                                            —

 

ОТВЕТ

Нормальный ответ содержит состояние восьми выходов статуса.

Пример ответа на запрос описанный выше:

Ответ

Имя поля                                                                                              Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              06

Данные выходов                                                                   6D

Контрольная сумма                                                                             —

 

Функция ModBUS 06

06 Preset Single Register

ОПИСАНИЕ

Записывает величину в единичный регистр (ссылка 4Х). При щироковезательной передаче на всех подчиненных устройствах устанавливается один и тот же регистр.

ЗАМЕЧАНИЕ

Функция может пересекаться с установленной защитой памяти.

ЗАПРОС

Запрос содержит ссылку на регистр, который необходимо установить. Регистры адресуются с 0.

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

В приведенном ниже примере в регистр 40002 записывается величина 0003 Hex в подчиненном устройстве 17.

Запрос

Имя поля                                                                                              Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              06

Адрес регистра мл.                                                                             00

Адрес регистра ст.                                                                              01

Данные ст.                                                                                            00

Данные мл.                                                                                           03

Контрольная сумма                                                                             —

 

ОТВЕТ

Нормальный ответ повторяет запрос.

Ответ

Имя поля                                                                                              Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              06

Адрес регистра мл.                                                                             00

Адрес регистра ст.                                                                              01

Данные ст.                                                                                            00

Данные мл.                                                                                           03

Контрольная сумма                                                                             —

 

Функция ModBUS 05

05 Force Single Coil

ОПИСАНИЕ

Установка единичного выхода (ссылка 1Х) в ON или OFF. При широковещательной передаче функция устанавливает все выходы с данным адресом во всех подчиненных контроллерах.

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

памяти и установкой недоступности выходов.

ЗАПРОС

Запрос содержит номер выхода для установки. Выходы адресуются начиная с 0. Выход 1 адресуется как 0.

Состояние, в которое необходимо установить выход (ON/OFF) описывается в поле данных. Величина FF00 Hex — ON. Величина 0000 — OFF. Любое другое число неверно и не влияет на выход.

В приведенном ниже примере устанавливается выход 173 в состояние ON в подчиненном устройстве 17.

Запрос

Имя поля                                                                                             Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              05

Адрес выхода мл.                                                                00

Адрес выхода ст.                                                                                 AC

Данные ст.                                                                                            FF

Данные мл.                                                                                           00

Контрольная сумма                                                                            —

 

ОТВЕТ

Нормальный ответ повторяет запрос.

Ответ

Имя поля                                                                                             Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              05

Адрес выхода мл.                                                                00

Адрес выхода ст.                                                                                 AC

Данные ст.                                                                                            FF

Данные мл.                                                                                           00

Контрольная сумма                                                                             —

 

Функция ModBUS 04

04 Read Input Registers

СОДЕРЖАНИЕ

Чтение двоичного содержания входных регистров (ссылка 3Х) в подчиненном.

ЗАПРОС

Запрос содержит номер начального регистра и количество регистров для чтения.

Ниже приведен пример запроса для чтения регистра 30009 с подчиненного устройства 17.

Запрос

Имя поля                                                                                             Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              03

Начальный адрес ст.                                                                           00

Начальный адрес мл.                                                                          6B

Кол-во регистров ст.                                                                          00

Кол-во регистров мл.                                                                         03

Контрольная сумма                                                                            —

 

ОТВЕТ

Данные регистров в ответе передаются как два бйта на регистр. Для каждого регистра, первый байт содержит старшие биты второй байт содержит младшие биты.

За одно обращение может считываться 125 регистров для контроллеров 984-Х8Х (984-685 и т.д.), и 32 регистра для других контроллеров. Ответ дается когда все данные укомплектованы.

Это пример ответа на запрос представленный выше:

Ответ

Имя поля                                                                                              Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              03

Счетчик байт                                                                                        02

Данные (регистр 30009) ст.                                                 00

Данные (регистр 30009) мл.                                                               2A

Контрольная сумма                                                                            —

 

Функция ModBUS 03

03 Read Holding Registers

ОПИСАНИЕ

Чтение двоичного содержания регистров (ссылка 4Х) в подчиненном.

ЗАПРОС

Сообщение запроса специфицирует начальный регистр и количество регистров для чтения. Регистры адресуются начина с 0: регистры 1-16 адресуются как 0-15.

Ниже приведен пример чтения регистров 40108-40110 с подчиненного устройства 17.

Запрос

Имя поля                                                                                              Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              03

Начальный адрес ст.                                                                           00

Начальный адрес мл.                                                                         6B

Кол-во регистров ст.                                                                          00

Кол-во регистров мл.                                                                         03

Контрольная сумма                                                                            —

 

ОТВЕТ

Данные регистров в ответе передаются как два бйта на регистр. Для каждого регистра, первый байт содержит старшие биты второй байт содержит младшие биты.

За одно обращение может считываться 125 регистров для контроллеров 984-Х8Х (984-685 и т.д.), и 32 регистра для других контроллеров. Ответ дается когда все данные укомплектованы.

Это пример ответа на запрос представленный выше:

Ответ

Имя поля                                                                                             Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              03

Счетчик байт                                                                                       06

Данные (регистр 40108) ст.                                                02

Данные (регистр 40108) мл.                                                               2B

Данные (регистр 40109) ст.                                                00

Данные (регистр 40109) мл.                                                               00

Данные (регистр 40110) ст.                                                00

Данные (регистр 40110) мл.                                                               64

Контрольная сумма                                                                            —

 

Функция ModBUS 02

02 Read Input Status

ОПИСАНИЕ

Чтение ON/OFF состояния дискретных входов (ссылка 1Х) в пдчиненном.

ЗАПРОС

Запрос содержит номер начального входа и количество входов для чтения. Входа адресуются начиная с 0.

Ниже приведен пример запроса на чтение входов 10197-10218 с подчиненного устройства 17.

Запрос

Имя поля                                                                                             Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              02

Начальный адрес ст.                                                                            00

Начальный адрес мл.                                                                           C4

Кол-во входов ст.                                                                 00

Кол-во входов мл.                                                                               16

Контрольная сумма                                                                             —

 

ОТВЕТ

Статус входов в ответном сообщении передается как один выход на бит.

Если возвращаемое количество входов не кратно восьми, то оставшиеся биты в последнем байте сообщения будут установлены в 0. Счетчик байт содержит количество байт передаваемых в поле данных.

Имя поля                                                                                             Пример

(Hex)

Адрес подчиненного                                                                           11

Функция                                                                                              01

Счетчик байт 4                                                                                     005

Данные(Входы 10204-10197)                                                             AC

Данные(Входы 10212-10205)                                                             DB

Данные(Входы 10218-10213)                                                             35

Контрольная сумма (CRC или LRC)                                 —