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

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Danzel
beginner
beginner
Сообщения: 49
Зарегистрирован: 22 янв 2016, 10:41
Версия LabVIEW: 12
Контактная информация:

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

Сообщение Danzel »

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

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

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

Сообщение Borjomy_1 »

Попробуйте отправить запрос, который вы перехватывали ранее из программы.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

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

Сообщение Blackman »

В конце строки не символы 0 и D, а код символа Carriage Return (CR) x0D
Вложения
Eksis Exchange protocol Query String
Eksis Exchange protocol Query String
Последний раз редактировалось Blackman 30 июл 2019, 23:40, всего редактировалось 3 раза.
Danzel
beginner
beginner
Сообщения: 49
Зарегистрирован: 22 янв 2016, 10:41
Версия LabVIEW: 12
Контактная информация:

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

Сообщение Danzel »

Подскажите как по одному символу записать данные в столбец как на фото (данные перехвачены с помощью стороннего ПО, из программы идущей в комплекте с прибором).
Вложения
1.1.JPG
ujin
user
user
Сообщения: 94
Зарегистрирован: 28 июл 2019, 13:16
Версия LabVIEW: 19
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

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

Сообщение 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 подключаетесь? Какой преобразователь используете?
Danzel
beginner
beginner
Сообщения: 49
Зарегистрирован: 22 янв 2016, 10:41
Версия LabVIEW: 12
Контактная информация:

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

Сообщение Danzel »

Подключаюсь к порту RS485 через преобразователь USB-485 (ОВЕН АС4)
ujin
user
user
Сообщения: 94
Зарегистрирован: 28 июл 2019, 13:16
Версия LabVIEW: 19
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

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

Сообщение ujin »

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

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

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

Сообщение Blackman »

Danzel писал(а):Подскажите как по одному символу записать данные в столбец как на фото ...
:wink:
Вложения
Send Eksis Exchange Query String (Byte-by-Byte).png
ujin
user
user
Сообщения: 94
Зарегистрирован: 28 июл 2019, 13:16
Версия LabVIEW: 19
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

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

Сообщение ujin »

Подскажите как по одному символу записать данные в столбец как на фото (данные перехвачены с помощью стороннего ПО, из программы идущей в комплекте с прибором).
В 1998 году я делал радиомодем. Разобрал передачу с 232 порта по битикам. Символы и так записываются в порт по одному. Один символ в английской кодировке 7 бит, в русской 866 или 1251 8 бит.
Весь формат передачи - старт бит, данные 8 бит, бит четности, стоп бит. Передаются компом без промежутков. Окончание передачи либо снятие DTR либо программный XOFF.
В 485 окончание передачи - пробел в 3,5 символа.
Так что без разницы - передавать символы в порт по одному или пачкой, передаваться все равно будут по одному символу, а каждый символ по одному биту (порт то последовательный). Если только за 20 лет стандарты поменялись и в последовательный порт теперь пишут символы Юникода по 2 байта?
Danzel
beginner
beginner
Сообщения: 49
Зарегистрирован: 22 янв 2016, 10:41
Версия LabVIEW: 12
Контактная информация:

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

Сообщение Danzel »

Спасибо всем, все получилось, данные считываются и преобразуются в float.
Еще вопрос по поводу преобразования, накидал программку, подскажите нельзя код уменьшить, а именно где осуществляется порядок передачи ascii символов (фото 1 описание), может использовать какие другие функции.
Вложения
порядок передачи hex.jpg
перевод из hex to float.vi
(11.94 КБ) 161 скачивание
фото 2.png
фото 3.png
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

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

Сообщение IvanLis »

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

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

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

Сообщение Blackman »

:wink:
Вложения
hex string to single float convertor.png
Danzel
beginner
beginner
Сообщения: 49
Зарегистрирован: 22 янв 2016, 10:41
Версия LabVIEW: 12
Контактная информация:

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

Сообщение Danzel »

Спасибо за помощь
Danzel
beginner
beginner
Сообщения: 49
Зарегистрирован: 22 янв 2016, 10:41
Версия LabVIEW: 12
Контактная информация:

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

Сообщение Danzel »

А как сделать чтобы в цикле считывались данные, добавляю цикл while, появляются левые данные при считывании, а именно символ "я" в начале
Вложения
11.JPG
22.JPG
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Коммуникация с приборами»