Управление освещением
    Презентации
    Технические решения на LogicMachine
    Визуализация
      evika.ru    Технические решения на LogicMachine    Реализация «горячей» замены LogicMachine

    Реализация «горячей» замены LogicMachine

    Пример: Реализация «горячей» замены LogicMachine
    Задача:

    Реализовать автоматическую «горячую» замену LogicMachine (MASTER — ведущий) на LogicMachine (SLAVE — подчинённый) при потере связи с MASTER устройством.

    Backup файл

    На MASTER устройстве создаем backup файл с рабочей конфигурацией в меню Утилиты -> Резервное копирование (Utilities -> Backup) и импортируем этот файл на SLAVE устройство через Утилиты -> Восстановление (Utilities -> Restore).

    Тестовый групповой адрес
    Добавляем тестовый групповой адрес например 1/1/1 на оба устройства с типом данных 12. 4 байта, целое без знака (12. 4 byte unsigned integer)

    MASTER резидентный скрипт
    На MASTER добавляем резидентный скрипт с задержкой 5 секунд и код:

    grp.write('1/1/1', os.time(), dt.uint32)

    SLAVE резидентный скрипт

    На SLAVE добавляем резидентный скрипт с задержкой 10 секунд и код:

    -- current object value (получаем значение объекта)
    curr = grp.getvalue('1/1/1')
    -- previous object value or current if not set (предыдущее значение, или текущее, 
    -- если предыдущее не было установлено)
    prev = prev or curr
     
    -- master timeout
    if curr == prev then
    -- first error (первая ошибка)
    	if not timeout then
    		alert('master offline')
    		-- enable scripts here (включаем скрипты в этом месте)
        script.enable('test1')
        script.enable('test2')
    		timeout = true
    	end
    -- master ok, recovered from error (мастер восстановился)
    elseif timeout then
    	alert('master online')
    	-- disable scripts here (отключаем скрипты в этом месте)
      script.disable('test1')
      script.disable('test2')
    	timeout = false
    end
     
    -- save previous object value (сохраняем в предыдущем значении текущее)
    prev = curr

     




    Copyright
    © Embedded Systems Rus
    2017. All Rights Reserved