Как осуществить автоматическое взятие/снятие общих помещений.

FORUM_NAME: АРМ Орион Про версии 1.20 и выше
Описание: АРМ "Орион Про" — пакет программного обеспечения для аппаратно-программного комплекса ИСО "Орион", на котором реализуются системы охранной сигнализации, контроля и управления доступом, охранного видеонаблюдения, автоматика противопожарных систем, сопряженные с инженерными системами объектов.
Справочная информация, руководства для АРМ Орион Про версии 1.20 и выше
Модератор: Модераторы
Ygin
Автор темы
Ygin
Автор темы
Репутация: 0
Сообщения: 7
Зарегистрирован: 10.07.2018
С нами: 2 месяца 15 дней
Профессия: Инженер

Непрочитанное сообщение #1 Ygin » 11.07.2018, 12:32

Добрый всем день. Помогите советом как реализовать хотелку?
Имеем здание, оборудованное адресной системой, построенной на С2000М, С2000КДЛ и т.д.. Здание условно разделено на 3 части. У каждой части свой вход с клавиатурой С2000-К. Для всех частей есть помещения общего пользования, грубо говоря по середине здания. Задача организовать автоматическое снятие с охраны данных помещений при снятии любого из 3-х. и Соответственно автоматическая постановка на охрану, при взятии последнего помещения.
Да, ещё здание подключено для мониторинга к Орион Про 1.20

DruG
DruG
Репутация: 42
Сообщения: 664
Зарегистрирован: 03.03.2016
С нами: 2 года 6 месяцев
Профессия: безобразнорабочий

Непрочитанное сообщение #2 DruG » 11.07.2018, 17:01

через пульт не заморачивался, а вот с Ориона делал сценарии, которые запускаются каждый раз когда ставится/снимается любой раздел, в сценарии идёт проверка состояния всех индивидуальных разделов, и счётчик увеличивается если выполнено нужное условие (при взятии - Взят, при снятии - Снят), далее счётчик сравнивается с числом разделов и если они равны, значит все взяты/сняты и можно ставить/снимать общие помещения, а заодно и некоторые двери блокируем/разблокируем на всякий случай.

Ygin
Автор темы
Ygin
Автор темы
Репутация: 0
Сообщения: 7
Зарегистрирован: 10.07.2018
С нами: 2 месяца 15 дней
Профессия: Инженер

Непрочитанное сообщение #3 Ygin » 11.07.2018, 17:12

А глянуть бы на такой сценарий.
Пытался создать, но что то не могу сообразить как. Не смог найти логические функции типа И ИЛИ НЕ. Да как их там применить?

DruG
DruG
Репутация: 42
Сообщения: 664
Зарегистрирован: 03.03.2016
С нами: 2 года 6 месяцев
Профессия: безобразнорабочий

Непрочитанное сообщение #4 DruG » 12.07.2018, 03:07

примерно так:
Спойлер

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

Сценарий
Переменные
Перем РабочееМесто1;
Перем РабочиеМеста1;
Перем Компьютер1;
Перем Компьютеры1;
Перем Счетчик1;
Перем Счетчик2;
Перем Считыватель1;
Перем Считыватель2;

НачалоСценария

Компьютеры1 = СоздатьОбъект( "Компьютеры" );
Компьютер1 = Компьютеры1.ПолучитьПоИд(1);
РабочиеМеста1 = Компьютер1.РабочиеМеста();
РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");
Считыватель1 = РабочееМесто1.Считыватели().ПолучитьПоИД( 3117 );
Считыватель2 = РабочееМесто1.Считыватели().ПолучитьПоИД( 5481 );

Задержка( 5 );

Счетчик2 = 0;

//проверка состояния офисных разделов с 37 по 43
//проверка состояния офисных разделов с 46 по 57
Для Счетчик1 = 37 По 57 Цикл
Если РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( Счетчик1 ).Состояние() == "ВЗЯТ" Тогда
Счетчик2 = Счетчик2 + 1;
КонецЕсли;
КонецЦикла;

Если РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 68 ).Состояние() == "ВЗЯТ" Тогда
Счетчик2 = Счетчик2 + 1;
КонецЕсли;

//44. 45 - отдел продаж и касса
Если РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 44 ).Состояние() == "ВЗЯТ" и
     РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 45 ).Состояние() == "ВЗЯТ" Тогда
Считыватель1.ВосстановитьДоступ();
Считыватель2.ВосстановитьДоступ();
КонецЕсли;

//если 20 офисных и 2 УК раздела под охраной - блокируем вход в тамбур и ставим все коридоры
Если Счетчик2 == 22 Тогда
//подвал
РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 62 ).Взять();
//1 этаж
РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 59 ).Взять();
//УК 1 этаж

//считыватель тамбур УК
Считыватель1.ЗаблокироватьДоступ();
КонецЕсли;

КонецСценария


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

Сценарий
Переменные
Перем РабочееМесто1;
Перем РабочиеМеста1;
Перем Компьютер1;
Перем Компьютеры1;
Перем Считыватель1;


НачалоСценария

Компьютеры1 = СоздатьОбъект( "Компьютеры" );
Компьютер1 = Компьютеры1.ПолучитьПоИд(1);
РабочиеМеста1 = Компьютер1.РабочиеМеста();
РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");
Считыватель1 = РабочееМесто1.Считыватели().ПолучитьПоИД( 3117 );

//Коридор-вход офис
//снятие только коридора 1 этажа, подвал остаётся заблокирован
Если РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 59 ).Состояние() <> "СНЯТ" Тогда
РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 59 ).Снять();
Если Считыватель1.Состояние() == "ДОСТУП ЗАКРЫТ" Тогда //проверяем состояние считывателя, чтобы не закрыть дверь
Считыватель1.ВосстановитьДоступ();
КонецЕсли;
КонецЕсли;

//снятие коридора УК
Если РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 58 ).Состояние() <> "СНЯТ" Тогда
РабочееМесто1.ГруппыРазделов().ПолучитьПоИД( 58 ).Снять();
КонецЕсли;

КонецСценария

Ygin
Автор темы
Ygin
Автор темы
Репутация: 0
Сообщения: 7
Зарегистрирован: 10.07.2018
С нами: 2 месяца 15 дней
Профессия: Инженер

Непрочитанное сообщение #5 Ygin » 13.07.2018, 11:30

:du_ma_et:

DruG
DruG
Репутация: 42
Сообщения: 664
Зарегистрирован: 03.03.2016
С нами: 2 года 6 месяцев
Профессия: безобразнорабочий

Непрочитанное сообщение #6 DruG » 13.07.2018, 17:06

да это я просто свои сценарии скопировал в сообщение, а потом уже не смог отредактировать, чтобы чуть понятнее сделать.
расшифровка первого сценария - сначала объявляем создание всех нужных объектов (не знаю зачем, но в шаблонных сценариях всегда так делают :hi_hi_hi: ), на Считыватели можете не смотреть, это было мне так надо, далее на всякий случай обнуляем счётчик2 и запускаем цикл, т.к. у меня номера разделов помещений идут практически по порядку, то не стал громоздить конструкцию типа "Если это И это И это И это...", цикл пробегает по всем помещениям, счётчик плюсуется и если конечное условие выполняется, то ставит на охрану все коридоры.

второй сценарий простой, можно было бы даже шаблонным обойтись, но тогда при каждом снятии отдельных помещений он будет запускать снятие коридоров, поэтому впихнул проверку, если коридоры ещё не сняты, тогда снимаем их, иначе ничего не делаем.

сценарии надо будет вешать на каждый раздел/группу разделов на события Взятие и Снятие, т.е. запускаться они будут постоянно, но отрабатывать до конца будут только при нужных вам условиях.

Ygin
Автор темы
Ygin
Автор темы
Репутация: 0
Сообщения: 7
Зарегистрирован: 10.07.2018
С нами: 2 месяца 15 дней
Профессия: Инженер

Непрочитанное сообщение #7 Ygin » 19.07.2018, 11:30

Благодарю за помощь!
Что то для меня сложным показался язык написания сценариев. По шаблону вроде более менее понятно, но функционала не хватает.
Поступил я проще, на уровне ппрог. Привязал одно реле в СП1 (программа №14) к всем разделам. На реле посадил АР1 как технологический. Создал сценарий управления шлейфами в помещениях общего пользования.
На вскидку получилось нормально, последний раздел ставится на охрану, и вместе с ним ставятся общие помещения. Первый снимается с охраны, и снимаются общие помещения.
А к сценариям в Орионе я ещё вернусь. Нужно их освоить.
Еще раз, всем спасибо!

Vse
Активный участник
Активный участник
Vse
Активный участник
Активный участник
Репутация: 24
Сообщения: 773
Зарегистрирован: 10.07.2013
С нами: 5 лет 2 месяца
Профессия: всё и сразу

Непрочитанное сообщение #8 Vse » 19.07.2018, 16:22

Ygin, а как быть если что-то не берётся под охрану? Например забыли форточку где-то закрыть?

Ygin
Автор темы
Ygin
Автор темы
Репутация: 0
Сообщения: 7
Зарегистрирован: 10.07.2018
С нами: 2 месяца 15 дней
Профессия: Инженер

Непрочитанное сообщение #9 Ygin » 19.07.2018, 17:07

Наверное ка обычно. Посмотреть на маяк, если моргает, вернуться, закрыть и перевзять.
Или я неправильно понял вопрос?

Vse
Активный участник
Активный участник
Vse
Активный участник
Активный участник
Репутация: 24
Сообщения: 773
Зарегистрирован: 10.07.2013
С нами: 5 лет 2 месяца
Профессия: всё и сразу

Непрочитанное сообщение #10 Vse » 31.07.2018, 12:44

Ygin, всё ок.
Вложения
mayak-svetit-v-nochi.gif

Ygin
Автор темы
Ygin
Автор темы
Репутация: 0
Сообщения: 7
Зарегистрирован: 10.07.2018
С нами: 2 месяца 15 дней
Профессия: Инженер

Непрочитанное сообщение #11 Ygin » 09.08.2018, 09:54

Блин, что-то пошло не так. :-(
Всё вроде бы работает, но иногда (почти каждый день) происходит какая то фигня, что после снятия разделов с охраны, общий раздел самопроизвольно пытается встать на охрану. Причём не могу отловить по логу что даёт команду на постановку.
Вопрос. Для анализа событий было бы не плохо снять лог файл с С2000М. Как это можно сделать?

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 39
Репутация: 67
Сообщения: 2518
Зарегистрирован: 11.11.2012
С нами: 5 лет 10 месяцев
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #12 pet-and » 09.08.2018, 13:25

С помощью этой программы сможете снять лог пульта.

Ygin
Автор темы
Ygin
Автор темы
Репутация: 0
Сообщения: 7
Зарегистрирован: 10.07.2018
С нами: 2 месяца 15 дней
Профессия: Инженер

Непрочитанное сообщение #13 Ygin » 17.08.2018, 10:42

Ygin писал(а):Блин, что-то пошло не так. :-(
Всё вроде бы работает, но иногда (почти каждый день) происходит какая то фигня, что после снятия разделов с охраны, общий раздел самопроизвольно пытается встать на охрану. Причём не могу отловить по логу что даёт команду на постановку.
Разобрался. Команду на постановку давал недоделанный сценарий из Ориона. Начинал его писать для этой же задачи, но не закончил т.к. пока не освоил язык написания. Сценарий прибил, и всё встало на свои места. Короче, работает! :ya_hoo_oo:


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «АРМ Орион Про версии 1.20 и выше»

forum-bolid.ru : Отказ от ответственности