Modbus ошибка 131

Содержание:

  1. Компоненты СИМП Лайт
  2. Редактор каналов
  3. Источники данных
  4. Modbus driver
  5. Коды ошибок Modbus

Расшифровка кодов ошибок Modbus:

 

01

  Принятый код функции не может быть обработан.
 

02

  Адрес данных, указанный в запросе, недоступен.
 

03

  Значение, содержащееся в поле данных запроса,
  является недопустимой величиной.
 

04

  Невосстанавливаемая ошибка имела место,
  пока ведомое устройство пыталось выполнить
  затребованное действие.
 

05

  Ведомое устройство приняло запрос и обрабатывает
  его, но это требует много времени. Этот ответ
  предохраняет ведущее устройство от генерации
  ошибки тайм-аута.
 

06

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

07

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

08

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

10 (0A hex)

  

  Шлюз неправильно настроен или перегружен запросами 
 

11 (0B hex)

  Slave устройства нет в сети или от него нет ответа 

Device’s (OWEN ME110) manual says:
Integer value of measured voltage 0x0019, 0x001A Signed long Read only
A asked holding registers (telegraf 1.19.0, RTU 9600/8N1):
byte_order = "ABCD", data_type = "INT32", scale=1.0, address = [25,26]
and
byte_order = "ABCD", data_type = "FIXED", scale=1.0, address = [25,26]
both give the message:
Error in plugin: modbus: exception '3' (illegal data value), function '131'
(all other bytes orders — the same).

When I asked
byte_order = "AB", data_type = "INT16", scale=1.0, address = [25]
and
byte_order = "AB", data_type = "INT16", scale=1.0, address = [26]
both return
name=24,slave_id=16,type=holding_register U1=10i

I’m trying to run this piece of code:

from pymodbus.client.sync import ModbusSerialClient as ModbusClient
import logging

logging.basicConfig()
log = logging.getLogger()
log.setLevel(logging.DEBUG)

client = ModbusClient(method='rtu', baudrate=9600, parity='E', port='/dev/ttyUSB0', timeout=1)
client.connect()

rr = client.read_holding_registers(40000, 7, unit=0x01)
print rr
client.close()

But I get only this:

DEBUG:pymodbus.transaction:Running transaction 1
DEBUG:pymodbus.factory:Factory Response[131]
DEBUG:pymodbus.transaction:adding transaction 0
DEBUG:pymodbus.transaction:getting transaction 1
Exception Response(131, 3, IllegalAddress)

On the other hand this C code (using libmodbus) is working:

modbus_t *mb;
int16_t hregs[9];
mb = modbus_new_rtu('/dev/ttyUSB0', 9600, 'E', 8, 1);
modbus_set_slave(mb, 1);
modbus_read_registers(mb, 0x40000, 7, hregs)

What am I doing wrong?

Обновлено: 26 мая 2023 г. 16:15

Протокол Modbus RTU компании Modicon поддерживают многие фирмы-производители контроллеров. Протокол предполагает одно активное устройство в линии ( master), которое может обращаться к нескольким пассивным (slave). Синтаксис команд протокола позволяет адресовать 254 устройства, соединенных в одну линию. 

Возможно применение протокола modbus в дуплексных и полудуплексных линиях связи. Физическим уровнем протокола modbus как правило является линия стандарта RS422/RS485, 

однако при соединении точка-точка тот же формат команд может быть использован на любом последовательном асинхронном физическом интерфейсе, в том числе RS-232. Возможно применение протокола modbus в сетевой среде поверх транспортных протоколов UDP/TCP и IPX/SPX.

Протокол modbus подразумевает наличие в линии только одного ведущего устройства (master) и множества подчиненных устройств (slave). Инициатива проведения обмена всегда исходит от ведущего устройства, которое подает запрос (определенная последовательность байт) в линию и переходит в состояние прослушивания линии связи. Ведомое устройство отвечает на запрос, пришедший в его адрес.

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

Кадры запроса и ответа по протоколу modbus имеют формат, приведенный в ( Таблица 1-1).

Таблица 1-1. Кадр посылки modbus

Поле кадра

Длина в байтах

адрес подчиненного устройства

1

номер функции

1

данные

N < 254

контрольная сумма

2

адрес подчиненного устройства — первое однобайтное поле кадра. Оно содержит адрес подчиненного устройства, к которому адресован запрос. Подчиненные устройства отвечают только на запросы, поступившие в их адрес. Ответ также начинается с адреса отвечающего устройства. Может изменяться от 1 до 254;

номер функции — это следующее однобайтное поле кадра. Оно говорит подчиненному устройству, какие данные или выполнение какого действия требует от него ведущее устройство;

