Список форумов   Список форумов  

MODBUS RTU через TCP

Всё о программировании на Labview

Модераторы: Техподдержка NI, Robert, Модератор

MODBUS RTU через TCP

Сообщение nevaeh » Ср янв 14, 2009 10:01 pm

Здравствуйте.
У меня такая проблема, может кто сможет подсказать, как ее решить:
Есть LV с modbud library и есть DSC. Хочу прочитать по протоколу modbusRTU данные с устройства, которое весит по протоколу rs-485 и подключено через преобразователь rs-485\ethernet. Как это можно сделать через модульDSC - не понятно, так как толковых указаний нет, а через modbus library - пишет 56 ошибку - данные передает, но видимо как-то неправильно. Возможно дело в том, что эта библиотека работает не через RTU.
Может кто в этим уже сталкивался - подскажите как быть!? :?:
nevaeh
 
Сообщений: 8
Зарегистрирован: Ср янв 14, 2009 9:54 pm

Сообщение XsanyaX » Пт янв 16, 2009 11:41 pm

Чтоб использовать DSC модуль нужно создать проект, а в нём I/O Server, тип которого Modbus... в его настройках выбрать модель Ethernet и настроить все соотв параметры.... Потом в этот же проект добавить переменные и связать (Bind) с соотв переменными сервера....

В настройках всё интуитивно понятно, да и пример есть на эту тему... Modbus Fundamentals называется . Находится в Industry Application->Instrument Input and Output

PS. Все выше сказаное - для версии 8.5
XsanyaX
 
Сообщений: 5
Зарегистрирован: Пт янв 16, 2009 11:24 pm

Сообщение XsanyaX » Пт янв 16, 2009 11:43 pm

а через modbus library на последовательный порт всё работает без проблем.... С Эзернет не пробовал
XsanyaX
 
Сообщений: 5
Зарегистрирован: Пт янв 16, 2009 11:24 pm

Сообщение nevaeh » Сб янв 17, 2009 2:59 pm

в modbus library:
странно, попробовал через ком порт - пишет ошибку:
"VISA: (Hex 0xBFFF0072) The resource is valid, but VISA cannot currently access it."
Правда у меня сом порт идет через USB, но через программу ЫшьзднЬщвигы dct jghfibdftncz dtkbrjktgyj!
Yt gjybvf. d xtv ltkj!!!
nevaeh
 
Сообщений: 8
Зарегистрирован: Ср янв 14, 2009 9:54 pm

Сообщение nevaeh » Сб янв 17, 2009 3:01 pm

[quote="nevaeh"]в modbus library:
странно, попробовал через ком порт - пишет ошибку:
"VISA: (Hex 0xBFFF0072) The resource is valid, but VISA cannot currently access it."
Правда у меня сом порт идет через USB, но через программу Simply nosbus все работает великолепно - все опрашивается!!
Не могу понять в чем дело!
nevaeh
 
Сообщений: 8
Зарегистрирован: Ср янв 14, 2009 9:54 pm

Сообщение nevaeh » Сб янв 17, 2009 5:38 pm

