Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
Страницы 1
|
||||
|
Запуск и чтение потоковых данных с АЦП E-502Добрый день! Пытаюсь следовать по https://www.lcard.ru/download/x502_low_level.pdf. Имею цель запустить периодические измерения через Ethernet. Не вижу в этом документе, как это сделать и что должно произойти. Также невнятно, зачем порт 11115. Теперь подробнее. С разделе 3.4.4 приведён список действий. Выполняю по нему (псевдокод):
Однако на порту 11115 на третьей снизу строчке меня никакие данные не ждут. Что-то не включил? Как расположены данные настроек каналов в LTABLE? Если у меня используется один канал, то я пишу с 0x200 по 0x203? На порту 11114 при этом интересные данные лежат:
Что бы это значило? Спасибо форуму за его таймауты. |
|||
|
||||
|
Re: Запуск и чтение потоковых данных с АЦП E-502Здравствуйте. По поводу LTABLE, то при одном канале Вы записываете его настройки в регистр 0x200 (адресуемые регистры в E-502 уже 32-битные и каждый 32-битный регистр занимает только один адрес) Можете выложить или отправить по почте запись обмена данных сделанную с помощью Wireshark, чтобы увидеть точную временную последовательность передаваемых/принимаемых байт, а не вызовы функций? |
|||
|
||||
|
Re: Запуск и чтение потоковых данных с АЦП E-502 |
|||
|
||||
|
Re: Запуск и чтение потоковых данных с АЦП E-502Простите, забыл указать, что E-502 имеет адрес 192.168.1.128, а компьютер — 192.168.1.39. |
|||
|
||||
|
Re: Запуск и чтение потоковых данных с АЦП E-502Посмотрел дамп. На каждую переданную команду модуль возвращает ответ (даже если в нем нет данных - возвращается по крайней мере заголовок 12 байт с сигнатурой ответа, кодом ошибки и размером данных равным 0). В принципе допустимо посылать новые команды до приема ответа на предыдущие, как делается у Вас, в этом случае модуль в любом случае будет извлекать их последовательно из буфера на прием и в том же порядке выполнять и по выполнению возвращать ответы. Таким образом, если Вы не принимаете ответ после каждой команды, то нужно запоминать сколько было послано команд, на которые еще не приняли ответы, и соответственно после уже принять это количество ответов. Только по факту приема ответов можно сказать, что команды были обработаны модулем. Закрытие соединения в штатном режиме соответственно тоже должно быть только после приема всех ответов, чтобы гарантировать выполнение всех посланных команд. Пакет
это и есть ответ на команду, просто подтверждающий ее успешное выполнение и не содержащий дополнительные данные в ответе (возвращается на команды записи в регистры и запуска потока - в дампе все ответы такие).
это ответ с одним байтом данных, со значением 1. Например, так может выглядеть ответ на команду 0x15. В дампе таких ответов не было. В дампе происходит следующая ситуация: Таким образом, в ключевых точках, где требуется завершение переданных команд, необходимо вставить код, ожидающий ответы в количестве, соответствующем количеству посланных команд. Это как минимум после запуска сбора и перед закрытием соединения. |
|||
|
||||
|
Re: Запуск и чтение потоковых данных с АЦП E-502Алексей L Card пишет:
Виноват: мой косяк. Я наигрался с изменением кода, забыл добавить получения ответов. Спасибо! Частоту делителя ставлю теперь, ввод с АЦП разрешаю (в мануале неясно про это написано, спасибо за разъяснение тут). Вот исправленная версия: дамп из Wireshark. Всё ещё пусто на порту 11115. Чего не хватает? |
|||
|
||||
|
Re: Запуск и чтение потоковых данных с АЦП E-502Тут может быть проблема в том, что Вы в качестве настроек канала записываете 0xFE00, т.е. устанавливаете усреднение равное 128 отсчетам, в то время как в делитель опорной частоты записываете 1, т.е. деление на 2. Таким образом, если K > N, то по сути алгоритм получения результирующего отсчета не наберет K отсчетов для расчета результатов, т.к. каждые N тактов идет переход к следующему каналу. Попробуйте убрать усреднение в настройках канала, повлияет ли на ситуацию. В остальном вроде все выглядит корректно. |
Страницы 1
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2
Многоканальный телефон:
+7 (495) 785-95-25
Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск