Головоломка с сценарием взятия/снятия

FORUM_NAME: АРМ Орион Про версии до 1.20
Описание: АРМ "Орион Про" — пакет программного обеспечения для аппаратно-программного комплекса ИСО "Орион", на котором реализуются системы охранной сигнализации, контроля и управления доступом, охранного видеонаблюдения, автоматика противопожарных систем, сопряженные с инженерными системами объектов.
Справочная информация, руководства для АРМ Орион Про версии до 1.20
Модератор: Модераторы
nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #61 nick108 » 05.11.2015, 17:04

DruG писал(а):хе, прочитал внимательнее ошибку "Метод СПИСОКСЦЕНАРИЕВ у объекта не найден!", это значит что "РабочееМесто" со "СписокСценариев" не используется ;) смотрите внимательнее шаблонный, там же это не просто так не используется
Эммм, но ведь если его добавлять в существующий, оно там будет...?! Пошел думать.

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 38
Репутация: 21
Сообщения: 1676
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #62 pet-and » 05.11.2015, 19:45

DruG писал(а):в таком виде РабочееМесто1.СписокСценариев1().ПолучитьПоИД(74).ВыполнитьСценарий(0); нет
СписокСценариев сам по себе, РабочееМесто само по себе, ну точнее это совершенно разные объекты, которые создаются в самом начале сценария. И это я только что понял :hi_hi_hi:
Именно так. В описании языка сценариев есть полезная глава 3.3, если внимательно посмотреть на "дерево объектов" становится понятно какой объект можно "вытянуть" из функции СоздатьОбъект. Другими словами, во всех Ваших сценариях достаточно одной переменной - Компьютеры. Исключение составляет только переменная СписокСценариев1, синтаксис следующий - СписокСценариев1.ПолучитьПоИндексу(74).ВыполнитьСценарий("0");.

nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #63 nick108 » 10.11.2015, 16:34

Не получается, так же ошибка.
А как поговорить с орионом на языке сценариев? Как увидеть ответ на запрос? Комм. строка какая? Например хочу по времени открывать считыватели, если ночной проход - он так и остается восст. и просто прошел, если с утра прошел и Сообщить( ТекущееВремя() , 0 ); более чем - то считыватель открывать.

ПС: На сегодня столкнулся с приколом, если проход не может быть осуществим и показывается со знаком звездочки(нет доступа), то сценарии все равно отрабатывает. Во прикол. :wo_ol:

nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #64 nick108 » 10.11.2015, 19:08

Сценарий на снятие раздела и проверка времени, если более скольки то часов то считыватель открыть, иначе оставить как есть. Блокировать нельзя, тк вначале пройдет через него до клавиатуры.

А тот помучаю еше, может разберусь и пройдет.

nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #65 nick108 » 10.11.2015, 20:36

Первая ваша часть того что надо, тк приходит он в выходной позже, зачем держать двери на растопашку. А пришел в 5 утра - тоже не правильно открывать их!
Пока работаем по второй части, по времени отк и закр.

nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #66 nick108 » 11.11.2015, 10:54

Да, тоже об этом думал, но это жестоко и не правильно :(

nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #67 nick108 » 12.11.2015, 10:30

Решение для себя нашел, блокировать сценарий на снятие коридора. Ночью они не откроют считыватель на всегда, только пройдут, а с утра снял если - открыл считыватель. Доп. с утра проверку делать, если кто то снят то открыть считыватель. Сценарии это такая свобода! СПАСИБО БОЛИД!

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 38
Репутация: 21
Сообщения: 1676
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #68 pet-and » 12.11.2015, 10:38

DruG писал(а):теперь замысел понятен, в орионе не нашёл ничего чем можно было бы сравнивать время, его можно только сообщить.
А если попробовать так:

Если ТекущееВремя()==ХХ:УУ Тогда

nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #69 nick108 » 12.11.2015, 11:03

pet-and писал(а):
DruG писал(а):теперь замысел понятен, в орионе не нашёл ничего чем можно было бы сравнивать время, его можно только сообщить.
А если попробовать так:

Если ТекущееВремя()==ХХ:УУ Тогда

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

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

Компьютеры1 = СоздатьОбъект( "Компьютеры" );
Компьютер1 = Компьютеры1.ПолучитьПоИд(1);
РабочиеМеста1 = Компьютер1.РабочиеМеста();
РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");
Если (ТекущееВремя() >= "10:00") и (ТекущееВремя() <= "21:00") тогда
РабочееМесто1.ПоказатьСообщение("21212");
Конецесли;
КонецСценария

СПАСИБО, ЗАРАБОТАЛО! )

nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #70 nick108 » 16.11.2015, 10:03

Момент! Прикол! Если надо с 8 утра до 8 вечера, то писать надо так:

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

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

