Руководство по гибкой логике

Что такое «гибкая логика»?

Охранный комплекс — это система сложных электронных устройств с программой, которая работает в каждом элементе системы. Программы разрабатываются инженерами Старлайн и выполняют основные охранные и сервисные функции: охрану периметра, запуск двигателя, уведомление владельца о тревоге. Если установщик придумывает новую функцию или  улучшение в алгоритме, то зачастую он не может реализовать свои идеи самостоятельно.

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

Гибкая логика доступна во всех устройствах шестого поколения: охранных комплексах  X96M96A96, умном трекере  M66.

Так как устройства Старлайн шестого поколения имеют разные возможности и функции, то в настройках гибкой логики возможны отличия. Например, так как у M66 нет выхода на сирену, использовать сигналы сирены в гибкой логике M66 нельзя.

Элементы гибкой логики

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

Проще всего понять, как это работает, посмотрев на настройку гибкой логики в программе StarLine Master. Вот программа гибкой логики, которая предупредит владельца о гололеде:

Если при включении зажигания температура двигателя (а значит, и температура воздуха) ниже 0°С, то встроенный в X96 звуковой излучатель выдаст предупреждающий сигнал.

Если двигатель автомобиля работал незадолго до включения зажигания, то он нагреется и никакого предупреждения не будет. Программа приведена для примера и в реальной жизни её использовать не стоит.

В этой программе гибкой логики есть следующие элементы:

  • Событие: Включение зажигания
  • Условие: Температура двигателя ниже 0°С
  • Действие: Включение звукового излучателя основного блока

Специалисты, которые впервые сталкиваются с гибкой логикой, часто путают событие и условие. Событие — это то, что происходит мгновенно: включение зажигания, открытие двери, срабатывание датчика удара. Условие — это текущее состояние охранного комплекса, автомобиля или внешней среды: зажигание включено, открыта дверь. Например, такого условия как «удар по автомобилю» нет, потому что это непродолжительное событие.

Событие Условие
Включение зажигания Зажигание включено
Открытие двери Дверь открыта
Запуск двигателя Двигатель запущен
Нажатие сервисной кнопки Сервисная кнопка нажата
Срабатывание предупредительного уровня датчика удара

Если поменять местами событие и условие, то получится совсем другая программа:

Кажется, что такая запись более понятная. Если мы прочитаем слева направо, как привыкли, то получается следующее: «если температура меньше 0 при включенном зажигании то нужно включить звуковой излучатель».

Но событием  в этой программе является изменение температуры с 0°С на −1°С. То есть звуковой излучатель включится только тогда, когда температура изменит свое значение. Конечно, такая ситуация может произойти в реальной жизни, но понятно, что программа будет работать не совсем так, как планировал создатель.

Хороший прием — проговорить программу гибкой логики начиная с условия по шаблону «если условие А и происходит событие Б то выполняется действие В». Например:

Если температура двигателя ниже 0°С и происходит включение зажигания, то выполняется включение звукового излучателя

Если включено зажигание и происходит снижение температуры ниже 0°С, то выполняется включение звукового излучателя

Событие: это то, что запускает программу гибкой логики

Условие: это то, что должно быть активно, чтобы событие запустило действие

Действие: это то, что происходит при выполнении программы

Программа гибкой логики может реагировать на несколько событий: от одного до трех. Программа выполняет действие, если происходит любое из событий.

Условий может быть тоже несколько: от одного до трех. Но в отличие от событий, для выполнения программы условия должны быть активны одновременно.

У программы может быть от одного до четырех действий, которые выполняются одновременно при наступлении события и выполнении всех условий. Например:

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

События

Список доступных в гибкой логике событий постоянно расширяется.

Для удобства настройки все события разделены на группы:

flex-logic-triggers-map

Группа Событие Когда возникает событие?
SMS
  • SMS №1
  • SMS №10
