Здесь уже было несколько обзоров подобных генераторов со вскрытием и измерением форм выходных сигналов. Повторяться не буду, сейчас будет обзор с несколько другой точки зрения — дистанционное управление прибором, команды программного интерфейса и возможность использования прибора в домашней автоматизированной лаборатории. Сразу предупреждаю — полного описания не будет, слишком длинно и мало кому интересно. А кому интересно — тому будет достаточно и того, что есть, остальное несложно самому додумать.
Зато будет немного про LabView, а это точно кому-то может полезным оказаться.
Если интересно — читайте дальше.
Предыдущие обзоры такого генератора:
от lexus---08
от inko1973
Увидел скриншот программного обеспечение на странице товара — аж ностальгия пробрала — это же на LabView сделано!
Если кто не в курсе LabView — это графический язык, основное предназначение — позволить инженеру (или даже не инженеру, а просто эникейщику), не знакомому с программированием, самому создать систему для измерений или управления. Внутри куча самой разнообразной математики, возможности работать с изображениями или управлять роботами — но базовая версия ограничена. Всякие расширения позволяют хоть FPGA программировать.
Уже больше 5 лет с LabView не имел никаких дел, система по цене не для личного пользования и не дешевая. По крайней мере, не для пионеров и пенсионеров.
Как-то в одном немецком журнале была статья про LabView, и National Instrumens приложил к этому журналу бесплатно какую-то очень древнюю версию, для 32-разрядного Линукса. Линукс тоже должен быть древним — на последних версиях не заработало, а держать старый компьютер специально ради LabView нужды и желания не было.
Тут решил посмотреть — а что сейчас у National Instruments? И был приятно удивлен — оказывается, появилась бесплатная community версия, причем и для Linux, и для Windows и даже для Mac.
На Ubuntu Mate она встала только после танцев с бубном, но NI VISA (Virtual Instrument Software Architecture) — набор библиотек для работы с аппаратурой — на сайте под Linux отсутствовал, а без него проку от LabView мало. Вместо него присутствовал NI-DAQmx for Linux — но как им пользоваться — сие есть тайна великая. По крайней мере мне не удалось найти описания — видимо, у меня гугль не той системы.
Если кто-то знает эту страшную тайну, расскажите, пожалуйста, я никому не скажу — честно-честно :)
Если кто будет ставить LabView на Ubuntu (официально не поддерживается)
Регистрируемся на
www.ni.com — без регистрации и скачивания активизировать LabView не получится. Скачиваем LabView
здесь (версия Community).
Пишем
sudo apt-get install rpm
и потом подключаем скачанный iso образ, как диск и устанавливаем, как обычно
sudo sh ./INSTALL
без
sudo не поставится. Но возникнет проблема — нужная папка
natinst окажется в папке
root. Нужно ее перенести в корень своей домашней папки и переписать себя в качестве владельца всех папок и файлов. Не пропустите скрытые файлы!
Для того, чтобы установить NI-DAQmx for Linux качаем
драйвера.
Устанавливаем, потом пишем
sudo apt install ni-scope
sudo dkms autoinstall
Теперь nidaqmxconfig доступен
Можно создать свой файл конфигурации
nidaqmxconfig —export myconfig.ini
Файл найдете в своей домашней папке.
Но потом надо в нем прописать свою аппаратуру — вот как это сделать — я не нашел.
Может, кто подскажет?
А пока что долго думал, чесал репу и сделал так:
[DAQmx]
MajorVersion = 21
MinorVersion = 0
[ASRL-RSRC-ALIAS]
Name0=«ASRL1::INSTR»
Enabled0=1
Static0=1
SystemName0="/dev/ttyUSB0"
BaudRate0=115200
Parity0=0
StopBits0=10
DataBits0=8
FlowCtrl0=0
Name1=«ASRL2::INSTR»
Enabled1=1
Static1=1
SystemName1="/dev/ttyS0"
BaudRate1=115200
Parity1=0
StopBits1=10
DataBits1=8
FlowCtrl1=0
NumOfResources=2
Почему — не спрашивайте. Видимо, озарение от Летающего Макаронного Монстра было.
Потом написал
nidaqmxconfig --import myconfig.ini
и ударил в бубен.
Порт заработал, но имя оказалось неправильным. Для ttyUSB0 должно быть ASRL1::INSTR, а от отзывается на ASRL2::INSTR.
Спрашивается, на кой выпилили из Линукса NI MAX? В старых версиях он был и прекрасно работал, задумываться ни о чем не надо было, он сам всю аппаратуру находил.
Еще что-то с HELP сделать надо — не работает. У меня попытка вызвать HELP почему-то запускает balenaEtcher. Снова бил в бубен и камлал. Оказалось, что если поменять интернет браузер по умолчания с Firefox на Chrome — все прекрасно работает.
Тем не менее — пришлось включать компьютер с Windows — а это я делаю только в случае крайней необходимости. Программное обеспечение генератора работает только под Windows. После включения компьютер целый день занимался какими-то своими делами и только к ночи проявил готовность сделать хоть что-то полезное. Пришлось установку отложить на следующий день. Под Windows LabView встал без дополнительных усилий, хотя и со второго раза.
Базовые вещи за много лет не изменились. Самое паршивое — иконки программных модулей как были много лет назад 32х32 пикселя, так и остались, и возможности для масштабирования не появилось. А за много лет и зрение подсело, и плотность пикселей на мониторах сильно увеличилась. В итоге такую картинку без использования экранной лупы не разглядишь. Если будет интересно поиграться — непременно ее включите.
Приведу простенький пример, как пересылать данные из той же Ардуино в LabView.
Ардуино каждую секунду посылает по последовательному интерфейсу строку вида :1234567 и программа на LabView ее принимает.
Ардуино код:
void setup()
{
Serial.begin(115200);
}
void loop()
{
Serial.println(":1234567");
delay(1000);
}
На компьютере — сначала запустите NI MAX и убедитесь, что он видит последовательный порт. Это касается любой аппаратуры — сперва ее должен увидеть NI MAX, без этого VISA в LabView работать не будет.
Вы удивитесь — но вот это и есть исходный код программы
Та же программа, добавлена отправка подтверждения после приема строк
И пользовательский интерфейс в работе
Выглядит очень просто — реальность, конечно, далека от этого (обычно работают десятки устройств, данные как-то обрабатываются и протоколируются, если что-то пошло не так — программа может e-mail отправить, например), но элементарные кирпичики просты до безобразия. И LabView прежде всего предназначена для использования не программистами.
Если будете устанавливать LabView и программное обеспечение генератора — сначала ставьте
LabView и
NI VISA, а потом программное обеспечение генератора, но только второй раз VISA устанавливать не надо, только основную программу.
Кстати, и Ардуино, для особо ленивых, можно программировать визуально.
Запускаем VI package manager и пытаемся устанавливаем пакет Labview interface for Arduino. Arduino IDE тоже должно быть установлено.
Все это описывать явно не по теме, кому интересно, читаем
здесь.
Наконец-то присказка закончилась.
Генератор я купил во время распродажи — цена на чешском складе была вне конкуренции.
Еще и купон от Banggood сработал — вообще лафа.
Такой прибор выпускается под несколькими торговыми марками, в том числе и
немецкой — не думаю, что это их разработка. А кто разработчик — я так и не понял.
Вот такая коробочка была доставлена спустя неделю после заказа:
Котейка была немало озадачена размером коробки — зачем такое покупать-то было?
Включаем генератор, начинаем тыкать все кнопки подряд. Как-то не очень понравилось включение и выключение выходов.
Как то не очень логично кнопки работают. Первое нажатие приводит к переключению переключателей с настроек первого канала на второй. А уже после этого эта же кнопка включает и выключает соответствующий выход.
Дистанционное управление включением-выключением выходов с прилагающего программного обеспечения у меня не заработало вообще. При попытке с PC включить вход — на генераторе переключается экран на управление соответствующим каналом, но вход не включается.
Но когда со своей программы посылал команды управления выходами — все прекрасно работает.
Тесты сигналов, которые генератор выдает были в обзорах-предшественников. От себя решил добавить только генерацию на высоких частотах. Несмотря на то, что осциллографу 60МГц вполне по зубам (Hantek 6254BC 4 Channels 250MHz 1GSa/s), линия для подключения не согласована, входной импеданс должен быть 50 Ом, а не 1 МОм. Естественно, амплитуда синусоиды слегка упала, у меандра завались фронты, у треугольника верхушки посрезались.
Максимальная частота для синусоиды 60МГц, для треугольника и меандра — 25МГц. Никаких неожиданностей не обнаружено.
Синусоида 60 МГц
Меандр 25 МГц
Треугольник 25 МГц
Подключаем прибор, запускаем программное обеспечение и сниффер последовательного порта.
Сначала программное обеспечение пытается снюхаться с прибором:
:r00=1.
:r00=60.
:r01=2166615965.
После получения стоки нужно отправить CR и LF для того, чтобы прибор выдал следующую.
Это запрос наименования устройства, вернее, последней цифры — максимальной частоты и
серийного номера. Программа на Labview будет выглядеть так:
и ответ устройства:
Далее запрашивается текущее состояние генератора:
:r21=10.
:r21=1.
:r22=3.
:r23=100000000,2.
:r24=50000000,2.
:r25=5000.
:r26=5000.
:r27=1000.
:r28=1000.
:r29=200.
:r30=500.
:r31=0.
Программа на Labview:
Еще дополнительная команда при опросе
:r55=1,1,1,1,1.
:r55=0,0,0,0,0.
:r56=15.
Данные имеют какое-то отношение к синхронизации, оставим их пока в покое.
Теперь попытаемся командовать устройством, программа установки частоты:
Как выглядит интерфейс программы:
И реакция генератора:
Теперь дистанционно поменяем скважность:
Как видим, сработало:
Изменим форму сигнала:
Да без вопросов:
Напоследок проверим установку амплитуды и сдвига сигнала:
и управление включением-выключением выходов:
Как видим, лампочка светится:
Хотя к самому интересному, такому, как свип-генератор и сигналы произвольной формы, так и не подошли, но, пожалуй, остановимся.
Для старта этого должно хватить.
Получившийся файл виртуального инструмента можно скачать
здесь.
В качестве справки, что команды значат (список не полный, кроме того, возможности форматирования на сайте бедные, поэтому понять что к чему не очень просто):
| функция |
r | чтение |
w | запись |
a | TBD |
b | TBD |
Следующая цифра:
код | функция | пример | примечание |
0 | версия, она же максимальная частота | :r00=0. |
1 | серийный номер | :r01=0. |
20 | разрешения выходов | :w20=1,1. |
21 | форма сигнала канала 1 | :w21=0. |
22 | форма сигнала канала 2 | :w22=1. |
23 | частота канала 1 | :w23=25786,0. | При считывании канала множитель не работает, считывается частота в герцах, умноженное на 100 |
24 | частота канала 2 | :w24=1234,1. |
25 | амплитуда канала 1 | :w25=1000. | Амплитуда — целое число в милливольтах |
26 | амплитуда канала 2 | :w26=3000. |
27 | сдвиг амплитуды канала 1 | :w27=500. | Со сдвигом без поллитры не разберешься. Логика очень странная — если сдвига нет, то его величина 1000. Сдвиг вверх на 1.23 вольта — величина 1123. Сдвиг вниз на 0.1 вольт — величина 99. Тем не менее разобрался — смотрите исходники. |
28 | сдвиг амплитуды канала 2 | :w28=0. |
29 | скважность канала 1 | :w29=500. | Целое число, единица — 0.1%. |
30 | скважность канала 2 | :w30=200. |
31 | установки фазы | :w31=200. | Тоже целое число с шагом 0.1%. |
Готовые формы сигналов следующие:
| форма |
0 | Sine |
1 | Square |
2 | Pulse |
3 | Triangular |
4 | Partia |
5 | CMOS |
6 | DC level |
7 | Half wave |
8 | Full wave |
9 | Positive step |
10 | Negative step |
11 | Noise |
12 | Expotential |
13 | Expotential-Decay |
14 | Multi-Tone |
15 | Sinc |
16 | Lorenz pulse |
17... | arbitrary |
В описании программного обеспечении говорится о возможности хранить до 60 своих форм, но через меню прибора почему-то только 16 доступно.
Откровенно говоря, я думал увидеть что-то типа стандартных SCPI (Standard Commands for Programmable Instruments) команд типа:
:MEASure
:VOLTage
:DC?
:AC?
:CURRent
:DC?
:AC?
Щас, прямо бегом — команды, как видите, оказались очень упрощенные, плохо документированные и с непонятностями в описании. В чем проблема — не очень ясно. Если лень самому писать программу SCPI синтаксического разбора — для Ардуино есть несколько готовых очень неплохих библиотек. Одну из них (вторая ссылка) я даже как-то адаптировал для своих нужд.
SCPI парсеры:
первый
второй
Для мультиметра
Owon XDM1041 (который совсем недавно обсуждали в разделе скидок), кстати, обещают поддержку SCPI. Но тоже со своими тараканами — в инструкции написано, что команды как у всех мультиметров. Но у всех они немного отличаются и хороший тон — давать в описании полный список команд. Я бы взял его помучить, но не уверен, что жаба одобрит.
Надеюсь, что те товарищи, которым готовое программное обеспечение от разных лабораторных устройств не нравится, получили идею, как сделать все, что им хочется не сильно напрягаясь.
Почему производитель не предоставляет доступ к уже разработанным виртуальным инструментам для своего устройства — для меня загадка. Ведь их наличие сильно увеличивает ценность устройства в глазах тех, у кого лаборатория претендует на серьезность.
Очевидно, что от подключения единственного устройства к системе автоматизации толку немного. А вот когда их несколько — ситуация меняется кардинально. С помощью того же генератора и приличного мультиметра можно автоматически снимать амплитудно-частотные характеристики. Или управляемый лабораторный источник питания и мультиметр могут измерить вольт-амперные характеристики. Хотя в последнем случае лучше использовать источник-измеритель Keithley 24xx, если он у вас есть в домашней лаборатории. Кстати, уникальная вещь — производится несколько десятков лет и при кажущейся простоте по-прежнему продается за несколько тысяч долларов даже бывший в употреблении прибор, и никто не спешит его скопировать. А Keithley стало собственным именем этого прибора, как и Ксерокс для копира, хотя и Keithley уже давно часть Tektronix, и выпускали они не только источники-измерители.
И возвращаясь к нашему генератору — для читателей Banggood предложил купон
BGb6d59a (CN warehouse) $77.99-85.99 действителен до 30.11.2021
BGb68ea5 (CZ warehouse) $79.99 действителен до 30.11.2021
Когда измерительную систему Audio Precision «на коленке» забабахать получится (с демо-платой LTC2380-24 например) и погонять непопулярные тесты автокорреляции белого шума, жёсткие и с плачевными результатами для дельта-сигма ЦАП и АЦП?
И опечатку заметил:
«для синусоиды 60МГц, для треугольника и меандра — 25МНц»
P.S. в одном прошлом обзоре точность ЦАП 12 бит, в другом — 14.
Для звуковых измерений надо бы 16-20 бит (искажения УНЧ и конденсаторов проверять например), а для охоты на
привиденийэффект направленности проводов — и 24 бита, хоть номинальных.Ошибку поправил, спасибо.
После режекции основного сигнала и доп. усиления — прокатывало.
Хотя использования этого генератора с LabView я нигде не нашел — потому и писать стал.
Не сворачивайте тему.
За инструкцию по labview — аплодисменты, спасибо.
И у меня вопрос, пардон что не по теме.
В мастерскую нужен такой прибор, что бы он подавал на две, условно говоря, катушки синусоиду, и потом с них же выводил две осцилограммы. Если катушки намотаны правильно и одинаково, то на экране показывается одна кривая, если по разному намотаны — то уже две кривые. Желательно что бы прибор был «всё-в-одном», мобильный. Качество сигнала не особенно нужно. Может этот одним словом как-то называется?
Сейчас всё еще почти рабочий старый, с ЭЛТ трубкой, и плохо видно уже, и вообще пора ему сломаться давно.
?
И сразу на двух каналах.
Или двухканальный осцилл + генератор построят фигуры Лиссажу.
А старый прибор на ЭЛТ как назывался?
«модели Schleich MTC2-6кВ за глаза.»
metrologu.ru/topic/7303-чем-заменить-ел-1/
Стоят они недорого — по крайней мере характеристики антенн снимать могут, возможно, ваша задача не очень далека от этого.
— (USB) звуковая карта (внешняя), 2 резистора и labview на ноуте.
В 2 выхода свистеть (впрочем, хватит и одного), с двух входов снимать. Хоть фиксированная частота, хоть спектр снимать — всё делается программно.
и запустить в виртуалке старую систему вообще никаких проблем (и никаких тормозов, иногда даже быстрее работает, за счет двойного кеширования дискового стораджа).
и скорее всего древний дистрибутив GNU/Linux тоже не потребуется искать. достаточно будет подпихнуть пару-тройку заботливо выковоренных (или пересобранных из доступных исходников) древних версий библиотек и оно заработает, после пары тычков.
возможно конкретно в этом случае оно не стоит затраченных усилий, т.к. нашелся рабочий вариант. Но очень часто в случае потребности эксплуатации старого экзотического ПО, виртуалка — это фактически единственный выход.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.