Альтернатива VISA для работы с последовательным портом

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение dadreamer »

IvanLis, в моём случае прописывать ничего не нужно было, т.к. у меня порт сидел на ttyS0. В вашем случае стоит попытаться, т.к. порт имеет другое имя. Параметр serialDevices как раз отвечает за порядок перечисления портов для serpdrv:
http://digital.ni.com/public.nsf/3efedd ... enDocument
http://digital.ni.com/public.nsf/allkb/ ... 7400554939
Из второй ссылки:
NI писал(а):The file .labviewrc contains the LabVIEW configuration options. To set the devices the serial port VIs use, set the configuration option labview.serialDevices to the list of devices you intend to use. For example, the default is:
labview.serialDevices: /dev/ttya:/dev/ttyb:/dev/ttyc:...:/dev/ttyz

Note: This requires that any third party serial board installation include a method of creating a standard /dev file (node) and that the user knows the name of that file.

Linux: Port 0 refers to /dev/ttyS0, Port 1 refers to /dev/ttyS1, Port 2 refers to /dev/ttyS2, and so on.

Да, там такого параметра нет по умолчанию, но никто не мешает его туда внести.

Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
professor
professor
Сообщения: 4929
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Репутация: 0
Версия LabVIEW: 2015, 2016
Откуда: СССР

Re: Альтернатива VISA для работы с последовательным портом

Сообщение IvanLis »

dadreamer писал(а):Полагаю, на Линуксе должно быть как-то так:

Код: Выделить всё

labview.serialDevices:/dev/ttyACM0:/dev/ttyACM1:/dev/ttyACM2

:drink:
не совсем, за сервами сейчас уже не полезу, но диод заморгал когда добавил строчку в конфиге:

Код: Выделить всё

serialDevices=/dev/ttyACM0:/dev/ttyACM1:/dev/ttyACM2

т.е. связь есть

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение dadreamer »

IvanLis, круто, рад что получилось. А то я боялся, что эти имена реально за-хард-кодены внутри serpdrv. :crazy:

Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
professor
professor
Сообщения: 4929
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Репутация: 0
Версия LabVIEW: 2015, 2016
Откуда: СССР

Re: Альтернатива VISA для работы с последовательным портом

Сообщение IvanLis »

dadreamer писал(а):IvanLis, круто, рад что получилось. А то я боялся, что эти имена реально за-хард-кодены внутри serpdrv. :crazy:

Нет, реально можно изменить очередность.
Попробовал изменить строку на:

Код: Выделить всё

serialDevices=/dev/tty0:/dev/ttyACM0

Диод заморгал при записи в порт №1.

Может потихоньку сделаю обертку, для удобства использования.

И кстати, сегодня в очередной раз перепахал Internet, подобной информации на иностранных языках я не нашел.

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение dadreamer »

IvanLis, ну вот, VI'айки бы допилить ещё (у меня всё времени нет на это), и была бы более менее нормальная альтернатива Визе. Там также можно и с LPT работать. Жаль только, что x64 не поддерживается. Тут надо только сам serpdrv переписывать. Без исходников это тяжкое дело. Тем более на Линуксе.

Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
professor
professor
Сообщения: 4929
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Репутация: 0
Версия LabVIEW: 2015, 2016
Откуда: СССР

Re: Альтернатива VISA для работы с последовательным портом

Сообщение IvanLis »

dadreamer писал(а):IvanLis, ну вот, VI'айки бы допилить ещё (у меня всё времени нет на это), и была бы более менее нормальная альтернатива Визе. Там также можно и с LPT работать.


У меня физического LPT нет, но я начал как раз к нему копать, сейчас жду такую платку:
1 Port PCI Express Low Profile Parallel Adapter Card - SPP/EPP/ECP
s-l1600.jpg

Обертку буду делать по мере возможности и необходимости.

Что касается
dadreamer писал(а):Жаль только, что x64 не поддерживается. Тут надо только сам serpdrv переписывать. Без исходников это тяжкое дело. Тем более на Линуксе.

У нас есть офф. представители NI, нужно Паше удочку забрасывать.
Пусть ищет в загашниках исходники библиотеки. Наверняка они и сами ее под 64bit компилить не будут. Ну а открыв исходники широкой общественности, возможно энтузиасты и найдутся.

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение dadreamer »

IvanLis писал(а):Что касается
dadreamer писал(а):Жаль только, что x64 не поддерживается. Тут надо только сам serpdrv переписывать. Без исходников это тяжкое дело. Тем более на Линуксе.

У нас есть офф. представители NI, нужно Паше удочку забрасывать.
Пусть ищет в загашниках исходники библиотеки. Наверняка они и сами ее под 64bit компилить не будут. Ну а открыв исходники широкой общественности, возможно энтузиасты и найдутся.

