Форум : Программное обеспечение

Название : HydraLink + Modbus + TCP

 Sashka :

12.2.13 20:37
 Прибор ВИС.Т-М

Читаем ModBus через Ethernet/RS-232

connect.commdev := HL_CONNTYPE_TCP or HL_CONNTYPE_MODBUS; // TCP/IP
connect.netno := 2;
connect.baud := 9600;
connect.ip := $C0A80147;
connect.tcpport := 5000;

req.cmask := HL_CONTOUR_1 or HL_CONTOUR_2 or HL_CONTOUR_3;
req.infokind := HL_INFOKIND_RECORD; // HL_INFOKIND_CURRENT or HL_INFOKIND_TIME or HL_INFOKIND_GLOBALS;
req.pfunc := nil;
bErr := HLINK_Read(@connect, @req,ReadRes,-35);
...

снифером сети видно, что уходят байты
00 00 00 00 00 06 02 03 00 62 00 01
ответа от прибора нет bErr = 10;

если подключаемся через RS-232 с ПК
connect.commdev := HL_CONNTYPE_MODBUS; // Serial
connect.port := 3;
connect.netno := 2;
...
bErr := HLINK_Read(@connect, @req,ReadRes,-35);
...

снифером com-порта видим
02 03 00 62 00 01 25 E7 - все Ок
есть ответ от прибора.

Никто не сталкивался ? В чем проблема? Как читать с помощью Hydralink(Modbus) по сети?


[ Редактировано Sashka в 12.2.13 23:04 ]

 Sashka :

12.2.13 22:57
 Ой, соррри
В первом случае же Modbus TCP(видимо выдает библиотека)

Тогда вопрос, как должен быть настроен счетчик ВИС.Т чтобы отвечать на данные запросы?

 CH :

13.2.13 12:49
 Если ВИСТ со встроенным ethernet-адаптером, в настройках прибора "Режим УД: опция", скорость как в настройках соединения с чётностью (connect.baud := 9600;, значит "Скорость УД : 9600E").

 Sashka :

13.2.13 12:53
 ВИСТ с портами RS-232/RS-485
Возможна ли работа с ним через преобразователь Ethernet/RS с помощью Hydralink.dll?

[ Редактировано Sashka в 13.2.13 12:55 ]

 CH :

13.2.13 13:50
 Цитата:

ВИСТ с портами RS-232/RS-485
... то есть без ethernet, я так понимаю.

Насколько я помню, работа с "прозрачным" преобразователем, который не поддерживает режим MODBUS-TCP, библиотекой не поддерживается.

 CH :

18.2.13 12:03
 А кстати, не попробовать ли вам тестовый вариант hydralink.dll, который лежит в "разных файлах" на сайте? Он не тестировался, но была добавлена полноценная поддержка внешних преобразователей (использование modbus-rtu вместо modbus-tcp при использовании соответствующего флажка в настройках подключения).

 Sashka :

18.2.13 13:14
 Тестовый вариант - лежит просто dll
А где смотреть описание этих флажков?

 CH :

18.2.13 13:51
 Флажок HL_CONNTYPE_TCPEXT определён в заголовочном файле. Используется просто - добавьте дополнительно к параметрам вида соединения:
connect.commdev := HL_CONNTYPE_TCP or HL_CONNTYPE_MODBUS or HL_CONNTYPE_TCPEXT;

 Sashka :

20.2.13 15:46
 Проверил новую dll (2012.2.0.3)
при настройке
connect.commdev := HL_CONNTYPE_TCP or HL_CONNTYPE_MODBUS or HL_CONNTYPE_TCPEXT;
также уходит запрос в формате Modbus TCP
как и в варианте
connect.commdev := HL_CONNTYPE_TCP or HL_CONNTYPE_MODBUS;

 CH :

21.2.13 12:38
 Я тоже проверил. Запросы различаются в зависимости от установленного флажка. Попробуйте провести проверку с использованием OPC-сервера HCDA, работающего на основе этой DLL и имеющего в диалоге свойств прибора галочку использования внешнего интерфейса.

 Sashka :

21.2.13 20:10
 Цитата:

CH пишет:
Я тоже проверил. Запросы различаются в зависимости от установленного флажка. Попробуйте провести проверку с использованием OPC-сервера HCDA, работающего на основе этой DLL и имеющего в диалоге свойств прибора галочку использования внешнего интерфейса.


Установил OPC HcDA 1.01.0
Настраиваю прибор... выбираю Modbus RTU
Жму Автонастройка

zyhqtu.png

Получаю ответ с ошибкой

2ex0haa.png

снифер сети показывает передачу Modbus TCP пакета

6pyfwy.png

Явной галочки Modbus RTU over TCP не нашел.

 CH :

21.2.13 21:23
 Я немного ошибся, у меня более новая версия HcDa (не знаю уж, почему не опубликована на сайте) с опцией внешнего интерфейса. Я выложу её во временных файлах, попробуйте ещё раз. HcDa.rar

 Sashka :

22.2.13 11:42
 Да... вот теперь работает.

© NegaSoft co., 2005
http://www.teplovizor.ru

URL этой темы
http://www.teplovizor.ru/forum/viewtopic.php?topic_id=271&forum=2