Получение охранным комплексом SMS с текстом 8N или ГЛN, где N — номер SMS в списке
Внешние команды
  • Команда с брелка, сервера или мобильного приложения
Получение команды от брелка, с сайта starline.online или из мобильного приложения (1)
Гибкие аналоговые входы (2)
  • XS1:2
  • XS2:10
Переключение входа из одного состояния в другое (активное → пассивное или пассивное → активное)
Гибкие аналоговые выходы (2)
  • XS1:1
  • XS3:4

Переключение выхода из одного состояния в другое (активное → пассивное или пассивное → активное)

Датчики




  • Датчик движения
Срабатывание датчика движения
  • Датчик наклона
Срабатывание датчика наклона
  • Датчик удара сильный
Срабатывание тревожного уровня датчика удара
  • Датчик удара слабый
Срабатывание предупредительного уровня датчика удара
  • Дополнительный датчик 1
Срабатывание дополнительного датчика №1
  • Дополнительный датчик 2
Срабатывание дополнительного датчика №2
Дополнительные параметры (3)
  • Качество сигнала GSM, CSQ
Увеличение или уменьшение уровня сигнала GSM относительно заданного в настройках события (4)
  • Напряжение АКБ, Вольт
Увеличение или уменьшение напряжения в бортовой сети относительно заданного в настройках события 
  • Обороты, RPM
Увеличение или уменьшение частоты оборотов двигателя относительно заданного в настройках события
  • Основное питание
Включение или выключение питания основного блока охранного комплекса (KL30). Выключение основной цепи питания может быть зарегистрировано только в устройствах с резервным источником питания (например, M96)
  • Пробег, км
Увеличение пробега автомобиля относительно заданного в настройках события
  • Скорость, км/ч
Увеличение или уменьшение скорости автомобиля относительно заданного в настройках события
  • Температура двигателя, С
Увеличение или уменьшение температуры двигателя автомобиля относительно заданного в настройках события
  • Температура основного блока, С
Увеличение или уменьшение температуры основного блока охранного комплекса относительно заданного в настройках события
  • Уровень топлива, %
Увеличение или уменьшение уровня топлива в баке автомобиля относительно заданного в настройках события
Индикация
  • Звукоизлучатель в основном блоке
Включение или выключение звукового излучателя в основном блоке охранного комплекса
  • Сирена
Включение или выключение сирены

Метки

  • В зоне видимости метка с севшей батарейкой
В зоне видимости охранного комплекса появилась или пропала любая зарегистрированная метка с севшей батарейкой
  • Метка (любая)
В зоне видимости охранного комплекса появилась или пропала любая зарегистрированная метка
  • Метка №1
В зоне видимости охранного комплекса появилась или пропала метка, зарегистрированная под номером 1
  • Метка №2
В зоне видимости охранного комплекса появилась или пропала метка, зарегистрированная под номером 2
  • Метка №3
В зоне видимости охранного комплекса появилась или пропала метка, зарегистрированная под номером 3
  • Метка №4
В зоне видимости охранного комплекса появилась или пропала метка, зарегистрированная под номером 4
  • Метка №5
В зоне видимости охранного комплекса появилась или пропала метка, зарегистрированная под номером 5
Программы
  • Программа №1
  • Программа №10
Начало или завершение работы программы гибкой логики. Это событие можно использовать для связывания программ в цепочку, то есть для запуска второй после завершения первой.
Состояние охранного комплекса
  • Блокировка двигателя
Включение или выключение блокировки двигателя
  • Запуск двигателя

Один из этапов запуска двигателя:

  • АЗ/ДЗ завершен
  • включение автозапуска
  • включение поддержки зажигания
  • выключение поддержки зажигания
  • двигатель завелся с АЗ/ДЗ
  • запуск не удался
  • Кнопка валет
Нажатие или отпускание сервисной кнопки
  • Предпусковой подогреватель

Один из этапов работы предпускового подогревателя:

  • не удалось завершить работу предпускового подогревателя
  • не удалось запустить подогреватель
  • подогреватель запущен
  • подогреватель остановлен
  • Режим работы

