Чтение данных по протоколу 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 11 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: 1894
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 328
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: 874
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 258
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: 14
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: 14
Joined: 28 Jul 2019, 13:16
LabVIEW Version: 15
Karma: 4

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

Postby Blackman on 31 Jul 2019, 11:26

Danzel wrote:Подскажите как по одному символу записать данные в столбец как на фото ...

:wink:
Attachments
Send Eksis Exchange Query String (Byte-by-Byte).png
Blackman
leader
leader
 
Posts: 874
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 258
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: 14
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 4 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

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


1.png
перевод из hex to float.vi
lv2012 save from 2016
(9.13 KiB) Downloaded 5 times
User avatar
IvanLis
professor
professor
 
Posts: 4814
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: 763
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: 874
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 258
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: Google and 4 guests

cron