Компьютеры1 = СоздатьОбъект( "Компьютеры" );
Компьютер1 = Компьютеры1.ПолучитьПоИд(1);
РабочиеМеста1 = Компьютер1.РабочиеМеста();
РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");
Если (ТекущееВремя() >= "8:00") и (ТекущееВремя() <= "9:59") и
(ТекущееВремя() >= "10:00") и (ТекущееВремя() <= "21:00") тогда
РабочееМесто1.ПоказатьСообщение("21212");
Конецесли;
КонецСценария


По другому он не работает, ни 08:00 никак... Бррр... :zvez_ochki:

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 38
Репутация: 21
Сообщения: 1676
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #71 pet-and » 16.11.2015, 10:12

А в чем прикол? Я что-то не оценил.

nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #72 nick108 » 16.11.2015, 11:29

pet-and писал(а):А в чем прикол? Я что-то не оценил.
Если указывать Если (ТекущееВремя() >= "08:00") и (ТекущееВремя() <= "21:00") - отработает только с 10 утра до 21 вечера

Если указывать Если (ТекущееВремя() >= "8:00") и (ТекущееВремя() <= "21:00") - то с утра в 09:30 он не отрабатывает!
Если указывать в сценарии Если (ТекущееВремя() >= "8:00") и (ТекущееВремя() <= "9:59") и (ТекущееВремя() >= "10:00") и (ТекущееВремя() <= "21:00") - то отрабатывает только до 10 утра, после не хочет!

Если в сценарии использовать два раза ЕСЛИ с разными промежутками, даже с задержкой... - после 10 не отрабатывает....
Спойлер

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

Если (ТекущееВремя() >= "8:00") и (ТекущееВремя() <= "9:59") тогда
РабочееМесто1.ПоказатьСообщение("21212");
Если (ТекущееВремя() >= "10:00") и (ТекущееВремя() <= "21:00") тогда
РабочееМесто1.ПоказатьСообщение("21212-2");
А как только шаблонный сделать и через него запускать два разных сценария "с 8-9" и "с 10-20" - отрабатывает на ура! Зараза... В ядре без ошибок. Мое верхнее сообщение нужно игнорировать, сценарий там не отработает после 10...

nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #73 nick108 » 16.11.2015, 12:18

Добился работы с 8 утра до 21 вечера только таким способом, не зря шаблонные создают кучу переменных для действий... А тут 8 часов это не 08, потому или утро или вечер в сравнении будет работать...

Спойлер

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

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


Попытка
Компьютеры1 = СоздатьОбъект( "Компьютеры" );
Компьютер1 = Компьютеры1.ПолучитьПоИд(1);
РабочиеМеста1 = Компьютер1.РабочиеМеста();
РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");
Если (ТекущееВремя() >= "8:00") и (ТекущееВремя() <= "9:59") тогда
РабочееМесто1.ПоказатьСообщение("21212-1");
КонецЕсли;
Исключение Сообщить("Произошло исключение, шаг Выдать сообщение во всплывающем окне ",0); КонецПопытки;

Попытка
Компьютеры2 = СоздатьОбъект( "Компьютеры" );
Компьютер2 = Компьютеры2.ПолучитьПоИд(1);
РабочиеМеста2 = Компьютер2.РабочиеМеста();
РабочееМесто2 = РабочиеМеста2.ПолучитьПоТипуСетевогоМеста("Ядро");
Если (ТекущееВремя() >= "10:00") и (ТекущееВремя() <= "21:00") тогда
РабочееМесто2.ПоказатьСообщение("21212-2");
КонецЕсли;
Исключение Сообщить("Произошло исключение, шаг Выдать сообщение во всплывающем окне ",0); КонецПопытки;
КонецСценария

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 38
Репутация: 21
Сообщения: 1676
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #74 pet-and » 16.11.2015, 12:39

nick108 писал(а):Если (ТекущееВремя() >= "8:00") и (ТекущееВремя() <= "9:59") и
(ТекущееВремя() >= "10:00") и (ТекущееВремя() <= "21:00") тогда
Теперь увидел. Но дело в том, что Вы ставите заведомо невыполнимое условие, какое время умещается между 8:00 и 9:59 и 10:00 и 21:00?
Если не отрабатывает сквозняком 8:00-21:00, тогда должно выглядеть так:

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

Если (ТекущееВремя() >= "8:00") и (ТекущееВремя() <= "9:59") ИЛИ
(ТекущееВремя() >= "10:00") и (ТекущееВремя() <= "21:00") тогда

nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #75 nick108 » 16.11.2015, 16:47

pet-and писал(а):
nick108 писал(а):Если (ТекущееВремя() >= "8:00") и (ТекущееВремя() <= "9:59") и
(ТекущееВремя() >= "10:00") и (ТекущееВремя() <= "21:00") тогда
Теперь увидел. Но дело в том, что Вы ставите заведомо невыполнимое условие, какое время умещается между 8:00 и 9:59 и 10:00 и 21:00?
Если не отрабатывает сквозняком 8:00-21:00, тогда должно выглядеть так:

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

