Преобразовать, в другой тип, например 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
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Добрый день. Запрет распространяется на входы и выходы функций и ФБ (var_input, var_output). Вы можете объявить локальные переменные типа TIME (var), а затем, если требуется передавать значение на выход или задавать с входа, как верно подсказывают коллеги, использовать преобразования типов udint_to_time и time_to_udint.
Инженер по продукту | ПР и Owen Logic
email: k.korolev@owen.ru
Тренируйтесь на моем примере (версия 2.6.345):
Test.owle
Запутались кони, люди...Давайте сначала. Речь была про:
Вот код ФУНКЦИИ:
function function1: udint; //имя функции и тип данных выхода
var_input //объявление входных переменных
IN : udint;
end_var
function1 := IN;
end_function
Вот результат ввода и вывода 3 млрд.:
2024-03-31 09 00 40.png
Я в полном объеме подтвердил свое высказывание?
Тренируйтесь на моем примере (версия 2.6.345):2.6.347.0Код:IN.25 := true; //ну тренируйтесь Q.25:= IN.25; Q.26:= false; Q.29:= true;
345 даже в архиве на сайте нет
Давайте последовательно: Мой код работает? Впихуемо? Выпихуемо? Я прав?
А то, что у вас там какие то еще требования появились, про их реализацию я ничего не говорил. Считаю, что на изначальный тезис я ответил правдиво.
Блин, сперва спрашивает про 3 млрд., а потом туда же приплетает какие то записи во второй бит и спрашивает уверен ли я в своих высказываниях... Что за билиберда в голове...
Да, косяк в лоджике имеется. При изменении любого бита в 32-разрядном числе, все ломается.
Последний раз редактировалось Ollema; 31.03.2024 в 11:56.