Переход в один из режимов работы охранного комплекса:

  • запрет поездки
  • ожидание авторизации владельца
  • постановка в охрану с помощью функции «свободные руки»
  • постановка в охрану
  • переход в сервисный режим
  • снятие с охраны с помощью функции «свободные руки»
  • снятие с охраны
  • включение тревоги
  • включение предупредительного сигнала тревоги
Статусы автомобиля
  • Аксессуары (CAN)
Включение или выключение аксессуаров
  • Багажник
Открытие или закрытие багажника
  • Двери
Открытие или закрытие любой двери автомобиля
  • Двигатель
Запуск или остановка двигателя
  • Задний ход
Включение или выключение заднего хода
  • Зажигание
Включение или выключение зажигания
  • Капот
Открытие или закрытие капота
  • Паркинг
Включение или выключение паркинга
  • Педаль тормоза
Нажатие или отпускание педали тормоза
  • Ручной тормоз
Затягивание или отпускание парковочного тормоза
  • Свечи накала
Включение или отключение свечей накала в дизельном двигателе
  • Сенсор ручки двери
Появление или пропадания сигнала прикосновения к датчику

Примечания:

(1) Чтобы отправить такую команду с брелка, нужно выполнить двойное нажатие кнопки 3 брелка. На сайте или в мобильном приложении есть кнопка для отправки этой команды.

(2) Если канал используется в программе гибкой логики, то в таблице каналов напротив его названия появляется специальный значок:

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

(3) Некоторые параметры доступны, только если они есть в CAN шине или были выполнены соответствующие подключения. Например, если к основному блоку не подключен внешний датчик температуры двигателя, то использовать параметр «Температура двигателя, С» для запуска программы гибкой логики не получится.

(4) Текущий уровень сигнала можно запросить, отправив в охранный комплекс SMS с текстом 09INFO или ИНФО

Условия

Список доступных в гибкой логике условий постоянно расширяется

Все условия для удобства настройки разделены на группы:

flex-logic-conditions-map

Группа Условие Что является условием
Гибкие аналоговые входы (1)
  • XS1:2
  • XS2:10
Активный или пассивный уровень сигнала на входе
Гибкие аналоговые выходы (1)
  • XS1:1
  • XS3:4
Активный или пассивный уровень сигнала на выходе
Дополнительные параметры (2)
  • Качество сигнала GSM, CSQ
Уровень сигнала GSM больше, меньше или находится в диапазоне, указанном в настройках условия (от 0 до 31)
  • Напряжение АКБ, Вольт
Напряжение бортовой сети больше, меньше или находится в диапазоне, указанном в настройках условия (от 8 до 20 В)
  • Обороты, RPM
Обороты двигателя больше, меньше или находится в диапазоне, указанном в настройках условия (от 0 до 10 000 об/мин)
  • Основное питание
Основное питание охранного комплекса включено или выключено. Условие «основное питание выключено» может зарегистрировать только оборудование с резервным источником питания (например, M96)
  • Пробег, км
Пробег автомобиля больше, меньше или находится в диапазоне, указанном в настройках условия (от 0 до 999 999 км)
  • Скорость, км/ч
Скорость автомобиля больше, меньше или находится в диапазоне, указанном в настройках условия (от 0 до 255 км/ч)
  • Температура двигателя, С
Температура двигателя автомобиля больше, меньше или находится в диапазоне, указанном в настройках условия (от −40°С до +120°С)
  • Температура основного блока, С
Температура основного блока охранного комплекса больше, меньше или находится в диапазоне, указанном в настройках условия (от −40°С до +85°С)
  • Уровень топлива, %
Уровень топлива в баке автомобиля больше, меньше или находится в диапазоне, указанном в настройках условия (от 0 до 100%)
Индикация
  • Звукоизлучатель в основном блоке
