
Сообщение от
PAVGroup
К примеру у меня есть 5 моих ФБ. 4 рабочие ФБ процесса. У которых выходные данные ErrorNum. К примеру = 1 (обрыв цепи).
Вот значение этой переменной ErrorNum, должно улететь в 5й ФБ который будет обрабатывать ошибки. На вход у него подается ErrorNum, он обрабатывает. На выходе Error = true - Авария (этот сигнал потом остановит оборудование), ErrorNumIPP - передает номер ошибки на панель. Оператор это видит.
Если будет остановка по событию, то Вам нужно фиксировать какой ФБ вызвал остановку и по какой ошибке.
Примерно так:
Код:
function_block FixError
var_input
ErrorFromFB1, ErrorFromFB2, ErrorFromFB3, ErrorFromFB4 : udint; // Состояние ФБ
end_var
var_output
ErrorFB, ErrorCode : udint; // Кто? Чего?
end_var
if ErrorFromFB1 > 0 then
ErrorCode := ErrorFromFB1; ErrorFb := 1;
elsif ErrorFromFB2 > 0 then
ErrorCode := ErrorFromFB2; ErrorFb := 2;
elsif ErrorFromFB3 > 0 then
ErrorCode := ErrorFromFB3; ErrorFb := 3;
elsif ErrorFromFB4 > 0 then
ErrorCode := ErrorFromFB4; ErrorFb := 4;
else
ErrorCode := 0; ErrorFb := 0;
end_if
end_function_block