Последний раз редактировалось kondor3000; 24.01.2025 в 14:33.
Я ТС уже не понимаю. То ему надо суммировать, то не надо. Походу щас ожидаю вопросы по правильности работы case, типа он не те числа складывает.. Вы определитесь как элементарные функции работают.
Скрины разрисовывать время есть, а приложить исходник в виде файла проекта совесть не позволяет. Тогда уж код отдклите служебными словами кода...
По времени цикла программы...)
Ниче, и так сойдет.
PS Сейчас опять новый вопрос предвижу: какое такое время цикла... Что за 20 мс по умолчанию... Мне так не надо...
Ваш функциональный блок, кстати, не информативен без кода, его вызывающего. Триггер нужен или вне, или внутри блока.
Последний раз редактировалось МихаилГл; 24.01.2025 в 14:38.
ну тогда значения 37098 и 29851 это результат сложения старого с текущим, что не так? Где тогда должно отображаться текущее?
И главное чтоб не "выкатывать" такие "портянки" напишите функцию, например
и тогда заметно код сократится, если в каждом кейсе написать wDownTimeSXHX:= Solver(wDownTimeSXHX,tDowntime);Код:function Solver: WORD; var_input OLD_TIK : WORD; tDowntime: TIME; end_var var_ dwDowntime: DWORD; end_var dwDowntime:= TO_DWORD (tDowntime); dwDowntime:= dwDowntime / 1000; //Перевод миллисекунд в секунды Solver := OLD_TIK + TO_WORD (dwDowntime); end_function
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
А может ТС смущает:
12345:= 12345 + 123
И он хочет узнать почему отображается не:
12345:= 12222 + 123
Ну думаю это не так, и все же он спрашивает о том, о чем мы все говорим...
PS Включил ПК, щас набросаю код...
Последний раз редактировалось МихаилГл; 24.01.2025 в 14:57.
Безымянный.png
Не благодарите...
У ТС там арифметическая прогрессия была. Задолбался переменные прописывать начала-конца часов. Ну мы же не можем проект приложить, мы выше этого...
PS Но ваш алгоритм все равно будет работать неправильно, вернее моя корректировка. Т.к. если кнопка стоп будет отжата после перехода часовки, то данные наработки в предыдущем часе присвоятся следующему часу. Так что внедряйте другой механизм, тут я показал просто вашу ошибку в коде, и костыль для ее решения малой кровью...
PS2 Создайте цикл на 1000 мс, перенесите туда ваш код, и просто прибавляйте в вашем старом алгоритме не время, а 1. Это кстати так и надо делать. Таймер можно вообще убрать. Тогда и часовки будут правильными.
И никаких преобразования таймеров...Код:If not кнопка-стоп then Case... 1: часовка1:= часовка1 + 1 2: часовка2:= часовка2 + 1 ...
Последний раз редактировалось МихаилГл; 24.01.2025 в 19:06.