Форум: "Начинающим";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
ВнизКак работать с TDataTime Найти похожие ветки
← →
Олег1963 (2010-01-27 13:33) [0]Здрвствуйте уважаемые Мастера!
Требуется такая процедурка:
На форме имеется два Edit"a. В одном должно быть показано реальное время, а в другой в несколько раз большее (точнее быстроидущее).
Как выводить реальное время понятно, а как быть со вторым?
Делаю так. Сохраняю заданное время в переменной BuffTime типа TDataTime. ВыполняюEdit1.Text:=TimeToStr(BuffTime);
Как в этом буфере добавлять минуты, чтобы добавлялись по мере необходимости часы и сутки?
Нужно для производственной задачи (имитация течения времени для медленнотекущих процессов ).
← →
Nucer (2010-01-27 13:38) [1]TDateTime - синоним Double, целая часть - дни. Чтобы добавить 24 часа, достаточно прибавить к значению единицу, 12 часов - 0.5 и т. д. =)
Плюс есть функции EncodeDate и EncodeTime, упрощающие процесс.NowPlusMin := Now + EncodeTime(0, 1, 0, 0);
← →
Ega23 © (2010-01-27 13:54) [2]IncHour, IncMinute, IncSecond, IncMillisecond + F1
← →
oleg1963lora (2010-01-27 14:04) [3]Спасибо Nucer. Кажется получается. Попробую поиграть.
← →
oleg1963lora (2010-01-27 14:06) [4]
> Ega23 © (27.01.10 13:54) [2]
> IncHour, IncMinute, IncSecond, IncMillisecond + F1
И за это большое спасибо!
← →
Anatoly Podgoretsky © (2010-01-27 14:14) [5]
> Как выводить реальное время понятно, а как быть со вторым?
Одинаково, только в один нормальное подавать, а во второй быстроидущее/бегущее.
← →
oleg1963lora (2010-01-27 14:51) [6]
> Anatoly Podgoretsky ©
Программу предполагается использовать для контроля и регистрации изменений температуры и влажности в теплицах. К реальному подключению программа не готова, поэтому я сделал 8 имитатров, подвязанных к таймеру.
Они имитируют колебания температуры в заданном пределе.
Реально измерения производятся примерно каждые 15 минут. Мне нужны "часы" идущие раз в десять быстрее, чтобы получать данные этих виртуальных датчиков, сохранять в таблицах и по желанию руководства строить пользовательский интерфейс.
Когда программа вчерне будет готова, я заменю имена переменных датчиков на реальные порты. Примерно так.
← →
Jeer © (2010-01-27 14:57) [7]Мда.. полная задница с мыслями, извини дорогой.
Уйди от времени и перейди к тактам.
← →
Anatoly Podgoretsky © (2010-01-27 15:15) [8]> oleg1963lora (27.01.2010 14:51:06) [6]
DateTime := Interval * 10
← →
Anatoly Podgoretsky © (2010-01-27 15:16) [9]DateTime := DateTime + Interval * 10
← →
oleg1963lora (2010-01-27 15:30) [10]Господа ВСЕ ОТЛИЧНО! Прога отлично работает. За 5 минут пролетело больше 3-х суток. Спасибо!
> Уйди от времени и перейди к тактам.
Это к каким? Которые в БИОС указаны?!
Все. Пора уходить на Эльбрус! :)))
← →
oleg1963lora (2010-01-27 15:36) [11]Вот что у меня получилось.
var DateStart,CurrDate : TDateTime;
CurrentDate,CurrentTime,Speed{ускоритель} : TEdit;
procedure TForm1.Button1Click(Sender: TObject);
{Запуск процесса генерации, создания таблиц, установки первоначального времени}
begin
DateStart:=InDate.Date;
DateStart:=InTime.Time;
DateCurr:=DateStart;
CurrentDate.Text:=DateToStr(DateCurr);
CurrentTime.Text:=TimeToStr(DateCurr);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Interval:=1000 div StrToInt(Speed.Text);
DateCurr:=IncMinute(DateCurr,1);
CurrentDate.Text:=DateToStr(DateCurr);
CurrentTime.Text:=TimeToStr(DateCurr);
end;
← →
Sergey13 © (2010-01-27 16:28) [12]> [6] oleg1963lora (27.01.10 14:51)
> Реально измерения производятся примерно каждые 15 минут.
Может я чего не понял, но почему при отладке нельзя делать "измерения" каждые 1.5 минуты? Или через любой другой промежуток времени? Или непременно должны часики рисоваться?
← →
oleg1963lora (2010-01-28 10:22) [13]
> Может я чего не понял, но почему при отладке нельзя делать
> "измерения" каждые 1.5 минуты?
Прибор аппаратно регистрирует температуру через 1 мин.
12:07 19 С
12:08 19 С
12:09 20 С
Реально измерения производятся скачиванием внутреннего архива прибора через 12 минут. Это обусловлено технологией производства. Задача состоит в том, их производит оператор нажатием кнопочки на приборе. Естесственно он не в состоянии опросить 17 датчиков одновременно. Возникает разброс по времени +-.
Моя задача слить данные в таблицы, потом как-то их выровнять по вертикали, т.е. если время в таблицах находится в определенном диапазоне (скажем от 12:06 до 12:09) принять их за одно измерение и вывести одной строкой в таблице Время:Датчики. Хотя как это время усреднять вопрос еще тот.
Получу виртуальные таблицы, суну их руководству - пусть сами репу чешут как это усреднять!
← →
Sergey13 © (2010-01-28 11:04) [14]> [13] oleg1963lora (28.01.10 10:22)
Все равно не понятно с чем ты борешься. Что является первостепенной задачей? Нарисовать интерфейс пользователя? Синхронизировать приборы?
Если прибров пока в природе нет (как я понял), то что мешает просто нагенерить тестовых данных вагон и маленькую тележку для разработки интерфейса и прочей расчетной лабуды. Зачем заниматься адаптацией каких то "имитатров", которых потом выкинешь?
> Моя задача слить данные в таблицы
> Получу виртуальные таблицы
Прям какие то мифические таблицы в мифической СУБД? Формат приборных архивов известен, структура таблиц в твоей полной власти - в чем проблема то?
Можно например сделать справочник времени - таблица на 1440 записей с двумя полями, минута - диапазон.
> и по желанию руководства строить пользовательский интерфейс.
> суну их руководству - пусть сами репу чешут как это усреднять!
Немного пугает твоя вера в непогрешимость руководства. 8-)
← →
oleg1963lora (2010-01-28 11:51) [15]
> Все равно не понятно с чем ты борешься. Что является первостепенной
> задачей? Нарисовать интерфейс пользователя? Синхронизировать
> приборы?
Именно так. Приборы к черту пока
> Если прибров пока в природе нет (как я понял), то что мешает
> просто нагенерить тестовых данных вагон и маленькую тележку
> для разработки интерфейса и прочей расчетной лабуды.
Именно это я и сделал. Мне начальник вообще сказал "Да нарисуй от руки в Excel несколько табличек и работай с ними. В смысле выравнивай". Как ты себе это иредставляешь? Не может температура в теплице колебаться от 27 до 45 градусов в течении суток! Равно как и влажность. Если же может, то урожаю... Поэтому я сделал несколько генераторов, у каждого из которых я задаю опорный уровень и уровень разбороса (напр. 28 С +-5 С)
← →
Sergey13 © (2010-01-28 12:00) [16]> [15] oleg1963lora (28.01.10 11:51)
> Как ты себе это иредставляешь?
Я пока ничего не представляю. Мне просто жалко твои огурцы. Ты же в них как партизан. 15 постов уже есть, но пока неизвестна ни используемая СУБД ни структура твоих "виртуальных таблиц" и вообще пока ничего неизвестно. Что является текущей поблемой? Ты не моежшь записать данные в таблицу? Ты не можешь отсортировать ее по времени? Что конкретно? Исключая машину времени из первого поста. 8-)
← →
Anatoly Podgoretsky © (2010-01-28 12:01) [17]> oleg1963lora (28.01.2010 11:51:15) [15]
Вот начальство и подумало, что с ними делать, выравнивай.
← →
Jeer © (2010-01-28 12:08) [18]Неправильной дорогой идешь, товарищ.
Ну нельзя вот так с потолка взять и приравнивать температуры от 17 датчиков, измеренные в разное время к одному времени.
Хотя бы методически это неверно.
К примеру, имеем 17 датчиков, измерение температуры проводится последовательно раз в минуту. В таком случае период между измерениями одного датчика равен 17 мин.
После опроса последнего датчика ( зевершения одного цикла измерений) делается интерполяция температур для всех остальных датчиков, приведенная ко времени последнего измерения.
Моделирование всего это процесса производится путем задания нач. значений и тенденций на каждом датчике.
Моделирование производится в относительном времени ( как раз те самые такты измерений, о которых я выше говорил ).
Для симуляции в ускоренном масштабе требуется таймер, в котором устанавливается время срабатывания:
- для реала 1 мин
- для ускорения, 1 сек, например.
И все.
Ну еще динамические свойства имитаторов датчиков необходимо корректировать.
"Это наша дорога" (С)
← →
Плохиш © (2010-01-28 12:26) [19]
> oleg1963lora (28.01.10 11:51) [15]
> Мне начальник вообще сказал "Да нарисуй от руки в Excel
> несколько табличек и работай с ними. В смысле выравнивай".
> Как ты себе это иредставляешь?
Неплохо. И с начальником подескутировал, пары спустил, и задница цела.
← →
oleg1963lora (2010-01-28 13:35) [20]Удалено модератором
← →
Sergey13 © (2010-01-28 13:53) [21]> [20] oleg1963lora (28.01.10 13:35)
> Вообще цель этой программы, насколько я понимаю, состоит
> в том, чтобы с этими данными можно было обращаться в суд
> на недопоставку тепла местной ТЭЦ.
Смешно не правда ли смешно-смешно И вам смешно и даже мне. (с) В.С. Высоцкий
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.004 c