Цитата Сообщение от ElectroMan Посмотреть сообщение
Добрый день. Подскажите пожалуйста возможно ли внутри ФБ объявить входную переменную типа TIME? При попытке объявления переменной такого типа возникает ошибка, что данный тип не поддерживается в сигнатурах функций и функциональных блоков. И от сюда вопрос как же воспользоваться функция GET_TIME возвращающее значение типа TIME? ПР102-24.2416.03 v.2.61.
Преобразовать, в другой тип, например time_to_udint(GET_TIME());

Например в таймере, уставку PT пришлось объявлять не в формате TIME
Код:
FUNCTION_BLOCK TON_P //(c) PeterA
VAR_INPUT
    IN: BOOL;
    P: BOOL;
    PT: UDINT;
END_VAR
VAR_OUTPUT
    Q: BOOL;
    ET: UDINT;
END_VAR
VAR
    clk: BOOL;
    StartTime: UDINT;
    tx: UDINT;
END_VAR

tx:= time_to_udint(GET_TIME());
IF P THEN
    StartTime:= tx - ET;
END_IF
IF IN AND NOT clk THEN
    StartTime:= tx;
    clk:= TRUE;
ELSIF NOT IN THEN
    clk:= FALSE;
    Q:= FALSE;
    ET:= 0;
END_IF
IF clk AND NOT Q THEN
//ET:= MIN(PT, tx - StartTime); функция MIN не поддерживается!
//лепим ее сами
    IF PT > (tx - StartTime) THEN
        ET:= tx - StartTime;
    ELSE
        ET:= PT;
    END_IF       
Q:= ET = PT AND IN;
END_IF

end_function_block