• Головна  • Про нас  • Контакти  • Прайси •
 
Концепція контролерів
Версії контролерів
Периферійні модулі
Застосування контролерів
Приклади виконаних замовлень
Система автоматичного керування мікрокліматом тваринницької ферми
Система автоматичного керування мікрокліматом теплиці
Система автоматичного керування лінією первинної обробки молока
Система контролю та керування процесом приготування їжі для закладів харчування
Система дистанційного контролю і управління насосами артезіанських свердловин і станцій
Типові схеми підключень
Типові застосування
Система опалення - регулятор
Вентиляційна установка
Сушильна камера - реєстратор
Аналізатор параметрів мережі
Інші
Програмне забезпечення
Мова ForthLogic™
Концепція ES-HouseControl™
Настанова з експлуатації
Підтримка
На завантаження

   Приклади виконаних замовлень


Замовлення №1

Шкаф управления отоплением (котел и два бойлера)

Данная система позволяет с помощью GSM телефона дистанционно управлять включением и отключением оборудования подключенного к коммуникатору. В данной реализации - котлом и двумя бойлерами. Также коммуникатор опрашивает состояние контактов внешнего термодатчика, защита системы отопления от замерзания. В случае понижения температуры ниже заданной на термодатчике оповещает об этом по телефону, с помощью SMS - сообщения, на номер указанный в первой ячейке телефонных номеров пользователей.Система так же отправляет SMS - сообщение первому пользователю в случае пропадания внешнего питания на коммуникаторе.
Как дополнительная функция в системе реализована возможнось контроля проникновения постороних лиц в помещение в котором установлено оборудование. В системе есть возможность подключения трех независимых герконовых датчиков или же датчиков движения, подключаемых к входам DI-6, DI-7, DI-8. Постановка системы на охрану возможна как с мобильного телефона, при условии что все датчики находятся в замкнутом состоянии, так и локально с помощью кнопок на корпусе коммуникатора. Во втором случае перед постановкой на охрану необходимо оставить разомкнутым хотя бы один датчик (открыть дверь), после включения системы она прейдет в дежурный режим, и после замыкания датчика ( закрытия двери) автоматически станет на охрану. При не санкционированном доступе в помещение система сообщит об этом владельцу, путем голосового вызова на мобильный телефон, и сообщит голосом о номере датчика вызвавшего причину звонка.

Порядок управления оборудованием
1. Позвонить на номер телефона установленной в коммуникатор SIM карты.
2. Прослушать сообщение системы с подсказками
3. После тонального звукового сигнала отправить системе команду нажав нужную клавишу на клавиатуре телефона. После этого система сообщит о выполнении команды. После этого можно завершить звонок. В случае необходимости передаче системе дополнительных команд перейти к пункту 2.

Также имеется возможность управлять оборудованием с клавиатуры коммуникатора. Подробней об управлении с клавиатуры читайте в разделе «Управление оборудованием с помощью клавиатуры коммуникатора»

Подготовка коммуникатора к работе

Перед установкой SIM карты GSM оператора в коммуникатор необходимо отключить на ней все входящие SMS уведомления (такие как «абонент на связи», «вам звонили» и т.д.). В противном случае это приведет к излишнему SMS трафику, и, соответственно, дополнительным расходам на связь.
На примере оператора MTS:
*120*12# Деактивация услуги «Вам звонили»
*120*22# Деактивация услуги «Есть связь»
Следующим этапом настройки коммуникатора является настройка доверенных номеров телефонов, которым разрешено управлять данным устройством. Для этого необходимо нажать клавишу Menu на клавиатуре коммуникатора и войти в меню «Пользователи». Установить пункт меню РАЗР.УПР: в состояние ИЗБРАН. Затем войти в пункт меню ТЕЛЕФОНЫ и задать в международном формате до 6-ти номеров которым разрешен доступ к системе управления. Неиспользуемые ячейки для номеров телефонов необходимо очистить. Затем, нажимая клавишу Esc выйти в основное меню коммуникатора.
После этого необходимо запомнить настройки коммуникатора. Для этого необходимо зайти в меню “Система”, выбрать пункт НАСТРОЙКИ, клавишами Ý  и ß выбрать ЗАПАМ.НАСТР! и нажать клавишу ОК. Затем, нажимая клавишу Esc выйти из меню коммуникатора.

Коммуникатор готов к работе.
Остальные настройки изменять не рекомендуется, так как это может вызвать неработоспособность программы.

