Issues with Bacnet
Hello, I'm having some issues with Bacnet that I'm hoping someone might have some insight on. Please bear with me as I'm not super familiar with Bacnet yet.
The setup is as follows
- Mango ES
- PC running a software called FAS-BAC for energy by AFDTEK
This software is a translator for a Carma metering solution. Basically what it's supposed to do is interface with the Carma server and then present the objects as Bacnet objects. This is the point where my knowledge of Bacnet fails me a bit. The FAS-BAC server appears as an object on the Bacnet network and the Mango can see it. All the of the meter objects are supposed to appear as virtual devices I believe, or at least there is supposed to be another "device" with all the meter readings. Anyway, I can't get the mango to see anything past the base server device. I can't seem to scan the device for any properties or points either, I get an error in the mango interface which I didn't write down.
The reason I'm asking here is because I have a piece of software on my laptop, YABE (yet another Bacnet explorer) and when I scan the network I can see what I'm looking for. I can see the FAS-BAC server device, I can see the "virtual" devices and I can discover the meter points.
At this point, until I get to site again and try it again, I'm curious if there are any known issues around this kind of setup with the Mango? Are there limitations I need to be aware of? Is there something special I need to do for virtual devices? I should be able to get to site this week and read exactly what the error message is as well as even grab wireshark logs to see what is going on.
Thanks a lot!
phildunlap last edited by
The majority of the time the binding address is the cause. Have you tried both the local network address of the ES and 0.0.0.0 as the bind address of the BACnet Local Device (configurable on the system settings page)?
Interesting. I can't remember if I specifically tried the bind address, I feel like I did.
Would you mind elaborating for me what the issue is with the bind address? Maybe knowing that will point me towards something I can figure out.
phildunlap last edited by phildunlap
The issue is that lots of BACnet traffic uses broadcast addresses. Your BBMD is probably alerting network address 192.168.1.255 (or whatever the subnet may be) to its existence, for instance, and you need to bind an address that would enable you to receive that BVLC packet and respond, or have routing such that the broadcast packet is delivered to the application by the operating system (the role of the binding address).
I have heard a customer report turning IPv6 off helped them, but it doesn't make a great deal of sense to me that resolved anything for them. BACnet4J can certainly run on machines with IPv6 stacks. And, the source program they compared it to was even using BACnet4J under the covers!
I found the blurb in the manual I was looking for.
FasBAC consists of one primary (physical) BACnet device and one or more BACnet virtual devices on a subnetwork. One virtual BACnet device will be created for each Carma MMServer defined in its MasterConfig.csv file. The primary FasBAC BACnet device acts as a router for the virtual devices
So that software is supposed to be a BACnet router between my directly accessible broadcast domain and the virtual devices it creates.
I wonder if I can just bind the AV variables directly and forego all the discovery.
phildunlap last edited by phildunlap
I can't comment specifically on FasBAC. But, if your other discovery tool YABE is working, one could reasonably expect Mango to work without fussing with that CSV file more.
No, I don't think you would be able to explicitly set information about the devices into data points and then forego all discovery. Alas discovery is integral in BACnet for the complex routing topology it supports.
My suggestion remains the bind address. There's really nothing else to look at until you try that again, if you are uncertain that you did. Another thing is that typically BBMDs are only broadcasting their existence periodically, so it may take a moment for the LocalDevice to be informed of the existence of the BBMD, so perhaps enable your BACnet data source when you've bound 0.0.0.0 and then a minute or two later attempt the discovery.
Much appreciated Phil
Hey, I'm on site and trying some things. I wanted to post the error I get when I do a discovery. Currently my BACnet bind address is 0.0.0.0 network 0. I can do a scan from Mango and it sees two devices, 3286 and 3287.
3286 is a physical device and it shows up as Network Number 0 and MAC IP:47808. I can do a "Get Details" on it to get some more info, it shows me Object Type, Object name etc. It's just the one object that shows up.
3287 is supposed to be my virtual device and it shows up as Network Number 1617 MAC 1. When I do a "Get Details" on it I get this error showing up in the Mango
com.serotonin.bacnet4j.type.constrcuted.BACnetError cannot be cast to com.serotonin.bacnet4j.type.constructed.ServicesSupported
I will goof around with the bind address to see if I get anything else but maybe this error gives some clue to what is going on here.
So poking around I've found that this server doesn't provide me a I-Am-Router-To advertisement, so I'm not surprised Mango can't get to this virtual network address. I'll follow up with them
I'm not sure what's going on, here's a screenshot of the bacnet tool on my laptop, it can see everything and I'm seeing values from the bacnet objects. I tried all kinds of different things on the mango, bacnet at 0.0.0.0, at local IP, at local IP and bcast network at localnetwork.255 etc. Cannot get in there. I'm stumped.
The server is the RootFASBAC thing and the virtual device is 131_Queen. The window in the middle is useless and the right pane shows the current value of one of the points in the fasbac server. Ignore the fact that there is an EOMANGO in the screenshot, I setup a bacnet publisher and tried to write from the server to the mango after trying all the other stuff initially.
phildunlap last edited by
Hmm. I assumed you were on the latest Mango. is that true?
I sent you an email to offer to try and assist, but I can't say I know offhand what the issue would be.
I have to login to the site remotely, after I left yesterday that was the one thing I wanted to check is the version of that Mango. It's probably a 2.8 cause I have a mix of 2.8s and the latest versions so I was wondering what would happen if I tried the latest bacnet module there.
I finally managed to get this setup as a bench test using a backup of the customers machine. I also tried this using the latest mango ES and the behaviour is different than the 2.x one which was on site. The 3.2 mango doesn't even show that it sees the second virtual device, only the base physical one. I see some errors in the ma.log about the virtual device and when I spy on things using wireshark I can see the virtual device announcing itself.
Is there any way to directly connect to a device? Just specify in the mango where and what to connect to? Even if it was something I had to write as code, I just need to connect to this damn thing so I can move on with my life :)
Also, I noticed that on the 3.2 mangos there are far less options in the bacnet slave device config, no MAC address and something else.