В свете расчета времени наработки оборудования возникли следующие вопросы:
В документации на СT скрипты есть описание фукций T_I(Time): integer. но компилятор ее не понимает.
приходится извращятся Блок (Time_to_Float)--->блок (Float_To_Integer). Причем!! данная цепочка написаная на СТ не работает, а вот на блоках-работает(ошибка типов)
Как использовать функцию T_I() ?
К сожалению, в документации содержится ошибка. Функция T_I(Time): Integer не поддерживается.
Компилятор языка ST действительно содержит ошибку, из-за которой использование Time_to_Float в редакторе алгоритмов версии 3.2.20 не представляется возможным. Если вы более подробно опишете свою задачу, то, вероятно, мы сможем подсказать вам альтернативное решение.
Замеченные вами ошибки будут исправлены в обновлении Каскад-САУ до версии 3.2.21
Пожелания по поводу переменных типа Time и DateTime.
элемент Diff:
1.удобней было-бы получать разность не в полных часах, минутах и т.д. в в виде переменной DateTime. а ее уже можно потом разложить на Integer значения. годы и месяцы тоже должны вычитатся.
например 11/06/2009 10ч-25м-36сек минус 10/06/2009 9-25-36 равно 0/0/0 23-0-0.
2.для таймерной переменно тоже удобно DateTime применить.
Еще несовсем понятны настройки элемента управления "Дата и время" описания на него нигде не нашел.
ну "дата и время" понятно.
а как работают "счетчик времени" и "интервал времени"?
Для хранения интервала времени используется тип TIME. Выход mS блока DT_Diff как раз и содержит значение интервала в виде TIME значения, а не долю миллисекнд в дополнение к секундам, минутам и часам, как может показаться. Значение выходов Hrs, Min, Sec - тот же результат, что и на выходе mS, но в разных единицах - в часах, в минутах и в секундах.
Все строго в соответствии со стандартом. Тип DATE_TIME - это календарное время. Тип TIME - длительность, интервал времени.
Документ "Редактор мнемосхем. Руководство оператора", пункт 3.10.11.
"Дата и время" - простое отображение времени, полученного с помощью блока DT_Get() и записанного в точку.
"Интервал времени" - отображение значения переменной типа TIME, записанной в точку. Используется для отображения интервала между двумя временами, напрмер, с выхода mS блока DT_Diff().
"Счетчик времени" - разница между временем, записанным в точку с помощью блока DT_Get() и текущим временем контроллера. Используется, как правило, для отображения времени работы оборудования. Например, если в момент включения насоса в точку записать текущее время, то элемент Счетчик времени будет показывать увеличивающееся время работы насоса.
мне нужно расчитывать общее время в течении которого переменная допустим Status_M9A (BOOL) была равна TRUE.
допустим в течении месяца она менялась то FALSE то TRUE с разными интервалами. ну надо эти интервалы поскладывать и получить итоговое за месяц. (и за год тоже).
причем формат отображения часы:минуты---- 512 часов 32 минуты
А чем не подходит тип TIME? Заведите переменную, прибавляйте к ней значение с выхода DT_Diff(время_TRUE, время_FALSE) и записывайте в точку. Отображение на мнемосхеме сделайте с помощью элемента "Дата и время" в нужном формате.
там год/месяц/число убрать нельзя (( даже обнулть.
Объясню, как сделать отображение интервала времени в сводках, таким же, как на мнемосхемах:
1. В сводках, диалоге свойств поля "Дата и время" на закладке "Точка" в списке "Значение" выбираем тип значения "Интервал времени (миллисекунды)"
2. Переходим на закладку "Отображение". В списке "Максимум" выбираем "Часы", в списке "Формат" выбираем "Часы+Минуты".
Добрый день!
Подскажите, можно ли управлять таймерной переменной из блоков ST?
Здравствуйте!
Управлять TIME-переменной из ST можно. Для этого используются вызовы процедур TStart(TIME_VAR) и TStop(TIME_VAR).
Вызовы TStart/TStop могут быть внутри IF, CASE, WHILE, FOR, REPEAT.
Например, условное управление таймером:
if NeedStartTimer then
TStart(MyTimer);
end_if;
Документ "Редактор мнемосхем. Руководство оператора", пункт 3.10.11.
"Дата и время" - простое отображение времени, полученного с помощью блока DT_Get() и записанного в точку.
Добрый день!
Задача нетривиальная, но... прошу проконсультировать.
Требуется вывести на мнемосхему значение текущих даты и времени.
Для этого разместил на мнемосхеме два элемента "Дата и время" - для первого задал формат отображения "dd/mm/yyyy" для второго "hh:nn:ss".
В редакторе алгоритмов создал переменную типа DateTime "VarDT", которой присваиваю значение функцией DT_Get; "VarDT := DT_Get;".
Как я понимаю, типов точек всего три: FLOAT, INTEGER и BOOLEAN.
Не совсем понятно, какой должен быть тип точки для привязки к переменной типа DateTime "VarDT" в редакторе алгоритмов и в последствии для привязки к двум элементам "Дата и время" в графическом редакторе.
Документ "Редактор мнемосхем. Руководство оператора", пункт 3.10.11.
"Дата и время" - простое отображение времени, полученного с помощью блока DT_Get() и записанного в точку.
Добрый день!
Задача нетривиальная, но... прошу проконсультировать.
Требуется вывести на мнемосхему значение текущих даты и времени.
Для этого разместил на мнемосхеме два элемента "Дата и время" - для первого задал формат отображения "dd/mm/yyyy" для второго "hh:nn:ss".
В редакторе алгоритмов создал переменную типа DateTime "VarDT", которой присваиваю значение функцией DT_Get; "VarDT := DT_Get;".
Как я понимаю, типов точек всего три: FLOAT, INTEGER и BOOLEAN.
Не совсем понятно, какой должен быть тип точки для привязки к переменной типа DateTime "VarDT" в редакторе алгоритмов и в последствии для привязки к двум элементам "Дата и время" в графическом редакторе.