Управление оборудованием с помощью клавиатуры коммуникатора

Для того чтобы включить все подключенное к коммуникатору оборудование необходимо нажать клавишу F1 на клавиатуре коммуникатора.
Для отключения всего оборудования – клавишу F2
Если Вам необходимо включить или выключить только конкретное оборудование, то необходимо нажать клавишу Menu , зайти в меню «Функции пользователя», клавишами  и  выбрать необходимое оборудование и нажать клавишу OK. После этого, рекомендуется выйти из меню коммуникатора, нажав несколько раз клавишу Esc. Это позволит наблюдать текущее состояние оборудования на дисплее коммуникатора.

Скрипт

( ПЕРЕМЕННЫЕ )
( 1 - флаг разрешения воспроизведения меню )
( 2 - параметр состояния оборудования вкл/выкл )
( 3 - флаг старта дозвона )
( 4 - флаг успешного дозвона )
( 5 - флаг запрета исходящих уведомлений )
( 6 - число попыток дозвона )
( 7 - флаг однократого уведомления в меню )
( 8 - предыдущее состояние питания от сети )
( 9 - статус отправки сообщения )
( 11 - состояние сигнализации 1 )
( 12 - состояние сигнализации 2 )
( 13 - состояние сигнализации 3 )
( 20 - звонок сигнализации начался)
( 21 - счетчик попыток дозвона сигнализации )
( 30 - флаг успешного оповещения )
( 31 - предварительный флаг сигнализации 1 )
( 32 - предварительный флаг сигнализации 2 )
( 33 - предварительный флаг сигнализации 3 )
( 41 - флаг сработавшей сигнализации 1 )
( 42 - флаг сработавшей сигнализации 2 )
( 43 - флаг сработавшей сигнализации 3 )

( ТАЙМЕРЫ )
( 1 - основной цикл ожидания звонка и проверки входа )
( 3 - обновление экрана и меню )
( 4 - повтор дозвона )
( 5 - повторный дозвон если температура не повысилась )
( 6 - повтор меню )
( 7 - отправка сообщения )
( 11 - дозвон о срабатывании сигнализации )
( 21 - отправка SMS о срабатывании сигнализации )

: false 0 ;
: true -1 ;
: initm true 1 VAR! ;

( кладем на стек статус питания )
: mPOW
POW? 11.0 F>
;
( Слово для красивого завершення меню )
: by-by
." byby.wav " PLAY HOLD DROP ;

: b2state
3 RO?
IF
." on.wav " PLAY initm DROP
ELSE
." off.wav " PLAY initm DROP
THEN ;

: allstate2
." boyler2.wav " PLAY b2state DROP ;

: b1state
2 RO?
IF
." on.wav " PLAY allstate2 DROP
ELSE
." off.wav " PLAY allstate2 DROP
THEN ;

: allstate1
." boyler1.wav " PLAY b1state DROP ;

: kstate
1 RO?
IF
." on.wav " PLAY allstate1 DROP
ELSE
." off.wav " PLAY allstate1 DROP
THEN ;

: allstate
." kotel.wav " PLAY kstate DROP ;

: saystate
2 VAR? RO?
IF
." on.wav " PLAY initm DROP
ELSE
." off.wav " PLAY initm DROP
THEN ;

: allstart true 1 RO! true 2 RO! true 3 RO! ;
: allstop false 1 RO! false 2 RO! false 3 RO! ;

: setalert
5 VAR? NOT
DUP 5 VAR!
IF
." noalert.wav " PLAY initm DROP
ELSE
." alalert.wav " PLAY initm DROP
THEN ;

: setsign
1 DO? NOT 6 DI? NOT 7 DI? NOT 8 DI? NOT OR OR AND
IF
." signfail.wav " PLAY initm DROP
ELSE
1 DO? NOT
DUP 1 DO!
IF
." signon.wav " PLAY initm DROP
ELSE
." signof.wav " PLAY initm DROP
THEN
THEN
;

