Чтение данных по протоколу Modbus RTU
-
- beginner
- Сообщения: 49
- Зарегистрирован: 22 янв 2016, 10:41
- Версия LabVIEW: 12
- Контактная информация:
Re: Чтение данных по протоколу Modbus RTU
Пробую отправить запрос на чтение данных исходя из https://www.eksis.ru/technical-support/ ... -protocol/ , считываю (Канал 1, параметр 2: 0x0004 (кислород)) исходя из https://www.eksis.ru/upload/description ... %D0%A1.txt,
Запрос в виде строки как на картинке ВП, посчитал контрольную сумму ASCII символов и получилось $0001RR000404B10D, ответа на запрос все равно нету, помогите разобраться
Запрос в виде строки как на картинке ВП, посчитал контрольную сумму ASCII символов и получилось $0001RR000404B10D, ответа на запрос все равно нету, помогите разобраться
- Вложения
-
- маг.vi
- (12.82 КБ) 144 скачивания
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: Чтение данных по протоколу Modbus RTU
Попробуйте отправить запрос, который вы перехватывали ранее из программы.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Чтение данных по протоколу Modbus RTU
В конце строки не символы 0 и D, а код символа Carriage Return (CR) x0D
Последний раз редактировалось Blackman 30 июл 2019, 23:40, всего редактировалось 3 раза.
-
- beginner
- Сообщения: 49
- Зарегистрирован: 22 янв 2016, 10:41
- Версия LabVIEW: 12
- Контактная информация:
Re: Чтение данных по протоколу Modbus RTU
Подскажите как по одному символу записать данные в столбец как на фото (данные перехвачены с помощью стороннего ПО, из программы идущей в комплекте с прибором).
-
- user
- Сообщения: 94
- Зарегистрирован: 28 июл 2019, 13:16
- Версия LabVIEW: 19
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Re: Чтение данных по протоколу Modbus RTU
Первая ссылка - описание протокола для подключения RS-232. По порту RS-232 можно соединиться проводом, длиной не более 20 м. Обычно это 1-2 м в пределах лаборатории. Порт RS-232 используется в основном для настройки и диагностики прибора. Гальванической развязки как правило нет.Пробую отправить запрос на чтение данных исходя из https://www.eksis.ru/technical-support/ ... -protocol/ ,
Вторая ссылка - адреса переменных предположительно по порту RS-485. Этот порт уже "Рабочий". Дальность линии до 1,2 км. У производителя по этому порту (насколько можно понять описание) протокол MODBUS-RTU.исходя из https://www.eksis.ru/upload/description ... %D0%A1.txt,
Отсюда вопросы. Вы к какому порту прибора МАГ-6С2 подключаетесь? Какой преобразователь используете?
-
- beginner
- Сообщения: 49
- Зарегистрирован: 22 янв 2016, 10:41
- Версия LabVIEW: 12
- Контактная информация:
Re: Чтение данных по протоколу Modbus RTU
Подключаюсь к порту RS485 через преобразователь USB-485 (ОВЕН АС4)
-
- user
- Сообщения: 94
- Зарегистрирован: 28 июл 2019, 13:16
- Версия LabVIEW: 19
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Re: Чтение данных по протоколу Modbus RTU
Лог с данными с программы производителя по порту RS-485?Подключаюсь к порту RS485 через преобразователь USB-485 (ОВЕН АС4)
Если так, то это явное несоответствие в техописании и повод пообщаться с производителем.
По обмену: вы читаете с порта 4 байта, в описании ответа прибора байт больше.
Можно убрать цикл WHILE. Программа выполнится один раз.
После инициализации порта можно прочитать с него все данные (для очистки буфера, могут быть данные с предыдущих запросов)
После запроса на запись перед чтением с порта нужно сделать таймаут, так как чтение у Вас производится сразу после записи в порт и на этот момент данных там точно не будет.
Можно вывести количество прочитанных байт для контроля размера буфера.
Можно так же записать данные с обмена через LV вторым преобразователем RS485. Сравнить с заводским.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Чтение данных по протоколу Modbus RTU
Danzel писал(а):Подскажите как по одному символу записать данные в столбец как на фото ...
-
- user
- Сообщения: 94
- Зарегистрирован: 28 июл 2019, 13:16
- Версия LabVIEW: 19
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
Re: Чтение данных по протоколу Modbus RTU
В 1998 году я делал радиомодем. Разобрал передачу с 232 порта по битикам. Символы и так записываются в порт по одному. Один символ в английской кодировке 7 бит, в русской 866 или 1251 8 бит.Подскажите как по одному символу записать данные в столбец как на фото (данные перехвачены с помощью стороннего ПО, из программы идущей в комплекте с прибором).
Весь формат передачи - старт бит, данные 8 бит, бит четности, стоп бит. Передаются компом без промежутков. Окончание передачи либо снятие DTR либо программный XOFF.
В 485 окончание передачи - пробел в 3,5 символа.
Так что без разницы - передавать символы в порт по одному или пачкой, передаваться все равно будут по одному символу, а каждый символ по одному биту (порт то последовательный). Если только за 20 лет стандарты поменялись и в последовательный порт теперь пишут символы Юникода по 2 байта?
-
- beginner
- Сообщения: 49
- Зарегистрирован: 22 янв 2016, 10:41
- Версия LabVIEW: 12
- Контактная информация:
Re: Чтение данных по протоколу Modbus RTU
Спасибо всем, все получилось, данные считываются и преобразуются в float.
Еще вопрос по поводу преобразования, накидал программку, подскажите нельзя код уменьшить, а именно где осуществляется порядок передачи ascii символов (фото 1 описание), может использовать какие другие функции.
Еще вопрос по поводу преобразования, накидал программку, подскажите нельзя код уменьшить, а именно где осуществляется порядок передачи ascii символов (фото 1 описание), может использовать какие другие функции.
- Вложения
-
- перевод из hex to float.vi
- (11.94 КБ) 163 скачивания
-
IvanLis
- guru
- Сообщения: 5463
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: Чтение данных по протоколу Modbus RTU
Danzel писал(а):Еще вопрос по поводу преобразования, накидал программку, подскажите нельзя код уменьшить, а именно где осуществляется порядок передачи ascii символов (фото 1 описание), может использовать какие другие функции.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- beginner
- Сообщения: 49
- Зарегистрирован: 22 янв 2016, 10:41
- Версия LabVIEW: 12
- Контактная информация:
Re: Чтение данных по протоколу Modbus RTU
А как сделать чтобы в цикле считывались данные, добавляю цикл while, появляются левые данные при считывании, а именно символ "я" в начале
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 0 Ответы
- 500 Просмотры
-
Последнее сообщение Juri
-
- 19 Ответы
- 7875 Просмотры
-
Последнее сообщение Artem.spb
-
- 38 Ответы
- 13295 Просмотры
-
Последнее сообщение AndreyDmitriev
-
- 5 Ответы
- 250 Просмотры
-
Последнее сообщение IvanLis
-
- 3 Ответы
- 869 Просмотры
-
Последнее сообщение IvanLis