данные — поле содержит информацию необходимую подчиненному устройству для выполнения заданной мастером функции или содержит данные передаваемые подчиненным устройством в ответ на запрос ведущего. Длина и формат поля зависит от номера функции;

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

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

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

Для сообщений об ошибках второго типа протокол Modbus RTU предусматривает, что устройства могут отсылать ответы, свидетельствующие об ошибочной ситуации. Признаком наличия сообщения об ошибке, является установленный старший бит кода команды. Кадр ответа с ошибкой приведен в ( Таблица 1-2).

Таблица 1-2. Кадр ответа с ошибкой modbus

Сетевой адрес

Код команды

Код ошибки

CRC — код

01

81

02

C1 91

Могут быть отправлены ответы, имеющие следующие коды (Таблица 1-3):

Таблица 1-3. Коды ошибок modbus.

Код ошибки

Название

Комментарий

01

ILLEGAL FUNCTION

Команда не реализована (недопустимый номер функции)

02

ILLEGAL DATA ADDRESS

Некорректный адрес

03

ILLEGAL DATA VALUE

Некорректные данные

04

FAILURE IN ASSOCIATED DEVICE

 

05

ACKNOWLEDGE

Данные не готовы

06

BUSY, REJECTED MESSAGE

Система занята

07

NAK-NEGATIVE ACKNOWLEDGMENT

 

08

MEMORY PARITY ERROR

 

В протокол Modbus можно выделить несколько подмножеств команд ( Таблица 1-4).

Таблица 1-4. Подмножества команд modbus.

Подмножество команд

Диапазон кодов команд

Стандартные команды

1-21

Резерв для расширенных функций

22-64

Пользовательские

65-119

Резерв для внутренних нужд

120-255

Похожие статьи:

  • Настройка модемов IRZ для обмена данными через CSD соединение
  • Ремонт устройств плавного пуска
  • Твердотельное реле
  • Ремонт АИД-70, УКД-70, АИД-70М, АИД-70Ц, Скат-70
  • Преимущества частотных преобразователей

Время выполнения запроса: 0,00514698028564 секунды.

background image

Reference MVI56E-MNETR

♦ ControlLogix Platform

User Manual

Modbus TCP/IP Interface Module with Reduced Data Block

ProSoft Technology, Inc.

Page 131 of 153

August 31, 2009

Modbus Exception Codes

Code Name

Meaning

01

Illegal Function

The function code received in the query is not an allowable
action for the Server. This may be because the function
code is only applicable to newer devices, and was not
implemented in the unit selected. It could also indicate that
the Server is in the wrong state to process a request of this
type, for example because it is unconfigured and is being
asked to return register values.

02

Illegal Data Address

The data address received in the query is not an allowable
address for the Server. More specifically, the combination
of reference number and transfer length is invalid. For a
controller with 100 registers, a request with offset 96 and
length 4 would succeed; a request with offset 96 and length
5 will generate exception 02.

03

Illegal Data Value

A value contained in the query data field is not an allowable
value for Server. This indicates a fault in the structure of
the remainder of a complex request, such as that the
implied length is incorrect. It specifically does not mean that
a data item submitted for storage in a register has a value
outside the expectation of the application program,
because the Modbus protocol is unaware of the
significance of any particular value of any particular
register.

04

Slave Device Failure

An unrecoverable error occurred while the Server was
attempting to perform the requested action.

05

Acknowledge

Specialized use in conjunction with programming
commands. The Server has accepted the request and is
processing it, but a long duration of time will be required to
do so. This response is returned to prevent a timeout error
from occurring in the Client. The Client can next issue a
poll program complete message to determine if processing
is completed.

06

Slave Device Busy

Specialized use in conjunction with programming
commands. The Server is engaged in processing a long-
duration program command. The Client should retransmit
the message later when the Server is free.

08

Memory Parity Error

Specialized use in conjunction with function codes 20 and
21 and reference type 6, to indicate that the extended file
area failed to pass a consistency check. The Server
attempted to read record file, but detected a parity error in
the memory. The Client can retry the request, but service
may be required on the server Server device.

0a Gateway

Path

Unavailable

Specialized use in conjunction with gateways, indicates
that the gateway was unable to allocate an internal
communication path from the input port to the output port
for processing the request. Usually means that the gateway
is misconfigured or overloaded.

0b

Gateway Target Device
Failed To Respond

Specialized use in conjunction with gateways, indicates
that no response was obtained from the target device.
Usually means that the device is not present on the
network.

Понравилась статья? Поделить с друзьями:
  • Mod organizer ошибка приложения 0xc000007b
  • Modbus ошибка устройства 129
  • Mod manager ошибка patch 1
  • Mod manager attila ошибка
  • Mod io snowrunner ошибка 401