|
ДАНО: Орион Про - последней версии. Система без пульта С2000М. Реле которым управляем - СП1, централизованное управление включено. 4 года 1 месяц назад Константин Рогозин 42Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
Попробуйте так: 4 года 1 месяц назад Тремасов Константин Александрович 5564И обязательно проверьте в настройках СП1 пункт "Сообщать об изменении состояния". Иначе Орион не видит изменения, только при перезапуске, когда запрашивает текущие состояния.
– Тремасов Константин Александрович 4 года 1 месяц назад вот это самое главное)) только он называется "Вкл. события от реле"
– Волков Андрей 4 года 1 месяц назад Ну значит сейчас привели к одному названию. Ранее для разных версий, разных приборов было и "Формирование событий выхода" и то что написал выше, вот так и запомнил. Суть одна, разберется)
– Тремасов Константин Александрович 4 года 1 месяц назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
Огромное спасибо. 4 года 1 месяц назад Константин Рогозин 42Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
Я про охранный раздел. если из ОЗ ставишь снимаешь на пульте индикация не меняется, если ставишь снимаешь с пульта то все нормально. БКИ 2,42 раздел прописан взят\снять охранный. 4 года 1 месяц назад Константин Рогозин 42Попробуйте в инспекторе рабочего места поставить ДА напротив пунктов:
Включить трансляцию событий через С2000. Включить трансляцию состояний через С2000. – Тремасов Константин Александрович 4 года 1 месяц назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
Так у меня нету в системе с2000. Орион-Про всем рулит. 4 года 1 месяц назад Константин Рогозин 42Так вы сами написали:
...если ставишь снимаешь с пульта то все нормально. Все равно попробуйте. – Тремасов Константин Александрович 4 года 1 месяц назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
я имел ввиду БКИ, немного пока с терминами путаюсь.. 4 года 1 месяц назад Константин Рогозин 42Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
Вопрос: Предположим я включаю выход РЕЛЕ1 коммандой "включить на время" на 1800сек и в течении этих 1800сек например через 900сек снова дам команду "включить на время 1800сек" таймер переустановится на 1800сек и отсчет пойдет заново или так и будет тикать оставшиеся 900 секунд? Или время ссуммируется до 2700сек? 4 года 1 месяц назад Константин Рогозин 42Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
|
Я потихоньку изучаю написание скриптов, но дается медленно. 4 года 1 месяц назад Константин Рогозин 42Я вот неуверен насчет повторной команды ВключитьНаВремя("0", "1800"). Сбросит или добавит еще. ШС7 понятно, скрипт у вас есть, только команда ВключитьНаВремя должна быть, у вас включить бесконечно с задержкой 1800. Для ШС1-6 написать свой скрипт, проверяем состояние реле1, если включено, то ВключитьНаВремя("0", "1800"). Привязать к нужным событиям нужных ШС.
– Тремасов Константин Александрович 4 года 1 месяц назад Если привязать к ШС1-ШС6 свои скрипты, то при массовке в зоне видимости датчиков ИК они заDDOS-ят ядро Орион запусками скриптов. 5 человек прошло в зоне видимости датчиков по коридору = 30 запущеных скриптов.
Хотя может это и не страшно. Завтра проверю как отрабатывает счетчик времени при повторном запуске, от этого буду отталкиваться. Спасибо. – Константин Рогозин 4 года 1 месяц назад 5 человек прошло в зоне видимости датчиков по коридору = 30 запущеных скриптов. какие у вас хорошие ИК, людей в толпе считать умеют или это линейные счётчики?)) обычный то объёмник будет стоять в одной сработке пока видит движение всей толпы, т.е. один запущенный скрипт от одного ШС. Не, ну если толпа движется строго по одному с соблюдением социальной дистанции, то даже в этом случае одновременных сценариев будет всё таки намного меньше 30 )) – Волков Андрей 4 года 1 месяц назад Ну если сценарий будет работать только на ПК, то проблем вроде быть не должно. Цикл с проверками чего надо плюс таймер на превышение 1800 и его обнуление по условию. Управление реле без задержки, т.е. бесконечные программы, т.к. рулим им из сценария. Ориона нет под рукой чтобы накидать.
Своими словами алгоритм такой: 1. начало сценария; 2. переменная "Время начала" = сейчас; 3. реле1.Включить; 4. начало цикла (while) с проверкой условия: "Время начала" + 1800 сек >= сейчас (если да, то выполняем тело цикла) 5. если ШС1.состояние = нарушен то "время начала" = сейчас; 6. повторяем строку 5 для всех ШС кроме ШС7 7. если ШС7.состояние = нарушен то "время начала" = сейчас +1800 сек; 8. конец цикла; 9. реле1.выключить 10. конец сценария; – Налетов Константин 4 года 1 месяц назад Меня только смущает то, что ШС7 сам и запускает этот скрипт. п7 выключит скрипт, но Орион по нажатию запустит копию. Можно конечно отключать реле с задержкой а прив включении скрипта проверять состояние реле и если включено не продолжать работу...
– Константин Рогозин 4 года 1 месяц назад Для исключения повторного запуска от ШС7 добавьте шаги:
между 2 и 3 - ШС7.снять между 9 и 10 - ШС7.взять а также нужно предусмотреть небольшую задержку взятия данного ШС. Таким образом пока сценарий работает его повторный запуск становится невозможным. Само собой, что запуск сценария по тревоге в ШС7. – Налетов Константин 4 года 1 месяц назад ШС7 кнопка которую нажимает оператор в любое время по мере надобности. Если мы ШС7 заблокируем на время выполнения скрипта то "шаг 7" не будет работать..
Сегодня не было времени поковыряться. Завтра попробую. . А случайно общих глобальных переменных для все системы нет? Чтобы из скрипта можно было туда флаг закинуть и все остальные скрипты его видели...Типа виртуального реле. Можно конечно файлом пользоваться в качестве "флага" но тоже свои минусы есть. С переменной было бы проще. – Константин Рогозин 4 года 1 месяц назад Если мы ШС7 заблокируем на время выполнения скрипта то "шаг 7" не будет работать. Ну почему же? Тип ШС 4, ставил галку "Контроль отключенного входа" и в сценарии ловим состояние "Нарушение снятой зоны" (код 119). И вуаля! – Налетов Константин 4 года 1 месяц назад у каждого объекта есть Тег, сохраняется пока ядро не перезапущено. Попробуйте записать одним скриптом и считать другим.
– Волков Андрей 4 года 1 месяц назад Вот откуда вы взяли -
" 2. переменная "Время начала" = сейчас; " Где найти полное описание языка и допустимых определений и констант. В PDF который с орионом идет "021 - Описание макроязыка сценариев ОРИОН_Scripts.pdf" Толком ничего нет. – Константин Рогозин 4 года 1 месяц назад Вот откуда вы взяли Я это придумал, это не реальная команда, а логический шаг объявления переменной и её инициализации. В том алгоритме многое вообще за кадром, например получение объектов, таких как реле, шлейф, рабочее место и т.д. Где найти полное описание языка тута https://partners.bolid.ru/forum/forum_21366.html – Налетов Константин 4 года 1 месяц назад Эту документацию я и использую. Очень куцая и без нормальных описаний с примерами. Приходится все методом тыка и перебора проверять..
За 3 часа родил запускающий скрипт... И смех и грех. Пять строчек п мучений на кучу времени и всё из-за отсутствия нормальной документации.. Ну дальше будет проще. Вопрос - как вывести в лог переменную? Я так и не смог победить эту заморочку Вот пример скрипта которым я тег меняю при тестах скрипта который отлаживаю: Сценарий Дата и время выводятся нормально строкой - Сообщить( ТекущаяДата() + " " + ТекущееВремя() + " ", 0 ); А вот Тег не могу вывести никак.Сообщить( Реле1.Тег() + " " , 0 ); Сообщить( " " + Реле1Тег() + " " , 0 ); Как правильно это сделать? И дайте пожалуйста реально рабочий пример использования цикла о котором шла речь, ну не понятно совсем как описать опрос шлейфов. Времени просто жуть как жалко сидеть параметры перебирать. Я саму структуру понять немогу. начало цикла (while) с проверкой условия: "Время начала" + 1800 сек >= сейчас (если да, то выполняем тело цикла) "время начала" это имеется ввиду эта функцияt = ПолучитьЧасы(t)*3600+ ПолучитьМинуты(t)*60+ ПолучитьСекунды(t); или как-то по другому можно? . ШС1-ШС6 немогут быть поставленны на охрану ради использования этого скрипта, они могут писать "теги" при сработках, а вот как написать цикл это уже вопрос который меня мучает в данный момент. Точнее они должны ночью охранять, а на скрипт работать в любое время в независимости от того стоят они на охзране или нет. . Как я вижу систему ШС1-ШС6 при сработке ставят себе тег "сработал", а закольцованный скрипт с определенным интервалом обходит теги и если сработка есть то обновляет счетчик и обнуляет Тег у датчика и так по кругу. Нужен простой пример скрипта с циклом перебора тегов , дальше сам разгребу. – Константин Рогозин 4 года 1 месяц назад скорее всего Сообщить( Строка(Реле1.Тег()) + " " , 0 );
– Волков Андрей 4 года 1 месяц назад Рогозин К., про содержательность документации и метод тыка полностью согласен. Равно как и про время затраченное на написание сценария. Когда впервые пишешь, то времени уходит много.
Болидовцы явно перемудрили с русификацией интерпретатора сценариев. Многим гораздо проще было бы работать на языке С/С++ (пускай и с русскоязычной структурой системы). Операторы, команды и прочие элементы языка лично мне проще воспринимать на англиЦком, а имена переменных и объектов структуры пускай будут на русском. При таком сочетании текст сценария будет гораздо читабельней (ИМХО). Это подтверждается даже тем, что болидовцы в инструкции прибегают к англоязычным аналогам для разъяснения сути оператора, например для оператора Попытка (Try). Вас не поймёшь, то Вам нужен сценарий с ограничением по времени, по бесконечный. Я бы с тэгами не связывался (по моему не надёжное это решение). Времени просто жуть как жалко сидеть параметры перебирать То есть кто-то, кто Вам это напишет, должен потратить время, а Вы на всё готовенькое? Прикольно! Пример цикла и опроса ШС, если будет время и желание, то напишу, но завтра. Может кто из готового пораньше выложит. Ну, а пока просто пример навскидку. Сценарий Переменные Перем ВремяНачалаСценария; Перем Сейчас; Перем Реле1; Перем ШС1; Перем ШС7; Перем Интервал; НачалоСценария // тут инициализируем переменные ШС и Реле1 через элементы структуры (лень всё писать) ВремяНачалаСценария = ТекущееВремяДатаЧисло; Сейчас = ТекущееВремяДатаЧисло; Интервал = 1800; Реле1.Включить(); ШС7.Снять(); Пока ВремяНачалаСценария + Интервал >= Сейчас Цикл Если ШС1.ЕстьСостояние(119) Или ШС1.ЕстьСостояние(3) Тогда ВремяНачалаСценария = ТекущееВремяДатаЧисло; КонецЕсли; Если ШС7.ЕстьСостояние(119) Или ШС1.ЕстьСостояние(3) Тогда // условия выхода из цикла Интервал = 0; ВремяНачалаСценария = 0; КонецЕсли; Сейчас = ТекущееВремяДатаЧисло; КонецЦикла; Реле1.Выключить(); ШС7.Взять(); КонецСценария Только фиг знает, что за число возвращает функция ТекущееВремяДатаЧисло. Под это число надо подогнать параметр Интервал и дело в шляпе. – Налетов Константин 4 года 1 месяц назад – Волков Андрей
Спасибо заработало. Это сильно облегчит отладку. .. PS: Вот так и приходится изучать язык скриптов по "Полнейшей" документации.... – Константин Рогозин 4 года 1 месяц назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
2748 раз
4 года 1 месяц назад
По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.
добавить комментарий