This is topic Пользовательский драйвер для обмена по TCP/IP in forum Драйверы / Device Drivers at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/43/t/000104.html

Posted by ilovefiniki (Участник № / Member № 4106) on :
 
Необходимо разработать драйвер для обмена с контроллером по 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 :
 
спасибо, попробуем канал VECTOR
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2