: check
DUP
1 =
IF
1 RO? NOT 1 RO! 1 2 VAR! ." kotel.wav " PLAY saystate DROP DROP
ELSE
DUP
2 =
IF
2 RO? NOT 2 RO! 2 2 VAR! ." boyler1.wav " PLAY saystate DROP DROP
ELSE
DUP
3 =
IF
3 RO? NOT 3 RO! 3 2 VAR! ." boyler2.wav " PLAY saystate DROP DROP
ELSE
DUP
4 =
IF
allstart ." allstart.wav " PLAY initm DROP DROP
ELSE
DUP
5 =
IF
allstop ." allstop.wav " PLAY initm DROP DROP
ELSE
DUP
6 =
IF
allstate DROP
ELSE
DUP
7 =
IF
setalert DROP
ELSE
8 =
IF
setsign
ELSE
by-by
THEN
THEN
THEN
THEN
THEN
THEN
THEN
THEN
;

: wait WAITKEY check by-by STOP DROP ;

: ssign
1 DO?
IF
." 8_.wav " PLAY wait DROP
ELSE
." 8.wav " PLAY wait DROP
THEN
;

: alrttate
5 DI?
IF
5 VAR?
IF
." 7.wav " PLAY ssign DROP
ELSE
." 7_.wav " PLAY ssign DROP
THEN
ELSE
ssign
THEN
;

: mstate
." 6.wav " PLAY alrttate DROP ;

: moff
." 5.wav " PLAY mstate DROP ;

: mon
." 4.wav " PLAY moff DROP ;

: mb2 3 RO?
IF ." 3_.wav " PLAY mon DROP ELSE ." 3.wav " PLAY mon DROP THEN ;

: mb1 2 RO?
IF ." 2_.wav " PLAY mb2 DROP ELSE ." 2.wav " PLAY mb2 DROP THEN ;

: mk 1 RO?
IF ." 1_.wav " PLAY mb1 DROP ELSE ." 1.wav " PLAY mb1 DROP THEN ;

: salert
1 RO?
IF
." damage.wav " PLAY mk DROP
ELSE
." temp.wav " PLAY mk DROP
THEN
false 7 VAR!
;

: kon true 1 RO! ;
: koff false 1 RO! ;
: b1on true 2 RO! ;
: b1off false 2 RO! ;
: b2on true 3 RO! ;
: b2off false 3 RO! ;
: son
6 DI? 7 DI? 8 DI? AND AND
IF
true 1 DO!
ELSE
3.0 40 TIMER! son
THEN
;
: soff false 1 DO! ;

: m1
1 RO? 51 VAR? <>
IF
1 RO? DUP 51 VAR!
IF
." Выкл_котел " 1 MENU koff
ELSE
." Вкл_котел " 1 MENU kon
THEN
THEN
." котел: " BLACK 0 0 PRINT
1 RO?
IF
." ВКЛ " ORANGE 9 0 PRINT
ELSE
." ВЫКЛ " GREEN 9 0 PRINT
THEN
;

: m2
2 RO? 52 VAR? <>
IF
." бойлер1: " BLACK 0 1 PRINT
2 RO? DUP 52 VAR!
IF
." Выкл_бойлер1 " 2 MENU b1off
ELSE
." Вкл_бойлер1 " 2 MENU b1on
THEN
THEN
." бойлер1: " BLACK 0 1 PRINT
2 RO?
IF
." ВКЛ " ORANGE 9 1 PRINT
ELSE
." ВЫКЛ " GREEN 9 1 PRINT
THEN

;

: m3
3 RO? 53 VAR? <>
IF
3 RO? DUP 53 VAR!
IF
." Выкл_бойлер2 " 3 MENU b2off
ELSE
." Вкл_бойлер2 " 3 MENU b2on
THEN
THEN
." бойлер2: " BLACK 0 2 PRINT
3 RO?
IF
." ВКЛ " ORANGE 9 2 PRINT
ELSE
." ВЫКЛ " GREEN 9 2 PRINT
THEN

;

: psignal
1 DO? 54 VAR? <> 40 TIMER? 0 > OR
IF
1 DO? DUP 54 VAR!
IF
." Выкл_сигнал " 4 MENU soff
ELSE
40 TIMER? 0 >
IF
." Выкл_сигнал " 4 MENU soff
ELSE
." Вкл_сигнализ " 4 MENU son
THEN
THEN
THEN
." Сигнализ: " BLACK 0 3 PRINT
1 DO?
IF
." ВКЛ " ORANGE 9 3 PRINT
ELSE
40 TIMER? 0 >
IF
." ОЖИД " BLUE 9 3 PRINT
ELSE
." ВЫКЛ " GREEN 9 3 PRINT
THEN
THEN

;

 
: print
psignal m1 m2 m3 1.0 3 TIMER! print ;

: menu
3 TIMER?
0 >
IF 0.0 3 TIMER! STOP THEN
1 VAR?
IF
false 1 VAR!
5 DI? 7 VAR? AND
IF salert ELSE mk THEN
THEN
HOOK? NOT
IF
0.5 6 TIMER! menu
ELSE
0.0 6 TIMER! STOP
THEN
;

: resetout
false 3 VAR!
false 4 VAR!
;


: autsay
true 4 VAR!
initm
true 7 VAR!
0.0 4 TIMER! STOP
3600.0 5 TIMER! resetout
menu
;


: startcall
true 3 VAR!
6 VAR? 0 >
IF
4 VAR? NOT
IF
1 USER DIAL autsay STOP DROP
6 VAR? 1 - 6 VAR!
180.0 4 TIMER! startcall
THEN
ELSE
false 4 VAR!
3600.0 5 TIMER! resetout
THEN
;

: sendsms
mPOW
IF
1 USER
." Pitanie vosstanovleno "
SMS
NOT IF 10.0 7 TIMER! sendsms THEN
ELSE
1 USER
." Net pitaniya ot seti "
SMS
NOT IF 10.0 7 TIMER! sendsms THEN
THEN
;


( сигнализация начало )

: smstext
." Srabotal(i) datchik(i) signalizacii "
6 DI? NOT 41 VAR? OR
IF
true 11 VAR!
." 1 "
THEN
7 DI? NOT 42 VAR? OR
IF
true 12 VAR!
." 2 "
THEN
8 DI? NOT 43 VAR? OR
IF
true 13 VAR!
." 3 "
THEN

;

( SMS сообщение о сработке сигнализации )
: smssignal
1 USER
smstext
SMS
NOT IF 10.0 21 TIMER! smssignal ELSE
false 20 VAR!
true 30 VAR!
11 VAR? 31 VAR? OR 11 VAR!
12 VAR? 32 VAR? OR 12 VAR!
13 VAR? 33 VAR? OR 13 VAR!
false 41 VAR!
false 42 VAR!
false 43 VAR!
THEN
;

: confirm
HOLD
true 30 VAR!
false 20 VAR!
11 VAR? 31 VAR? OR 11 VAR!
12 VAR? 32 VAR? OR 12 VAR!
13 VAR? 33 VAR? OR 13 VAR!
false 41 VAR!
false 42 VAR!
false 43 VAR!
;

: checkconfirm
11 =
IF
." confirm.wav " PLAY confirm DROP
ELSE
by-by
THEN
;

: waitconfirm
WAITKEY checkconfirm by-by STOP DROP
;

: saywaitconfirm
." wconfirm.wav " PLAY waitconfirm DROP
;

: saysignal3
8 DI? NOT 13 VAR? NOT AND 43 VAR? OR
IF
true 33 VAR!
." signal3.wav " PLAY saywaitconfirm DROP
ELSE
saywaitconfirm
THEN
;


: saysignal2
7 DI? NOT 12 VAR? NOT AND 42 VAR? OR
IF
true 32 VAR!
." signal2.wav " PLAY saysignal3 DROP
ELSE
saysignal3
THEN
;

: saysignal1
0.0 3 TIMER! STOP
6 DI? NOT 11 VAR? NOT AND 41 VAR? OR
IF
true 31 VAR!
." signal1.wav " PLAY saysignal2 DROP
ELSE
saysignal2
THEN
;

( дозвон при сработке сигнализации )
: dsignal
HOOK?
IF
30 VAR? NOT
IF
21 VAR? 0 >
IF
1 USER DIAL saysignal1 STOP
IF
21 VAR? 1 - 21 VAR!
THEN
5.0 11 TIMER! dsignal
ELSE
10.0 21 TIMER! smssignal
THEN
THEN
ELSE
5.0 11 TIMER! dsignal
THEN
;

( установка попыток сигнализации и вызов дозвона )
: signal
true 20 VAR!
false 30 VAR!
false 31 VAR!
false 32 VAR!
false 33 VAR!
5 21 VAR!
0.1 11 TIMER! dsignal
;
( проверка входов сигнализации )
: checksignal
1 DO?
IF
20 VAR? NOT
IF
6 DI? NOT
IF
11 VAR? NOT
IF
true 41 VAR!
signal
THEN
ELSE
false 11 VAR!
THEN
THEN
20 VAR? NOT
IF
7 DI? NOT
IF
12 VAR? NOT
IF
true 42 VAR!
signal
THEN
ELSE
false 12 VAR!
THEN
THEN
20 VAR? NOT
IF
8 DI? NOT
IF
13 VAR? NOT
IF
true 43 VAR!
signal
THEN
ELSE
false 13 VAR!
THEN
THEN
THEN
;
( сигнализация конец )

: waitcall HOOK?
IF
initm ( разрешаем воспроизведение меню )
true 7 VAR! ( разрешаем оповестить об аварии )
( пытаемся ответит на входящий и если ответили идем в меню )
1 USER 2 USER 3 USER 4 USER 5 USER 6 USER ANSWER menu
NOT
IF
( если нет звонка запускаем обновление экрана )
3 TIMER?
0 =
IF print THEN
( проверяем состояние термодатчика )
5 DI?
IF
( если уже не сообщаем или еще не сообщали )
( и нет запрета уведомлений звоним )
3 VAR? 4 VAR? 5 VAR? OR OR NOT
IF
5 6 VAR! ( устанавливаем число попыток дозвона )
startcall
THEN
ELSE
false 5 VAR!
resetout
THEN
mPOW 8 VAR? XOR
IF
mPOW 8 VAR!
false 9 VAR!
5.0 7 TIMER! sendsms
THEN
checksignal
THEN
THEN 3.0 1 TIMER! waitcall ;
: main1
( инитим начальные значения переменных )
initm
false 3 VAR!
false 4 VAR!
false 5 VAR!
false 11 VAR!
false 12 VAR!
false 13 VAR!
false 20 VAR!
false 41 VAR!
false 42 VAR!
false 43 VAR!
100 51 VAR!
100 52 VAR!
100 53 VAR!
100 54 VAR!
6 DI? 7 DI? 8 DI? AND AND 1 DO!
mPOW 8 VAR!
( запускаем главный цикл )
waitcall
( настраиваем события для кнопок F1 и F2 )
F1 BUTTON allstart
F2 BUTTON allstop
print
;
: main
5.0 30 TIMER! main1
;
 

Замовлення №2

Шкаф управления воротами

Скрипт

( Слово для красивого завершення меню )
: by-by ." 2.wav " PLAY HOLD DROP ;

: microphon 0 20 VAR!
." МИКРОФОН " GREEN 0 0 PRINT
MIC DROP ;

( Слова для перевірки введеного стану насоса )
: check(3)
DUP
3 =
( если нажали "3" - разблокируем и досвиданья )
IF
0 20 VAR!
1 1 RO!
." 8.wav " PLAY by-by DROP
THEN
4 =
( если нажали "4" - включаем микрофон )
IF microphon
THEN
( если не нажали путнего - просто досвиданья )
20 VAR?
IF
by-by
THEN ;

: check(4) 4 =
( если нажали "4" - включаем микрофон )
IF microphon
ELSE by-by
THEN ;

: check(9)
DUP
9 =
( если нажали "9" - блокируем и досвиданя )
IF
0 20 VAR!
0 1 RO!
." 7.wav " PLAY by-by DROP
THEN
4 =
( если нажали "4" - включаем микрофон )
IF microphon
THEN
( если не нажали путнего - просто досвиданья )
20 VAR?
IF
by-by
THEN ;

( Слова для налаштування введення нового стану насоса через DTMF )
: wait(3) WAITKEY check(3) by-by STOP DROP ;
: wait(4) WAITKEY check(4) by-by STOP DROP ;
: wait(9) WAITKEY check(9) by-by STOP DROP ;

( Слово для сообщения состояния замка )
: checkstate
-1 20 VAR!
1 RO?
( если первое реле в еденицы - значить разблокировано и можно )
( блокировать нажав "9" )
IF
6 DI?
( Если на входе 6 единица, то дверь закрыта и можно блокировать )
IF
." 6.wav " PLAY wait(9)
( если реле в нуле - значить заблокировано и можно )
( разблокировать нажав "3" )
ELSE
( говорим что блокировать нельзя и прелагаем микрофон )
." 13.wav " PLAY wait(4)
THEN
ELSE ." 5.wav " PLAY wait(3)
THEN DROP ;

( Слово для налаштування введення пароля через DTMF )
: wait(1) WAITPW checkstate by-by STOP DROP ;

