Вывод определенного цифрового значения

Простейшие вопросы в области инженерной разработки
Ответить
German3d
interested
interested
Сообщения: 6
Зарегистрирован: 18 сен 2019, 19:03
Версия LabVIEW: 18
Контактная информация:

Вывод определенного цифрового значения

Сообщение German3d »

Столкнулся с проблемой. Необходимо выводить данные каждой итерации в заданном интервале времени. Также необходимо, чтобы при условии сложения/вычитания на экране прибора (проекта) индикатор был совмещен и показывал данные соответствующего действия.
Знаю, что нельзя пользоваться глобальными переменными, но иного выхода из ситуации не вижу.
Начитался всякой литературы, облазил форум, убедился, что при выходе из цикла никак не получить промежуточные данные, а тем более во времени.
Прошу вашей помощи. :help:
Знаю, код кривой, но я учусь!
Вложения
Программа.PNG
Сложение.PNG
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Вывод определенного цифрового значения

Сообщение Artem.spb »

вопрос я совсем не понял.

Выводить промежуточные результаты можно в внутри самого цикла.
German3d писал(а):Знаю, что нельзя пользоваться глобальными переменными, но иного выхода из ситуации не вижу
кто вам такое сказал? :)
Если нельзя, но очень хочется, то можно. Никакого запрета на это нет, тем более, что этот инструмент существует. Было бы нельзя, его бы не делали. У глобальных есть свои недостатки, могущие привести к гонке состояний, если же это формат "от одного многим", то они вполне применимы.
Более того, в официальном тесте по :labview: есть вопрос "что тут лучше использовать?" и правильный ответ - глобальная переменная.
German3d
interested
interested
Сообщения: 6
Зарегистрирован: 18 сен 2019, 19:03
Версия LabVIEW: 18
Контактная информация:

Re: Вывод определенного цифрового значения

Сообщение German3d »

Да, можно выводить, но только в данной подпрограмме. Так как это всего лишь часть, являющейся подприбором. В полной программе он выдает индикация только конечного результата :think:
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Вывод определенного цифрового значения

Сообщение Artem.spb »

Если вам нужно передавать данные "во вне", то используйте
- глобальные переменные, если не важна очередность и получатели каждый в своём ритме просто интересуются актуальным значением величины
- нотификаторы, если получателей много и они хотят знать об обновлении данных "как только, так сразу"
- очереди - если получатель один и важно, чтобы все посылки дошли без пропусков.
German3d
interested
interested
Сообщения: 6
Зарегистрирован: 18 сен 2019, 19:03
Версия LabVIEW: 18
Контактная информация:

Re: Вывод определенного цифрового значения

Сообщение German3d »

Понял, буду разбираться с глобальными переменными. Следующий вопрос, как можно выводить данные соответствующего условия на одном индикаторе.
Допустим, на вход пришло значение больше чем n - на экране начинает производиться действие в "реальном времени" (заданной задержкой итерации). Но если пришло значение меньше чем n - аналогично нужно показать действие происходящие над числом, но на том же индикаторе. Такое вообще возможно?
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Вывод определенного цифрового значения

Сообщение Artem.spb »

Я до сих пор не понимаю/, что за действия и как они над и под числом делаются.
Кейсы вам помогут
if x>n
then {}
else {}
German3d
interested
interested
Сообщения: 6
Зарегистрирован: 18 сен 2019, 19:03
Версия LabVIEW: 18
Контактная информация:

Re: Вывод определенного цифрового значения

Сообщение German3d »

В общем, смог получать промежуточные значения вне теле цикла, но появилась другая проблема. Никак не могу повлиять на первоначальное значение заданного значения. Допустим подали команду 15, с каждым разом это значение должно уменьшаться на 1 и показывать это на индикаторе. Как быть?
image.png
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Вывод определенного цифрового значения

Сообщение Artem.spb »

используйте регистры по назначению
sr.png
sr.png (15.37 КБ) 3421 просмотр
German3d
interested
interested
Сообщения: 6
Зарегистрирован: 18 сен 2019, 19:03
Версия LabVIEW: 18
Контактная информация:

Re: Вывод определенного цифрового значения

Сообщение German3d »

Наверное я очень косноязычно объясняюсь.
Обязательно нужно использовать значения вне цикла, чтобы передавать информацию в string в реальном времени. Каждое изменение значения нужно передавать в стринг.
Грубо говоря, что нужно реализовать:
заданно определенное значение угла антенны, при переключении режима работы (режим работы исходное значение) антенна начинает возвращаться в исходный угол с определенной скоростью. Все изменения значений угла я отражаю в семисегментных индикаторах.
Сейчас пытаюсь реализовать возможность индикации. В цикле не вариант все это делать, так как много режимов работ помимо этого, да и используется несколько подпрограмм, из-за этого использование циклов и переменных отметается.
Самый близкий способ реализации был через очередь, но и там столкнулся с проблемой, что первоначальное положение антенны не получается учитывать.
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Вывод определенного цифрового значения

Сообщение Artem.spb »

Вопрос из простого "как передать значение во вне" внезапно трансформировался в сложный "как сделать большую систему".
Для начала нужно набросать, как бы банально это не звучало, на бумаге общий план. Какой "цикл" за что отвечает и чем занимается. Дальше понять, какие данные откуда куда надо передавать. Из этого будет понятно, что использовать. Глобальные, очереди, нотификаторы. ничего нового вам не скажут. Ещё есть события, но они сложнее.
Плюс тут попахивает машиной состояний: ожидание, вращение и т.п.
Так что ничего нового не скажу:
Если вам нужно передавать данные "во вне", то используйте
- глобальные переменные, если не важна очередность и получатели каждый в своём ритме просто интересуются актуальным значением величины
- нотификаторы, если получателей много и они хотят знать об обновлении данных "как только, так сразу"
- очереди - если получатель один и важно, чтобы все посылки дошли без пропусков.
German3d
interested
interested
Сообщения: 6
Зарегистрирован: 18 сен 2019, 19:03
Версия LabVIEW: 18
Контактная информация:

Re: Вывод определенного цифрового значения

Сообщение German3d »

Сделал! Кому надо пользуйтесь :drink: :drink:
Изображение
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Вывод определенного цифрового значения

Сообщение Borjomy_1 »

German3d, ваше "тройное сравнение" выполняется одной базовой функцией Programming/Numeric/Sign
Artem.spb

Activity Автор
professor
professor
Сообщения: 3393
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Вывод определенного цифрового значения

Сообщение Artem.spb »

German3d писал(а):Сделал! Кому надо пользуйтесь :drink: :drink:
Изображение
НЕ ПОЛЬЗУЙТЕСЬ!
что это и зачем это? запихать значение в очередь и тут же его вытащить? и потом сохранить в регистре? Да ещё до кучи всё это вне цикла?
Тут нарисована абсолютно абсурдная диаграмма.
Возможно, при наличии циклов она была бы более осмысленной, но в данном виде это скорее большая нелепость, чем то, что можно раздавать всем с советом "пользуйтесь"
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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