Сомневаюсь, что они вообще сохранились. Как писал Брайан в своей статье, во времена 5 и 6 :labview: (98-2000 годы) serpdrv уже считался устаревшим инструментом и только один человек (полагаю, его автор) был в состоянии разобраться в коде. Хотя я реверсил эту штуку на Винде, и там нет ничего сложного, на Линуксе может быть совсем иначе. В этом плане Мак был в выигрыше в те времена, т.к. там тогда serpdrv являлся встроенным драйвером, задокументированным и вполне доступным (хоть и низкоуровневым).
IvanLis писал(а):У меня физического LPT нет, но я начал как раз к нему копать, сейчас жду такую платку:
1 Port PCI Express Low Profile Parallel Adapter Card - SPP/EPP/ECP

Сейчас и COM-порт в современных ПК не встретишь. Мне вот когда-то приходилось похожую плату покупать: ORIENT XWT-PS050, только для RS-232. Видел и гибридные платы, где есть и COM-порт, и LPT.

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение dadreamer »

Serial Port API / LVSerial ( http://www.mhst.de/downloads.htm ) под :labview: 64-bit

Готовый инсталлер: https://yadi.sk/d/Kt1GZzK2ckqJjw (3,1 МБ)
Исходники: https://yadi.sk/d/SbDIToP25gsWyw (11,8 МБ)
На форум не вошло, к сожалению.
Версия последняя на данный момент - 1.2.13 (08.02.2015).
Рассчитано на запуск/работу в LV 2009 x64 и выше.
PCRE 8.43: ftp://ftp.pcre.org/pub/pcre/
Microsoft Visual Studio Community 2019 Версия 16.4.2.

Как устанавливать: Разархивируйте lvserial_installer_1-2-13-x64.rar и запустите setup.exe. После установки и перезапуска :labview: в палитре Instrument I/O -> Instr Drivers появится подпалитра инструментов lvserial. Библиотека lvserial.dll будет подтягиваться из system32.

При желании можно сгенерировать инсталлер из исходников. Для этого разархивируйте lvserial_source_1-2-13-x64.rar и откройте в :labview: lvserial.lvproj, разверните Build Spec's, нажмите ПКМ на LVSERIAL Installer -> Build. В текущей директории будет создана подпапка lvserial с инсталлятором, который нужно будет установить обычным способом (setup.exe).

upd: Мартин выложил тулкит также на mhst.de, можно скачать оттуда, если с яндексом какие-то траблы.
Последний раз редактировалось dadreamer 30 мар 2020, 23:08, всего редактировалось 3 раза.

Аватара пользователя
jane_wild
advanced
advanced
Сообщения: 180
Зарегистрирован: 30 июн 2016, 02:11
Репутация: 0
Версия LabVIEW: 2016
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение jane_wild »

dadreamer, У меня вопросы с разрядностью. Установлена :labview: 32 bit на компьютер с windows 10 64 bit. Какую версию библиотеки устанавливать, что бы оно работало в скомпилированом *exe на компьютере, где установлена win 10 64. С сайта, где 32x битный инсталлер или делать с вашего проекта 64 ? Поясните пожалуйста. Спасибо

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение dadreamer »

jane_wild, конечно 32-битную версию надо ставить. Если :labview: 32 бита, то и все загружаемые в него DLL'ки должны быть 32 бита. Других вариантов не дано, так работает Windows, да и в других системах, насколько я знаю, это справедливо.

Юрий
professional
professional
Сообщения: 354
Зарегистрирован: 28 фев 2010, 18:04
Репутация: 0
Версия LabVIEW: LV2018
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение Юрий »

dadreamer, спасибо. У меня папка с инсталлером появилась в c:\Users\App\. Лабвьюшный браузер искал lvserial.dll по пути "c:\Program Files\National Instruments\LabVIEW 2018\instr.lib\lvserial\x64\Release\". Пришлось досоздать две папки "\x64\Release\". Палитра инструментов lvserial открывается сплошным их набором, без простейшей систематизации. Правильно ли я понимаю, что для создания более структурной палитры достаточно перед процессом создания приложения систематизировать инструменты по папкам. И на закуску. Первое, за что уцепился мой глаз, оказался "comm serial port list.vi". Попробовал и сразу вырубилось LV.

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение dadreamer »

>> У меня папка с инсталлером появилась в c:\Users\App\.
Ещё вчера это поправил, просто не стал афишировать.

>> Лабвьюшный браузер искал lvserial.dll по пути "c:\Program Files\National Instruments\LabVIEW 2018\instr.lib\lvserial\x64\Release\".
Да, при первом открытии :vi: ищет там, потом находит в system32 и берёт оттуда. Остаётся только сохранить :vi: , при следующем открытии всё будет в порядке.

>> Пришлось досоздать две папки "\x64\Release\".
Был косяк с тем, что lvserial.dll не копировался в system32 при установке.

>> Палитра инструментов lvserial открывается сплошным их набором, без простейшей систематизации. Правильно ли я понимаю, что для создания более структурной палитры достаточно перед процессом создания приложения систематизировать инструменты по папкам.
Сегодня исправил. При установке раскидывается по папкам, как автор задумал.

>> Первое, за что уцепился мой глаз, оказался "comm serial port list.vi". Попробовал и сразу вырубилось LV.
Был "хитрый" косяк, попавшийся в очередной раз при портировании функций Memory Manager'а из 32 в 64 бит. Поправил это, протестировал, вроде норм. Ссылку выше обновил.

Думаю, что дальше украшательством заниматься не буду, банально жалко времени на это. Оставляю модификации настроек проекта (структура, пути, иконки и прочие рюшечки) на усмотрение пользователей. Если у кого-то получится лучше, чем есть, выкладывайте, обновлю ссылку.

Юрий
professional
professional
Сообщения: 354
Зарегистрирован: 28 фев 2010, 18:04
Репутация: 0
Версия LabVIEW: LV2018
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение Юрий »

>>Думаю, что дальше украшательством заниматься не буду.
dadreamer, И на том громадное спасибо и уважение :thank: .

Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3505
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Репутация: 0
Версия LabVIEW: 2.5 — 2020
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение dadreamer »

Ещё альтернативы, если кому интересно.

libserialport
https://sigrok.org/wiki/Libserialport
https://github.com/martinling/libserialport
Разработчик: sigrok project (https://sigrok.org/)
ОС: Windows (XP - 10), Linux, Mac OS X, FreeBSD, Android
Вид библиотеки: стандартная (.dll, .so, .dylib)
Разрядность библиотеки, бит: 32, 64
Среда/язык для использования: C/C++, C#, Delphi, VB и другие
Лицензия: Open-Source (LGPL3+)
Особенности: поддержка событий (event driven), библиотеку надо компилировать в MSYS2 (MinGW 32/64 bit) или в Visual Studio 2019

Windows Serial Communication Component Library (WSC)
https://www.marshallsoft.com/serial-com ... ibrary.htm
Разработчик: MarshallSoft
ОС: Windows (XP - 10)
Вид библиотеки: стандартная (.dll)
Разрядность библиотеки, бит: 32, 64, 16 (по запросу)
Среда/язык для использования: C/C++, C#, Delphi, VB и другие
Лицензия: Shareware (триал на 1 месяц, свободное скачивание)
Особенности: функции управления модемами (включая передачу файлов), поддержка модемных протоколов (Xmodem, Ymodem), поддержка событий (event driven)

ActiveXperts Serial Port Component
https://www.activexperts.com/serial-port-component/
Разработчик: ActiveXperts Software B.V.
ОС: Windows (XP - 10/Server)
Вид библиотеки: ActiveX DLL
Разрядность библиотеки, бит: 32, 64
Среда/язык для использования: Любая, где возможно подключение ActiveX: C/C++, C#, Delphi, VB, VB .NET и другие
Лицензия: Shareware (триал на 1 месяц, свободное скачивание)
Особенности:

SuperCom - Serial Communication Library
https://adontec.com/super_e.htm
Разработчик: ADONTEC
ОС: Windows (ME/98/95 - 10/Server), Linux, DOS (16/32), OS/2
Вид библиотеки: стандартная (.dll, .so), ActiveX/.NET
Разрядность библиотеки, бит: 32, 64, 16
Среда/язык для использования: C/C++, C#, Delphi, Pascal, VB, Java и другие
Лицензия: Demoware (демка, скачивание по запросу), полная версия за $$
Особенности: функции управления модемами (включая передачу файлов), поддержка модемных (Xmodem, Ymodem и др.) и промышленных протоколов (ModBus и др.), интеграция в MS Office, есть примеры на LV (DLL, ActiveX), поддержка событий (event driven)

Юрий
professional
professional
Сообщения: 354
Зарегистрирован: 28 фев 2010, 18:04
Репутация: 0
Версия LabVIEW: LV2018
Контактная информация:

Re: Альтернатива VISA для работы с последовательным портом

Сообщение Юрий »

dadreamer, в Вашей инсталляции комментарии к ошибкам на русском языке, что очень здорово. Предполагаю, что это ваших рук дело. А как можно просмотреть весь список ошибок с комментариями на русском?

Ответить

Вернуться в «Коммуникация с приборами»