Ага))
function_block Ottaika1 //Работа оттайки.
var_input //объявление входных переменных
u_Isparenie: udint;
b_Enable: bool := false;
end_var
var_output //объявление выходных переменных
b_Ten : bool := false;
b_Obratka : bool := false; //Обратка
end_var
var //объявление локальных переменных
TP_Ob: SYS.TP;
t_Isparenie : TIME;
end_var
t_Isparenie := udint_to_time(u_Isparenie);
if b_Enable then
b_Ten := true;
//Испарение
TP_Ob(I := b_Enable, T := t_Isparenie, Q => b_Obratka);
else
b_Obratka := false; //Обратка
end_if
end_function_block
Спасибо за ответы, понял, по ТЭНу там все нормально когда лишнее удалял и в else удалил Ten := false; Там суть была, что входом enable, я включаю или выключаю работу таймеров, просто не думал, что таймер в условии if ведет себя таким образом. И ответа после гугления не нашел, надо проверить.
Последний раз редактировалось SoulGoodman; 17.03.2024 в 17:59.
При обработке битовой маски в целом числе, полученном по сети, хотел на ST выделить нужные биты оператором AND. Но ST не поддерживает эту операцию - пришлось реализовать получением остатка от деления MOD.
Хотя на FBD выделение по маске оператором AND прекрасно выполняется.
Если это не ограничение согласно стандарту на ST - может быть есть смысл добавить битовые операции над целыми числами?
В случае вычислений, например, масштабирование - умножение в целых числах на 0,00512
https://owen.ru/forum/showthread.php...l=1#post432043
вместо выделения 16 младших разрядов по маске AND, пришлось делить.
В случае выделения бит состояния устройства и каких-то действий.Код:// преобразование входного значения во внутренний формат с учётом умножения на (2^9) = 512 A2 := shr(Reg0x1300, 32-9); A1 := shr(Reg0x1300, 7) mod (max_value + 1); A0 := shl(Reg0x1300, 9) mod (max_value + 1);
В слове состояния устройства три младших бита показывают 000 - останов, 001 - неисправность, 010 - работа по байпасу, 011 - разгон, 100 - торможение
Хотел выделить эти биты по маске и через case выполнить какие-то действия.
Конечно, можно через if или просто формулы работать с отдельными битами числа (через точку).
Если стандарт против - попрошу прощения за нелепое предложение.
Добрый день. Не не могу понять почему: есть импорт переменных в csv файл но нет экспорта . Зачем нужен импорт? у меня переезд на другую платформу , fb & st перенес, спасибо помогли. А на список переменных смотрю и плачу .