"Правильный" формат строки

VISA, TCP/IP, USB, CAN, GPIB и подобные протоколы
Ответить
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

"Правильный" формат строки

Сообщение jane_wild »

Здравствуйте ребята. Посоветуйте как правильно "по взрослому" так сказать, организовать связь с прибором. Ситуация такая: Наш электронщик сделал самодельный прибор, который передает по последовательному порту два числа с плавающей точкой (четыре знака после запятой) В LabVIEW мне необходимо получить эти два числа, для дальнейшей обработки. Вот он (электронщик) меня и спрашивает в каком формате я бы хотела получить эти два числа. А я не знаю как стандартно это делается. Вообщем вот что я напридумывала и его попросила, посмотрите вложеный Vi, он сделал и все как бы работает. Вот такую строку я читаю с помощью VISA Read. Но что-то мне подсказывает что вот так в лоб разбор строки не делается. Сегодня это два числа, а завтра может быть пять, не придумывать же для каждого отдельные разделители... Может кто подскажет более "красивое" решение? Или даст совет в каком формате лучше передовать эти два числа, чтобы я совсем уж не выглядела блондинкой в глазах наших железячников. :thank:
Вложения
COM.vi
(7.85 КБ) 69 скачиваний
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: "Правильный" формат строки

Сообщение Kosist »

Немного странный формат строки. Что такое "SP and FB" - обычно так приборы не передают данные. Делаются или пакеты из определенной структурой, или посылаются чистые значения.
В самом простом варианте - пускай Вам будет посылаться строка просто из чисел, разделенных запятой или точкой из запятой; а на конце посылки будет перенос строки. Тогда Вам будет не важно сколько там чисел, т.к. при помощи Spreadsheet string to array Вы вытянете все числа из строки.
Ну или потом можно такой формат -
Имя значения:значение. Например, SP:23.3263;FB:24.8761. Потом Вы при помощи точки из запятой сможете динамически (вне зависимости от количества параметров) разбить строку на отдельные значения, и потом разделите каждое при помощи двоеточия на имя и само значение.
Мы делили апельсин - много наших полегло...
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: "Правильный" формат строки

Сообщение taras_33 »

Kosist прав, странный формат. Зачем изобретать велосипед? Чтобы было проще, можно скачать какой нибудь драйвер, например этот, открыть PPS_UPC MEASure(all data values).vi и посмотреть как это делается. Если лень скачивать, то вот скриншот
Read Buffer.PNG
Read Buffer.PNG (3.24 КБ) 1260 просмотров
Как и указал Kosist, для вытаскивания из полученой строки значений, используется Spreadsheet String To Array.vi, а в качестве разделителя точка с запятой. Вот и скажите своему железячнику чтобы сформировал строку из значений, разделенных между собой ";" и не забыл добавить \r\n в конце. Удачи

P.S. Забыл упомянуть, последовательность значений тоже пусть укажет, что за чем идет. Есть подозрение что SP and FB это SetPoint и FeedBack - контроллер положения какой-нить...
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

Re: "Правильный" формат строки

Сообщение jane_wild »

taras_33, Kosist - Спасибо.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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