0

СООБЩЕНИЯ ОБ ОШИБКАХ ModBUS

Одна из четырех ситуаций может иметь место при запросе главного к подчиненному:

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

- Если подчиненное устройство не приняло запрос, ответ не возвращается. Главный ожидает ответа на запрос в течении определенного таймаута.

- Если подчиненный принял запрос, но обнаружил коммуникационную ошибку(паритет, ошибка контрольной суммы), то ответ не возвращается. Главный ожидает ответа на запрос в течении определенного таймаута.

- Если подчиненный принял запрос без коммуникационной ошибки, но не может выполнить затребованную функцию(например, чтение несуществующих выходов или регистров), подчиненный возвращает сообщение об ошибке и ее причинах.

Сообщение об ошибке имеет два поля которые отличаются от полей нормального ответа:

ПОЛЕ КОДА ФУНКЦИИ: В нормальном ответе, подчиненный повторяет код функции содержащийся в поле кода функции запроса. Во всех кодах функций старший значащий бит установлен в 0. При возврате сообщения об ошибке подчиненный устанавливает этот бит в 1.

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

ПОЛЕ ДАННЫХ: В нормальном ответе, подчиненный может может возвращать данные или статистику в поле данных(любую информацию которая затребована в запросе). В сообщении об ошибке, подчиненный возвращает код ошибки в поле данных.

Ниже показан пример запроса главного и сообщения об ошибке подчиненного:

ЗАПРОС

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

(Hex)

Адрес подчиненного                                                                           0A

Функция                                                                                              01

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

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

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

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

Контрольная сумма (LRC)                                                  4F

СООБЩЕНИЕ ОБ ОШИБКЕ

Адрес подчиненного                                                                           0A

Функция                                                                                              81

Код ошибки                                                                                          02

Контрольная сумма (LRC)                                                  73

Вданном примере главный адресует подчиненное устройство 10. Код функции (01) — Read Coil Status. В запросе требуется прочитать выход с адресом 1245.

Если указанный выход не существует подчиненный возвращает сообщение об ошибке с кодом ошибки (02). Этот код специфицирует несуществующий адрес данных в подчиненном. Например если подчиненный это 984-385 с 512 выходами, то этот код ошибки будет возвращаться при обращении к несуществующим выходам.

Список кодов ошибок представлен ниже.

Код Название Описание
01 ILLEGAL FUNCTION Принятый код функции не может быть обработан на подчиненном.
02 ILLEGAL DATA ADDRESS Адрес данных указанный в запросе не доступен данному подчиненному.
03 ILLEGAL DATA VALUE Величина содержащаяся в поле данных запроса является не допустимой величиной для подчиненного.
04 SLAVE DEVICE FAILURE Невосстанавливаемая ошибка имела место пока подчиненный пытался выполнить затребованное действие.
05 ACKNOWLEDGE Подчиненный принял запрос и обрабатывает его, но это требует много времени. Этот ответ предохраняет главного от генерации ошибки таймаута. Главный может выдать команду Poll Program Complete для обнаружения завершения обработки команды.
06 SLAVE DEVICE BUSY Подчиненный занят обработкой команды. Главный должен повторить сообщение позже, когда подчиненный освободится.
07 NEGATIVE ACKNOWLEDGE Подчиненный не может выполнить программную функцию, принятую в запросе. Этот код возвращается для неудачного программного запроса, использующего функции с номерами 13 или 14. Главный должен запросить диагностическую информацию или информацию обошибках с подчиненного.
08 MEMORY PARITY ERROR Подчиненный пытается читать расширенную память, но обнаружил ошибку паритета. Главный может повторить запрос, но обычно в таких случаях требуется ремонт.

 

    Раздел: modbus Метки: 

    Оставить комментарий

    Отправить сообщение

    CoDeSys GSM/GPRS модем Lectus OPC MasterSCADA Modbus MX110 Omron OPC-сервер owen owen logic PLC Configuration PROFIBUS s-200 SCADA scada системы siemens siemens plc SIMATIC Simplight SMS step7 TRACE MODE Динамизация ИП-320 МЭК 1131–3 ОВЕН ОВЕН ПЛК ОВЕН ПЧВ ПЛК ПЛК ОВЕН ПР 110 Панель оператора Программируемое реле Частотный преобразователь библиотека в CoDeSys визуализация диспетчеризация конфигурация панели программирование ПЛК серия NS сименс плк частотник частотное управление язык CFC язык ST
    .