BACnet Protocol

Bullzi

Lifetime Supporting Member
Join Date
Jun 2012
Location
Colorado
Posts
1,530
Hi Everyone,

Woking on a job where I will be interacting with a heating controller that uses BACnet. I have never dealt with BACnet before so I have a couple of questions.

1. How does BACnet work? Is is a Master/Slave protocol like Modbus?
2. What is the Database structure of a BACnet controller? Tag? Address? or numeric like Modbus?
3. I plan on using the Red Lion CR3000 HMI as a converter from BACnet to EIP. How do I set up Crimson for BACnet?

Thanks for the help!!
 
I've used a little bit of BacNet, prosoft make some modules to interface to Ethernet/IP, and I've set a couple of them up.

From memory, they use an alpha-numeric type addressing scheme, e.g.
BI123 = Binary Input 123 - a digital input
AO456 = Analog Output 456 - an analog output
BV321 = Binary Value 321 - an internal bool
AV654 = Analog Value 654 - an internal analog value (I think all analog values are floating point, but don't quote me on it)

There are other more complicated data types, but for your purposes I don't suspect you'd need to get too far into that.
 
If the Red Lion has an interface to your PLC you just select that on one side and BACnet on the other side (of the type required - there are several forms of BACnet) and you map the I/O. Additionally you may have to scale and select different types of values - eg kilowatts, volts, hertz etc true and false for the BACnet people. They just extract everything from the Red Lion device. There are several types of inputs and outputs as above and there is a word type that is 16 bits as well so you can map 16 bits into a word in the PLC and the Red Lion device will bust it up into bits for the BACnet people. Just finished a job with an Anybus Modbus to BACnet converter.
 
Last edited:
Hi, if it's any help, I just got through with a 2 year project with air handlers and BACnet. I worked for an integrator and we contracted a company that did all the BACnet stuff. The company we were doing the project for wanted all A-B PLC processors and I/O. The way we worked with the BACnet and the building automation system was we used a Real Time automation gateway to talk to the JACE controller, which is the BACnet hardware. It uses software called Niagra I believe. So the BAS was linked directly to the JACE, which I could see through the gateway. We just made a template for the BACnet tags in logic. The HMI was a real POS and had the ASHRAE type buttons on it, as well as the graphics. They were really bad. The BAS system had the same thing on a computer. The operator could change setpoints, override valves, settings, etc and get statuses back from the PLC. It was really cool. If you're interested I can send you a screenshot of the template we used in logic to set up the tags. (RS 5000) Hope this helps.
 
Thanks for the info everyone!! saultgeorge, I would grateful if you would share that template with me.
 
Bullzi
OK, so here's the scoop. This is working well for us when I did a bunch of air handlers for a new office building/lab at Ford the last 2 years. I wrote all these programs from scratch, BTW. So you may think something is weird, but everyone programs differently.
The snip shows UDT's which will be as follows: Bacnet_in is AHU control and AHU setpoints, Bacnet_out is AHU alarms and AHU status. So those AHU UDT's are nested in Bacnet in and Bacnet out. Bacnet "in" means an operation from either BAS or the operator OR from the HMI will go through the BACnet software in the JACE controller and then into the gateway and into logic. BACnet "out" is reversed. A readback, for instance, from a setpoint would go the other way and show up in the HMI at the unit or the operator console at BAS. Lastly, the RTA gateway is where the real template comes in. Those gateways are like anything else, the tags have to match exactly or it won't send or receive a value and just throw an error for that point. The first few units I did in '18 I had the PLC tags in the gateway, and had a lot of problems with this--syntax, data type etc. So my boss invented this template for these last 3 units.
So the way this works is your BACnet integrator will assign points to his program. An example in the snip is Outside air temp. It comes into BACnet from the BAS. He assigned it to a point in his program, which is irrelevant to me. I then had him assign that point to BNET.AO_44, which is in the RTA Gateway UDT. He can see this. His system doesn't care what my tag name is, only what point I want it assigned to in the gateway. Now I took that gateway tag, BNET.AO_44 and used it in logic, for which now I can assign that analog value of Outside air temp anywhere in logic. So the BACnet out is going into the gateway (RTA_in.AHU_Control.Outside_Air_Temp.) and I moved it to a tag which I use in logic. Actually OAT is important for heating and cooling mode changes/permissives.
So then, an AI would be like supply air temp which comes into my PLC from a sensor in the unit to an AI card in the rack. I send that value up the "chain" as I described above in reverse to the gateway, JACE, HMI and BAS console/operator so they can see it. Hope this helps you, let me know if I can be of further confusion--I mean assistance. Stay healthy and safe.

BNET_Gateway routine.PNG Binary.PNG UDT'S.PNG
 
Hey everyone,
Finally getting back to this job soon and have a couple of questions.

I am using the Red Lion CR1500 to be my Protocol converter. So I set everything up in the Crimson Software. I have Gateway Blocks set up to write the data to my L30 PLC.


What seemed weird was that when I device to the BACnet driver it does not ask me for a IP address of the controller that I want to talk to (see attached). It just has the Device ID. So how does the HMI know how to find the HVAC Controller without a IP Address? Does it just go out on the local Sub Net and find the controller?


Give me your thoughts thanks!!

BACnet settings.png
 
Bullzi
Hi, I'm not too sure about the BACnet part, because my company contracted another sub to do all the BACnet programming and get all the points into BACnet and to and from the gateway. I have a really good manual on BACnet for beginners, basically, and I read through it a few months back. It has quite a bit of troubleshooting tips, but the short answer to your questions is I'm not sure. I do remember him always trying to "discover" devices and having trouble with that sometimes, so I would guess that's how it's done rather than with an IP address.
As far as the HMI, I would have it connect into logic (that's what I did), and then as I mentioned in a previous reply, that logic will go through the gateway. If there's a building automation system HMI, that's a different protocol and it will connect directly to the JACE controller (BACnet), and again through the gateway to Rockwell. And reverse. Your HMI will do the opposite, if there's one on the unit. PM me if you want and I can send you this manual. You may have it. Stay safe and good luck. Hope this helps.
 
There's BACNet TCP (ethernet-based) and BACNet MS/TP (serial). If you're using the former, it'll need an IP address; if you're using the latter it'll need a node address. "Device ID" might be the node address, I've only worked closely with BACNet TCP so I'm not 100% sure. But that'd be where I'd start looking.
 
I think ASF is on to something. I worked on one Redlion project with modbus and depending on which port (serial or ethernet), it would ask me for ID and/or IP address.
 
Is there an ethernet port on that unit? I did a quick search and it looks like serial, but there may be various versions. But it does sound like MS/TP, which is runs on RS-485.
 
There's BACNet TCP (ethernet-based) and BACNet MS/TP (serial). If you're using the former, it'll need an IP address; if you're using the latter it'll need a node address. "Device ID" might be the node address, I've only worked closely with BACNet TCP so I'm not 100% sure. But that'd be where I'd start looking.
I have it set up as BACnet UDP/IP Master in the network Protocol tree.
Is there an ethernet port on that unit? I did a quick search and it looks like serial, but there may be various versions. But it does sound like MS/TP, which is runs on RS-485.
Yes there is a Ethernet port on the BACnet Controller. The Controller is set up as a BACnet Brodcast Management Device (according to the HVAC guy). I have a IP address to connect to the device. I just dont see anything in the Crimson 3.1 Software to set up a IP address. The only thing I can think of is that the HMI will browse the local sub net looking for devices that are BACnet and respond to the ID number I put in the software.


Attached are some snips of all the settings in the HMI that pertain to this. Let me know if you have any thoughts.
Thanks

HMI Network Snip.png HMI Network Snip2.png HMI Network Snip3.png BACnet settings.png
 
I know nothing about BACnet but out of curiosity, I set up a Crimson example to poke around. In your file, click on the device under the BACnet protocol, then click on the Device ID value and press F1. The pop-up help window gives a clue about how it sets up a route to the device.
 
I have just commissioned a job with a HMS Anybus Modbus TCP to BACnet server.The BMS people just find the BACnet device on the network and upload everything from the server and they were away - that is how BACnet works - very little work on their side. Normally an IP address, mask and gateway are required to be entered into the server for the BACnet side. The Modbus TCP side was interesting - I could not get it to work. Eventually did a Google search and found the port number for Modbus TCP is 502 - changed it and all was good. The other thing the BACnet people required was scaling done in the device, what each item is (ie volts), and they wanted AI and BI not AV and BV for some reason.
 
Thanks for the help everyone,
based on what I have read and have seen Bob and Oki were right. With BACnet the HMI sends out a "request" on the Ethernet port for the BACnet devices on the line. The BACnet devices sends all the connection parameters (along with others) back to the master. From then on the HMI now knows how to get to all the devices.


So I have been able to talk to one of the buildings controllers and I am getting data. It was much easier than I made it out to be.



The issue I am having now is that the other building is on a different sub net than my Control Network. The IT person has set up a VPN between the sub nets but I cant see any data. I think it may have to do with the way the HMI "broadcasts" a request for the BACnet device over the network. I have a feeling that the VPN may be stripping out the request or some part of the reply.



The IT person is working on it but I was hoping that maybe someone here would have some ideas on how to make this work across the VPN. Let me know if you have any thoughts.
 

Similar Topics

Masters, I have Vijeo Designer v5.1 HMI which is to be link with the BMS using BACNET protocol. I am using the PROTOCON module(Protocol...
Replies
0
Views
4,451
I am in need of a protocol converter from BACnet to Ethernet IP and vice versa. The Ethernet IP end will be an Omron PLC (probably CJ2M) and the...
Replies
10
Views
9,773
Hi all, I have a customer who wishes to to display some of the information from their refrigeration plant (CompactLogix PLC on Ethernet/IP) on...
Replies
9
Views
1,489
Anyone have success using Ignition 8 and the BACNet driver? We are going to try and read data out of our Carrier Chiller. Carrier tech is...
Replies
0
Views
584
I am trying to get data from a Chiller to an AB PLC or to my SCADA system. The protocol is BACNet/Ethernet, which is a layer2 protocol distinct...
Replies
0
Views
1,051
Back
Top Bottom