Звукоизлучатель в корпусе основного блока включен или выключен
  • Сирена
Сирена включена или выключена
Метки
  • В зоне видимости метка с севшей батарейкой
В зоне видимости присутствует или отсутствует любая зарегистрированная метка с севшим элементом питания
  • Метка (любая)
В зоне видимости присутствует или отсутствует любая зарегистрированная метка
  • Метка №1
В зоне видимости присутствует или отсутствует метка, зарегистрированная под номером 1
  • Метка №2
В зоне видимости присутствует или отсутствует метка, зарегистрированная под номером 2
  • Метка №3
В зоне видимости присутствует или отсутствует метка, зарегистрированная под номером 3
  • Метка №4
В зоне видимости присутствует или отсутствует метка, зарегистрированная под номером 4
  • Метка №5
В зоне видимости присутствует или отсутствует метка, зарегистрированная под номером 5
Программы
  •  Программа №1
  • Программа №10
Работает в данный момент программа или не работает
Состояние охранного комплекса
  • Блокировка двигателя

Блокировка двигателя включена или выключена

  • Запуск двигателя

Алгоритм запуска находится в одном из следующих состояний:

  • активна поддержка зажигания
  • двигатель запускается
  • двигатель запущен
  • поддержка зажигания не активна
  • Кнопка валет
Сервисная кнопка нажата или отпущена
  • Предпусковой подогреватель
Предпусковой подогреватель двигателя запущен или остановлен
  • Предыдущий режим работы

Предыдущий режим работы охранного комплекса был одним из:

  • в охране
  • запрет поездки
  • ожидание авторизации владельца
  • сервисный режим
  • снято с охраны
  • тревога
  • предупредительный сигнал тревоги
  • Режим работы

Текущий режим работы охранного комплекса один из:

  • в охране
  • запрет поездки
  • ожидание авторизации владельца
  • сервисный режим
  • снято с охраны
  • тревога
  • предупредительный сигнал тревоги
Статусы автомобиля
  • Аксессуары (CAN)
Аксессуары включены или выключены
  • Багажник

Багажник открыт или закрыт

  • Двери
Все двери закрыты или открыта хотя бы одна дверь автомобиля
  • Двигатель
Двигатель запущен или остановлен
  • Задний ход
Включен или выключен задний ход
  • Зажигание
Зажигание включено или выключено
  • Капот
Капот открыт или закрыт
  • Паркинг
Паркинг включен или выключен
  • Педаль тормоза
Педаль тормоза нажата или отпущена
  • Ручной тормоз
Парковочный тормоз затянут или отпущен
  • Свечи накала
Свечи накала в дизельном двигателе включены или отключены
  • Сенсор ручки двери
Сигнал на сенсоре ручки двери — есть или нет

(1) Если канал используется в программе гибкой логики, то в таблице каналов напротив его названия появляется специальный значок:

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

(2) Некоторые параметры доступны, только если они есть в CAN шине или были выполнены соответствующие подключения. Например, если к основному блоку не подключен внешний датчик температуры двигателя, то использовать параметр «Температура двигателя, С» как условие программы гибкой логики не получится.

Действия

Список доступных в гибкой логике действий постоянно расширяется

Действие программы гибкой логики запускается, когда происходит событие и выполняется условие. Интерфейс настройки действия немного сложнее, чем у события или условия.

Для действия можно задать:

1. Задержку запуска от 0 до 1000 секунд. Действие будет выполняться не сразу после появления события, а спустя заданное время.

2. Выполнение действия можно прервать, задав одно или два события и от одного до трех условий. Каждое из событий прерывает выполнение действия, если выполняются все условия. Досрочное прерывание возможно только для длительного действия или действия, которое выполняется с задержкой.

Действия для удобства настройки разделены на группы:

flex-logic-doings-map

Группа Действие Что является действием Досрочное
прерывание (1)
SMS
  • Отправка SMS на M1

На номер M1 отправляется SMS с текстом, соответствующим названию программы гибкой логики. Пример:

