Особенности оптимизации работы ModBus – устройств Умные решения. Автоматизация и электроснабжение. (ИП Касьянов Алексей Александрович, г. Ростов-на-Дону)

Презентация:



Advertisements
Похожие презентации
(самоконтроль) Урок информатики в 9 А классе по теме: "Составление алгоритмов и программ с использованием конструкций следование и ветвление"
Advertisements

Выбор действий в Бейсике (ветвление). Задача: найти максимальное число из двух чисел. Словесная форма записи: Алгоритм MAX Начало 1. Запросить числа A,
Пусть нам необходимо сформировать текстовый файл с помощью Паскаля, а затем переписать из данного файла во второй только те строки, которые начинаются.
ООО СТАТИБА БЕЛг. Минск Первое выступление на конференции по автоматизации зданий в г.Минске разработчика продуктов Embedded Systems Шмакова А.
Алгоритмические структуры 1.Линейный 2.Ветвление 3.Цикл.
ЦИКЛИЧЕСКИЙ АЛГОРИТМ Цели: -Познакомиться с понятием циклического алгоритма. -Освоить языковые средства для реализации циклических алгоритмов.
Основные типы алгоритмических структур. Линейный алгоритм ( следование ) Алгоритм, в котором команды выполняются последовательно одна за другой, называется.
Организация повторений в Паскале. i,1,n Действие 1 Действие 2 i,1,n Действие 1 Действие 2 FOR i:=1 TO N DO BEGIN действие 1; действие 2; END; FOR i:=1.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Домашнее задание ЕГЭ ДЕМО А13 НАЧАЛО ПОКА вниз ПОКА влево ПОКА вверх ПОКА вправо КОНЕЦ 1) 1 2) 2 3) 3 4) 4.
Работа с файлами.. Процедура Assign(var f; name : String); Связывает внешний файл с именем name и переменную файлового типа f. Все дальнейшие операции.
Вложенные циклы. Написать 5 раз «Привет» program qq; begin writeln('Привет'); end.
Организация повторений в Паскале. Найди ошибки: Program new Uses crt; Var a, b, c integer Begin clrscr Readln(a,b); C:=a*a+b*b Wreteln(c); End.
Работа с одномерными массивами Урок информатики 9 кл.
Файловый тип данных Файл – это область памяти на внешнем носителе, в которой хранится некоторая информация. В языке Паскаль файл представляет собой последовательность.
Алгоритмическая структура цикл Алгоритм циклической структуры - это алгоритм, в котором происходит многократное повторение одного и того же участка программы.
Циклические алгоритмы. Задача 1. Вычислить значение функции при x=2, 3, 4, …, 50. Определение. Циклическим называют алгоритм, в котором получение результата.
МассивМассив представляет собой совокупность данных одного типа с общим для всех элементов именем. Массив относится к структурированным типам данных (упорядоченная.
Программирование на языке Паскаль Самостоятельная работа в группах.
Решение задач по программированию. С клавиатуры вводятся значения температур за некоторый период времени. Определить среднее значение отрицательных температур.
Транксрипт:

Особенности оптимизации работы ModBus – устройств Умные решения. Автоматизация и электроснабжение. (ИП Касьянов Алексей Александрович, г. Ростов-на-Дону) Углубленное изучение и успешное применение продукции компании Evika на примере Logic Machine 2 Interface

Общее задание на строительство энергоэффективного здания Разработать комплекс мероприятий по снижению потребления энергии из сетевых источников энергии на: - нужды отопления и вентиляции – в 5 (пять) раз - нужды горячего водоснабжения - в 3 (три) раза - на кондиционирование (охлаждение) дома в жаркое время года – в 40 (сорок) раз

Принципиальная схема

Диспетчеризация и автоматизация бойлера-аккумулятора на Logic Machine 2 от Evika

Реализация проекта. Скрипт на языке Lua (LM2 от Evika)

Тренды от Logic Machine 2

Особенности настройки устройств ModBus на примере преобразователей сигналов термосопротивлений Seneca Z-4RTD2 Читаем значения из 16-bit регистров (регистры преобразователей сигналов термосопротивлений Seneca Z-4RTD2) В Modbus, если написано 40003, то нужно понимать, что адрес регистра читается: 1) без первой четвёрки; 2) в шестнадцатеричном виде; 3) -1 (нужно из адреса вычесть единицу). И получается, что описанные регистры , это h , или просто (в десятичном счислении) !

Чтение из регистров ModBus -- устанавливаем slave ID для чтения и записи данных for l =1,4 do mb:setslave(l) -- задаём адрес устройства 1, 2, 3, 4 (предварительно настроены аппаратно с помощью DIP-переключателей на самих устройствах) -- читаем значения из 16-bit регистров for k =1,4 do z = mb:readregisters(k+1) x = x увеличиваем счётчик на 1 (от 1 до 16, чтобы считать соответствующие (номеру датчика) поправки, и записать в соответствующий групповой адрес KNX) y=math.floor((z-(t1[x]-z*t2[x]))*100)/ вычисляем t скорр-нную и округляем значение до сотых sy=sy+y -- суммируем скорректированные значения для вычисления средней t b = "1/1/"..x -- создаём имя группового адреса KNX (от 1/1/1 до 1/1/16 - в соответствии с порядковыми номерами датчиков) adr = grp.alias(b) -- присваиваем переменной значения с адресом KNX grp.write(adr,y) -- записываем значение Y в групповой адрес KNX zy=z-y -- вычисляем поправку log(" температура датчика "..l.."-"..k.." ("..x..") = "..z.." гр. С, (c поправками: +"..t1[x].." *"..t2[x].." = "..y..". Поправка "..zy..")") -- печатаем в страницу Log else err="Ошибка датчика "..x -- формируем сообщение об ошибке, добавляя к нему номер датчика alert (err) -- публикуем сообщение об ошибке на странице alert errx=errx+1 -- увеличиваем на единицу счётчик датчиков с ошибками end -- конец основного тела скрипта end -- конец цикла k end -- конец цикла l

Запись в регистры ModBus -- инициализируем Modbus при первом запуске скрипта if not mb then require('luamodbus') mb = luamodbus.rtu() mb:open('/dev/ttyS2', 38400, 'N', 8, 1, 'H') mb:connect() end -- устанавливаем slave ID для чтения и записи данных for s =1,4 do mb:setslave(s) for i =0,3 do mb:writeregisters(0x0024+i,0x12) log(s..i) end mb:close()

Аппаратная реализация

Бойлер-аккумулятор

Данная презентация была проведена на стенде EVIKA на выставке HI-TECHBUILDING 2013