1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Помощь в алгоритме.

Ответить

Автор темы
a1dar_v
здесь недавно
здесь недавно
Сообщения: 89
Зарегистрирован: 01 июн 2016, 16:43
Имя: Валиев Айдар Илдусович
Благодарил (а): 7 раз
Поблагодарили: 1 раз

Помощь в алгоритме.

Сообщение a1dar_v »

Нужна помощь в исправлении алгоритма.
Логика такая.
в емкость поступает нефть,при достижении верхнего нормативного порога вкл. насос-1,далее при достижении верхнего аварийного порога вкл. насос-2.далее обо выкачивают до минимального уровня и отключаются.
необходимо сделать так,чтобы насос-2 включался при достижении верхнего аварийного порога и выкл. при достижении верхнего нормативного порога,а насос-1 дальше откачивал нефть.
Будет ли так работать,если напишу:
IF RGL.H AND NOT RGL.HH THEN
Y=1
????????
Аватара пользователя

den_vish
освоился
освоился
Сообщения: 233
Зарегистрирован: 11 апр 2013, 13:22
Имя: Вишневский Денис
Благодарил (а): 10 раз
Поблагодарили: 12 раз

Помощь в алгоритме.

Сообщение den_vish »

смотри за руками:
что бы остановить насос два, тебе всяко надо будет отрубить его
либо по времени после отключения ВУ Авар (то есть с задержкой, исчез уровень, отсчитал минуту - погасил насос),
либо остановить после исчезновения ВУ Нормативного, иначе колбасить будет бедолагу насос-2.
тут бы по хорошему понимать скорость подачи и расхода.
относительно первого насоса - наверное есть смысл его отрубать через задержу, после отключения ВУ норм.
имхо.
"- Знаешь, дружище, в чем истинный смысл второго закона термодинамики?
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)

Михайло
почётный участник форума
почётный участник форума
Сообщения: 3559
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
город/регион: г. Чехов, МО
Благодарил (а): 6 раз
Поблагодарили: 253 раза

Помощь в алгоритме.

Сообщение Михайло »

a1dar_v писал(а): 02 мар 2018, 22:00 Будет ли так работать,если напишу:
IF RGL.H AND NOT RGL.HH THEN
Y=1
????????
Нет, не будет. Одной команды явно недостаточно, чтобы управлять двумя насосами. К тому же мы не знаем, что за переменные такие RGL.H, RGL.HH, Y.
Аватара пользователя

megavolt86
эксперт
эксперт
Сообщения: 1172
Зарегистрирован: 14 ноя 2013, 20:35
Имя: Анатолий Сергеевич
Страна: Россия
город/регион: Башкортостан
Благодарил (а): 13 раз
Поблагодарили: 65 раз

Помощь в алгоритме.

Сообщение megavolt86 »

a1dar_v, Попробуйте посудить логически... Что при каких условиях должно работать.
Эта задача решается с применение триггера, а не просто условия.
Если по простому то можно сделать так:

Код: Выделить всё

If l_hh then
  N_2:=1; //включение насоса 2 по достижении максимального уровня
Else
  If not(l_h)  then
    N_2:=0;//отключение насоса 2 при уровне ниже предмаксимального
   End_if;
End_if;
Если хотите чтобы именно по предмаксисальному уровню то необходимо еще пару строчек добавить...
Удачи в освоении😉
:ext_secret:

LexSL
осмотрелся
осмотрелся
Сообщения: 191
Зарегистрирован: 16 дек 2011, 15:13
Имя: Алексей
Страна: Россия
Благодарил (а): 59 раз
Поблагодарили: 44 раза

Помощь в алгоритме.

Сообщение LexSL »

Я бы так сделал:
1. Заводите переменную State типа int, можете в меркерной памяти.
2. Пишете след. функцию: комментарии в тексте

Код: Выделить всё

// перечень состояний
const 
	Init	:= 0;
	RunnningOne	:= 1;
	RunningTwo	:= 2;
end_const


CASE State of 
	Init: //определение состояния
		
		//насосы выключены
		Y1 := FALSE; 
		Y2 := FALSE;
		
		IF RGL.HH THEN //по приоритету верхний аварийный порог 
			State := RunningTwo;
		ELSIF RGL.H THEN // если верхний нормативный порог 
			State := RunningOne;
		END_IF;
	
	RunningOne:
		//включаем первый и качаем
		Y1 := TRUE;
		
		//если не выкачали и достигли верхнего аварийного порога, то переходим в другое состояние
		IF RGL.HH THEN
			State := RunningTwo;
		//если выкачали одним, то переходим в начало
		ELSIF RGL.L THEN
			State := Init;
		END_IF;		
	
	RunningTwo:
		//включаем оба
		Y1 := true;
		Y2 := true;
		
		//выкачиваем до посинения, если датчик неисправен - то отсюда никогда не выйдем, если не сбросим State в 0
		IF RGL.L THEN
			State := Init;
		END_IF;	
END_CASE;	

Автор темы
a1dar_v
здесь недавно
здесь недавно
Сообщения: 89
Зарегистрирован: 01 июн 2016, 16:43
Имя: Валиев Айдар Илдусович
Благодарил (а): 7 раз
Поблагодарили: 1 раз

Помощь в алгоритме.

Сообщение a1dar_v »

не могу понять где изменить алгоритм,может кто-нибудь посмотрит,высылаю проект....
https://drive.google.com/open?id=1inJpD ... H_MWV9cqbG

Автор темы
a1dar_v
здесь недавно
здесь недавно
Сообщения: 89
Зарегистрирован: 01 июн 2016, 16:43
Имя: Валиев Айдар Илдусович
Благодарил (а): 7 раз
Поблагодарили: 1 раз

Помощь в алгоритме.

Сообщение a1dar_v »

Вот алгоритм,из которого сделаны фотографии....
У вас нет необходимых прав для просмотра вложений в этом сообщении.

kanadeiar
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 12 фев 2018, 20:17
Имя: Андрей
Страна: Россия
город/регион: Кузнецк
Поблагодарили: 6 раз

Помощь в алгоритме.

Сообщение kanadeiar »

a1dar_v писал(а): 13 мар 2018, 10:09 Вот алгоритм,из которого сделаны фотографии....
Решил помочь. Там в файле исходники функциональных блоков и функций. Вероятно написано на SCLе. Ниче не понятно.
Само условие задачи противоречиво, не ясно для меня.
Если Вашу задачу переписать так:
UEMKOST_HH - вход в ПЛК верхняя аварийная точка емкости
UEMKOST_H - вход в ПЛК верхняя нормативная точка емкости
UEMKOST_L - вход в ПЛК нижняя нормативная точка емкости
UEMKOST_LL - вход в ПЛК нижняя аварийная точка емкости
PUSK1, PUSK2 - выхода с ПЛК команды на включение в работу насосов 1го и 2го
STOP1, STOP2 - выхода с ПЛК команды на останов работы насосов 1го и 2го
1. выход PUSK1 устанавливается включенным при включении UEMKOST_H, снимается в отключенный при отключении UEMKOST_LL.
2. выход PUSK2 устанавливается включенным при включении UEMKOST_HH, снимается в отключенный при отключении UEMKOST_L.
3. выход STOP1 включается инверсно в зависимости от состояния PUSK1.
4. выход STOP2 включается инверсно в зависимости от состояния PUSK2.
Тогда решение станет очевидным на LADе.
LAD1.png
Уточните задачу.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

Вернуться в «ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)»