Guest олег Posted December 10, 2009 Share Posted December 10, 2009 Добрый день! Возникла проблема с сабжем при решении след. задачи: Имеется преобразователь 6450, несколько (два-три) компьютеров запрашивают по TCP/IP один и тот же RS порт в произвольные моменты времени. Надо передать запрос от компьютера в порт (обычно 10-20 байт), дождаться ответа от присоединенного прибора, переправить блок ответа (10-300 байт) _только_ запросившему компьютеру. Сюда по мануалам, как раз работа для NPort 6ххх серии. Примерная временная диаграмма прохождения пакета информации по RS порту прибора, максимальные длины пакетов известны. ОС QNX4.25, драйвер "moxattyd". При опции "Non-requested serial data: Discard" в компьютер доходит неполный пакет данных - обрыв блока информации где-то от 5 до 100 байта. При опции "Non-requested serial data: Forward to last requester" в компьютер попадают части пакетов данных от запросов из других компьютеров. Игры с настройками таймаутов, максимальной длины пакетов не помогли. Вопрос в том, проверялась ли работа изделия в описанном режиме, имеется ли опыт успешного использования "Command by command operation"? Такое ощущение, что ответ от прибора дробится на несколько пакетов, и только опция "Non-requested serial data: Forward to last requester" позволяет дослать отстатки пакетов запросившему (или уже другому [как повезет во времени]) компьютеру. Можно добиться неделимости ("атомарности") ответов? Ниже приведены настройки порта, при котором возможен устойчивый обмен с одним компьютером, но при одновременном запросе от нескольких ПК возможна чересполосица по данным в доставляемых к ПК ответах. Application: Device Control Mode: RealCOM TCP alive check time: 7 Max connection: 3 Ignore jammed IP: Enable Allow driver control: Disable Command by command operation: Enable Secure: Disable Connection goes down: RTS always high DTR always high Response timeout: 500 Non-requested serial data: Forward to last requester Data Packing Packet length 1024 Force transmit 100 Link to comment
Irina Posted December 11, 2009 Share Posted December 11, 2009 Force transmit 100 - скорее всего, это слишком много, лучше поставить 3-5 мс. Packet length 1024 - вот это вообще зря, можно использовать только если вы знаете, что с COM-порта идут данные блоками по 1024 байта. Попробуйте с такими настройками. Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now