|
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 |
Да... вот теперь работает. | |
|