PDA

Просмотр полной версии : Нужна Ваша помощь!!!



Sergijsever
19.11.2023, 15:54
Доброго времени!
Подскажите пожалуйста, задача такая:
Функциональный блок ST в OWEN logic
Входная переменная А типа udint и допустим 3 выходные переменные Q Q1 и Q2 тмпа bool.
Инструкция Q := A = 15 .. 29 ;
Q1 := A = 30 .. 44 ;
Q2 := A = 45 .. 59 ; ну и т.д. Нужно что бы выход Q был истина пока А находится в диапазоне от 15 до 29 и т.д. проблема в том что редактор ФБ не выдаё ни одной ошибки, но критическая ошибка висит в самой программе. Подскажите где косяк и как мне проще реализовать этот алгоритм.
Заранее благодарен.

EFrol
19.11.2023, 18:33
Такой инструкции не нашел?! А вот такая сработала!


function_block f1 //имя функционального блока.


var_input //объявление входных переменных
A : udint;
end_var

var_output //объявление выходных переменных
Q : bool;
Q1: bool;
Q2: bool;
end_var

Q := (A >= 15 AND A <= 29);
Q1 := (A >= 30 AND A <= 44);
Q2 := (A >= 45 AND A <= 59);

end_function_block

petera
19.11.2023, 18:41
Доброго времени!
Подскажите пожалуйста, задача такая:
Функциональный блок ST в OWEN logic
Входная переменная А типа udint и допустим 3 выходные переменные Q Q1 и Q2 тмпа bool.
Инструкция Q := A = 15 .. 29 ;
Q1 := A = 30 .. 44 ;
Q2 := A = 45 .. 59 ; ну и т.д. Нужно что бы выход Q был истина пока А находится в диапазоне от 15 до 29 и т.д. проблема в том что редактор ФБ не выдаё ни одной ошибки, но критическая ошибка висит в самой программе. Подскажите где косяк и как мне проще реализовать этот алгоритм.
Заранее благодарен.

function_block functionblock1 //имя функционального блока.

var_input //объявление входных переменных
A : udint; //входная переменная для значения счетчика после сброса
end_var

var_output //объявление выходных переменных
Q : bool;
Q1 : bool;
Q2 : bool;
end_var

case A of
15 .. 29: Q:= TRUE; Q1:= FALSE; Q2:= FALSE;
30 .. 44: Q:= FALSE; Q1:= TRUE; Q2:= FALSE;
45 .. 59: Q:= FALSE; Q1:= FALSE; Q2:= TRUE;
else
Q:= FALSE; Q1:= FALSE; Q2:= FALSE;
end_case

end_function_block

Sergijsever
19.11.2023, 18:58
Премного Вам благодарен, спасибо большое!!!

Василий Кашуба
19.11.2023, 22:37
Я так решал когда то эту задачу. Только вместо EQ нужно GT.