Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программирование на Pcs 7
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
aynaz
Добрый вечер!
У меня не получается выполнить следующий алгоритм действий: Нажимаем на первую кнопку конвейер начинает двигаться вправо, достигает третьей лампочки, загорается лампа, потом конвейер идет обратно ко второй лампочки она также загорается, после конвейер опять двигается в сторону третьей лампочки она опять загорается и звучит сигнал, конвейер останавливаться. Все три лампочки, которые расположены последовательно друг за другом.

Вот то, что у меня получилось:

Function_Block

Var_Input
but1:Bool:=0;
but2:Bool:=0;
sens1:Bool:=0;
sens2:Bool:=0;
sens3:Bool:=0;
End_Var

Var_Output
lamp1:Bool:=0;
lamp2:Bool:=0;
lamp3:Bool:=0;
con_r:Bool:=0;
con_l:Bool:=0;
signal:Bool:=0;
End_Var

Var
End_Var

If but1=1 then
con_r=1;
End_If

If sens3=1 and a=1 then
a:=1;
lamp3:=1;
con_r:=0;
con_l:=1;
End_If

If sens2=1 then
lamp2:=1;
con_l=0;
con_r=1;
End_If

If sens3=1 and a=0 then
a:=0;
lamp3:=1;
con_r:=0;
signal:=1;
End_If

End_Function_Block

Когда загрузил на контроллер конвейер начал двигаться вправо, достиг 3 лампочки, она загорелась, потом конвейер пошел обратно ко второй лампочке она тоже загорелась , после был сигнал, и процесс зациклился, т.е от третьей лампочки да второй конвейер начал двигаться, звук также оставался. Вопрос в чем у меня тут ошибка?
rancatto
используйте оператор case

//остановлен
0:
If but = 1 then //нажали кнопку старт
con_r := 1;
con_l := 0;
state := 1 ;
end_if;
//ждем сигнал от 3-й лампы при движении вправо
1 :
if sens3 = 1 then
con_r := 0;
con_l := 1;
lamp3 := 1;
state := 2;
end_if;
//ждем сигнал от 2 лампы при движении влево
2:

if sens2=1 then
lamp3 := 0;
con_r := 1;
con_l := 0;
lamp2 := 1
state := 3;
end_if;
// ждем сигнала от 3 лампы при движении вправо с выдаче звукового оповещения
3:

if lamp 3 = 1 then
lamp2 := 0;
con_r := 0;
con_l := 0;
signal := 1;
lamp3 := 1;
end_if;


дальше добавить можно все что угодно - аварийный останов, возвращение конвейера к исходному состоянию после каждого цикла и тд, как душа пожелает - данный case сработает 1 раз.
примерно как то так
aynaz
Спасибо большое!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.