Scan from string Visa Com

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

Re: Scan from string Visa Com

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

Select, Для моего кода надо отключить Enable Termination. В своей программе попробуй отключить его тоже и посмотри, что делается с Bytes at Port и с read buffer. Flush и задержку на этапе исследований тоже не используй.
ABC3.png
Вложения
ABC (3).vi
(22.6 КБ) 49 скачиваний

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

Activity Gold
expert
expert
Сообщения: 1069
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Репутация: 0
Версия LabVIEW: 2013-2020
Контактная информация:

Re: Scan from string Visa Com

Сообщение Kosist »

Судя по видео, данные приходят по одному рядку. Попробуйте эту виайку:
Вложения
Parsing Example.vi
(22.26 КБ) 37 скачиваний
Parsing example.png
Мы делили апельсин - много наших полегло...

Аватара пользователя
Select
developer
developer
Сообщения: 261
Зарегистрирован: 12 дек 2017, 23:56
Репутация: 0
Версия LabVIEW: 18
Откуда: Врата надежды.

Re: Scan from string Visa Com

Сообщение Select »

Юрий,
Последний вариант рулит, содержимое буфера отображается в нужном порядке и объеме, как понимаю ты ограничил количество объема буфера. Это уже прогресс, я вижу в реальном времени считываемые значения, отстроил длину строки, чтоб отобразить нужные значения.

Сейчас передо мной очередной этап - это построчное считывание и разделение по индикаторам остальных каналов 1 - 9.
Каким образом я могу двигать каретку и выполнять табуляцию для отображения нужной строки?
Я очень хочу понять механизм работы с содержимым памяти как то, чем мы сейчас здесь занимаемся, методы разделения считываемых данных RS232.
На NI и форумах это практически слабо представлено, хелпы я как вдумчиво не курил, результат никакой. Если с твоей помощью я организую такую фильтрацию, это будет вполне академический приличный хелп для быстрого освоения. Одно дело когда ты с руководством на железо получаешь от производителя вменяемый SDK, и все строишь по инструкциям, другое дело это нечто нестандартное с единственным указанием о наличии UART коммуникации...
Прикрепляю результат.
ABC(3).png
Kosist,
Судя по видео, данные приходят по одному рядку. Попробуйте эту виайку

Вариант не пошел, пробовал с кодом "Test" и без него. У меня даже не происходило считывание в буфер. :dntknw:
Последний раз редактировалось Select 27 мар 2020, 00:32, всего редактировалось 3 раза.
LabView 14

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

Activity Gold
expert
expert
Сообщения: 1069
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Репутация: 0
Версия LabVIEW: 2013-2020
Контактная информация:

Re: Scan from string Visa Com

Сообщение Kosist »

Select, у меня тест работал. Вы сделали Enabled все три Disabled Structure? Смысл моего тестирования был "скрыть" все VISA функции, т.к. нет железа. Вы что-то делаете неправильно. Попробуйте этот пример - не модифицируйте, просто запустите виайку.
Вложения
Parsing Example.vi
(21.57 КБ) 37 скачиваний
Мы делили апельсин - много наших полегло...

Аватара пользователя
Select
developer
developer
Сообщения: 261
Зарегистрирован: 12 дек 2017, 23:56
Репутация: 0
Версия LabVIEW: 18
Откуда: Врата надежды.

Re: Scan from string Visa Com

Сообщение Select »

Kosist,
Симуляция от генератора случайных строк работает, но не так как это выглядит в случае с буфером при обращении к Visa (предыдущий ролик - все строки).
Это Ваш код.
https://youtu.be/hqskvHLWOK8
Могу попытаться отключить симуляцию. По результату отпишусь.
LabView 14

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

Re: Scan from string Visa Com

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

