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

Особенности оптимизации работы ModBus – устройств

  • Upload
    kesler

  • View
    75

  • Download
    1

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Особенности оптимизации работы ModBus – устройств

Особенности оптимизации работы ModBus – устройств

Умные решения. Автоматизация и электроснабжение.

(ИП Касьянов Алексей Александрович, г. Ростов-на-Дону)

Углубленное изучение и успешное применение продукции компании Evika на примере Logic

Machine 2 Interface

Page 2: Особенности оптимизации работы ModBus – устройств

Общее задание на строительство

энергоэффективного здания

Разработать комплекс мероприятий по снижению потребления энергии из сетевых источников энергии на:

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

Page 3: Особенности оптимизации работы ModBus – устройств

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

Page 4: Особенности оптимизации работы ModBus – устройств

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

Machine 2 от Evika

Page 5: Особенности оптимизации работы ModBus – устройств

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

http://lm.evika.ru

Page 6: Особенности оптимизации работы ModBus – устройств

Тренды от Logic Machine 2

Page 7: Особенности оптимизации работы ModBus – устройств

Особенности настройки устройств ModBus

на примере преобразователей сигналов термосопротивлений Seneca Z-4RTD2

Читаем значения из 16-bit регистров (регистры №№ 40003...6 преобразователей сигналов термосопротивлений Seneca Z-4RTD2)

В Modbus, если написано 40003, то нужно понимать, что адрес регистра читается:

1) без первой четвёрки; 2) в шестнадцатеричном виде; 3) -1 (нужно из адреса вычесть единицу).И получается, что описанные регистры 40003...6,

это h0002...5, или просто (в десятичном счислении) - 2...5!

Page 8: Особенности оптимизации работы ModBus – устройств

Чтение из регистров 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 (от 1 до 16, чтобы считать соответствующие

(номеру датчика) поправки, и записать в соответствующий групповой адрес KNX)

y=math.floor((z-(t1[x]-z*t2[x]))*100)/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 -- конец цикла kend -- конец цикла l

Page 9: Особенности оптимизации работы ModBus – устройств

Запись в регистры 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 domb:writeregisters(0x0024+i,0x12)

log(s..i)end

endmb:close()

Page 10: Особенности оптимизации работы ModBus – устройств

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

Page 11: Особенности оптимизации работы ModBus – устройств

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

Page 12: Особенности оптимизации работы ModBus – устройств

Данная презентация была проведена на стенде EVIKA на

выставке HI-TECHBUILDING 2013