Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
1. Весь доступный софт под DOS для платы L-791.
2. Ftp-cсылка из п.1 сообщения#2 также пока доступна при использовании какого-нибудь FTP-менеджера, например, FileZilla.
Теперь с уверенностью можно утверждать, что Ваша программа тоже должна отрабатывать без ошибок.
Ведь в консольной утилите используется практически слепок Вашей функции ReadRegisterModbus().
Также Вашей программе необходимо обязательно 'скормить' LTR библиотеки c версией не ниже 1.32.45.
Кстати, в консольной утилите, для острастки, делается проверка версий используемых библиотек ltrapi.dll и ltr43api.dll.
1. Обновил архив с консольной утилитой.
2. Внёс следующие изменения:
- hLtr43.RS485.Baud = 115200; // Скорость обмена
- hLtr43.RS485.Parity = 1; // Проверка четности включена
- новая функция расчёта CRC: CalculateModbusCRC()
- таблицу коэффициентов auchCRCHi[] и auchCRCLo[] для этого CRC взял из спецификации MODBUS на стр.43
Пробуйте...
Пока всё идёт отлично: мерзопакостной ошибки -4023 нет! Только обычная ошибка обмена по RS-485.
Теперь можно подправить параметры работы RS-485, чтобы они в точности соответствовали Вашим.
Это Вы можете сделать сами (все исходники есть), либо присылайте конфигурационные параметры мне.
В последнем случае пришлите также и Ваш вариант функции расчёта CRC: CalculateModbusCRC().
Ошибочка вкралась... Обновил архив.
Попробуйте консольную утилиту. В архиве находятся исходные тексты и самые свежие версии библиотек Ltrapi.dll и Ltr43api.dll. Данная утилита тупо фиксирует только статус выполнения штатной функции LTR43_RS485_Exchange() для всех доступных регистров.
Я так понимаю, что речь идёт про работу по RS-485 интерфейсу модуля LTR43.
Отсюда вопросы:
1. Что это за функция такая: ReadRegisterModbus()?
2. При заказе модуля LTR43 были ли указаны требуемые состояния для конфигурационных перемычек X4, X5, X7, X8 и X9.
Подробнее см. информацию для заказа LTR43.
Для работы модуля LTR43 с интерфейсом RS-485 эти перемычки должны быть установлены так:
Подправили ссылку. Пробуйте...
1. В штатной программе ViConfigurator модулю L-ViMS-ICP вполне можно задать вычисления параметров для частот, нацело не кратных оборотной. А также для каждого рассчитываемого параметра могут быть заданы пороги (уставки).
2. Все параметры вибрации вычисляются на уровне модуля L-ViMS-ICP каждые 50 мс.
3. Увы, такого функционала пока нет.
4. Да, это вполне рабочий вариант.
1. Для модуля E14-440 организовать опрос устройства по шине I2C штатными средствами библиотек LComp или Lusbapi не представляется возможным.
2. Если же уйти на уровень программирования DSP модуля E14-440, то, наверное, можно было бы попробовать реализовать некий алгоритм опроса I2C устройства. Но при этом придётся полностью отказаться от синхронного измерения аналоговых сигналов.
В качестве наглядной иллюстрации настройки синхрометок типа "СТАРТ" попробуйте рассмотреть пример из директории 'ltreu-startmark-labview' архива ltreu-marks-cfg:
Этот пример под Linux демонстрирует вариант покадрового сбора данных при синхронизации от внешнего цифрового сигнала типа PPS приёмника ГЛОНАСС/GPS.
Мне в программе 'L-Graph I' для модуля Е14-440 c использованием LBIOS версии 3.2 от 2009 г. (входит в состав архива) удалось получилось максимальную частоту покадровой синхронизации равную ~180 кГц при одноканальном сборе. До этой частоты наблюдается строго синхронный сбор данных, а при более высоких частотах синхронность сбора разваливается (проверял по Фурье). По видимому, такая величина частоты покадровой синхронизации определяется практически чисто программным способом ввода данных на уровне LBIOS при таком режиме работы.
В сообщение #8 подправил ссылку на обновлённое руководстве программиста.
1. Да, можно и так сказать, обычный опорный генератор на 60.000 МГц со стабильность частоты ±50 ppm в рабочих условиях.
2. Для модуля LTR24 на максимальной частоте сбора 117 кГц точность синхронизации меток будет ~8.5 мкс.
1. А что конкретно подразумевается под понятием "честные биты"?
Типичные амплитудные спектры представлены в п.14.1.5 'Спектральные характеристики LTR24' на стр. 262 руководства пользователя LTR.
Значение динамического диапазона приведено в 'Спецификации A.11 Модуль LTR24' на стр. 469 руководства пользователя LTR.
2. Точную формулу для расчёта частоты сбора данных (частоты преобразования АЦП) можно найти в п.14.3 'Обзор аппаратной части, принципы работы LTR24' на стр. 263 руководства пользователя LTR.
3.
Я так понимаю, что все АЦП в крейтах LTR тактируются от опорной частоты 60 МГц, источником которой является крейт. Это так?
Да, это так. Параметры опорного генератора крейтов LTR можно найти в 'Спецификации A.17 Характеристики системы синхронизации крейта LTR' на стр. 491 руководства пользователя LTR.
Если да, то можно ли завести в крейт снаружи опору, чтобы стабилизировать эти 60 МГц?
Нет, нельзя.
На рынке полно вариантов синтезаторов частот, которые стабилизируются с помощью ГНСС.
Крейтовая система LTR всё-таки не синтезатор частот. А вот общие принципы, например, многокрейтовой синхронизации сбора данных, в том числе и при помощи внешних систем единого времени, изложены в п.4.7 'Принципы синхронизации сбора данных в системе LTR' на стр. 105 руководства пользователя LTR.
В сообщение #6 вкралась досадная опечатка. Читать следует так:
Ну порядок вызова функций в каждом из этих режимов описан в руководстве программиста в пунктах 3.1.2.2 и 3.1.2.3 в кратком виде, а в пунктах 3.1.7.2 и 3.1.7.3 уже более подробно.
1. Модуля E14-440M, строго говоря, в природе не существует. Есть только E14-440.
2. У модуля E14-440 на внешних разъёмах нет SYN-входа. Подробнее см. п.3.3 "Внешние разъёмы" руководства пользователя.
3. Про возможные типы синхронизации ввода данных для модуля E14-440 см. руководство программиста библиотеки LComp на стр. 87.
4. Для работы в режиме покадровой синхронизации следует, например, в штатном примере из библиотеки LComp изменить строчки (368 и 369):
if(sl.BoardType==E440 || sl.BoardType==E140 || sl.BoardType==E154)
adcPar.t1.SynchroType = 0;на
if(sl.BoardType==E440 || sl.BoardType==E140 || sl.BoardType==E154)
adcPar.t1.SynchroType = 2;При этом модуль E14-440 после прихода отрицательного фронта по линии TRIG аналогового разъёма DRB-37M осуществит сбор только одного кадра отсчётов. После чего модуль аппаратно перейдёт в состояние ожидания прихода очередного отрицательного фронта по линии TRIG.
1. Я, конечно же, первым делом реагировал на Ваше уточняющее сообщение #7, где довольно чётко обозначена конечная, как я думал, ситуация: "Подключил источник напряжения 10V на 0 канал ltr114, входы 1-7 ltr114 висят в воздухе".
2. Действительно, модуль LTR114 является изделием, спроектированным с использованием входной коммутации каналов. При этом в многоканальном режиме сбора данных входное сопротивление канала модуля имеет сложный активно-емкостной характер. О чём прямо указывается в руководстве пользователя LTR в п.18.2.2.2 "Особенности АЦП" (стр. 362): "Чем больше длина кабеля подключенного к LTR114, чем больше внутреннее сопротивление источника сигнала, тем большее время потребуется для установления переходного процесса во входных линиях. Значит, время Tadc−Tconv может влиять на величину межканального прохождения", а также в п.18.3.9.1 "Рабочий режим LTR114" в Табл.18-3.
3. Как можно попробовать уменьшить влияние этого коммутационного эффекта:
- снизить выходное сопротивление источника сигнала, скажем, до 1 кОм;
- добавить ещё один лог.канал сразу после 0-ого канала, для которого в ф. LTR114_CreateLChannel() установить параметр MeasMode в состояние измерения собственного нуля (LTR114_MEASMODE_NULL).
P.S. С наступающими праздниками...
Вдумчиво читаем п.18.3.9.1 "Рабочий режим LTR114" (стр.377) в руководстве пользователя LTR.
Особенно Примечание 2: " ... не следует опрашивать неподключенные входы".
Все технические характеристики можно найти в руководстве пользователя LTR.
1. А какой тип подключения у каналов: дифференциальный или с «общей землёй»? И вообще, на аналоговом разъёме лучше всегда объединять сигналы GND32 (21 пин) и AGND (3 пин).
2. Вот чтобы исключить влияние сторонних программных компонент, я и предлагал ужать программу до сути проблемы. Как правило, в таких случаях помогает обычный консольный пример с сохранением получаемых данных в файл.
3. На модуле входной аналоговый тракт аппаратно спроектирован так, что напряжению ±'Входной Диапазон' соответствует ±8000 кодов АЦП. Тогда при серийном производстве, вследствие естественного разброса номиналов электронных компонентов, у различных экземпляров модуля напряжение ±'Входной Диапазон' будет соответствовать значению ±8000 кодов АЦП с точностью до ±2.4% и это значение никогда не будет выходить за пределы максимально возможного кода 8192. После калибровки модуля эта нома в ±8000 кодов АЦП сохраняется.
1. Я так понимаю, что данный экземпляр модуля E14-440 вполне нормально живёт из-под "LGraph II", а в Вашей программе на C# есть проблемы. Вот только не совсем понятно, что именно подразумевается под фразой "не реагирует на изменения амплитуды входного сигнала"?
2. Присылайте Ваш вариант проекта программы. Только желательно ужать её до сути проблемы.
3. Строчку
private const double CodesToVolts = 10.0 / 8192.0;надо бы заменить на
private const double CodesToVolts = 10.0 / 8000.0;Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4
Многоканальный телефон: +7 (495) 785-95-25
Письма и запросы: lcard@lcard.ru
Отдел продаж: sale@lcard.ru
Мы работаем с юридическими и физическими лицами, пожалуйста, прикладывайте реквизиты при оформлении заказа
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск