PDA

Просмотр полной версии : ПЛК100 R.L. и шаровые краны с электро приводом



webage
10.01.2014, 15:32
Подскажите как лучше реализовать задачу.
Есть 4 шаровых крана и датчик протечек. Производитель кранов советует раз в месяц открывать и закрывать краны. Эту задачу я пытаюсь решить с помощью таймеров, открыть кран подождать 5 секунд и закрыть его, но что-то цикл не совсем правильно работает, а так же не могу понять как реализовать открытие кранов каждые 30 дней. На данный момент есть такой код:


tim1:TON;
tim2:TON;
tim3:TON;
tim4:TON;
check_faucet: BOOL;
_____________________________________________

IF input_6=TRUE THEN
output_6:=TRUE;
check_faucet:=TRUE;
END_IF

IF check_faucet=TRUE THEN
tim1(IN:=check_faucet , PT:=T#10s );
output_5:= tim1.Q;
END_IF

tim2(IN:=check_faucet , PT:=T#5s , Q=> , ET=> );
IF output_6=tim2.Q THEN
output_6:=FALSE;
END_IF

tim3(IN:=check_faucet , PT:=T#15s , Q=> , ET=> );
IF output_5= tim3.q THEN
output_5:=FALSE;
END_IF

Василий Кашуба
10.01.2014, 16:12
Подскажите как лучше реализовать задачу.
Есть 4 шаровых крана и датчик протечек. Производитель кранов советует раз в месяц открывать и закрывать краны. Эту задачу я пытаюсь решить с помощью таймеров, открыть кран подождать 5 секунд и закрыть его, но что-то цикл не совсем правильно работает, а так же не могу понять как реализовать открытие кранов каждые 30 дней....
Если все краны будете Закрывать/Открывать одновременно, то достаточно одного ФБ BLINK, а если раздельно, то четыре таких блока, на каждый кран отдельно, которые завязать на системное время.(Первого числа каждого месяца).

Smith2007
10.01.2014, 21:59
Поставил датчик протечки воды в котельной в дренажном приямке (2 электрода вывел на МК110-4Р), а на вводе сетевой воды поставил вентиль с электроприводом Gidrolock.
Управление последним с дискретного выхода ПЛК110-30.
По паспорту на вентиль - время полного закрытия 20 сек.
В случае обнаружения протечки:
1. Закрываем вентиль
2. Включаем дренажный насос
3. Сообщение в лог-файл
4. Сообщение на СМС

При осушении датчика протечки - отключаем дренажный насос. Для открытия вентиля необходимо в ручную сбросить флаг протечки.
Ну и добавил управление вентилем по СМС.



(* датчик протечки *)
Water0 := MK110in.3;


Sys_DateTime := Z;
GetTime (SystemTime:=Sys_Time , TimeDate:= Sys_DateTime);


(* 1-ого и 15 числа каждого месяца в 3 часа ночи закрываю кран на 1 минуту и открываю вновь *)
IF (Sys_DateTime.Day = 1 OR Sys_DateTime.Day = 15) AND Sys_DateTime.Hour = 3 AND Sys_DateTime.Minute = 1 THEN
TestLock := TRUE;
ELSE
TestLock := FALSE;
END_IF;


TONLock( IN := Water0, PT := t_idle1);
IF TONLock.Q THEN (* Фильтр на датчик протечки от случайных помех *)
AlertWater := TRUE;
END_IF;


Pompa := TONLock.Q;
GLock := AlertWater OR TestLock OR cmdGLock;


ePompa_ON( CLK:= Pompa);
IF ePompa_ON.Q THEN
eText := CONCAT( PrintDateTime(), 'Pompa=ON' );
AlertLog( TextLog := eText );
END_IF;


ePompa_OFF( CLK:= Pompa);
IF ePompa_OFF.Q THEN
eText := CONCAT( PrintDateTime(), 'Pompa=OFF' );
AlertLog( TextLog := eText );
END_IF;


eGLock_ON( CLK := GLock );
IF eGlock_ON.Q THEN
eText := CONCAT( PrintDateTime(), 'GLock=ON' );
AlertLog( TextLog := eText );
END_IF;


eGLock_OFF( CLK := GLock );
IF eGlock_OFF.Q THEN
eText := CONCAT( PrintDateTime(), 'GLock=OFF' );
AlertLog( TextLog := eText );
END_IF;


IF TONLock.Q THEN
Control[8].Alert := TRUE;
Control[8].Msg := 'Обнаружена утечка воды в котельной!';
ELSE
Control[8].Alert := FALSE;
Control[8].Msg := '';
END_IF;