|
Здравствуйте! подскажите как написать сценарий чтобы при кратковременном нарушении технологического шл. включалось реле (СП1), при следующем кратковременном нарушении этого-же технологического шл. выключалось реле (СП1). хочу организовать управление освещением. Оборудование есть любое и Орион про тоже рассматриваю. 8 лет 3 месяца назад Андрей 11Я так понимаю у вас кнопка без фиксации и надо чтобы реле свое состояние меняло на противоположенное при нажатии кнопки?
– Тремасов Константин Александрович 8 лет 3 месяца назад Я так понимаю что сценарий предложенный Волковым Андреем пишется самостоятельно без шаблонов. Спасибо буду пробовать.
– Андрей 8 лет 3 месяца назад Да, писать надо самому. Вот только "Реле1.ЗначениеСостояния()" возвращает код состояния.
Если Реле1.ЗначениеСостояния()== 401 тогда Реле1.Выключить( "0" ); иначе Реле1.Включить( "0" ); КонецЕсли; – Тремасов Константин Александрович 8 лет 3 месяца назад Вчера попробовал написать сценарий к сожалению не получилось , не хватает знаний. включил просмотр кода для шаблонов, слишком много текста, буду разбиратьсяю.Вот пример сценария написаный с помощью шаблона для управления светом через радио канал, сп1 кратковременно замыкает кнопку радио передатчика свет включается еще раз замыкает свет выключается вся проблема в том что система не знает свет включен или нет.
Сценарий Переменные Перем Компьютер2; Перем Компьютеры2; Перем РабочиеМеста2; Перем РабМесто2; Перем РабочееМесто1; Перем РабочиеМеста1; Перем Компьютер1; Перем Компьютеры1; Перем Реле1; НачалоСценария Попытка Компьютеры1 = СоздатьОбъект( "Компьютеры" ); Компьютер1 = Компьютеры1.ПолучитьПоИд(1); РабочиеМеста1 = Компьютер1.РабочиеМеста(); РабочееМесто1 = РабочиеМеста1.ПолучитьПоТипуСетевогоМеста("Ядро"); Реле1 = РабочееМесто1.Выходы().ПолучитьПоИД( 137 ); Если не ПустоеЗначение( Реле1 ) Тогда Реле1.ВключитьНаВремя( "0", "1" ); иначе Сообщить( "Реле не найдено", 1 ); КонецЕсли; Исключение Сообщить("Произошло исключение, шаг Команда включить на время",0); КонецПопытки; Компьютеры2 = СоздатьОбъект( "Компьютеры" ); Компьютер2 = Компьютеры2.ПолучитьПоИд(1); Если Не ПустоеЗначение(Компьютер2) Тогда РабочиеМеста2 = Компьютер2.РабочиеМеста(); Если Не ПустоеЗначение(РабочиеМеста2) Тогда РабМесто2 = РабочиеМеста2.ПолучитьПоТипуСетевогоМеста("Монитор"); Если Не ПустоеЗначение(РабМесто2) Тогда РабМесто2.ВоспроизвестиОповещение("команда выполнена", 1, 0, 1); КонецЕсли; КонецЕсли; КонецЕсли; КонецСценария – Андрей 8 лет 3 месяца назад нет, мне надо что-бы реле включалось постоянно и по состоянию реле можно было понять реле включено свет горит выключено свет не горит. но управлялось это с помощью технологического шлейфа который кратковременно меняет свой статус.
– Андрей 8 лет 3 месяца назад СЦЕНАРИЙ
Переменные Перем Выходы; Перем Выход; НАЧАЛОСЦЕНАРИЯ Выходы = СоздатьОбъект("Выходы"); Выход = Выходы.ПолучитьПоИД(137); Если Выход.ЗначениеСостояния() == 401 Тогда Выход.Выключить("0"); Иначе Выход.Включить("0"); КонецЕсли; КОНЕЦСЦЕНАРИЯ Попробуйте – Тремасов Константин Александрович 8 лет 3 месяца назад константин спасибо вроде работает только срабатывает не та реле какое значение нужно поменять чтоб реагировало 6 реле, 8 адреса
– Андрей 8 лет 3 месяца назад Вы когда свой сценарий написали там было
Реле1 = РабочееМесто1.Выходы().ПолучитьПоИД( 137 ); 137 это Пользовательский номер вашего реле, вот я его и оставил. Выберите нужное вам реле и в испекторе посмотрите его пользовательский номер, замените в моем сценарии цифры в скобках(137) в строке Выход = Выходы.ПолучитьПоИД(137); На пользовательский номер нужного вам реле. – Тремасов Константин Александрович 8 лет 3 месяца назад – Тремасов Константин Александрович 8 лет 3 месяца назад Константин Александрович помогите пожалуста понять где в сценарии прописан адрес реле, открыл инструкцию орион скрипт самому не разобраться. Спасибо!
– Андрей 8 лет 3 месяца назад Вот в этой строке
Выход = Выходы.ПолучитьПоИД(137); Цифра 137 это пользовательский номер вашего реле, как узнать нужного реле, см. картинку выше. – Тремасов Константин Александрович 8 лет 3 месяца назад прошу прощение за навязчевость но я ище раз проверил у меня по вашему сценарию срабатывает реле с ИД (408), если изменить 137 на ИД нужного мне реле 693 реле не реагирует и то которое работало тоже перестает работать
– Андрей 8 лет 3 месяца назад Есть teamviewer? Киньте в личку ID и Пароль, посмотрю.
– Тремасов Константин Александрович 8 лет 3 месяца назад Я нашел ИД с помощью просмотра кода сценария 163 а пользовательский 693. teamviewer поставлю, скину
– Андрей 8 лет 3 месяца назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
9790 раз
8 лет 3 месяца назад
Орион Про
С2000
С2000-АР1 исп.01
С2000-КПБ
С2000-СП1
С2000-СП1 исп.01
С2000-СП2
С2000-СП2 исп.01
С2000-СП2 исп.02
По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.
Если Реле1.ЗначениеСостояния()== "РЕЛЕ ВКЛЮЧЕНО" тогда
Реле1.Выключить( "0" );
иначе Реле1.Включить( "0" );
КонецЕсли;
за точность куска сценария не ручаюсь (точнее я не уверен, что текущее состояние реле узнаётся именно этой командой), но смысл должен быть понятен. Сам сценарий вешается в АБД на событие "Нарушение технологического ШС". Ну и в приборе наверное должно быть включено формирование событий по выходам, чтобы Орион знал, когда сценарий то запускать
– Волков Андрей 8 лет 3 месяца назад
#ссылка