Диагностика работы с устройством Modbus

<< Click to Display Table of Contents >>

Navigation:  Проект в MasterSCADA 4D > Дерево системы > Получение и отправка данных > Стандартные протоколы > Modbus > Рекомендации по настройке протокола Modbus >

Диагностика работы с устройством Modbus

Первое включение

При первом подключении к контроллеру рекомендуется создать устройство и добавить в него только один канал, предпочтительно с типом данных INT или WORD, чтобы избежать проблем с чередованием байт. Затем запустите опрос. Если в канале отображается корректное значение с достоверным признаком качества, можно приступить к созданию остальных каналов для этого устройства.

В ином случае требуется сформировать отчёт об ошибках и провести анализ трассировки обмена.

Формирование отчета

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

Важно! Получать лог-файлы обмена с устройством следует всегда на отдельном проекте, с одним устройством и минимумом переменных.

Чтобы в лог-файлы записывались запросы от устройств, необходимо активировать расширенный режим записи логов. Для этого, в панели свойств узла, для настройки Параметры запуска RT нужно установить значение /t :

diagnostika_raboti_s_ustroistvon_Modbus

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

В случае если используется исполнительная система, входящая в состав среды разработки, файлы, по умолчанию, хранятся в папке: С:\Users\[имя пользователя]\AppData\Roaming\MPSSoft\MasterSCADA4D[номер версии]\ProjectsServiceData\[имя проекта]\Debug\[имя узла]\PLC\logs\log_[дата формирования файла].txt

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

Откройте лог-файл при помощи Блокнота или специальным ПО для просмотра логов (например LogViewer).

Анализ лога

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

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

[INF] (127.0.0.1:502) Device with address 1 Id 61049 Number of requests by region:

Coils:1

HoldingRegisters:1

Structure of requests (Region:StartAddress:CountElements)

C:0:1

H:0:5

В первой строке выводится IP адрес и номер порта устройства, затем адрес устройства. После этого количество запросов чтения для каждого региона. В данном случае устройство 127.0.0.1:502, адрес 1, запрашивается 1 запрос региона Coils и 1 запрос региона Holding Registers. Затем выводится структуру каждого запроса - Регион:Стартовый адрес:Количество элементов. В данном случае из региона Coils запрашивается 1 элемент с адреса 0, а из региона Holding Registers запрашивается 5 элементов с адреса 0.

После этого выводятся диагностические сообщения от драйвера уже в режиме опроса. Строки с информацией о чтении и отправки данных с устройства имеют уровень TRA (трассировки). Информация о чтении и записи данных по каждому каналу модуля Modbus:

[INF] (127.0.0.1:502) <Modbus> Address 1 ID 58152. Read start 2024-08-13T08:16:31.298539

54565749: |23384| [TRA] (127.0.0.1:502) Tx: [12] C1 8B 00 00 00 06 01 01 00 00 00 01

54565765: |23384| [TRA] (127.0.0.1:502) Rx: [10] C1 8B 00 00 00 04 01 01 01 00

54565765: |23384| [TRA] (127.0.0.1:502) Tx: [12] C1 8C 00 00 00 06 01 03 00 00 00 05

54565781: |23384| [TRA] (127.0.0.1:502) Rx: [19] C1 8C 00 00 00 0D 01 03 0A 00 0C 00 00 00 00 00 00 00 00

54565782: |23384| [INF] (127.0.0.1:502) <Modbus> Read done

Строки с информацией об отсутствии связи с устройством Modbus:

50735646: |22560| [INF] (127.0.0.1:502) <Modbus> Address 1 ID 61049. Read start 2024-08-13T07:12:41.195468

50735647: |22560| [ERR] (127.0.0.1:502) OpenTCPSocket failed error=10035

50735709: |22560| [INF] (127.0.0.1:502) Close socket : (state=1)

50735709: |22560| [ERR] (127.0.0.1:502) <Modbus> No connection. Set BAD to all tags

Это означает что нет ответа от устройства. Перепроверьте скорость, четность, стоп-биты, адрес устройства, а также тип протокола.

Драйвер может выдавать в лог следующие ошибки:

Текст ошибки

Описание

ERROR: no init sendandreceive

Ошибка инициализации функции отправки запроса. Проверьте параметры подключения - номер СОМ порта, IP адрес и т.д.

Например - неверно указан COM порт или он занят.

ERROR: Port not open

Не удалось открыть порт. Проверьте параметры подключения - номер СОМ порта, IP адрес и т.д.

Например - неверно указан COM порт или он занят.

ERROR: no answer

Нет ответа от устройства. Проверьте параметры подключения к устройству.

ERROR: CRC. Clear buffer

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

ERROR: incorrect Transaction ID. Clear buffer

Проявляется только с Modbus TCP. Означает что ID запроса не совпадает с ID ответа. В этом случае буфер также очищается и запрос повторяется. Также рекомендуется добавить таймаут.

ERROR: incorrect address. Clear buffer

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

ERROR: incorrect data length. Clear buffer

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

ERROR: wrong answer length. Clear buffer

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

ERROR: get code error. Exit

От устройства получен код ошибки - второй байт после адрес более 0x80. Это означает что вы опрашиваете не тот регистр, не тот регион, слишком большая длина запроса. Подробнее эта ситуация описывается в разделе часто задаваемых вопросов.

Смотрите также: