1 / 12

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

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

kesler
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

  5. Реализация проекта.Скрипт на языке Lua (LM2 от Evika)http://lm.evika.ru

  6. Тренды от Logic Machine 2

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

  8. Чтение из регистров 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 -- конец цикла k • end -- конец цикла l

  9. Запись в регистры 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 • end • mb:close()

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

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

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

More Related