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

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы

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

Postby Danzel on 30 Jul 2019, 12:19

Пробую отправить запрос на чтение данных исходя из https://www.eksis.ru/technical-support/ ... -protocol/ , считываю (Канал 1, параметр 2: 0x0004 (кислород)) исходя из https://www.eksis.ru/upload/description ... %D0%A1.txt,
Запрос в виде строки как на картинке ВП, посчитал контрольную сумму ASCII символов и получилось $0001RR000404B10D, ответа на запрос все равно нету, помогите разобраться
Attachments
прога.JPG
прога2.JPG
маг.vi
(12.82 KiB) Downloaded 30 times
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

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

Postby Borjomy_1 on 30 Jul 2019, 13:57

Попробуйте отправить запрос, который вы перехватывали ранее из программы.
Borjomy_1
expert
expert
 
Posts: 1906
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 332
VIP

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

Postby Blackman on 30 Jul 2019, 14:57

В конце строки не символы 0 и D, а код символа Carriage Return (CR) x0D
Attachments
Eksis Exchange Query String.png
Eksis Exchange protocol Query String
Last edited by Blackman on 30 Jul 2019, 23:40, edited 3 times in total.
Blackman
leader
leader
 
Posts: 890
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 260
VIP

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

Postby Danzel on 30 Jul 2019, 18:02

Подскажите как по одному символу записать данные в столбец как на фото (данные перехвачены с помощью стороннего ПО, из программы идущей в комплекте с прибором).
Attachments
1.1.JPG
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

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

Postby ujin on 31 Jul 2019, 04:40

Пробую отправить запрос на чтение данных исходя из 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 подключаетесь? Какой преобразователь используете?
ujin
beginner
beginner
 
Posts: 27
Joined: 28 Jul 2019, 13:16
LabVIEW Version: 15
Karma: 4

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

Postby Danzel on 31 Jul 2019, 06:01

Подключаюсь к порту RS485 через преобразователь USB-485 (ОВЕН АС4)
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

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

Postby ujin on 31 Jul 2019, 06:34

Подключаюсь к порту RS485 через преобразователь USB-485 (ОВЕН АС4)

Лог с данными с программы производителя по порту RS-485?
Если так, то это явное несоответствие в техописании и повод пообщаться с производителем.
По обмену: вы читаете с порта 4 байта, в описании ответа прибора байт больше.
Можно убрать цикл WHILE. Программа выполнится один раз.
После инициализации порта можно прочитать с него все данные (для очистки буфера, могут быть данные с предыдущих запросов)
После запроса на запись перед чтением с порта нужно сделать таймаут, так как чтение у Вас производится сразу после записи в порт и на этот момент данных там точно не будет.
Можно вывести количество прочитанных байт для контроля размера буфера.
Можно так же записать данные с обмена через LV вторым преобразователем RS485. Сравнить с заводским.
ujin
beginner
beginner
 
Posts: 27
Joined: 28 Jul 2019, 13:16
LabVIEW Version: 15
Karma: 4

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

Postby Blackman on 31 Jul 2019, 11:26

Подскажите как по одному символу записать данные в столбец как на фото ...
:wink:
Attachments
Send Eksis Exchange Query String (Byte-by-Byte).png
Blackman
leader
leader
 
Posts: 890
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 260
VIP

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

Postby ujin on 31 Jul 2019, 16:15

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

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

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

Postby Danzel on 01 Aug 2019, 11:15

Спасибо всем, все получилось, данные считываются и преобразуются в float.
Еще вопрос по поводу преобразования, накидал программку, подскажите нельзя код уменьшить, а именно где осуществляется порядок передачи ascii символов (фото 1 описание), может использовать какие другие функции.
Attachments
порядок передачи hex.jpg
перевод из hex to float.vi
(11.94 KiB) Downloaded 20 times
фото 2.png
фото 3.png
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

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

Postby IvanLis on 01 Aug 2019, 12:59

Еще вопрос по поводу преобразования, накидал программку, подскажите нельзя код уменьшить, а именно где осуществляется порядок передачи ascii символов (фото 1 описание), может использовать какие другие функции.

1.png
перевод из hex to float.vi
lv2012 save from 2016
(9.13 KiB) Downloaded 24 times
Знание нескольких принципов освобождает от знания многих фактов!




User avatar
IvanLis
professor
professor
 
Posts: 4852
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 787
hardware VIP bloggers teachers

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

Postby Blackman on 01 Aug 2019, 13:27

:wink:
Attachments
hex string to single float convertor.png
Blackman
leader
leader
 
Posts: 890
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 260
VIP

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

Postby Danzel on 02 Aug 2019, 05:16

Спасибо за помощь
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

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

Postby Danzel on 15 Aug 2019, 11:15

А как сделать чтобы в цикле считывались данные, добавляю цикл while, появляются левые данные при считывании, а именно символ "я" в начале
Attachments
11.JPG
22.JPG
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

Previous

Return to Коммуникация с приборами

Who is online

Users browsing this forum: No registered users and 2 guests

cron