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

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

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

Postby Danzel on 26 Jul 2019, 06:53

Добрый день, возникла проблема чтения данных с прибора газоанализатор МАГ-6-С2 по протоколу Modbus RTU, com порт определяется, а чтение не происходит. Считываю с канала №2, 19 и 20 регистры (параметр КИСЛОРОД) (фото №2), адрес устройства в сети указан правильно (1). Подскажите в чем может быть проблема
Во вложении фото с описанием работы газоанализатора по протоколу modbus (взято из паспорта на прибор), код программы и программа в LB.
Attachments
фото 1.jpg
фото 2.jpg
фото код программы.PNG
считывание данных МАГ-6.vi
(17.03 KiB) Downloaded 50 times
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

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

Postby Blackman on 26 Jul 2019, 12:14

Скорее всего ошибка 0x02: запрашиваемый адрес регистра не кратен 2 (19).
В таблице указаны номера регистров, а на BD адрес регистра=номер регистра - 1.
Blackman
leader
leader
 
Posts: 885
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 259
VIP

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

Postby Danzel on 26 Jul 2019, 12:25

Поставил адрес регистра на BD = 18, количество 2, все равно ничего не читается
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

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

Postby IvanLis on 26 Jul 2019, 12:57

Danzel wrote:Поставил адрес регистра на BD = 18, количество 2, все равно ничего не читается


Что сразу бросается в глаза, у Вас тунели Case (False) не протянуты, а установлены состояния "по умолчанию", соответственно после итерации цикла, когда кнопка не нажата, VISA уже будет пустой и выдаст ошибку соединения.
User avatar
IvanLis
professor
professor
 
Posts: 4840
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: 784
hardware VIP bloggers teachers

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

Postby Borjomy_1 on 26 Jul 2019, 13:27

Судя по размеру в две ячейки (по 2 байта) число в формате Single, т.е из двух ячеек надо TypeCast ом преобразовывать в число.
Обратите внимание, что есть разночтения в стандартах ModBus, с какого адреса идет первый элемент. Бывает и 0-й адрес и 1-й адрес.
Выведите состояние Exception Code, он должен дать также подсказку, что не так.
Попробуйте обратиться к другому банку (Holdings)
Upd. Читайте первый абзац первого листа.
Upd... Возможно также, что скорость не по умолчанию (9600)
Last edited by Borjomy_1 on 26 Jul 2019, 13:38, edited 1 time in total.
Borjomy_1
expert
expert
 
Posts: 1905
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 Borjomy_1 on 26 Jul 2019, 13:33

IvanLis, Для последовательного порта нет создания объекта. Поэтому можно работать даже с уже инициализированным портом. Его Init - это всего лишь конфигурация, которую можно провести также в любой момент. Проблемы возникают только когда порт открыт другой программой.
Borjomy_1
expert
expert
 
Posts: 1905
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 Danzel on 29 Jul 2019, 11:35

Borjomy_1 wrote:Судя по размеру в две ячейки (по 2 байта) число в формате Single, т.е из двух ячеек надо TypeCast ом преобразовывать в число.
Обратите внимание, что есть разночтения в стандартах ModBus, с какого адреса идет первый элемент. Бывает и 0-й адрес и 1-й адрес.
Выведите состояние Exception Code, он должен дать также подсказку, что не так.
Попробуйте обратиться к другому банку (Holdings)
Upd. Читайте первый абзац первого листа.
Upd... Возможно также, что скорость не по умолчанию (9600)


В индикатор Состояние Exception Code ничего не выводится
Обратился к дуругому банку (Holdings), результат такойже, ничего не читается
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

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

Postby Danzel on 29 Jul 2019, 12:15

С помощью стороннего ПО просканировал порт с использованием программного обеспечения идущего в комплекте с газаанализатором и с помощью программы LB. В LB использовал формат символов ASCII, по RTU ничего не сканируется.
https://www.eksis.ru/technical-support/ ... -protocol/
На сайте производителя газоанализатора в разделе техподдержка нашел описание передачи данных, но чет не очень понятно как это работает, помогите разобраться
Attachments
чтение с LB.JPG
Сканирование порта с использованием программы LB
1.1.JPG
Сканирование порта с использованием ПО для газоанализатора 1.1
1.2.JPG
Сканирование порта с использованием ПО для газоанализатора 1.2
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

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

Postby Borjomy_1 on 29 Jul 2019, 12:20

Ну значит используйте функционал ModBus ASCII. Там только функции чтения-записи поменять. Если обмен идет по ASCII, то естественно, работать по RTU само по себе не будет
Borjomy_1
expert
expert
 
Posts: 1905
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 Danzel on 29 Jul 2019, 12:26

Borjomy_1 wrote:Ну значит используйте функционал ModBus ASCII. Там только функции чтения-записи поменять. Если обмен идет по ASCII, то естественно, работать по RTU само по себе не будет


Что значит "Там только функции чтения-записи поменять"?
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

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

Postby Blackman on 29 Jul 2019, 13:44

Это не Modbus протокол, а доморощенный типа Eksis Exchange ASCII :haha: . Посылаете запрос (формат приведен) и через не более 300 ms получаете ответ (формат приведен).
Blackman
leader
leader
 
Posts: 885
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 259
VIP

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

Postby Danzel on 29 Jul 2019, 14:01

Использовать visa write и visa read?
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

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

Postby ujin on 29 Jul 2019, 15:08

С помощью стороннего ПО просканировал порт с использованием программного обеспечения идущего в комплекте с газаанализатором

В техописании 2 порта - 232 и 485. На разных портах могут быть разные протоколы. Плюс в техописании на 485 порту почему-то перекрестное соединение.
Скорость в .vi 9600 в логах 19200
ujin
beginner
beginner
 
Posts: 27
Joined: 28 Jul 2019, 13:16
LabVIEW Version: 15
Karma: 4

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

Postby Borjomy_1 on 29 Jul 2019, 15:32

ujin wrote:
С помощью стороннего ПО просканировал порт с использованием программного обеспечения идущего в комплекте с газаанализатором

В техописании 2 порта - 232 и 485. На разных портах могут быть разные протоколы. Плюс в техописании на 485 порту почему-то перекрестное соединение.
Скорость в .vi 9600 в логах 19200

Скорость да, изначально стоило бы попробовать на разных скоростях. В общем, глубокоуровневая комбинаторика рулит.
Borjomy_1
expert
expert
 
Posts: 1905
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 Danzel on 29 Jul 2019, 17:16

Со скоростью все нормально, 19200 я поменял в .VI в последствии, и поэтому в логах такая скорость, так что нет перекрестия
Danzel
beginner
beginner
 
Posts: 49
Joined: 22 Jan 2016, 10:41
LabVIEW Version: 12
Karma: 0

Next

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

Who is online

Users browsing this forum: No registered users and 1 guest

cron