Необходимо разработать драйвер для обмена с контроллером по TCP/IP. Разработать драйвер для этого же устройства через COM порт труда не составляет. Для этого использовался ранее драйвер типа t11s30. Перечитав help так и не понял как можно разработать такой же драйвер, только для обмена по сети TCP/IP. Вроде для этого нужно использовать тип t12 с описанием интерфейса? Но где в хэлпе информация куда писать настройки вроде адреса IP или порта? Да и вообще где писать что это именно сеть IP, а не COM порт? Както маловато информации по описанию интерфеса. Подскажите, пожалуйста.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Признаком драйвера типа T12 использование шаблона пользовательского драйвера типа TYPE12. При этом тип используемого носителя (COM-порт, Ethernet и пр.) определяется саими драйвером (его компонентом mediaXX.dll). Если для обмена используется COM-порт, этот COM-порт не должен быть задан в узле проекта. Дополнительная информация (кроме удаленного адреса IA) записывается в поле ДОПОЛНИТЕЛЬНО настройки шаблона выбранного драйвера и передается в драйвер параметром " ext_data – дополнительная информация для канала;". В частности, здесь можгут быть передана и IP-адрес, и порт и любые другие необходимые данные.
Имеет смысл обсудить через отдел продаж (sales@adastra.ru) возможность и целесообразность написания такого драйвера силами АдАстра.
Posted by ilovefiniki (Участник № / Member № 4106) on :
Не думаю что разработка такого драйвера будет целесообразна для многократного использования. Потому как сами не знаем точного названия протокола. Расшифровывали сами. И понадобится такой драйвер только единожды.
На данный момент реализовали драйвер TYPE11 через COM-порт и используем в сочетании с внешней программой-шлюзом. Но это временное решение. Из вашего пояснения честно говоря я так и не понял как сделать передачу по ethernet. Можете ли вы дать пример функций для обмена по ethernet? В хэлпе есть примеры для TYPE12. Но там ничего про описание типа носителя. Из вашего ответа я понял что в драйвер я могу передать поле "Дополнительно". Но что мне дальше делать с его содержимым? Если я использую COM-порт, то в драйвере я нигде ничего не описываю по этому поводу(в TYPE11) и всё по умолчанию работает через COM-порт. А если я хочу tcp/ip то мне что достаточно передать через ext_data ip и порт и всё вдруг по tcp/ip заработает? Сомнительно. Если надо дописывать что-то ещё, то в какие функции и что именно?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Работа с носителем, в данном случае - с сетью по протоколу TCP/IP, должна быть полностью описана в компоненте драйвера T12 mediaN.dll. Это забота разработчика драйвера.
Если протокол не сложный, можно попытаться использовать канал VECTOR, к которому подключен шаблон Modbus TCP слоя "Источники/Приемники" с указанием в строке "IP-адрес" следующей подстроки: IPADDR=<IP-адрес>
Далее через разделители записываются ключи, задающие обмен по Вашему протоколу. Формирование команд протокола и расшифровка ответов должны производиться в соответствии с описанием канала VECTOR.
Posted by ilovefiniki (Участник № / Member № 4106) on :