Select, как понимаю ты ограничил количество объема буфера. Что то я не понимаю как могла придти в голову эта мысль. Где это я мог сделать в этой программе? Сколько в приёмный буфер COM порта пришло байт столько и отобразил Bytes at port при условии, что Enable Termination выключен. Т. е. он выдаст все байты, что пришли. Если Enable Termination включён, то в порт будут записаны только те байты, что пришли до символа конца (termination char), поэтому то ты и видел всегда только первую строку, поскольку на самом деле в порт всегда приходило 10 строк. Вообще правильнее бы было сначала поисследовать сигнал. Почему, например, Bytes at port показывает 172 байта, хотя ожидаем 150, 10 строк по 15 символов. Вполне вероятно, что вся последовательность имеет своё окончание. Посмотреть можно, если в read buffer кодировку отображения заменить на отображение служебных символов ("\") или в виде хекс кода. Когда станет ясно со всей посылкой в целом, то тогда можно и создать и более оптимальный код. А пока ограничимся этим:
ABC4.png
Вложения
ABC (3).vi
(28.87 КБ) 32 скачивания

Аватара пользователя
Select
developer
developer
Сообщения: 261
Зарегистрирован: 12 дек 2017, 23:56
Репутация: 0
Версия LabVIEW: 18
Откуда: Врата надежды.

Re: Scan from string Visa Com

Сообщение Select »

Юрий,
https://drive.google.com/file/d/1XnnKFP ... sp=sharing
Поправил отображение разрядности в значении V
Теряюсь в догадках, в моем случае я значения строки индексировал в индикаторе стриннга, как это можно выполнить в случае с элементом Streeng Subset?
screenshot 2020-03-27 001.jpg
---------
Админы, уже и не знаю, после многоразовых попыток вставить сюда screenshot вынужден был тупо кинуть линк на внешний контент.
С входом так же проблемы, войти можно при отметке "автоматических вход", если успею в промежутке между обновлением. В противном случае вход не возможен.

БАГ http 500 :
скорей всего сервер у Вас тормозит и один из скрипов не успевает за потоком информации, исправляется с помощью специальных серверов выловить этот скрипт, и вручную оптимизировать.
Последний раз редактировалось Select 27 мар 2020, 23:39, всего редактировалось 1 раз.
LabView 14

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

Activity Gold
expert
expert
Сообщения: 1069
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Репутация: 0
Версия LabVIEW: 2013-2020
Контактная информация:

Re: Scan from string Visa Com

Сообщение Kosist »

Select, в предыдущем ролике у Вас за одну посылку не приходили все строки. У Вас каждая строка имеет символ переноса строки. И VISA настроена на этот терминирующий символ. Поэтому одна посылка - это один канал. Попробуйте код без симуляции, и добавьте отображение целой принятой строки, без парсинга. Если сделаете видео, будет супер.
Мы делили апельсин - много наших полегло...

Аватара пользователя
Select
developer
developer
Сообщения: 261
Зарегистрирован: 12 дек 2017, 23:56
Репутация: 0
Версия LabVIEW: 18
Откуда: Врата надежды.

Re: Scan from string Visa Com

Сообщение Select »

Kosist
Так и сделал элемент очистки буфера за ненадобностью убрал, вместо этого вставил Enable Termination.
В Все строки в отключенном в Termination считываются но в стринг индикаторы строк но без последующего обновления.
Аналогично и при включенном, пр этом читается только нулевой канал.
Парсинг в общем стринге и в отключенном в Termination отображает все значения строк правильно в реальном времени.
К сожалению из-за глюков на форуме не получается сейчас здесь прикрепить screen и :vi:
Если удастся, попробую это сделать позже.
Я для наглядности переставил стример на 2 канал.
Пока что кино не получится.
Вложения
Parsing Example1.vi
(19.47 КБ) 43 скачивания
Parsing Example1.jpg
Parsing Example_1.jpg
LabView 14

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

Re: Scan from string Visa Com

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

Select, покажите всё же в развёрнутом виде, что выдаёт прибор. Имеется ввиду все байты в том числе и не видимые. Мне так это очень интересно. Для этого в read buffer щёлкните на значок "n" в вертикальной колоночке слева и выберите значок "\".
----------------
Select, Админы, уже и не знаю, после многоразовых попыток вставить сюда screenshot вынужден был тупо кинуть линк на внешний контент.. Да уж задолбало. Делаю так. Пишу текст, копирую его в буфер, для вложений нажимаю "Предпросмотр", появляется возможность делать вложения, делаю это действие, текст пропадает. Опять "Предпросмотр", вижу свои вложения, вставляю скопированный текст и т.д.

Аватара пользователя
Select
developer
developer
Сообщения: 261
Зарегистрирован: 12 дек 2017, 23:56
Репутация: 0
Версия LabVIEW: 18
Откуда: Врата надежды.

Re: Scan from string Visa Com

Сообщение Select »

Юрий,
Правильно понял? Хотите посмотреть вариант от Kosist?
Parsing Example2.jpg
Parsing Example3.jpg
В 1 случае, когда я предпринял попытку интеграции кода Kosist, к Вашему, меня жестоко грузануло RAM синее окно, пришлось рестартануть PC. Буфер после нескольких итераций растет как на дрожжах.

-------
Перезапись и очистка в циклах итераций в буфере не происходит (Termination ON), вместо этого идет непрерывная загрузка до момента останова.
LabView 14

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

Re: Scan from string Visa Com

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

Select, Правильно понял? Хотите посмотреть вариант от Kosist?. Да всё равно. Понятно, что прибор разом выдаёт все каналы с концовкой каждой строки \r\n и всю посылку заканчивает так же \r\n. Это полезная информация для парсинга. Но, вот, почему значение напряжения меняется только в первом канале в то время, как в фирменной программе - во всех, наводит на мысль, что прибор настраивается на варианты вывода информации. И происходит это определёнными командами со стороны фирменной программы. Если это так, то без их знания придётся подсматривать, что там посылает их программа. Сделать это можно

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

https://www.aggsoft.ru/serial-port-monitor/serial-port-sniffer.htm
. А для полного понимания о временных параметрах неплохо запустить это:
ABC4.png
Вложения
ABC (4).vi
(22.94 КБ) 48 скачиваний

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

Re: Scan from string Visa Com

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

Текст чего то не отправился. Хорошо, что остался в памяти.
Select, Правильно понял? Хотите посмотреть вариант от Kosist?. Да всё равно. Понятно, что прибор разом выдаёт все каналы с концовкой каждой строки \r\n и всю посылку заканчивает так же \r\n. Это полезная информация для парсинга. Но, вот, почему значение напряжения меняется только в первом канале в то время, как в фирменной программе - во всех, наводит на мысль, что прибор настраивается на варианты вывода информации. И происходит это определёнными командами со стороны фирменной программы. Если это так, то без их знания придётся подсматривать, что там посылает их программа. Сделать это можно https://www.aggsoft.ru/serial-port-moni ... niffer.htm
А для полного понимания о временных параметрах неплохо запустить это:

Аватара пользователя
Select
developer
developer
Сообщения: 261
Зарегистрирован: 12 дек 2017, 23:56
Репутация: 0
Версия LabVIEW: 18
Откуда: Врата надежды.

Re: Scan from string Visa Com

Сообщение Select »

Юрий,
То что один канал выдает значения, это моя аппаратная схема, сейчас я снимаю показания со 2-го канала все остальные каналы не подключены к сенсорам так что здесь все как и должно быть.
Для понимания временных параметров, попробую покурить последний Ваш пример. Его результат парсинга выставляю здесь.
В дальнейшем, буду благодарен, если свои примеры у Вас будут под 14 версию LV, 18 у временно меня на другом PC для удаленки в другом месте, приходится каждый раз дергать человека для конвертации.
ABC (5).png
Мне кажется я понимаю механизм разноса данных, я это регулирую установками итераций для каждого канала. Пока что не ясно как мне значения отобразить поканально в разных обычных стринг индикаторах, не так как у Вас в 2D стринге.
LabView 14

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

Activity Gold
expert
expert
Сообщения: 1069
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Репутация: 0
Версия LabVIEW: 2013-2020
Контактная информация:

Re: Scan from string Visa Com

Сообщение Kosist »

Select, а что Вы сейчас собственно пытаетесь достичь? Мой пример ведь работает - данные читаются для каждого канала, и выводятся в свой индикатор. Поочередно, потому что они выдаются прибором поочередно. Для того, чтобы было понятно какой канал был прочитан сейчас - загорается индикатор. Но нужно читать данные быстрее, т.к. прибор их выдает чаще.
Это был Ваш изначальный вопрос. А сейчас в чем задача?
Мы делили апельсин - много наших полегло...

Ответить

Вернуться в «Для чайников»