Как преобразовать время
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Как преобразовать время
Мы здесь все на ты. Да именно так я имел ввиду, осталось ещё эти сдвиговые регистры инициализировать каким нибудь значением.
Файл можно генерировать автоматически. Название файла можешь брать из месяца.
Файл можно генерировать автоматически. Название файла можешь брать из месяца.
-
- advanced
- Сообщения: 163
- Зарегистрирован: 02 окт 2009, 07:36
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Израиль
- Контактная информация:
Re: Как преобразовать время
это типа присвоить нулевые значения в начале? или по значению инициализировать:
Initializing Shift Registers
Initializing a shift register resets the value the shift register passes to the first iteration of the loop when the VI runs. Initialize a shift register by wiring a control or constant to the shift register terminal on the left side of the loop, as shown in the following block diagram.
In the previous block diagram, the For Loop executes five times, incrementing the value the shift register carries by one each time. After five iterations of the For Loop, the shift register passes the final value, 5, to the indicator and the VI quits. Each time you run the VI, the shift register begins with a value of 0.
If you do not initialize the shift register, the loop uses the value written to the shift register when the loop last executed or, if the loop has never executed, the default value for the data type.
Use an uninitialized shift register to preserve state information between subsequent executions of a VI. The following block diagram shows an uninitialized shift register.
In the previous block diagram, the For Loop executes five times, incrementing the value the shift register carries by one each time. The first time you run the VI, the shift register begins with a value of 0, which is the default value for a 32-bit integer. After five iterations of the For Loop, the shift register passes the final value, 5, to the indicator, and the VI quits. The next time you run the VI, the shift register begins with a value of 5, which was the last value from the previous execution. After five iterations of the For Loop, the shift register passes the final value, 10, to the indicator. If you run the VI again, the shift register begins with a value of 10, and so on. Uninitialized shift registers retain the value of the previous iteration until you close the VI.
Initializing Shift Registers
Initializing a shift register resets the value the shift register passes to the first iteration of the loop when the VI runs. Initialize a shift register by wiring a control or constant to the shift register terminal on the left side of the loop, as shown in the following block diagram.
In the previous block diagram, the For Loop executes five times, incrementing the value the shift register carries by one each time. After five iterations of the For Loop, the shift register passes the final value, 5, to the indicator and the VI quits. Each time you run the VI, the shift register begins with a value of 0.
If you do not initialize the shift register, the loop uses the value written to the shift register when the loop last executed or, if the loop has never executed, the default value for the data type.
Use an uninitialized shift register to preserve state information between subsequent executions of a VI. The following block diagram shows an uninitialized shift register.
In the previous block diagram, the For Loop executes five times, incrementing the value the shift register carries by one each time. The first time you run the VI, the shift register begins with a value of 0, which is the default value for a 32-bit integer. After five iterations of the For Loop, the shift register passes the final value, 5, to the indicator, and the VI quits. The next time you run the VI, the shift register begins with a value of 5, which was the last value from the previous execution. After five iterations of the For Loop, the shift register passes the final value, 10, to the indicator. If you run the VI again, the shift register begins with a value of 10, and so on. Uninitialized shift registers retain the value of the previous iteration until you close the VI.
-
- advanced
- Сообщения: 163
- Зарегистрирован: 02 окт 2009, 07:36
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Израиль
- Контактная информация:
Re: Как преобразовать время
я конечно очень благодарен за проявленный альтруизм, однако, мне не очень поможет тиким образом объяснение, так ведь можно сказать, что и вкосмос можно полететь и т.п., образно я понимаю, а вот принципиально, как то не оченьeg писал(а):Мы здесь все на ты. Да именно так я имел ввиду, осталось ещё эти сдвиговые регистры инициализировать каким нибудь значением.
Файл можно генерировать автоматически. Название файла можешь брать из месяца.
-
- advanced
- Сообщения: 163
- Зарегистрирован: 02 окт 2009, 07:36
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Израиль
- Контактная информация:
Re: Как преобразовать время
и вообще, не могу понять, почему, когда нажимаю выход, в окне разницы времени появляется только часы, а минуты только при следующем запуске, то есть в файл значение записывается коррктно, но вот почему так отображается и ещё не могу исправить что бы время выхода отображалось в той же строчке , а не на новой, хотя записывается правильно в файл...
-
FireFly
- expert
- Сообщения: 1321
- Зарегистрирован: 25 апр 2009, 08:58
- Награды: 2
- Версия LabVIEW: 2014
- Откуда: Санкт-Петербург
- Поблагодарили: 1 раз
Re: Как преобразовать время
Не мог бы ты ещё и 1.txt свой выложить?
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
-
- advanced
- Сообщения: 163
- Зарегистрирован: 02 окт 2009, 07:36
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Израиль
- Контактная информация:
Re: Как преобразовать время
конечно, если это поможет, то я только рад
- Вложения
-
- 1.txt
- (204 байт) 118 скачиваний
-
- advanced
- Сообщения: 163
- Зарегистрирован: 02 окт 2009, 07:36
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Израиль
- Контактная информация:
Re: Как преобразовать время
и пытаюсь исправить ошибку вычисления разницы времени, которая появилась, когда заменил переменную на регистры. теперь вычисляет разницу , как я понял не между входом и выходом а наоборот, между выходом и входом...
-
FireFly
- expert
- Сообщения: 1321
- Зарегистрирован: 25 апр 2009, 08:58
- Награды: 2
- Версия LabVIEW: 2014
- Откуда: Санкт-Петербург
- Поблагодарили: 1 раз
Re: Как преобразовать время
Уффф... Ну в общем я вам что-то сделал.... А дальше устал... С вашей запутанной программой очень трудно работать...
Алгоритм который я использовал - нажимаете кнопку IN - в новую строчку в соответствующую колонку записывается время прихода на работу, остальные колонки пустые, это же время записывается в переменную в Shift Register...
Выбираете строчку - нажимаете OUT в выбранную строчку записывается время ухода, считается разница с переменной в Shift Register...
На самом деле тут кроется очевидная ошибка, в таком алгоритме Shift Register со временем нужно вообще убрать, а время для расчёта разницы брать из соседней колонки в момент записи времени ухода с работы в эту строчку.
Над этой прогой ещё работать и работать.... Но нет ни времени ни желания :)
Попробуйте пока разобраться в том, что сделал я.
Алгоритм который я использовал - нажимаете кнопку IN - в новую строчку в соответствующую колонку записывается время прихода на работу, остальные колонки пустые, это же время записывается в переменную в Shift Register...
Выбираете строчку - нажимаете OUT в выбранную строчку записывается время ухода, считается разница с переменной в Shift Register...
На самом деле тут кроется очевидная ошибка, в таком алгоритме Shift Register со временем нужно вообще убрать, а время для расчёта разницы брать из соседней колонки в момент записи времени ухода с работы в эту строчку.
Над этой прогой ещё работать и работать.... Но нет ни времени ни желания :)
Попробуйте пока разобраться в том, что сделал я.
- Вложения
-
- hour.vi
- (23.51 КБ) 132 скачивания
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
-
- advanced
- Сообщения: 163
- Зарегистрирован: 02 окт 2009, 07:36
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Израиль
- Контактная информация:
Re: Как преобразовать время
спасибо, за проделанную работу. вообще то на счёт замудренности программы ты очень прав, думаю всё можно было бы сделать всё гораздо проще (eg тоже так думает ). потому что сама идея очень проста (ну для вас во всяком случае, судя по темам, которые вы обсуждаете)
кстати, на счёт сдвиговых регистров, ты предлагаешь сделать переменную для расчёта разницы?
кстати, на счёт сдвиговых регистров, ты предлагаешь сделать переменную для расчёта разницы?
-
FireFly
- expert
- Сообщения: 1321
- Зарегистрирован: 25 апр 2009, 08:58
- Награды: 2
- Версия LabVIEW: 2014
- Откуда: Санкт-Петербург
- Поблагодарили: 1 раз
Re: Как преобразовать время
Я её вроде уже сделал :) А иначе как без Shift Restrerа считать суммарное время?
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
-
- advanced
- Сообщения: 163
- Зарегистрирован: 02 окт 2009, 07:36
- Награды: 1
- Версия LabVIEW: 8.6
- Откуда: Израиль
- Контактная информация:
Re: Как преобразовать время
я вот этого не совсем понял, ведь нет ошибок, всё работает отлично, хотя тот факт, что на выход необходимо выделять нужную строчку, не совсем удобен, по запарке можно забыть выделить строку или не ту выделить... но то, что работает, уже достойно благодарности.FireFly писал(а):Уффф... Ну в общем я вам что-то сделал.... А дальше устал... С вашей запутанной программой очень трудно работать...
На самом деле тут кроется очевидная ошибка, в таком алгоритме Shift Register со временем нужно вообще убрать, а время для расчёта разницы брать из соседней колонки в момент записи времени ухода с работы в эту строчку.
.
-
FireFly
- expert
- Сообщения: 1321
- Зарегистрирован: 25 апр 2009, 08:58
- Награды: 2
- Версия LabVIEW: 2014
- Откуда: Санкт-Петербург
- Поблагодарили: 1 раз
Re: Как преобразовать время
Нажмите два раза IN, а затем для каждой строки нажмите OUT, и вы увидите, что DIFF (как индивидуальный, так и суммарный) очень сильно отличается от истины. Именно поэтому нужно время для расчёта разницы брать не из Shift Register, а из соседней колонки.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.