Не правильные данные получаю, а в чем причина - не могу понять

Рейтинг: 0Ответов: 1Опубликовано: 12.05.2023

Работаю с панелью оператора ОВЕН СП307, получаю данные из системных регистром Modbus, и есть момент, который не могу решить:

Некоторые данные выводятся возможно некорректно, может я их не правильно обрабатываю, но выглядит по итогу вот так:

введите сюда описание изображения

Октеты маски подсети могут принимать значения от 0 до 255, а у меня выходит 8227, и таких примеров много, что в таком случае можно сделать? Если что, код для сбора информации выглядит вот так:

int[] reg1_PFW_PO = modClient.ReadHoldingRegisters(4096, 120);
Reg_PFW_PO.Items.Add("Номер стартового экрана:" + ((UInt16)reg1_PFW_PO[0]));

Первой строчкой беру из определенных регистров данные, а второй добавляю их в listbox. Библиотека, с которой работаю - EasyModbus.

Я думал, что проблема в том, что я неверные регистры читаю, и пробовал редактировать код, но этот вариант не сработал. я пробовал в первую строчку вместо 4096 писать 10000 и 14096, и вышло следующее:

10000:

введите сюда описание изображения

14096:

введите сюда описание изображения

И что надо в итоге сделать, чтобы данные были корректными?

Ответы

▲ 0

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

Дальше нужно взять какую-то готовую программу для обмена по MODBUS:

ModLinkDemo – serial master/slave application

MODBus_TEST – TCP client

mod_RSsim – TCP server

CCS Modbus Simulator – serial master/slave application

и попробовать с её помощью вручную читать регистры.

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