Если (ТекущееВремя() >= "8:00") и (ТекущееВремя() <= "9:59") ИЛИ
(ТекущееВремя() >= "10:00") и (ТекущееВремя() <= "21:00") тогда
Ваш вариант не запускает после 10, а вот до - нормально :)
Мой срощенный с шаблонными с кучей переменных и то и то отрабатывает. Пока так настроил и в дело пустил его.

nick108
nick108
Репутация: 0
Сообщения: 65
Зарегистрирован: 04.09.2015
С нами: 1 год 3 месяца
Профессия: iT

Непрочитанное сообщение #76 nick108 » 17.11.2015, 09:13

DruG писал(а):не знаю как это будет отрабатывать орион, но походу тут скобочек не хватает, чтобы оно правильно срабатывало, пример:
Если ( (условие) И (условие) ) ИЛИ ( (условие) И (условие) ) Тогда...
Ваш вариант работает, скобки да, вот ведь... :ya_hoo_oo: Спасибо!

pet-and M
Активный участник
Активный участник
pet-and M
Активный участник
Активный участник
Возраст: 38
Репутация: 21
Сообщения: 1676
Зарегистрирован: 11.11.2012
С нами: 4 года
Профессия: инженер
Откуда: Санкт-Петербург

Непрочитанное сообщение #77 pet-and » 17.11.2015, 18:34

DruG писал(а): Если ( (условие) И (условие) ) ИЛИ ( (условие) И (условие) ) Тогда...
Ну да, ну да.
Однако, какого-же черта не работает "сквозняком", с 8:00 до 21:00.

XAMMEP
Автор темы
Аватара
XAMMEP
Автор темы
Репутация: 2
Сообщения: 159
Зарегистрирован: 17.10.2014
С нами: 2 года 1 месяц
Профессия: Специалист ИТСО
Откуда: Чебоксары

Непрочитанное сообщение #78 XAMMEP » 07.07.2016, 15:49

День добрый!!! Тоже решил воспользоваться временными рамками в одном скрипте, использовав только интервал с 22 до 5. Применил Если ((ТекущееВремя() >= "22:00") и (ТекущееВремя() <= "5:00")). Все как оказалось жизнеспособно, но это же БОЛИД!!!! С 00.00 и до 01.59 он напрочь отказывается работать... КАК?!?!?!

Примечание: Оповещение охраны ON - сработка попала в промежуток времени 22-5
Оповещение охраны OFF - сработка не попала в промежуток времени 22-5
1.png

DruG
DruG
Репутация: 18
Сообщения: 257
Зарегистрирован: 03.03.2016
С нами: 9 месяцев 7 дней
Профессия: безобразнорабочий

Непрочитанное сообщение #79 DruG » 07.07.2016, 16:12

а что за хитрые скрипты? по каким условиям они запускаются? может где осталось окно времени, которое и блокирует скрипт или условия какие не выполняются

XAMMEP
Автор темы
Аватара
XAMMEP
Автор темы
Репутация: 2
Сообщения: 159
Зарегистрирован: 17.10.2014
С нами: 2 года 1 месяц
Профессия: Специалист ИТСО
Откуда: Чебоксары

Непрочитанное сообщение #80 XAMMEP » 07.07.2016, 16:33

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

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

Компьютеры1 = СоздатьОбъект( "Компьютеры" );
Компьютер1 = Компьютеры1.ПолучитьПоИд(1);
РабочиеМеста1 = Компьютер1.РабочиеМеста();
РабМесто4 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Оболочка");
РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");
РабочееМесто2 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");
РабочееМесто3 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро");
Реле1 = РабочееМесто1.Выходы().ПолучитьПоИД( 439 );
Реле2 = РабочееМесто2.Выходы().ПолучитьПоИД( 440 );
Реле3 = РабочееМесто3.Выходы().ПолучитьПоИД( 441 );
Если ((ТекущееВремя() >= "22:00") и (ТекущееВремя() <= "5:00")) тогда
Реле1.МигатьИзСостоянияВыключеноНаВремя( "0", "60", "25" );
Реле2.МигатьИзСостоянияВыключеноНаВремя( "0", "60", "25" );
Реле3.МигатьИзСостоянияВыключеноНаВремя( "0", "60", "25" );
РабМесто4.ЗаписатьВЖурналСобытий("Оповещение охраны ON");
иначе РабМесто4.ЗаписатьВЖурналСобытий("Оповещение охраны OFF");
КонецЕсли;
КонецСценария


Запускал то я их для проверки в вручную. Так как у нас один пост остается без охраны, где и стоит АРМ, то пришлось выводить оповещение наружу. А запускает его любая сработка в АРМ. Временных и прочих ограничений не ставил...


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

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

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 5 гостей

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