Страница 2 из 2

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 30 июл 2019, 12:19
Danzel
Пробую отправить запрос на чтение данных исходя из https://www.eksis.ru/technical-support/ ... -protocol/ , считываю (Канал 1, параметр 2: 0x0004 (кислород)) исходя из https://www.eksis.ru/upload/description ... %D0%A1.txt,
Запрос в виде строки как на картинке ВП, посчитал контрольную сумму ASCII символов и получилось $0001RR000404B10D, ответа на запрос все равно нету, помогите разобраться

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 30 июл 2019, 13:57
Borjomy_1
Попробуйте отправить запрос, который вы перехватывали ранее из программы.

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 30 июл 2019, 14:57
Blackman
В конце строки не символы 0 и D, а код символа Carriage Return (CR) x0D

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 30 июл 2019, 18:02
Danzel
Подскажите как по одному символу записать данные в столбец как на фото (данные перехвачены с помощью стороннего ПО, из программы идущей в комплекте с прибором).

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 31 июл 2019, 04:40
ujin
Пробую отправить запрос на чтение данных исходя из https://www.eksis.ru/technical-support/ ... -protocol/ ,
Первая ссылка - описание протокола для подключения RS-232. По порту RS-232 можно соединиться проводом, длиной не более 20 м. Обычно это 1-2 м в пределах лаборатории. Порт RS-232 используется в основном для настройки и диагностики прибора. Гальванической развязки как правило нет.
исходя из https://www.eksis.ru/upload/description ... %D0%A1.txt,
Вторая ссылка - адреса переменных предположительно по порту RS-485. Этот порт уже "Рабочий". Дальность линии до 1,2 км. У производителя по этому порту (насколько можно понять описание) протокол MODBUS-RTU.
Отсюда вопросы. Вы к какому порту прибора МАГ-6С2 подключаетесь? Какой преобразователь используете?

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 31 июл 2019, 06:01
Danzel
Подключаюсь к порту RS485 через преобразователь USB-485 (ОВЕН АС4)

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 31 июл 2019, 06:34
ujin
Подключаюсь к порту RS485 через преобразователь USB-485 (ОВЕН АС4)
Лог с данными с программы производителя по порту RS-485?
Если так, то это явное несоответствие в техописании и повод пообщаться с производителем.
По обмену: вы читаете с порта 4 байта, в описании ответа прибора байт больше.
Можно убрать цикл WHILE. Программа выполнится один раз.
После инициализации порта можно прочитать с него все данные (для очистки буфера, могут быть данные с предыдущих запросов)
После запроса на запись перед чтением с порта нужно сделать таймаут, так как чтение у Вас производится сразу после записи в порт и на этот момент данных там точно не будет.
Можно вывести количество прочитанных байт для контроля размера буфера.
Можно так же записать данные с обмена через LV вторым преобразователем RS485. Сравнить с заводским.

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 31 июл 2019, 11:26
Blackman
Danzel писал(а):Подскажите как по одному символу записать данные в столбец как на фото ...
:wink:

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 31 июл 2019, 16:15
ujin
Подскажите как по одному символу записать данные в столбец как на фото (данные перехвачены с помощью стороннего ПО, из программы идущей в комплекте с прибором).
В 1998 году я делал радиомодем. Разобрал передачу с 232 порта по битикам. Символы и так записываются в порт по одному. Один символ в английской кодировке 7 бит, в русской 866 или 1251 8 бит.
Весь формат передачи - старт бит, данные 8 бит, бит четности, стоп бит. Передаются компом без промежутков. Окончание передачи либо снятие DTR либо программный XOFF.
В 485 окончание передачи - пробел в 3,5 символа.
Так что без разницы - передавать символы в порт по одному или пачкой, передаваться все равно будут по одному символу, а каждый символ по одному биту (порт то последовательный). Если только за 20 лет стандарты поменялись и в последовательный порт теперь пишут символы Юникода по 2 байта?

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 01 авг 2019, 11:15
Danzel
Спасибо всем, все получилось, данные считываются и преобразуются в float.
Еще вопрос по поводу преобразования, накидал программку, подскажите нельзя код уменьшить, а именно где осуществляется порядок передачи ascii символов (фото 1 описание), может использовать какие другие функции.

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 01 авг 2019, 12:59
IvanLis
Danzel писал(а):Еще вопрос по поводу преобразования, накидал программку, подскажите нельзя код уменьшить, а именно где осуществляется порядок передачи ascii символов (фото 1 описание), может использовать какие другие функции.
1.png
перевод из hex to float.vi
lv2012 save from 2016
(9.13 КБ) 144 скачивания

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 01 авг 2019, 13:27
Blackman
:wink:

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 02 авг 2019, 05:16
Danzel
Спасибо за помощь

Re: Чтение данных по протоколу Modbus RTU

Добавлено: 15 авг 2019, 11:15
Danzel
А как сделать чтобы в цикле считывались данные, добавляю цикл while, появляются левые данные при считывании, а именно символ "я" в начале