( Запрошуємо ввести пароль і налаштовуємо DTMF )
: password ." 3.wav " PLAY wait(1) DROP ;

( Вітаємося і запускаємо перевірку пароля )
: wellcome ." 1.wav " PLAY password DROP ;

( Слово для друку на дисплей різними кольорами стану насоса )
: print 1 RO?
( якщо перше реле в одиниці - значить включено )
IF ." КНОПКА ЗАМКА РАЗБЛОКИРОВАННА1 " GREEN 2 3 PRINT
ELSE ." КНОПКА ЗАМКА ЗАБЛОКИРОВАННА1 " RED 2 3 PRINT
THEN ;

( Головне слово, яке друкує стан насоса і перевіряє вхідні дзвінки )
: Pump print HOOK?
( якщо "трубка на апараті", спроба відповісти на 1 та 2 телефони )
IF 1 USER 2 USER ANSWER wellcome DROP
( повторити аналіз через 3 сек )
THEN 3.0 1 TIMER! Pump ;

: smspon
HOOK?
IF
FLUSH
2 USER ." Pitanie vosstanovleno " SMS
NOT
IF
10.0 7 TIMER! smspon
THEN
ELSE
10.0 7 TIMER! smspon
THEN ;

: smspoff
HOOK?
IF
FLUSH
2 USER ." Net pitaniya ot seti " SMS
NOT
IF
10.0 6 TIMER! smspoff
THEN
ELSE
10.0 6 TIMER! smspoff
THEN ;

: chkpower 7 DI?
IF
2 VAR? 1 =
IF
0 2 VAR!
smspoff
." POWER OFF " RED 0 2 PRINT
THEN
ELSE
2 VAR? 0 =
IF
1 2 VAR!
smspon
." POWER ON " GREEN 0 2 PRINT
THEN
THEN ;

: smsalert2
." smsalert2 " RED 2 2 PRINT
FLUSH
2 USER
." Srabotala signailzaciya. Dver otkrita "
SMS
NOT
IF
20.0 12 TIMER! smsalert2
THEN ;

: smsalert1
." smsalert1 " RED 2 2 PRINT
FLUSH
1 USER
." Srabotala signailzaciya. Dver otkrita "
SMS
NOT
IF

20.0 12 TIMER! smsalert1
ELSE
20.0 12 TIMER! smsalert2
THEN ;

: smsalert
11 VAR?
NOT
IF
1.0 11 TIMER! smsalert1
ELSE
10.0 11 TIMER! smsalert
THEN ; : callstop 0 11 VAR!
." stoped " RED 2 2 PRINT ;

: alertc -1 5 VAR! by-by callstop ;

: waitalertc 1 = IF alertc ELSE HOLD callstop THEN ;

: waitalert WAITKEY waitalertc callstop callstop DROP ;

: sayalert ." 14.wav " PLAY waitalert DROP ;

: callalert
HOOK?
IF
11 VAR?
NOT
IF
4 VAR? 1 - 4 VAR!
4 VAR?
. RED 1 1 PRINT
-1 11 VAR!
2 USER DIAL sayalert callstop DROP
THEN
THEN ;

: alert
4 VAR? 0 >
IF
5 VAR?
NOT
IF
callalert
THEN
ELSE
( если таки не дозвонились шлем sms )
11 VAR?
NOT
IF
5 VAR?
NOT
IF
-1 5 VAR!
smsalert
THEN
ELSE
10.0 10 TIMER! alert
THEN
THEN
( повторяем попытку звонить )
5 VAR?
NOT
IF
10.0 10 TIMER! alert
THEN ;

: chkdoor
6 DI?
NOT
IF
3 VAR?
IF
0 3 VAR!
1 2 RO!
( Чило попыток дозвона VAR 4 )
5 4 VAR!
0 5 VAR!
alert
THEN
ELSE
-1 3 VAR!
5 DI? 2 RO!
THEN ;

: chkkey 5 DI?
IF 1 2 RO!
ELSE
6 DI?
IF
0 2 RO!
THEN
THEN ;

: chekinputs
chkpower
1 RO?
NOT
IF
chkkey
chkdoor
ELSE
0 2 RO!
THEN 0.5 2 TIMER! chekinputs ;

: smsbl(2)
." SMS2 " DEEPBLUE 0 0 PRINT
FLUSH
2 USER
." Pri zapuske sistemi zamok ne zablokirovan. Dver otkrita "
SMS
NOT IF 10.0 5 TIMER! smsbl(2)
THEN ;

: smsbl(1)
." SMS1 " DEEPBLUE 0 0 PRINT
FLUSH
1 USER
." Pri zapuske sistemi zamok ne zablokirovan. Dver otkrita "
SMS
IF 10.0 5 TIMER! smsbl(2)
ELSE 10.0 4 TIMER! smsbl(1)
THEN ;

: waitconfirm 1 = IF by-by ELSE HOLD smsbl(2) THEN ;

: waitnobl WAITKEY waitconfirm smsbl(2) smsbl(2) DROP ;

( говорим что двeрь не удалось заблокировать дверь при запуске системы)
: saynoblock ." 15.wav " PLAY waitnobl DROP ;

( пытаемся позвонить в случае если не заблокировали)
( дверь при запуске системы )
( число попыток дозвона определено в VAR1 )
( если не дозвонились отправляем SMS )
: nostartblock
1 VAR? 0 >
IF
1 VAR? 1 - DUP 1 VAR!
. DEEPBLUE 0 0 PRINT
2 USER DIAL saynoblock
nostartblock
NOT
IF 30.0 3 TIMER! nostartblock THEN
ELSE
." SMS " DEEPBLUE 0 0 PRINT
10.0 4 TIMER! smsbl(1)
THEN ;

( проверяем не открыта ли дверь в момент вклчения системы )
( если открыта, то разблокируем замок )
( и зпускаем слово дозвона nostartblock )
: startinit 6 DI?
NOT
IF 1 1 RO! 5 1 VAR! 20.0 3 TIMER! nostartblock
THEN
1 2 VAR!
-1 3 VAR!
0 11 VAR!
;

: main startinit Pump chekinputs ;

Cхема управления воротами.

Замовлення №3

Шкаф управления тремя насосными установками – для пуска насосов по схеме «звезда/треугольник»

Оснащение: Главный автоматический выключатель. Отображение информации о работе и неисправностях насоса. Переключение режимов работы «АВТ-РЕМ-РУЧ». Кнопки включения насосов в ручном режиме.
Функции управления: Автоматическое поддержание заданного уровня в приемном колодце по сигналам от поплавковых выключателей. Работа насосов по схеме «основной +пиковый+аварийный».
Автоматическая смена насосов для равномерного распределения времени эксплуатации между всеми насосами, с автоматическим выводом насоса стоящего на ремонте из общего алгоритма работы. Автоматическое включение дополнительных насосов.
Функции защиты: Контроль чередования и пропадания фаз. Электронная защита насосов от аварий в сети электропитания. Защита насосов от коротких замыканий. Электронная защита насосов от токовых перегрузок. Защита насосов от «сухого хода», по сигналу от внешнего датчика.
Функции индикации: Индикация наличия сетевого напряжения и отображение его значения (опция). Индикация режима работы «РУЧ/РЕМ/АВТ». Индикация работы насосов. Индикация аварийного отключения насосов. Индикация недопустимо высокого уровня жидкости в приемном колодце.
Сервисные функции: Сигнал аварийных уровней жидкости в приемном колодце (сухой контакт). Обобщенный сигнал аварии (сухой контакт). Звуковое оповещение при аварийных режимах.
Логический контроль исправности поплавковых датчиков, с с индикацией. Информирование пользователя о аварийных уровнях жидкости в приемном колодце с помощью SMS или же голосовое оповещение (опция).
Типы подключаемых датчиков: Поплавковые выключатели.

Алгоритм работы насосов.

Включение/отключение первого насоса происходит по сигналу от поплавкового датчика первого уровня SL1. В случае если первый насос не справляется с притоком в помощь ему включается второй насос по сигналу от поплавкового датчика второго уровня SL2, отключение обоих насосов происходит по сигналу от поплавкового датчика первого уровня SL1. Если же не справляются первые два насоса то в работу по сигналу от поплавкового датчика третьего уровня SL3 включается третий насос по алгоритму описанному для второго насоса. После остановки насосов происходит автоматическая смена их номеров, алгоритм работы насосов при этом не меняется. Система обеспечивает логический контроль исправности поплавковых датчиков.

Скрипт

: (0-0)prn RED 0 0 PRINT ;
: (0-1)prn RED 0 1 PRINT ;

: dry ." СУХОЙ ХОД " ;
: over ." ПЕРЕЛИВ " ;
: sor ." или " ;
: in_err ." Авария датчика " ;
: snasos
DUP
100 VAR!
2 + 101 VAR! ." Насос " 100 VAR? . BLACK 0 101 VAR? PRINT
." : " BLACK 8 101 VAR? PRINT
;

: son
." Вкл " BLUE 10 101 VAR? PRINT ;
: soff
." Выкл " RED 10 101 VAR? PRINT ;

: in1? 1 DI? NOT ; ( опрос датчика сухого хода )
( в инверсии )
: in11? 1 DI? ; ( опрос датчика сухого хода)
: in2? 2 DI? ; ( опрос датчика уровня 1 )
: in3? 3 DI? ; ( опрос датчика уровня 2 )
: in4? 4 DI? ; ( опрос датчика уровня 3 )
: in5? 5 DI? ; ( опрос датчика перелива )

( включение сигнализации аварри датчика )
: alt_in_err 1 3 DO! ;
( отключение сигнализации аварри датчика )
: nalt_in_err 0 3 DO! ;

( опрос состояния насоса )
( номер насоса на вершине стека )
: dv?
5 +
DI?
;

( циклическая смена порядка включения насосов )
: rotate
1 VAR? 2 VAR? 3 VAR?
1 VAR! 3 VAR! 2 VAR!
;

: stp 1 RO? 2 RO? 3 RO? OR OR 0 3 RO! 0 2 RO! 0 1 RO!
IF rotate THEN ;

( увеличиваем число запущенных насосов )
( и кладем значение на стек )
: inc5?
5 VAR? 1 +
DUP
5 VAR!
;

( поск рабочих насосов и их запуск )
( кол-во необходимых на вершине стека )
( VAR5 - количество запущенных )
: start
DUP
0 5 VAR!
1 VAR?
DUP
dv?
IF
1 SWAP
RO!
inc5?
ELSE
0 SWAP
RO!
5 VAR?
THEN
>
IF
2 VAR?
DUP
dv?
IF

1 SWAP
RO!
inc5?
ELSE
0 SWAP
RO!
5 VAR?
( контроль датчиков на исправность )
( и вывод информации о неисправном )
: chk_err
nalt_in_err
in1? in2? in3? AND AND
IF in_err 1 . (0-1)prn alt_in_err THEN

in11? in2? NOT in3? in4? NOT AND AND AND
IF in_err 2 . sor 3 . (0-1)prn alt_in_err THEN

in11? in2? NOT in3? in4? AND AND AND
IF in_err 2 . (0-1)prn alt_in_err THEN

in1? in2? NOT in3? in4? NOT in5? NOT AND AND AND AND
IF in_err 3 . (0-1)prn alt_in_err THEN

in11? in2? in3? NOT in4? in5? NOT AND AND AND AND
IF in_err 3 . sor 4 . (0-1)prn alt_in_err THEN

in11? in2? in3? NOT in4? in5? AND AND AND AND
IF in_err 3 . (0-1)prn alt_in_err THEN

in11? in2? in3? in4? NOT in5? AND AND AND AND
IF in_err 4 . sor 5 . (0-1)prn alt_in_err THEN

in2? NOT in3? NOT in4? in5? NOT AND AND AND
IF in_err 4 . (0-1)prn alt_in_err THEN

in3? NOT in4? NOT in5? AND AND
IF in_err 5 . (0-1)prn alt_in_err THEN
;

( анализируем входа и запускаем двигатели )
( и включаем сигнализацию )
: chkin
1 DO? 2 DO? 3 DO? OR OR IF CLEAR THEN
chk_err
in1?
IF
stp 1 1 DO!
dry (0-0)prn
ELSE
0 1 DO!
in2?
IF
1 start
ELSE
in3? in4? in5? OR OR NOT
IF stp THEN
THEN
in3?
IF 2 start THEN
in4?
IF 3 start THEN
in5?
IF 1 2 DO! over (0-0)prn 3 start ELSE 0 2 DO! THEN
THEN
1 snasos
1 RO? IF son ELSE soff THEN
2 snasos
2 RO? IF son ELSE soff THEN
3 snasos
3 RO? IF son ELSE soff THEN
1.0 1 TIMER! chkin ;

: initdv
1 1 VAR!
2 2 VAR!
3 3 VAR!
;

: main initdv chkin ;

 

Cхема работы насосов.



 
 
© ПП "Електросвіт"