попробывал в серийником - все получилось, а через изернет не пашет:(
nevaeh
 
Сообщений: 8
Зарегистрирован: Ср янв 14, 2009 9:54 pm

Сообщение nevaeh » Вс янв 18, 2009 5:58 am

С библиотекой modbus library - какой-то глюк (недоработка). Соединил два компа и через эту библиотеку по протоколу modbus начал тестирование. Оказалось, что легко пишщется и читается тольок одиночный регистр. Попытка передать и прочитать множество регистров сразу провалилась. Надо с ней разбираться.

Что касаемо примера Modbus Fundamentals - то его мне найти не удалось:( Странное дело, примеры работы с модулем DSC по протоколу modbus работают только, если запущены на одной машине. Попытка организовать связь между двумя машинами при их помощи провалилась. Что делать я не знаю!!!
nevaeh
 
Сообщений: 8
Зарегистрирован: Ср янв 14, 2009 9:54 pm

Сообщение XsanyaX » Вс янв 18, 2009 7:55 pm

nevaeh писал(а):
nevaeh писал(а):в modbus library:
странно, попробовал через ком порт - пишет ошибку:
"VISA: (Hex 0xBFFF0072) The resource is valid, but VISA cannot currently access it."
Правда у меня сом порт идет через USB, но через программу Simply nosbus все работает великолепно - все опрашивается!!
Не могу понять в чем дело!


У меня работало через виртуальные USB-COM порты.
У вас похоже, что какая то прога не освободила ком порт.... такое часто бывает...

И ещё - когда Коннектишься через ком порт с помощью DSC, после закрытия Labview, ком порт не освобождается. Порт будет занят даже после перезагрузки. Нужно либо вручную удалять процесс в Variable Manager, либо удалять его программно с помощью DeleteProcess.vi....

Касаемо Эзернет, - попытаюсь в ближайшие дни ещё раз проверить на разных машинах примеры с DSC.... Где то полтора года назад проверял - всё работало через эзернет. На одной машине запускал Модбас мастер, на другой Модбас слейв - усё было ОК.

Заодно и modbus Library проверю на езернете....
XsanyaX
 
Сообщений: 5
Зарегистрирован: Пт янв 16, 2009 11:24 pm

Сообщение nevaeh » Вс янв 18, 2009 9:31 pm

У меня работало через виртуальные USB-COM порты.
У вас похоже, что какая то прога не освободила ком порт.... такое часто бывает...

Я тоже тестю через виртуальный USB-COM порт. Он свободен - проверено сторонними программами (TESTCOM)

почему-то когда я соединяюсь у меня на индикаторах регистров горят красные стрелочки и данные естественно не приходят. Я пытаюсь прочесть 16-битные ригистры с адреса 40004. Может быть надо посылать запрос на чтение сразу нескольких регистров?
nevaeh
 
Сообщений: 8
Зарегистрирован: Ср янв 14, 2009 9:54 pm

Сообщение XsanyaX » Пн янв 19, 2009 1:23 am

nevaeh писал(а): Я пытаюсь прочесть 16-битные ригистры с адреса 40004. Может быть надо посылать запрос на чтение сразу нескольких регистров?


В модбас сервере DSC нумерация регистров начинается с 1 (40001,40002 ...), а в стандарте модбас с 0 (т.е 40001 = 0, 40002= 1 и тд)... Может вы не тот регистр читаете?

А вообще ,ИМХО, то модбас сервер DSC модуля глючновато работает.... Иногда зажигаются красные лампочки по непонятным причинам
XsanyaX
 
Сообщений: 5
Зарегистрирован: Пт янв 16, 2009 11:24 pm

Сообщение nevaeh » Вт янв 20, 2009 4:05 pm

Ответ получил через эмуляцию сом порта. Читая по 4 слова с каждого регистра - вроде все правильно. Сделал через бибилиотеку модбаса, так как через DSC никак не хочет конектиться. Однако вот что смущает: если допустим у меня ответ такой:
1 слово - 0
2 слово - 0
3 слово - 0
4 слово - 50000
это означает, что считываемое значение равно 50,
а что означает такое:
1 слово- 0
2 слово - 0
3 слово - 3
4 слово - 33565?
В третьем слове 3 совсем непонятная!
nevaeh
 
Сообщений: 8
Зарегистрирован: Ср янв 14, 2009 9:54 pm

Сообщение XsanyaX » Ср янв 21, 2009 12:57 am

nevaeh писал(а):Ответ получил через эмуляцию сом порта. Читая по 4 слова с каждого регистра - вроде все правильно. Сделал через бибилиотеку модбаса, так как через DSC никак не хочет конектиться. Однако вот что смущает: если допустим у меня ответ такой:
1 слово - 0
2 слово - 0
3 слово - 0
4 слово - 50000
это означает, что считываемое значение равно 50,
а что означает такое:
1 слово- 0
2 слово - 0
3 слово - 3
4 слово - 33565?
В третьем слове 3 совсем непонятная!


чет я не понял - вообще по стандарту у модбаса все регистры 16 разрядные... Всё что сверху наворачивают(long, double) - это уже свои функции чтения должны быть....


а вообще что за девайс , с которого вы пытаетесь прочитать?
XsanyaX
 
Сообщений: 5
Зарегистрирован: Пт янв 16, 2009 11:24 pm

Сообщение nevaeh » Ср янв 21, 2009 5:09 pm

Ренистры и правда 16 разрадные...
Девайс - UPM305
Только вот в описании я не нашел определения этих слов. Написано только, что они по стандарту IEEE
nevaeh
 
Сообщений: 8
Зарегистрирован: Ср янв 14, 2009 9:54 pm


Вернуться в LabVIEW

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2