На форуме обязательно:
  1. Заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛИЦЕЙ. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Рекламу мы не размещаем ни на каких условиях.

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

Ответить

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

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

Сообщение a1dar_v » 02 мар 2018, 22:00

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

Аватара пользователя

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

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

Сообщение den_vish » 03 мар 2018, 06:42

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


Михайло
почётный участник форума
почётный участник форума
Сообщения: 2559
Зарегистрирован: 10 ноя 2009, 04:58
Имя: Толмачев Михаил Алексеевич
Благодарил (а): 1 раз
Поблагодарили: 69 раз
Контактная информация:

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

Сообщение Михайло » 03 мар 2018, 06:57

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

Аватара пользователя

megavolt86
авторитет
авторитет
Сообщения: 869
Зарегистрирован: 14 ноя 2013, 19:35
Имя: Анатолий Сергеевич
Откуда: Башкортостан
Благодарил (а): 8 раз
Поблагодарили: 21 раз

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

Сообщение megavolt86 » 03 мар 2018, 08:51

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
здесь недавно
здесь недавно
Сообщения: 80
Зарегистрирован: 16 дек 2011, 14:13
Имя: Михайлов Алексей
Поблагодарили: 8 раз

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

Сообщение LexSL » 05 мар 2018, 08:22

Я бы так сделал:
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
здесь недавно
здесь недавно
Сообщения: 11
Зарегистрирован: 01 июн 2016, 16:43
Имя: Валиев Айдар Илдусович

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

Сообщение a1dar_v » 07 мар 2018, 15:29

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


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

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

Сообщение a1dar_v » 13 мар 2018, 10:09

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


kanadeiar
здесь недавно
здесь недавно
Сообщения: 9
Зарегистрирован: 12 фев 2018, 20:17
Имя: Андрей
Поблагодарили: 2 раза

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

Сообщение kanadeiar » 13 мар 2018, 20:45

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)»