Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Счетчик наработки, моточасы  (Прочитано 565 раз)

Владимир Николаев

  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Счетчик наработки, моточасы
« : 02 Октября 2024, 15:39:42 »
Здравствуйте. Помогите написать скрипт для подсчета времени наработки. Готового решения в справке не нашел, через таймер тоже не получилось сделать. Кто имеет опыт в данном направлении, подскажите пожалуйста.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1278
    • Просмотр профиля
Re: Счетчик наработки, моточасы
« Ответ #1 : 02 Октября 2024, 17:43:10 »
Здравствуйте.

Если требуется отобразить время наработки на мнемосхеме, то можно использовать процедуру ArchiveTimeOn - см. пример №2 по ссылке. Если это требуется для отчета, то пример создания такого отчета можно найти по ссылке.

Timothy Clement

  • Постоялец
  • ***
  • Сообщений: 163
  • ОАО Борисовский завод "Металлист"
    • Просмотр профиля
    • Полымя
Re: Счетчик наработки, моточасы
« Ответ #2 : 03 Октября 2024, 08:14:24 »
Здравствуйте. Помогите написать скрипт для подсчета времени наработки. Готового решения в справке не нашел, через таймер тоже не получилось сделать. Кто имеет опыт в данном направлении, подскажите пожалуйста.
Добрый день! Я делал так - создал внутреннюю переменную(ые) Int64 с восстановлением, которая будет хранить количество секунд. Далее в скрипте "Прошла секунда" проверяется состояние переменных работы устройства. Если устройство работает, увеличиваем переменную с количеством секунд на 1. Для вывода времени на мнемосхему используем внутреннюю переменную типа String, используя функцию SecondsToString(КолвоСекунд) - получаем из числа секунд строку вида ЧЧ:ММ:СС.

AndreyA

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Счетчик наработки, моточасы
« Ответ #3 : 06 Февраля 2025, 14:28:13 »
Я делал так - создал внутреннюю переменную(ые) Int64 с восстановлением, которая будет хранить количество секунд. Далее в скрипте "Прошла секунда" проверяется состояние переменных работы устройства. Если устройство работает, увеличиваем переменную с количеством секунд на 1. Для вывода времени на мнемосхему используем внутреннюю переменную типа String, используя функцию SecondsToString(КолвоСекунд) - получаем из числа секунд строку вида ЧЧ:ММ:СС.
Здравствуйте,
а не подскажете как вывести текстовую переменную на экран?
тип скрипта по переводу секунд в текстовую переменную у меня - по изменению переменной.
Код: (delphi)
var
  EAST_udiSeconds : Int64;
  vr_EAST_Harbor_WorkHoursAsString: string;
begin
  vr_EAST_Harbor_WorkHoursAsString := SecondsToStr(EAST_udiSeconds);
end.
на экран вывожу переменную TM_Text  и потом не понимаю что делать
« Изменён: 06 Февраля 2025, 16:11:56 от Simple-Scada »

Simple Scada

  • Глобальный модератор
  • *****
  • Сообщений: 233
    • Просмотр профиля
    • Simple-Scada
Re: Счетчик наработки, моточасы
« Ответ #4 : 06 Февраля 2025, 16:03:02 »
Здравствуйте.

Если переменные "EAST_udiSeconds" и "vr_EAST_Harbor_WorkHoursAsString" это внутренние или внешние переменные, созданные в редакторе переменных, то их не нужно объявлять в скрипте. В руководстве по ссылке можно ознакомиться с существующими типами переменных и как с ними работать.

Если переменная "EAST_udiSeconds" это внутренняя (или внешняя) переменная, которую необходимо преобразовать в строку вида "чч:мм:сс" и вывести в компонент "Текст", то свяжите компонент "Текст" с этой переменной и на событие "OnDataChange" используйте универсальный скрипт:
Код: (delphi)
begin
  if Sender is TM_Text then   // проверяем, что Sender это текст
    with Sender as TM_Text do // приводим Sender к типу "TM_Text"
      Text := SecondsToStr(AsInt);
end.
Теперь в данный компонент будет выводиться преобразованное значение в виде строки "чч:мм:сс". Данный скрипт можно назначить на событие OnDataChange всех объектов "Текст", которые должны выводить преобразованное значение секунд в строку вида "чч:мм:сс".

Если самостоятельно разобраться не получится, то пришлите нам для проверки на support@simple-scada.com текущую версию Вашего проекта из директории "..\Simple-Scada 2\Projects\" и укажите скрипт, который нужно проверить.

AndreyA

  • Новичок
  • *
  • Сообщений: 35
    • Просмотр профиля
Re: Счетчик наработки, моточасы
« Ответ #5 : 06 Февраля 2025, 16:14:30 »
Благодарю за оперативный ответ! Все работает