Posts: 155
Threads: 12
Joined: Sep 2015
Reputation:
13
Hi, I have Mitsubishi Electric ME-200 device. it control all AC devices in my project. it connectedd to LM via Bacnet app
I have abot 50 AC units and need to map about 10 variables for each.
every map takes about 5 to 30 seconds after pressing "save"
is there a way to make mapping automatic? or make "save" procedure faster?
Posts: 1764
Threads: 6
Joined: Jul 2015
Reputation:
117
I would never use 500 objects with the client, way to much…
The client is intended for limited amount of objects like a heatpump or some other device you need to add.
With your setup you should use a BMS as client and link it with BACnet server of the controller..
Posts: 155
Threads: 12
Joined: Sep 2015
Reputation:
13
(21.11.2021, 21:24)Erwin van der Zwart Wrote: I would never use 500 objects with the client, way to much…
I think sometime i could reduce amount of variables. at least I need 4 or 5 per AC unit (on/off, mode, fan, 1 or 2 setpoints).
but you dont answer. is there a way to make it faster?
Posts: 7758
Threads: 42
Joined: Jun 2015
Reputation:
447
You can use a script instead. But all communication (reading and writing) should be in a single resident script. Otherwise the communication can fail randomly if LM tries to read and write at the same time. If you need to read many objects at once you can use bacnet.scandevice():
https://forum.logicmachine.net/showthrea...7#pid22457
Since instant reaction is not needed for AC units you can do it like this:
- Read current values from the AC unit, update status objects if needed
- Compare status values with current control values in LM objects, write back to BACnet if values are different
Keep in mind that setpoint values might have a slight difference due to how floating point numbers and handled so direct comparison might not work, use this:
Code: if math.abs(control - status) > 0.1 then
write()
end
Posts: 264
Threads: 39
Joined: Feb 2016
Reputation:
1
Hello,
I have a problem on customer Building.
I have setup communication with Air flow system Swegon with BAcnet Ip.
1/ My BIG PROBLEM is that when I try to map knx object to Bacnet Object, it's very long time to linked them (60sec). Then if I try to link a second one it doesn't work anymore. I saw that the SL reboot. So I try again and see that the Memory usage go very high, so it(s very painful to link other objetc, I need to wait, re-scan... and doesn't work everytime.
2/ Is there a place where I can download the app for offline site ? The customer didn't give Internet access to Spacelynk in this building
3/ In the Bacnet app view, is there a way to display the current value (add column).
I used to deal with:
https://openrb.com/logicmachine-as-bacnet-client/
I installed the ipk, but looks like I can't anymore and can't use require bacnet library
-----------
FRANCE SMARTHOME & SMARTBUILDING INTEGRATION
SE ECO EXPERT
Posts: 155
Threads: 12
Joined: Sep 2015
Reputation:
13
it took me a few years, but i made this:
Code: --таблица номеров пемещений, названий, id бакнета
log('start bac mapping create')
rooms = {
{'CL.201_Лифтовый холл', 101},
{'CL.204_Мастер спальня', 102},
{'CL.205_Кабинет', 103},
{'CL.206_Игровая', 104},
{'CL.208_Коридор', 105},
{'CL.210_Спальня девочек', 106},
{'CL.213_Спальня мальчиков', 107},
{'CL.216_Спальня ЕГ', 108},
{'CL.111_Спальня мальчиков', 109},
{'CL.110_Гостиная 1', 110},
{'CL.110_Гостиная 2', 111},
{'CL.102_Мастер кухня', 112},
{'CL.108_Массажная', 113},
{'CL.105_Холл', 114},
{'CL.101_Тамбур', 115},
{'CL.0.18_Сигарная', 117},
{'CL.0.19_Кинозал', 118},
{'CL.0.11_Гостевая 1', 119},
{'CL.0.14_Гостевая 2', 120},
{'CL.04_Кухня персонала', 121},
{'CL.05.2_Спальня персонала 2', 122},
{'CL.05.1_Спальня персонала 1', 123},
{'CL.0.17_Постирочная', 124},
{'CL.01_Коридор и комната отдыха', 125}
}
--таблица KNX переменных для панелей и актуаторов отопления
KNX_t = {
{'current temp', 'temperature', {'clim'}},
{'setpoint', 'temperature', {'clim'}},
{'setpoint', 'temperature', {'clim'}},
{'room mode', 'switch',{'clim'}},
{'fan speed', dt.uint8},
{'heating value', 'scale'},
{'heating manual', 'switch'}
}
-- 1: 'id ending'_'datatype number'
bacnet_t ={
{'01_4', 'binary output', 'switch', 'OnOffSetup'},
{'02_3', 'binary input', 'switch', 'OnOffState'},
{'03_3', 'binary input', 'switch', 'AlarmSignal'},
{'04_13', 'multi-state input', dt.uint32, 'ErrorCode'},
{'05_14', 'multi-state output', dt.uint32, 'OperationModeSetup'},
{'06_13', 'multi-state input', dt.uint32, 'OperationModeState'},
{'07_14', 'multi-state output', dt.uint32, 'FanSpeedSetup'},
{'08_13', 'multi-state input', dt.uint32, 'FanSpeedState'},
{'09_0', 'analog input', dt.float32, 'RoomTemp'},
{'10_2', 'analog value', dt.float32, 'SetTemp'},
{'24_2', 'analog value', dt.float32, 'SetTempCool'},
{'25_2', 'analog value', dt.float32, 'SetTempHeat'},
{'26_2', 'analog value', dt.float32, 'SetTempAuto'}
}
-- создаем все адреса и готовим таблицу маппинга
start_knx_adr = knxlib.encodega('10/0/1')
start_bac_adr = knxlib.encodega('33/0/1')
mapping = {}
for i = 1, #rooms do
base_name = rooms[i][1]
bac_id = rooms[i][2]
--создаем чистый KNX, кроме Гостиной 2 - это для второго когдиционера
if base_name ~= 'CL.110_Гостиная 2' then
for j = 1, #KNX_t do
grp.create({
datatype = KNX_t[j][2],
address = knxlib.decodega(start_knx_adr +(i-1)*256 + j - 1),
name = rooms[i][1]..'_'..KNX_t[j][1],
tags = KNX_t[j][3]
})
end
end
--создаем виртуальные адреса для бакнета и заполняем таблицу маппинга
for k = 1, #bacnet_t do
bac_adr = knxlib.decodega(start_bac_adr +(i-1)*256 + k - 1)
grp.create({
datatype = bacnet_t[k][3],
address = bac_adr,
name = rooms[i][1]..'_'..bacnet_t[k][4]
})
bac_key = rooms[i][2]..bacnet_t[k][1]
mapping[bac_key] = {
['addr'] = bac_adr,
['type'] = bacnet_t[k][2],
['priority'] = 16,
['writeToBus'] = false
}
end
end
storage.set('app:se-bnc:DeviceObjects:3', mapping)
log('end bac mapping create')
this is for Mitsubishy AE-200.
All you need to know is bacnet id of gateway an fill rooms. works few seconds instead of hours in GUI
|