Доброго времени!!!
Подскажите пожалуйста, можно ли реализовать в ФБ st оператор limit ?
Как это правильно сделать?
Допустим out1 := LIMIT(0, in1, 100) пишет функция лимит не объявлена.
Вид для печати
Доброго времени!!!
Подскажите пожалуйста, можно ли реализовать в ФБ st оператор limit ?
Как это правильно сделать?
Допустим out1 := LIMIT(0, in1, 100) пишет функция лимит не объявлена.
Можно просто написать его IFами по таким условиям:
if (in1 < 0) then
out1 := 0;
elsif (in1 > 100) then
out1 := 100;
else
out1 := in1;
end_if
...только надо проверить, подержан ли в OL elsif.
function LIMIT: real;
var_input
MIN : real;
IN : real;
MAX : real;
end_var
LIMIT := IN;
IF IN < MIN THEN LIMIT := MIN;
ELSIF IN > MAX THEN LIMIT := MAX;
END_IF;
end_function
Странно, что вам только LIMIT нужен, а как же остальные блоки, таймеры, триггеры, счётчики? Все эти блоки самописные, так как стандартные
нельзя использовать в ФБ на ST.
Посмотрите пример, глубина вложения блоков до 3, для наглядности тут пример в Лоджике и в среде Codesys 2.3.
Там есть и вызовы таймеров, триггеров, работа с массивами и циклами.
https://owen.ru/forum/showthread.php?t=38453&page=10#93
Здесь есть некоторые функции на ST https://owen.ru/forum/showthread.php?t=37203
Кстати и LIMIT тоже есть.
Здесь некоторые ФБ на ST https://owen.ru/forum/showthread.php?t=38239&page=11
Спасибо Вам огромное , я только сейчас обнаружил свой вопрос (тему) просто я новичок в этом форуме и до путя не разобрался как им пользоваться, да ещё и с телефона. Простите если что не так. За ответы и подсказки благодарю Вас.