партнерский раздел
ФорумИнсталляция, монтажсценарий управления

Инсталляция, монтаж » сценарий управления

0

Здравствуйте! подскажите как написать сценарий чтобы при кратковременном нарушении технологического шл. включалось реле (СП1), при следующем кратковременном нарушении этого-же технологического шл. выключалось реле (СП1). хочу организовать управление освещением. Оборудование есть любое и Орион про тоже рассматриваю. 

1 год назад

avatar

ну например такое условие

Если Реле1.ЗначениеСостояния()== "РЕЛЕ ВКЛЮЧЕНО" тогда
Реле1.Выключить( "0" );
иначе  Реле1.Включить( "0" );
КонецЕсли;

за точность куска сценария не ручаюсь (точнее я не уверен, что текущее состояние реле узнаётся именно этой командой), но смысл должен быть понятен. Сам сценарий вешается в АБД на событие "Нарушение технологического ШС". Ну и в приборе наверное должно быть включено формирование событий по выходам, чтобы Орион знал, когда сценарий то запускать

Волков Андрей 1 год назад

Я так понимаю у вас кнопка без фиксации и надо чтобы реле свое состояние меняло на противоположенное при нажатии кнопки?

Тремасов Константин Александрович 1 год назад

совершенно верно 

Андрей 1 год назад

Я так понимаю что сценарий предложенный Волковым Андреем пишется самостоятельно без шаблонов. Спасибо буду пробовать.

Андрей 1 год назад

Да, писать надо самому. Вот только "Реле1.ЗначениеСостояния()" возвращает код состояния.

Если Реле1.ЗначениеСостояния()== 401 тогда
Реле1.Выключить( "0" );
иначе  Реле1.Включить( "0" );
КонецЕсли;
 

Тремасов Константин Александрович 1 год назад

Вчера попробовал написать сценарий к сожалению не получилось , не хватает знаний. включил просмотр кода для шаблонов, слишком много текста, буду разбиратьсяю.Вот пример сценария написаный с помощью шаблона для управления светом через радио канал, сп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);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецСценария

Андрей 1 год назад

А вам разве не это и надо было? 

Тремасов Константин Александрович 1 год назад

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

Андрей 1 год назад

СЦЕНАРИЙ
Переменные
Перем Выходы;
Перем Выход;
НАЧАЛОСЦЕНАРИЯ
Выходы = СоздатьОбъект("Выходы");
Выход = Выходы.ПолучитьПоИД(137);
Если Выход.ЗначениеСостояния() == 401 Тогда
Выход.Выключить("0");
Иначе Выход.Включить("0");
КонецЕсли;
КОНЕЦСЦЕНАРИЯ

Попробуйте

Тремасов Константин Александрович 1 год назад

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

Андрей 1 год назад

Вы когда свой сценарий написали там было
Реле1 = РабочееМесто1.Выходы().ПолучитьПоИД( 137 );
137 это Пользовательский номер вашего реле, вот я его и оставил. Выберите нужное вам реле и в испекторе посмотрите его пользовательский номер, замените в моем сценарии цифры в скобках(137) в строке
Выход = Выходы.ПолучитьПоИД(137); 
На пользовательский номер нужного вам реле.
 

Тремасов Константин Александрович 1 год назад

Тремасов Константин Александрович 1 год назад

Константин Александрович помогите пожалуста понять где в сценарии прописан адрес реле, открыл инструкцию орион скрипт самому не разобраться. Спасибо!

Андрей 1 год назад

Вот в этой строке
Выход = Выходы.ПолучитьПоИД(137); 
Цифра 137 это пользовательский номер вашего реле, как узнать нужного реле, см. картинку выше.

Тремасов Константин Александрович 1 год назад

прошу прощение за навязчевость но я ище раз проверил у меня по вашему сценарию срабатывает реле с ИД (408), если изменить 137 на ИД  нужного мне реле 693 реле не реагирует и то которое работало тоже перестает работать 

Андрей 1 год назад

реле с ИД (137) я вообще не нашел.

Андрей 1 год назад

Есть teamviewer? Киньте в личку ID и Пароль, посмотрю.

Тремасов Константин Александрович 1 год назад

Я нашел ИД с помощью просмотра кода сценария 163 а пользовательский 693. teamviewer поставлю, скину

Андрей 1 год назад

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

0 ответов

Добавить ответ

Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?)

ПОКАЗАН

2144 раза

ЗАДАН

1 год назад

По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.

Слева от каждого вопроса/ответа указано число – количество голосов. Над и под этим числом имеются стрелки, с помощью которых вы можете проголосовать за актуальный или понравившийся вам вопрос/ответ. Причем можете оставить свой голос как в «плюс» (верхняя стрелка), так и в «минус» (нижняя стрелка), если сообщение, например, неуместно или вы его не поддерживаете. Также можно отменить свой голос, если проголосовали ошибочно или передумали. Для отмены надо нажать на оранжевую стрелку.