При падении напряжения на аккумуляторе автомобиля ниже 11В в охране на телефон М1 будет отправлено СМС сообщение

Внимание! Сел аккумулятор!

нет
Гибкие аналоговые выходы
  • XS1:1
  • XS3:4

На выход подается активный уровень (включить), пассивный уровень (отключить) или серия импульсов. Меню настройки импульсов на гибком выходе:

1. Параметры импульсов на аналоговом выходе:

  • длительность первого импульса
  • пауза между первым и вторым импульсом
  • длительность второго импульса
  • пауза после второго импульса.

Длительность импульсов и пауз задаются в диапазоне от 10 до 60000 мс (0.01 … 60 сек)

2. Первый и второй импульс с паузами можно повторить от 1 до 100 раз

3. На время работы действия можно игнорировать датчики охранного комплекса. Это полезно, если гибкая логика включает штатную механику автомобиля, например, складывает зеркала или закрывает багажник.

да
Индикация
  • Звукоизлучатель в основном блоке
  • Поворотники
  • Сирена
  • Статусный светодиод

На устройство индикации подается заданное количество импульсов (включить) либо индикация прекращается (выключить):

1. Для звукоизлучателя в основном блоке и сирены можно установить громкость от 1 до 100

2. Количество импульсов задается от 1 до 30

3. Активная фаза (включение индикации) задается от 0.01 до 30 секунд

4. Пауза между включениями задается от 0.01 до 30 секунд

да
Состояние охранного комплекса




  • Запуск двигателя

Доступны следующие действия:

  • сбросить программную нейтраль
  • завершить автозапуск не отключая силовые выходы
  • завести двигатель
  • завести двигатель без постановки в охрану
  • заглушить двигатель
  • запретить автозапуск
  • разрешить автозапуск
нет
  • Имитация двери

Действие имитирует открытие двери автомобиля

нет
  • Ничего не выполнять
Это действие не выполняет ничего полезного, но во время его работы повторный запуск программы запрещен. нет
  • Предпусковой подогреватель
Включение или выключение предпускового подогревателя двигателя нет
  • Режим работы

Изменение режима работы охранного комплекса. Доступны следующие варианты:

  • включить «свободные руки»
  • выйти из сервисного режима
  • выключить «свободные руки»
  • перейти в сервисный режим
  • поставить в охрану без закрытия центрального замка
  • поставить в охрану и закрыть центральный замок
  • снять с охраны без открытия центрального замка
  • снять с охраны и открыть центральный замок
нет
  • ЦЗ
Открытие или закрытие центрального замка нет
Статусы автомобиля
  • Багажник

Отпирание багажника

нет

Примечания:

(1) Если перед действием включена задержка хотя бы на 1 секунду, то можно выбрать событие, прерывающее действие досрочно, даже если в таблице указано «нет»

Примеры использования гибкой логики

В этом разделе мы рассмотрим несколько программ гибкой логики, которые можно использовать в реальной жизни. Для примера будем использовать охранный комплекс StarLine X96.

Умный видеорегистратор

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

Для этого питание видеорегистратора нужно подключить к аналоговому выходу охранного комплекса. Этот канал будем использовать в действии программ гибкой логики.

Включение регистратора при включении тревоги

Сначала настроим канал XS1:14, к которому подключим питание регистратора:

Чтобы этот канал работал только в программе гибкой логики и не участвовал во встроенных алгоритмах охранного комплекса, выберем функцию Функция не назначена. Полярность выхода — положительная: при активном уровне на выходе появится +12В с максимально допустимым током 7 Ампер. Такого тока достаточно для питания любого регистратора или даже двух.

В качестве событий, запускающих программу, мы используем переход охранного комплекса в состояние Тревога предупредительная (срабатывание предупредительного уровня датчика удара) и Тревога основная.

При переходе охранного комплекса в тревогу подадим на выход XS1:14 импульс длительностью 30 секунд. За это время регистратор успеет включиться и записать хулигана на видео:

