И в чём проблема? У вас ванны с 0 по 8, сделайте на выходе +1, и если больше 9, то =1,
либо в коде присваивайте номер ванны от 1 до 9.
А вообще выкладывайте проект, в расширенном режиме, добавить файл.
Вид для печати
Подскажите новичку (ST). Как вложить функцию в функциональный блок для выполнения.
Да просто, вызываем и все
Ну, и на всякий случай, вот так функциональные блоки вызываютсяКод:function_block primer_1 //имя функционального блока.
var_input //объявление входных переменных
U : bool; //входная переменная с типом данных bool
end_var
var_output //объявление выходных переменных
Q : udint; //выходная переменная с типом данных udint
end_var
Q := function1(U); //вызов функции
end_function_block
Код:var_output //объявление выходных переменных
D : udint; //выходная переменная с типом данных udint
end_var
var //объявление локальных переменных
fb1, fb2, fb3: functionblock1; //объявляем функциональный блок
A1, A2, A3: bool;
B1, B2: bool;
C1, C2, C3: udint;
end_var
//1-й способ
fb1(U:=A1,Res:=B1,N:=0, Q=>C1);
//2-й способ
fb2.U := A2; //задаем входные значения
fb2.Res := false;
fb2.N := 0;
fb2(); //вызываем функциональный блок
C2 := fb2.Q; //читаем результат
//3-й способ (комбинированный)
fb3.Res := false;
fb3(U:=A3,N:=C3);
D := fb3.Q;
end_function_block
Вот вам готовые примеры, с вложенными блоками, вложенные функции и ФБ тоже должны быть на ST. Есть триггеры, таймеры, счётчики, функции SEL, MOD, Log, Lg, Lb, Ln и т. д.
Пример вызова функции Логарифма https://owen.ru/forum/showthread.php...&page=752#7515https://owen.ru/forum/showthread.php...&page=752#7515Код:function_block fB1 //имя функционального блока.
var_input
A:real;
B:real;
end_var
var_output //объявление выходных переменных
Q :real; //выходная переменная с типом данных real
end_var
//PRG
Q:=fLog(A,B) ; //вызов функции "fLog"
end_function_block
https://owen.ru/forum/showthread.php...39&page=11#105
https://owen.ru/forum/showthread.php?t=38453&page=10#93
https://owen.ru/forum/showthread.php...052#post426052
https://owen.ru/forum/showthread.php?t=38891#6
https://owen.ru/forum/showthread.php?t=38619&page=3#24
https://owen.ru/forum/showthread.php...39&page=20#200
Спасибо. Если можно ещё вопрос функции добавляются тоже так же как и функционирование блоки. (fb1) это я так понимаю название блока.
Посмотрите примеры выше, функция просто вызывается (в скобках входы функции), а ФБ должен быть объявлен в VAR, а в теле программы вызван, со входами, выходами
или без них (3 способа)
Пример таймера TON (2 варианта) и его вызов в ФБ https://owen.ru/forum/showthread.php...39&page=24#235
Спасибо за информацию теперь разобрался.
Интересно, вы Codesys 2.3 вообще не знаете? Советую поставить и отлаживать код в нём. Язык ST очень похож, зато любой блок ФБ, можно посмотреть в работе, в отличие от Лоджика. Таймеры, счётчики, триггеры в Codesys 2.3 можно использовать как самописные, так и стандартные, опять же в отличие от Лоджика ( тут только самописные).