Slow Response from BACNet Devices
zdabbas last edited by zdabbas
I have a Mango system that is growing with the specs are as follows:-
- Xeon E3 1.6GHz Server with 20 GB RAM
- Linux Centos 6.7 64 bit
- Mango Enterprise
- 6x USB to RS485 Dongles
- 2x 1Gb Ethernet
I'm using the following protocols:-
- ModBus I/P
- ModBus RTU Serial
- BacNet I/P
- BacNet MS/TP Serial
as I built the system I was only using ModBus, then I introduced BacNet Devices to it, at first BacNet I/P then BacNet MS/TP, when I started using BacNet MS/TP problems started:-
- first the BacNet device where not being discovered, I added a Johnson controller which solved the problem temporarily then an Upgrade for BacNet MS/TP was done by Mango but the problem still persists to this day, if I remove the Johnson Controller the devices stop working. when the upgrade was done I could do manual discovery but now I can't.
- as I added more BacNet devices a delay started occurring, for example:- I have a device with Digital Input and Digital Output, I use a sensor connected to the DI for On/Off when it is On then DO is turned on by Mango when it is Off mango turns off DO. at first the delay was about 2-5 seconds which was acceptable at the beginning there were about 8 devices connected to the RS485 with less than 60 meters of cable (I used CAT6A shielded), as I added more devices the delay started to increase between sensing and turning on, now with 12 devices connected the delay is about 20-30 seconds.
- another problem occurred when I added more devices to the system (14), every about 5 hours a strange thing happens, the devices are seen by Mango and I can control them through DGLux and Mango, but physically nothing happens. I can turn a relay on and off but the light stays either on or off depending on it's last state. the way to solve this is to turn off the Data source and then turn it on again, then things run again, but after 5 hours the same thing happens. the only way to fix it is to remove the 2 new devices.
so I though OK I can add another RS485 and split the devices then it occurred to me that I cannot discover the devices unless I have a BacNet controller with them, which I don't have. and if I remove the Johnson controller and put it on the other network then I lose control on the first.
I really need help with this issue, I can grant access to it so you can check things out.
Did you look through your logs to see if there are any errors?
How many total BACnet Data Points do you have?
What is the Polling rate of the Data Source?
Are they all BACnet MSTP?
Often with BACnet it will use up your High Priority Thread Pool and you'll see an error in the logs about this. I would recommend increasing the thread pool on the system setting page to 1000 or to as many data points as you have.
We have also seen better performance when you have all your data points under one data source rather than a separate data source for each device.
zdabbas last edited by zdabbas
No errors when the devices stop responding. As I said Mango seems to think that the devices are responding I did however noticed that when you turn on / off relay a couple of times it sort of starts turning on and off erratically after a long delay.
As for the thread pool I got the error a while back and I increased it to 1000.
I have 12 devices each with 21 data points and all the data points are in the same data source.
The pooling period is 1 second.
OK here is something new, I'm getting this error alot:
Lights_Fire': Data source with xid: DS_Lights_FireCom3 and name: Lights_Fire, aborted 12 polls.
and the number keeps increasing...
That means the polls are not completing before the next poll is scheduled to start. I would look at your metrics page like this:
I have no idea where to find this matrix..
having said that I increased the timeout on the Bacnet serial configuration and it seems to have solved it. I did find a mis-configuration on the devices and I solved it the delays are still there but a little lower now. I'm getting between 5 - 10 seconds delay between action and physical reaction.
I still think that you should go into the server and see if I made any mistakes that is causing this problem.
also the problem of device discovery still exists, the only way I can do discover is to put a Johnson controller on the serial network. I think it's a problem with devices they need to get the serial configuration from Mango, and Mango is not giving them that.
You find that on the page when you edit a Data Source. I can't comment on the other issue you describe as I have no way of knowing what is going on there.
this is what I got
as for the other problem, it was suppose to fixed with the Bacnet module upgrade. but it wasn't>.
OK since my last post this is what I did.
I checked all the devices for termination and made sure that all of them have no termination except the first and the last.
I changed the USB->RS485 dongle and placed it on a different USB port that doesn't have any devices connected to it.
the result is that the delay has dropped to 4-9 secs for response. (Still a bit long)
the pooling error has Stopped
the problem with the devices being seen by mango but not responding has stooped.
discovery is still an issue. ( I really need help with that since I need to put a $1000 controller to see the devices)
I need help with the delay.
since my last post I did some experimenting and I discovered that the delay is actually from Mango.
what I did was I have a DGBox that I had before, I disconnected Mango from the Bacnet MS/TP network and connected the DGBox, I also Disconnected the Johnson controller. the DGBox discovred the devices quickly, I added the devices and the speed was amazing, as soon as you turn on a datapoint it happens instantly.
any thoughts on that.
We will do some testing on our side and see if we can reproduce something similar. It would be helpful if you could get a serial capture of when the network is slow and when it is fast so we can compare the differences.