Каков результат при добавлении отметки времени с числовой переменной? - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь сделать счетчик времени для сброса кнопки. Я хочу сбросить его через 60 секунд, но ни один конечный автомат не помог мне.

«Лучшим» решением, которое я мог придумать, была обратная связь по времени по сравнению с предельным временем (то есть начальное время + 60 секунд).

Дело в том, что «добавить функцию» допускает только одну переменную отметки времени, а другая должна быть числовой, но как мне узнать, что означает эта цифра, с точки зрения измерения времени?

Если я добавлю 60, это будет 60 секунд, 60 минут, 60 лет?

Я пытался создать конечный автомат, но в моем программном обеспечении возникали другие проблемы ...

результат должен быть "время начала" + 60 секунд

diagram


Обновление!

Я видел несколько видео, парень сделал таймер, и я приспособился к своей проблеме, но сравнение не работает (я ждал максимум 5 минут). Я попробую идею @John Covil, но просто, чтобы вы знали, над чем я работаю, если хотите знать :) http://pt -br.tinypic.com / г / 2crr0ck / 9 * ** 1026 тысячи двадцать-пять *

Ответы [ 5 ]

1 голос
/ 06 мая 2019

Самый простой способ выяснить это состоит в том, чтобы разветвить выход функции CurrentTimestamp, подключить один напрямую к индикатору, а другой после добавления 1, хмм?

Внутренне Labview измеряет время в секундах с полуночи 1904-01-01, поэтому добавление 1 означает добавление одной секунды. А поскольку время в LabView имеет разрешение выше одной секунды, вы можете добавлять доли секунды.

0 голосов
/ 20 мая 2019

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

Мы использовали цикл отметки времени, который был входом переключателя. Он также имел логический цикл, который использовал первое значение true, поэтому я мог получить первое значение временной метки. Когда я нажимаю кнопку «Сохранить», эта система регистрирует значение метки времени, когда я нажимаю кнопку, после этого я измеряю непрерывные значения метки времени и вычитаю из первого значения. Это приводит к разнице между моментами, и она сравнивалась со значением типа int (в секундах), при котором кнопка «Сохранить» стала бы ложной.

Я буду загружать печать, когда смогу :) Спасибо за поддержку, я выучил много!

0 голосов
/ 15 мая 2019

Вот простой ВП , который делает то, что я думаю, вы пытаетесь сделать? Попробуйте запустить ВП и посмотрите, как он работает.

0 голосов
/ 10 мая 2019

Простой ответ: временные метки LabVIEW в фоновом режиме - это просто количество секунд с 1/1/1904 , поэтому добавление к нему числа добавит секунды.

Более длинный ответ: этотфункциональность кажется мне подозрительной.Я могу ошибаться, но я предполагаю, что вы пытаетесь избежать нескольких нажатий кнопок, пока вы делаете что-то еще.Я думаю, что более безопасный способ сделать это - установить функцию блокировки на кнопку и вместо этого установить ее в положение «Отключено и выделено серым» на 60 секунд.Это сообщит пользователю, что его ввод получен, и кнопка не может быть нажата снова.

0 голосов
/ 09 мая 2019

Если вы собираетесь работать в таком масштабе, я бы использовал функцию Tick Count из палитры Timing. Вы знаете, что всегда работаете в миллисекундах, и при желании легко масштабировать в секунды DBL или просто установить предел в 60 000.

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

В приведенном ниже фрагменте структуры case внутри цикла while имеется пустой False case, который просто устанавливает значения по умолчанию для двух выходов. Остальной код вы можете увидеть на двух скриншотах ниже. Также включен код в этом таймере MS Wrapper VI, который я использую по привычке.

False state in inner case structure

True state in inner case structure

Tick Count Wrapper diagram

...