Включение регистратора при начале движения

Вторую программу настроим так, чтобы регистратор включался при начале движения автомобиля и выключался при глушении двигателя. Для этого в качестве события будем использовать датчик движения, ограничив условием работающего двигателя:

Действие программы — включение аналогового выхода, к которому подключено питание прибора. А чтобы регистратор выключался, используем событие остановки двигателя для прерывания программы:

Умный домаргиватель

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

Программа домаргивателя использует все возможности гибкой логики, поэтому она сложнее, чем алгоритм умного видеорегистратора.

Каналы, которые мы будем использовать в StarLine X96 могут работать в режиме «вход-выход»: они могут одновременно подавать активный уровень для включения сигнала поворота и детектировать активный уровень, если лампа была включена электрооборудованием автомобиля (подрулевым переключателем или аварийкой). Для канала XS1.8 нужно выбрать функцию «Левый поворотник (управление и чтение состояния для ан. слейва)», полярность выходного сигнала должна быть положительной:

Канал XS1.9 настроим аналогично, только выберем функцию «Правый поворотник (управление и чтение состояния для ан. слейва)»:

Если в охранном комплексе StarLine шестого поколения нет каналов типа «вход-выход», то можно использовать два — вход и выход, соединив их вместе. Если выход подключается напрямую к лампам, то он должен иметь положительный активный уровень и достаточный выходной ток (в зависимости от типа и количества ламп на каждом борту). При необходимости управлять лампами можно через реле. В любом случае активный уровень входа и выхода должны совпадать.

Вот как выглядит программа домаргивания левым поворотником:

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

turn-lights-1

Событие будет срабатывать только в том случае, если двигатель запущен — это условие программы.

Действие разберем подробно:

1. После первого включения поворотника через подрулевой переключатель программа ждет 400 мс. Это время должно быть на 20-50 мс больше паузы между сигналами поворота. Задержка необходима, чтобы прервать программу, если подрулевой переключатель зафиксирован водителем или включена аварийка:

turn-light-2

Не забудьте подобрать длительность паузы на автомобиле. Она должна быть на 20-50 мс больше, чем пауза между включениями лампы поворота.

2. Если в течение задержки 400 мс на поворотнике не появились сигналы, программа начинает подавать импульсы на канал, подключенный к лампам:

turn-lights-3

3. Длительности импульсов и пауз необходимо подобрать на каждом автомобиле индивидуально, чтобы они совпадали со штатными настройками. 

4. Программа гибкой логики должна прерывать выполнение, если водитель снова сдвигает подрулевой переключатель или включает аварийку:

turn-light-4

Очень важную функцию выполняет второе действие программы:

Это действие необходимо для того, чтобы заблокировать повторный запуск домаргивателя на 10 секунд:

Действие ничего не выполняет, но перед ним включена задержка. Пока эта задержка не закончится, программа гибкой логики выполняется и не будет реагировать на новые события.

Управление правым поворотником реализовано аналогично:

Советы и хитрости использования гибкой логики

1. Название программы гибкой логики сохраняется в настройках охранного комплекса. Из-за архитектурных особенностей длина названия ограничена. Если поле с названием засветилось оранжевым, то программа не будет сохраняться в устройство — нужно сократить длину названия:

2. Если необходимо выполнить одно и то же действие, но при разных событиях — не создавайте еще одну программу гибкой логики. Попробуйте добавить еще одно событие в уже существующую программу:

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

4. Если нужно выполнить несколько действий, добавляйте их в программу, не создавайте еще одну:

5. Если нужно ограничить частоту запуска программы (то есть задать интервал, в течение которого событие запускать программу не будет), используйте прием из примера домаргивателя. Добавьте в программу действие «Ничего не выполнять» и задайте задержку выполнения. Программа будет повторена только после того, как закончится это время (если, конечно, она не будет прервана раньше другим событием):