Как преобразовать время

Работа с файлами и базами данных
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Как преобразовать время

Сообщение Eugen Graf »

Мы здесь все на ты. Да именно так я имел ввиду, осталось ещё эти сдвиговые регистры инициализировать каким нибудь значением.
Файл можно генерировать автоматически. Название файла можешь брать из месяца.
Denmal

Activity
advanced
advanced
Сообщения: 163
Зарегистрирован: 02 окт 2009, 07:36
Награды: 1
Версия LabVIEW: 8.6
Откуда: Израиль
Контактная информация:

Re: Как преобразовать время

Сообщение Denmal »

у меня сумму часов неправильно высчитывает почему то :shok:
Denmal

Activity
advanced
advanced
Сообщения: 163
Зарегистрирован: 02 окт 2009, 07:36
Награды: 1
Версия LabVIEW: 8.6
Откуда: Израиль
Контактная информация:

Re: Как преобразовать время

Сообщение Denmal »

это типа присвоить нулевые значения в начале? или по значению инициализировать:
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.
Denmal

Activity
advanced
advanced
Сообщения: 163
Зарегистрирован: 02 окт 2009, 07:36
Награды: 1
Версия LabVIEW: 8.6
Откуда: Израиль
Контактная информация:

Re: Как преобразовать время

Сообщение Denmal »

eg писал(а):Мы здесь все на ты. Да именно так я имел ввиду, осталось ещё эти сдвиговые регистры инициализировать каким нибудь значением.
Файл можно генерировать автоматически. Название файла можешь брать из месяца.
я конечно очень благодарен за проявленный альтруизм, однако, мне не очень поможет тиким образом объяснение, так ведь можно сказать, что и вкосмос можно полететь и т.п., образно я понимаю, а вот принципиально, как то не очень :cry:
Denmal

Activity
advanced
advanced
Сообщения: 163
Зарегистрирован: 02 окт 2009, 07:36
Награды: 1
Версия LabVIEW: 8.6
Откуда: Израиль
Контактная информация:

Re: Как преобразовать время

Сообщение Denmal »

и вообще, не могу понять, почему, когда нажимаю выход, в окне разницы времени появляется только часы, а минуты только при следующем запуске, то есть в файл значение записывается коррктно, но вот почему так отображается и ещё не могу исправить что бы время выхода отображалось в той же строчке , а не на новой, хотя записывается правильно в файл... :dntknw:
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Как преобразовать время

Сообщение FireFly »

Не мог бы ты ещё и 1.txt свой выложить?
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Denmal

Activity
advanced
advanced
Сообщения: 163
Зарегистрирован: 02 окт 2009, 07:36
Награды: 1
Версия LabVIEW: 8.6
Откуда: Израиль
Контактная информация:

Re: Как преобразовать время

Сообщение Denmal »

конечно, если это поможет, то я только рад
Вложения
1.txt
(204 байт) 118 скачиваний
Denmal

Activity
advanced
advanced
Сообщения: 163
Зарегистрирован: 02 окт 2009, 07:36
Награды: 1
Версия LabVIEW: 8.6
Откуда: Израиль
Контактная информация:

Re: Как преобразовать время

Сообщение Denmal »

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

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Как преобразовать время

Сообщение FireFly »

Уффф... Ну в общем я вам что-то сделал.... А дальше устал... С вашей запутанной программой очень трудно работать...

Алгоритм который я использовал - нажимаете кнопку IN - в новую строчку в соответствующую колонку записывается время прихода на работу, остальные колонки пустые, это же время записывается в переменную в Shift Register...
Выбираете строчку - нажимаете OUT в выбранную строчку записывается время ухода, считается разница с переменной в Shift Register...
На самом деле тут кроется очевидная ошибка, в таком алгоритме Shift Register со временем нужно вообще убрать, а время для расчёта разницы брать из соседней колонки в момент записи времени ухода с работы в эту строчку.
Над этой прогой ещё работать и работать.... Но нет ни времени ни желания :)
Попробуйте пока разобраться в том, что сделал я.
Вложения
hour.vi
(23.51 КБ) 132 скачивания
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Denmal

Activity
advanced
advanced
Сообщения: 163
Зарегистрирован: 02 окт 2009, 07:36
Награды: 1
Версия LabVIEW: 8.6
Откуда: Израиль
Контактная информация:

Re: Как преобразовать время

Сообщение Denmal »

спасибо, за проделанную работу. вообще то на счёт замудренности программы ты очень прав, думаю всё можно было бы сделать всё гораздо проще (eg тоже так думает ). потому что сама идея очень проста (ну для вас во всяком случае, судя по темам, которые вы обсуждаете)
кстати, на счёт сдвиговых регистров, ты предлагаешь сделать переменную для расчёта разницы?
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Как преобразовать время

Сообщение FireFly »

Я её вроде уже сделал :) А иначе как без Shift Restrerа считать суммарное время?
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Denmal

Activity
advanced
advanced
Сообщения: 163
Зарегистрирован: 02 окт 2009, 07:36
Награды: 1
Версия LabVIEW: 8.6
Откуда: Израиль
Контактная информация:

Re: Как преобразовать время

Сообщение Denmal »

за что большое спасибо :super:
Denmal

Activity
advanced
advanced
Сообщения: 163
Зарегистрирован: 02 окт 2009, 07:36
Награды: 1
Версия LabVIEW: 8.6
Откуда: Израиль
Контактная информация:

Re: Как преобразовать время

Сообщение Denmal »

FireFly писал(а):Уффф... Ну в общем я вам что-то сделал.... А дальше устал... С вашей запутанной программой очень трудно работать...

На самом деле тут кроется очевидная ошибка, в таком алгоритме Shift Register со временем нужно вообще убрать, а время для расчёта разницы брать из соседней колонки в момент записи времени ухода с работы в эту строчку.
.
я вот этого не совсем понял, ведь нет ошибок, всё работает отлично, хотя тот факт, что на выход необходимо выделять нужную строчку, не совсем удобен, по запарке можно забыть выделить строку или не ту выделить... но то, что работает, уже достойно благодарности.
Denmal

Activity
advanced
advanced
Сообщения: 163
Зарегистрирован: 02 окт 2009, 07:36
Награды: 1
Версия LabVIEW: 8.6
Откуда: Израиль
Контактная информация:

Re: Как преобразовать время

Сообщение Denmal »

хотя, да, вижу несостыковки...
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Как преобразовать время

Сообщение FireFly »

Нажмите два раза IN, а затем для каждой строки нажмите OUT, и вы увидите, что DIFF (как индивидуальный, так и суммарный) очень сильно отличается от истины. Именно поэтому нужно время для расчёта разницы брать не из Shift Register, а из соседней колонки.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Ответить

Вернуться в «Сохранение данных»