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

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

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

Сообщение Danzel »

Добрый день, возникла проблема чтения данных с прибора газоанализатор МАГ-6-С2 по протоколу Modbus RTU, com порт определяется, а чтение не происходит. Считываю с канала №2, 19 и 20 регистры (параметр КИСЛОРОД) (фото №2), адрес устройства в сети указан правильно (1). Подскажите в чем может быть проблема
Во вложении фото с описанием работы газоанализатора по протоколу modbus (взято из паспорта на прибор), код программы и программа в LB.
Вложения
фото 1.jpg
фото 2.jpg
фото код программы.PNG
считывание данных МАГ-6.vi
(17.03 КБ) 222 скачивания
Blackman

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

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

Сообщение Blackman »

Скорее всего ошибка 0x02: запрашиваемый адрес регистра не кратен 2 (19).
В таблице указаны номера регистров, а на BD адрес регистра=номер регистра - 1.
Danzel
beginner
beginner
Сообщения: 49
Зарегистрирован: 22 янв 2016, 10:41
Версия LabVIEW: 12
Контактная информация:

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

Сообщение Danzel »

Поставил адрес регистра на BD = 18, количество 2, все равно ничего не читается
Аватара пользователя
IvanLis

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

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

Сообщение IvanLis »

Danzel писал(а):Поставил адрес регистра на BD = 18, количество 2, все равно ничего не читается
Что сразу бросается в глаза, у Вас тунели Case (False) не протянуты, а установлены состояния "по умолчанию", соответственно после итерации цикла, когда кнопка не нажата, VISA уже будет пустой и выдаст ошибку соединения.
Borjomy_1

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

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

Сообщение Borjomy_1 »

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

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

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

Сообщение Borjomy_1 »

IvanLis, Для последовательного порта нет создания объекта. Поэтому можно работать даже с уже инициализированным портом. Его Init - это всего лишь конфигурация, которую можно провести также в любой момент. Проблемы возникают только когда порт открыт другой программой.
Danzel
beginner
beginner
Сообщения: 49
Зарегистрирован: 22 янв 2016, 10:41
Версия LabVIEW: 12
Контактная информация:

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

Сообщение Danzel »

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

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

Сообщение Danzel »

С помощью стороннего ПО просканировал порт с использованием программного обеспечения идущего в комплекте с газаанализатором и с помощью программы LB. В LB использовал формат символов ASCII, по RTU ничего не сканируется.
https://www.eksis.ru/technical-support/ ... -protocol/
На сайте производителя газоанализатора в разделе техподдержка нашел описание передачи данных, но чет не очень понятно как это работает, помогите разобраться
Вложения
Сканирование порта с использованием программы LB
Сканирование порта с использованием программы LB
Сканирование порта с использованием ПО для газоанализатора 1.1
Сканирование порта с использованием ПО для газоанализатора 1.1
Сканирование порта с использованием ПО для газоанализатора 1.2
Сканирование порта с использованием ПО для газоанализатора 1.2
Borjomy_1

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

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

Сообщение Borjomy_1 »

Ну значит используйте функционал ModBus ASCII. Там только функции чтения-записи поменять. Если обмен идет по ASCII, то естественно, работать по RTU само по себе не будет
Danzel
beginner
beginner
Сообщения: 49
Зарегистрирован: 22 янв 2016, 10:41
Версия LabVIEW: 12
Контактная информация:

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

Сообщение Danzel »

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

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

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

Сообщение Blackman »

Это не Modbus протокол, а доморощенный типа Eksis Exchange ASCII :haha: . Посылаете запрос (формат приведен) и через не более 300 ms получаете ответ (формат приведен).
Danzel
beginner
beginner
Сообщения: 49
Зарегистрирован: 22 янв 2016, 10:41
Версия LabVIEW: 12
Контактная информация:

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

Сообщение Danzel »

Использовать visa write и visa read?
ujin
user
user
Сообщения: 94
Зарегистрирован: 28 июл 2019, 13:16
Версия LabVIEW: 19
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

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

Сообщение ujin »

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

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

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

Сообщение Borjomy_1 »

ujin писал(а):
С помощью стороннего ПО просканировал порт с использованием программного обеспечения идущего в комплекте с газаанализатором
В техописании 2 порта - 232 и 485. На разных портах могут быть разные протоколы. Плюс в техописании на 485 порту почему-то перекрестное соединение.
Скорость в .vi 9600 в логах 19200
Скорость да, изначально стоило бы попробовать на разных скоростях. В общем, глубокоуровневая комбинаторика рулит.
Danzel
beginner
beginner
Сообщения: 49
Зарегистрирован: 22 янв 2016, 10:41
Версия LabVIEW: 12
Контактная информация:

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

Сообщение Danzel »

Со скоростью все нормально, 19200 я поменял в .VI в последствии, и поэтому в логах такая скорость, так что нет перекрестия
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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