|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,316
|
Re: E502 внешняя синхронизацмя
stix_s пишет:В штатном примере попробуйте выставить внешнюю синхронизацию. Запустить сбор. И выставить асинхронно выходы. Ваш пример дает ту же ошибку - 1004. Поверьте.
По этому поводу я писал: Алексей L Card пишет:Проблема может быть в том, что используется одна частота для ввода и вывода, а асинхронный вывод эмулируется через синхронный, поэтому при запуске сбора от внешней частоты и ее отсутствии вывод сделать действительно не получится... Если нужен вывод на фоне ввода, то наверное только если использовать постоянную частоту и сбор выполнять с АЦП и цифровых входов и уже синхронизацию делать программно селекцией данных по нахождению нужного фронта, если частоты позволяют...
Т.е. при запуске от внешней частоты синхронизации, которая отсутствует в момент асинхронного вывода, асинхронный вывод действительно невозможен, т.к. автомат вывода использует ту же частоту, что и сбор, а частота отсутствует на этот момент
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:По поводу двух пропущенный импульсов, я не увидел, что Вы настраиваете не только частоту от SYN2, но и старт от него же. В этом случае действительно повторяется пропуск двух импульсов,
Да, но почему это происходит только после переключения из режима X502_SYNC_INTERNAL в X502_SYNC_DI_SYN2_FALL? может необходимо выставить некую задержку после err = X502_Configure(workX502.hndX502, 0);? Алексей L Card пишет:но если честно я не очень вижу смысл настраивать и старт по тому же признаку,
Ну такова задумка электронщиков. Алексей L Card пишет: т.к. если Вы старт настроите INTERNAL, то в любом сбор запустится сразу но первый отсчет будет оцифрован только по первому фронту. В режиме старта INTERNAL модуль должен работать всегда предсказуемо, что нужно добавить один лишний импульс (т.к. последнее измерение как бы застревает в модуле и не передается). Попробуйте с такой настройкой.
То есть err = X502_SetSyncMode(workX502.hndX502, X502_SYNC_INTERNAL); и err = X502_SetSyncStartMode(workX502.hndX502, X502_SYNC_DI_SYN2_FALL); так?
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,316
|
Re: E502 внешняя синхронизацмя
наоборот, я имел ввиду так: err = X502_SetSyncMode(workX502.hndX502, X502_SYNC_DI_SYN2_FALL); err = X502_SetSyncStartMode(workX502.hndX502, X502_SYNC_INTERNAL); С точки зрения синхронизации на мой взгляд этот режим по смыслу не будет отличаться от Вашего предыдущего, кроме более очевидного момента старта (т.к. сбор будет уже запущен к моменту первого импульса)
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Спасибо, буду размышлять, как выкрутиться. Непонятно, Куда пропадают отчеты с АЦП  И что делать с тем значением, которое остается на конвейере. Получается, что при следующем запуске измерений я первым отчетом получу старое непонятного срока? Или при err = X502_StreamsStart(workX502.hndX502); идет сброс и буфера и конвейера?
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,316
|
Re: E502 внешняя синхронизацмя
Да, идет сброс конвеера при старте, так что если Вы перезапускаете сбор после этих 20 импульсов, то единственное изменение, которое потребуется, это один дополнительный лишний импульс в конец, а с точки зрения программы все будет как будто этой проблемы нет. Этот лишний семпл придется учитывать только в случае, если у Вас могут идти почки по 20 импульсов, между которыми Вы не будете делать останов/старт. При таких настройках синхронизации данные с АЦП все равно неверные?
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей, после переключения из режима X502_SYNC_INTERNAL в X502_SYNC_DI_SYN2_FALL нужна задержка после err = X502_Configure(workX502.hndX502, 0); чтобы в модуле настройки по регистрам разбежались ? если да, то какая?
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:При таких настройках синхронизации данные с АЦП все равно неверные?
Угу  adcData: 0 Value: -0,0032 adcData: 1 Value: 0,0016 adcData: 2 Value: -0,0140 adcData: 3 Value: 0,0016 adcData: 4 Value: 1,1000 adcData: 5 Value: 0,0012 adcData: 6 Value: 0,0020 adcData: 7 Value: 0,0024 adcData: 8 Value: -0,0900 adcData: 9 Value: 0,0028 adcData: 10 Value: 0,0020 adcData: 11 Value: 0,0016 adcData: 12 Value: 0,0008 adcData: 13 Value: 0,0012 adcData: 14 Value: 0,0028 adcData: 15 Value: 0,0024 adcData: 16 Value: 0,0024 adcData: 17 Value: 0,0024 adcData: 18 Value: -0,0130
А должно быть adcData: 0 Value: 0,5 adcData: 1 Value: 0,0016 adcData: 2 Value: 1,8 adcData: 3 Value: 0,0016 adcData: 4 Value: 1,1000 adcData: 5 Value: 0,0012 adcData: 6 Value: 0,0020 adcData: 7 Value: 0,0024 adcData: 8 Value: -0,0900 adcData: 9 Value: 0,0028 adcData: 10 Value: 0,5 adcData: 11 Value: 0,0016 adcData: 12 Value: 1,8 adcData: 13 Value: 0,0012 adcData: 14 Value: 1,1000 adcData: 15 Value: 0,0024 adcData: 16 Value: 0,0024 adcData: 17 Value: 0,0024 adcData: 18 Value: -0,0130
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,316
|
Re: E502 внешняя синхронизацмя
После того как функция вернула управление, то значения по регистрам уже должны "разбежаться"
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,316
|
Re: E502 внешняя синхронизацмя
Кроме режима синхронизации есть какие-то отличия при получении первой и второй последовательности данных. А что именно подключено к входам АЦП? Что за источники напряжения? они постоянны?
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:А что именно подключено к входам АЦП? Что за источники напряжения? они постоянны?
Алексей, спасибо, нашел свою ошибку в настройках стенда.
|
|
- Участник
- Здесь с 19.01.2017
- Сообщений: 82
|
Re: E502 внешняя синхронизацмя
Алексей L Card пишет:наоборот, я имел ввиду так: err = X502_SetSyncMode(workX502.hndX502, X502_SYNC_DI_SYN2_FALL); err = X502_SetSyncStartMode(workX502.hndX502, X502_SYNC_INTERNAL);
Алексей, а возможен вариант err = X502_SetSyncMode(workX502.hndX502, workX502.hndX502, X502_SYNC_DI_SYN1_FALL); и err = X502_SetSyncStartMode(workX502.hndX502, X502_SYNC_DI_SYN2_FALL);
То есть на один вход подаем сигнал старта, а на другой частоту синхронизации. И все с внешнего устройства.
|
|
- Сотрудник "Л Кард"
- Здесь с 17.04.2014
- Сообщений: 1,316
|
Re: E502 внешняя синхронизацмя
|