SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Mengenal BACnet
Building Automation & Control Networks
By Dony Riyanto
Juni 2021
Introduction
• BACnet adalah sebuah protokol komunikasi untuk kendali peralatan
otomasi pada bangunan.
• BACnet sudah diadopsi oleh ISO menjadi standar ISO16484-5
• BACnet pertama kali dikembangkan oleh ASHRAE pada tahun 1987,
lalu di adopsi ANSI/ISO pada tahun 2003. Dan pada tahun 2017 sudah
memiliki 1000 vendor id
Protocol Overview
• The BACnet protocol defines a number of services that are used to
communicate between building devices. The protocol services include
Who-Is, I-Am, Who-Has, I-Have, which are used for Device and Object
discovery. Services such as Read-Property and Write-Property are
used for data sharing. As of ANSI/ASHRAE 135-2016, the BACnet
protocol defines 60 object types that are acted upon by the services.
• The BACnet protocol defines a number of data link / physical layers,
including ARCNET, Ethernet, BACnet/IP, BACnet/IPv6, BACnet/MSTP,
Point-To-Point over RS-232, Master-Slave/Token-Passing over RS-485,
ZigBee, and LonTalk.
FAQ (1)
• What is BACnet?
• BACnet is "a data communication protocol for building automation and control networks." A data
communication protocol is a set of rules governing the exchange of data over a computer network.
The rules take the form of a written specification (in BACnet's case they are also on compact disk)
that spells out what is required to conform to the protocol.
• What kinds of things are covered by BACnet's "rules"?
• Everything from what kind of cable to use to how to form a particular request or command in a
standard way. What makes BACnet special is that the rules relate specifically to the needs of
building automation and control equipment, i.e., they cover things like how to ask for the value of
a temperature, define a fan operating schedule, or send a pump status alarm.
FAQ(2)
• But every manufacturer's system in different! How can BACnet possibly do all these things in a standard way?
• The trick is that BACnet provides a standard way of representing the functions of any device, as long as it has these functions. Examples are
analog and binary inputs and outputs, schedules, control loops, and alarms. This standardized model of a device represents these common
functions as collections of related information called "objects," each of which has a set of "properties" that further describe it. Each analog
input, for instance, is represented by a BACnet "analog input object" which has a set of standard properties like present value, sensor type,
location, alarm limits, and so on. Some of these properties are required while others are optional. One of the object's most important
properties is its identifier, a sort of numerical name that allows BACnet to unambiguously access it. Once devices have common
"appearances" on the network in terms of their objects and properties, it's easy to envision messages that can manipulate this information
in a standard way.
• OK, so what kinds of messages does BACnet define?
• Because BACnet is based on a "client-server" model of the world, BACnet messages are called "service requests." A client machine sends a
service request to a server machine that then performs the service and reports the result to the client. BACnet currently defines 35 message
types that are divided into 5 groups or classes. For example, one class contains messages for accessing and manipulating the properties of
the objects described above. A common one is the "ReadProperty" service request. This message causes the server machine to locate the
requested property of the requested object and send its value back to the client. Other classes of services deal with alarms and events; file
uploading and downloading; managing the operation of remote devices; and virtual terminal functions.
FAQ(3)
• Is BACnet limited only to HVAC equipment? Can it be used with fire/life safety, lighting control, and other building automation systems?
• Absolutely. In fact, if you think about it, BACnet already contains most of the capabilities required for non-HVAC communications. These
include the ability to read and write binary, analog, and text data; schedule control actions; send event and alarm notifications; and so on.
Nonetheless, the committee realized that these capabilities might not cover all situations and developed the standard with an eye toward
accommodating future, unknown building automation and control applications. As a result, one of the real strengths of the BACnet model
that emerged from this consideration is that it can be easily extended. If a vendor comes up with some new functionality for which
communication is required, the vendor can add new properties to existing object types or create new object types that are accessed in
exactly the same way as the eighteen defined in the standard. This is not only expected, it is encouraged. Moreover, a vendor could even
dream up new services that go beyond the standard ones. Of course, proprietary features may not be interoperable without vendor
cooperation.
• I keep hearing about "interoperability" but I like the vendor I deal with now. Does BACnet require multivendor installations?
• Definitely not. BACnet is just a protocol. It makes possible the interconnection of different vendors' equipment that uses BACnet, but in no
way requires it. Since many vendors will probably choose, sooner or later, to use BACnet as their "native" protocol, you could easily end up
with a single-vendor BACnet system. Also, I agree with you. I would much prefer to deal with a single, or at most a couple of vendors. The
issue is making sure their pencils stay sharp at bid time!
FAQ(4)
• What about connecting BACnet systems together? What networking options are there for BACnet?
• Good point! Up until now I have just been talking about the BACnet object-oriented model and the various services or message types. You still need to
pick an appropriate network technology to connect everything together. The BACnet committee spent a lot of time on this part of the standard. We
ended up with 5 different options, each of which fills a particular niche in terms of the price/performance tradeoff. The first is Ethernet, the fastest at 10
Mbps with 100 Mbps also recently available. ("Mbps" stands for "millions of bits per second.") Ethernet is also likely to be the most expensive in terms of
cost per device. Next comes ARCNET at 2.5 Mbps. Both Ethernet and ARCNET can use a variety of physical media – coaxial cable, twisted pairs, even fiber
optic cable. For devices with lower requirements in terms of speed, BACnet defines the MS/TP (master-slave/token-passing) network designed to run at
speeds of 1 Mbps or less over twisted pair wiring. Echelon's LonTalk network can also be used on various media. All of these networks are examples of
"local area networks" or LANs. BACnet also defines a dial-up or "point-to-point" protocol called PTP for use over phone lines or hardwired EIA-232
connections. A key point is that BACnet messages can, in principle, be transported by any network technology, if and when it becomes cost-effective to
do so.
• You mentioned that BACnet can use LonTalk. Does that mean that any equipment that uses LonTalk can automatically talk to BACnet systems?
• Unfortunately not. LonTalk is Echelon's specification for a recently developed LAN technology that many people thought would be a useful addition to
the BACnet standard. BACnet uses LonTalk to convey BACnet messages in an identical manner to the way BACnet messages are transported by Ethernet,
ARCNET, and MS/TP. Confusion stems from the fact that Echelon has its own generic control language that is also transported by LonTalk. In order for
LonTalk devices to be interoperable, even using Echelon's language, there has to be agreement between implementers as to what the generic messages
mean in a particular context. To obtain such agreements, Echelon has set up the LonMark Program which has working groups made up of people from
each industry that are trying to reach implementers' agreements on how to use Echelon's proprietary control language in a common way for their
applications. The point is that the BACnet language and the Echelon language are fundamentally different and devices using one of the languages can
never interoperate directly with devices using the other, even though they might possibly share a common LonTalk LAN.
FAQ(5)
• I like the idea of BACnet but what about all my existing DDC systems? Can
BACnet help tie them together too?
• Maybe, maybe not. In order for a BACnet device, say an operator workstation,
to talk to non-BACnet devices like your existing DDC system from XYZ Controls,
you need an intervening gateway. A "gateway" is like a United Nations
translator that can speak two languages. On one side it speaks BACnet, on the
other side the XYZ protocol of your legacy system. Naturally the most likely
source for such a gateway would be the XYZ company and they may, or may
not, choose to develop one.
• What if some of my DDC systems are on Ethernet and some are on, say,
MS/TP. Is there any way to connect them together?
• Yes. Besides allowing the use of different LANs, the BACnet standard also
specifies how to build routers. "Routers" are simply devices that connect
multiple networks together. The networks may be of the same or different
types.
DDC for HVAC System
http://www.automatedbuildings.com/news/oct08/articles/lama/080927122101lama.htm
*Example DDC to BACnet System
https://controltrends.org/building-automation-and-integration/04/ddc-training-with-the-bascontrol22-for-
colleges-and-training-centers-interested-in-providing-direct-digital-control-ddc-system-training/
FAQ(6)
• Now I'm confused. What's the difference between a router and a gateway?
• I don't blame you. A lot of people use the terms almost interchangeably. In BACnet a router is a device that
passes a message from one network to another without changing the form or content of the message. If the
networks are of different types, the addresses, error checking, in short, the "packaging," of the message may get
changed, much as you would repackage an ordinary U. S. Postal Service letter if you were going to send it further
using FedEx or UPS. A gateway, on the other hand, opens the letter, translates it into a second language if
possible, puts it back into some type of envelope or another, then sends it on. Obviously, it can take more time
and energy to do a translation than to simply forward a message so gateways are more complicated machines
than routers.
• Do BACnet routers really exist?
• Sure. In fact, at the BACnet demonstration booth in Atlanta in February 1995 (sponsored by the National
Institute of Standards and Technology's (NIST) BACnet Interoperability Testing Consortium), we had controllers
running on all the BACnet network types, except PTP, and all interoperating. To interconnect them, we had an
Ethernet-ARCNET router, an Ethernet-MS/TP router, and an Ethernet-LonTalk router.
BACnet objects
BACnet network
The concept of a BACnet network made up of one or more IP subnets is described.
1. Management of broadcasts of all types (local, remote, global), and thereby the use of BACnet unconfirmed services, is specified both
within and between BACnet/IP and non-BACnet/IP, i.e., traditional, BACnet networks.
2. Broadcast management is accomplished by defining the capabilities of a new device called a BACnet Broadcast Management Device
(BBMD). Alternatively, IP Multicast may be used.
3. BACnet/IP communication is implemented by defining a new protocol layer called the "BACnet Virtual Link Layer" or BVLL. The advantages
are many: this approach is readily extensible to other, future transport mechanisms such as IPv6, ATM, Sonet, and so on. Second, the
concept of defining an extensible mechanism for peer-to-peer management of BACnet messages - beyond merely solving the broadcast
limitations of the Internet - means that other manipulations, such as encryption/decryption and compression/decompression can be
performed outside of the process of generating BACnet APDU/NPDUs, i.e., without altering the existing standard.
4. Provision is made for "foreign" devices to join BACnet/IP networks and thus, potentially, a BACnet internetwork. This part of the
specification addresses, among other things, the requirements for remote workstation access, including access via SLIP or PPP.
5. Routing between BACnet/IP and non-BACnet/IP networks is specified, including the case where IP and non-IP BACnet devices reside on the
same LAN.
6. Routing between multiple BACnet/IP networks is specified.
BACnet Topology
Essentially, a Building Management System (BMS) connects to a data aggregator. That aggregator
connects to different zones or applications via MS/TP connections, or to different IP devices via IP
connections. Data is shared from the zones or devices, up to the aggregator and BMS. Simple!
https://optigo.net/blog/what-does-bacnet-topology-look
BACnet Internetworking Flow
Scheider Electric BACnet Solution
https://www.iot-now.com/wp-content/uploads/2019/08/Bacnet-topology_compliance.png
BACnet Simulation (1)
• A laptop
• Download Yabe (Yet another BACnet explorer)
https://sourceforge.net/projects/yetanotherbacnetexplorer/
• That's it
BACnet Simulation (2)
• Run Yabe
• Click + green button
• Choose BAC0
• Choose IP
• Click Add
Yabe will listen on UDP 47808 or
0xBAC0 in hex.
BAC1 on 47809,
BAC2 on 47810, and so on
BACnet Simulation (3)
• Run a device simulator
• Yabe comes with at 2 simulator .exe
• Bacnet.Room.Simulator.exe (GUI for room
temperature)
• Wheather2_to_Bacnet.exe (CLI weather sensor)
Both device is automatically read on Yabe Explorer
BACnet Simulation (3)
192.168.1.100
192.168.1.101
Run Yabe & Bacnet.Room.Simulator here
Run Bacnet.Room.Simulator,
or Weather2_to_Bacnet here
Yabe will automatically detect all devices
(from laptop & PC). Event on different
port (of course, you need to add
BAC1/BAC2 or else listener on Yabe.
BACnet Programming(1)
• Install Python 3 (at least 3.5)
• pip install BAC0
• That's all library you need before coding minimal app on BACnet. But
if you want a complete package, please install:
• pip install netifaces
• pip install bokeh
• pip install pandas
• pip install flask
• pip install flask_bootstrap
BACnet Programming(2)
• Close all previous BACnet app (Yabe, Room, Weather)
• Code:
import BAC0
bacnet = BAC0.lite()
• This code will start BAC0 system on background, and lister to UDP
0xBAC0.
BACnet Programming(3)
• Now run 1 or 2 device simulator
• Type this command on REPL:
bacnet.discover(networks='known')
• Or add this line to your .py file & re-run the script:
• print(bacnet.discover(networks='known')
1 device detected
BACnet Programming(4)
• To do BAC0 complete mode, do this:
bacnet = BAC0.connect()
• The connect function will
automatically detect dependency. If
you already have all the
dependencies needed (flask,
flask_bootstrap, bokeh, pandas), it
will switches to complete mode
(with web server started).
Otherwise, it will launch lite mode,
event if you use BAC0.connect
command
• Open browser with this address:
http://localhost:8111
BACnet Programming(5)
192.168.1.19
192.168.1.12
Run Yabe here
Run python BAC0.connect() here
Yabe will detect the BAC0.connect script
as a new device but without any object
(and random device ID)
BACnet Programming(6)
• Now we'll try to create new device
using BAC0
• Copy and save this script as
bac0device.py
• Cont. on next page or copy it from
here
https://pastebin.com/awXmG4ip
• This script is a modified version of
BAC0 unit test. You can find it here
https://github.com/ChristianTrembla
y/BAC0/blob/master/tests/manual_t
est_create_device.py
from collections import namedtuple
import time
import BAC0
from BAC0.core.devices.local.models import (
analog_input,
analog_output,
analog_value,
binary_input,
binary_output,
binary_value,
multistate_input,
multistate_output,
multistate_value,
date_value,
datetime_value,
temperature_input,
temperature_value,
humidity_input,
humidity_value,
character_string,
)
from BAC0.core.devices.local.object import ObjectFactory
from BAC0.core.devices.local.models import make_state_text
def add_points(qty_per_type, device):
ObjectFactory.clear_objects()
basic_qty = qty_per_type - 1
# Analog Inputs
# Default... percent
for _ in range(basic_qty):
_new_objects = analog_input(presentValue=99.9)
_new_objects = multistate_value(presentValue=2)
# Supplemental with more details, for demonstration
_new_objects = analog_input(
name="ZN-T",
properties={"units": "degreesCelsius"},
description="Zone Temperature",
presentValue=37,
)
BACnet Programming(6)
• Run the script
• It will create a new device with
id 101, for 60 seconds.
from collections import namedtuple
import time
import BAC0
from BAC0.core.devices.local.models import (
analog_input,
analog_output,
analog_value,
binary_input,
binary_output,
binary_value,
multistate_input,
multistate_output,
multistate_value,
date_value,
datetime_value,
temperature_input,
temperature_value,
humidity_input,
humidity_value,
character_string,
)
from BAC0.core.devices.local.object import ObjectFactory
from BAC0.core.devices.local.models import make_state_text
def add_points(qty_per_type, device):
ObjectFactory.clear_objects()
basic_qty = qty_per_type - 1
# Analog Inputs
# Default... percent
for _ in range(basic_qty):
_new_objects = analog_input(presentValue=99.9)
_new_objects = multistate_value(presentValue=2)
# Supplemental with more details, for demonstration
_new_objects = analog_input(
name="ZN-T",
properties={"units": "degreesCelsius"},
description="Zone Temperature",
presentValue=37,
)
states = make_state_text(["Normal", "Alarm", "Super Emergency"])
_new_objects = multistate_value(
description="An Alarm Value",
properties={"stateText": states},
name="BIG-ALARM",
is_commandable=True,
presentValue = 1,
)
# All others using default implementation
for _ in range(qty_per_type):
_new_objects = analog_output(presentValue=89.9)
_new_objects = analog_value(presentValue=79.9)
_new_objects = binary_input()
_new_objects = binary_output()
_new_objects = binary_value()
_new_objects = multistate_input()
_new_objects = multistate_output()
_new_objects = date_value()
_new_objects = datetime_value()
_new_objects = character_string(presentValue="Hello World",
is_commandable=True)
_new_objects.add_objects_to_application(device)
def network_and_devices():
device_app = BAC0.lite(port=47808, deviceId=101)
add_points(1, device_app)
print("Will be closed in a minute...")
time.sleep(60)
network_and_devices()
BACnet Programming(6)
• This is the result of detected device on
Yabe
• Learn more of BAC0 here
https://bac0.readthedocs.io/en/latest/
• Since BAC0 depends on bacpypes, it
would be helpful if you also read
bacpypes document
https://bacpypes.readthedocs.io/en/la
test/
Wanna Play with More Device Variant?
• Download Bacnet Simulator
from scadaengine here
http://www.scadaengine.com/d
ownloads/BACnetSimulator_5.0.
31.exe
• It's 30 days free
• It has a lot of simulated devices,
such ass: Access Door, Elevator,
Escalator, etc
Other Resources
• Read more about bacnet here http://www.bacnet.org or
http://www.bacnet.org/Developer/
• Download other free bacnet tools here
http://bacnet.sourceforge.net/
• Perhaps you need more experiments, download bacnet-tools here
https://sourceforge.net/projects/bacnet/files/bacnet-tools/

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

ECI UTC Webinar MPLS-TP Value for Utilities-dec 2015
ECI UTC Webinar MPLS-TP Value for Utilities-dec 2015ECI UTC Webinar MPLS-TP Value for Utilities-dec 2015
ECI UTC Webinar MPLS-TP Value for Utilities-dec 2015
 
Introduction to PROFIBUS and PROFINET - andy verwer
Introduction to PROFIBUS and PROFINET -  andy verwerIntroduction to PROFIBUS and PROFINET -  andy verwer
Introduction to PROFIBUS and PROFINET - andy verwer
 
Open Interconnect Consortium - Why & What
Open Interconnect Consortium - Why & WhatOpen Interconnect Consortium - Why & What
Open Interconnect Consortium - Why & What
 
OSPF v3
OSPF v3OSPF v3
OSPF v3
 
Tutorial on IEEE 802.15.4e standard
Tutorial on IEEE 802.15.4e standardTutorial on IEEE 802.15.4e standard
Tutorial on IEEE 802.15.4e standard
 
Communication Protocols
Communication ProtocolsCommunication Protocols
Communication Protocols
 
Packet tracer
Packet tracerPacket tracer
Packet tracer
 
Iot
IotIot
Iot
 
Basic of MODBUS Communication/Protocol
Basic of MODBUS Communication/ProtocolBasic of MODBUS Communication/Protocol
Basic of MODBUS Communication/Protocol
 
Fieldbus wiring guide
Fieldbus wiring guideFieldbus wiring guide
Fieldbus wiring guide
 
Industrial Networking - Profibus
Industrial Networking - ProfibusIndustrial Networking - Profibus
Industrial Networking - Profibus
 
Profinet Training
Profinet Training Profinet Training
Profinet Training
 
WiFi - IEEE 802.11
WiFi - IEEE 802.11WiFi - IEEE 802.11
WiFi - IEEE 802.11
 
Distributed Control System (Presentation)
Distributed Control System (Presentation)Distributed Control System (Presentation)
Distributed Control System (Presentation)
 
Hart communication
Hart communicationHart communication
Hart communication
 
Pic 16f877 a
Pic 16f877 aPic 16f877 a
Pic 16f877 a
 
Routers and Routing Configuration
Routers and Routing ConfigurationRouters and Routing Configuration
Routers and Routing Configuration
 
Profibus
ProfibusProfibus
Profibus
 
Ccna ppt1
Ccna ppt1Ccna ppt1
Ccna ppt1
 
Hart Protocol Introduction
Hart Protocol IntroductionHart Protocol Introduction
Hart Protocol Introduction
 

Similar a Introduction to BACnet: Building Automation & Control Network

Networking Standards ( Osi Layers )
Networking Standards ( Osi Layers )Networking Standards ( Osi Layers )
Networking Standards ( Osi Layers )Renee Jones
 
Bacnet for field technicians
Bacnet for field techniciansBacnet for field technicians
Bacnet for field techniciansJuan Taveras
 
BACnetIntroduction.pdf
BACnetIntroduction.pdfBACnetIntroduction.pdf
BACnetIntroduction.pdfLuis867269
 
Understanding Open Protocols in Building Automation
Understanding Open Protocols in Building AutomationUnderstanding Open Protocols in Building Automation
Understanding Open Protocols in Building AutomationSchneider Electric
 
INTERNET ARCHITECTURE.pptx
INTERNET ARCHITECTURE.pptxINTERNET ARCHITECTURE.pptx
INTERNET ARCHITECTURE.pptxShanthini28
 
Mi0035 computer networks...
Mi0035  computer networks...Mi0035  computer networks...
Mi0035 computer networks...smumbahelp
 
Protols used in bluetooth
Protols used in bluetoothProtols used in bluetooth
Protols used in bluetoothSonali Parab
 
netconf, restconf, grpc_basic
netconf, restconf, grpc_basicnetconf, restconf, grpc_basic
netconf, restconf, grpc_basicGyewan An
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
| IJMER | ISSN: 2249–6645 | www.ijmer.com | Vol. 4 | Iss. 4 | April 2014 ...
    | IJMER | ISSN: 2249–6645 | www.ijmer.com | Vol. 4 | Iss. 4 | April 2014 ...    | IJMER | ISSN: 2249–6645 | www.ijmer.com | Vol. 4 | Iss. 4 | April 2014 ...
| IJMER | ISSN: 2249–6645 | www.ijmer.com | Vol. 4 | Iss. 4 | April 2014 ...IJMER
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goalskamaelian
 
Network Built For Local Area Networks Essay
Network Built For Local Area Networks EssayNetwork Built For Local Area Networks Essay
Network Built For Local Area Networks EssayKatyana Londono
 
Unit 3 Assignment 1 Osi Model
Unit 3 Assignment 1 Osi ModelUnit 3 Assignment 1 Osi Model
Unit 3 Assignment 1 Osi ModelJacqueline Thomas
 
Essay On NT1210- Unit 3 Assignment 1
Essay On NT1210- Unit 3 Assignment 1Essay On NT1210- Unit 3 Assignment 1
Essay On NT1210- Unit 3 Assignment 1Lakeisha Jones
 
Spring Boot for WebRTC Signaling Servers: A Comprehensive Guide
Spring Boot for WebRTC Signaling Servers: A Comprehensive GuideSpring Boot for WebRTC Signaling Servers: A Comprehensive Guide
Spring Boot for WebRTC Signaling Servers: A Comprehensive GuideInexture Solutions
 

Similar a Introduction to BACnet: Building Automation & Control Network (20)

Networking Standards ( Osi Layers )
Networking Standards ( Osi Layers )Networking Standards ( Osi Layers )
Networking Standards ( Osi Layers )
 
Unit 4
Unit 4Unit 4
Unit 4
 
Bacnet for field technicians
Bacnet for field techniciansBacnet for field technicians
Bacnet for field technicians
 
BACnetIntroduction.pdf
BACnetIntroduction.pdfBACnetIntroduction.pdf
BACnetIntroduction.pdf
 
WebRTC presentation
WebRTC presentationWebRTC presentation
WebRTC presentation
 
Understanding Open Protocols in Building Automation
Understanding Open Protocols in Building AutomationUnderstanding Open Protocols in Building Automation
Understanding Open Protocols in Building Automation
 
Internet
InternetInternet
Internet
 
INTERNET ARCHITECTURE.pptx
INTERNET ARCHITECTURE.pptxINTERNET ARCHITECTURE.pptx
INTERNET ARCHITECTURE.pptx
 
Mi0035 computer networks...
Mi0035  computer networks...Mi0035  computer networks...
Mi0035 computer networks...
 
Protols used in bluetooth
Protols used in bluetoothProtols used in bluetooth
Protols used in bluetooth
 
Middleware Technologies ppt
Middleware Technologies pptMiddleware Technologies ppt
Middleware Technologies ppt
 
netconf, restconf, grpc_basic
netconf, restconf, grpc_basicnetconf, restconf, grpc_basic
netconf, restconf, grpc_basic
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
| IJMER | ISSN: 2249–6645 | www.ijmer.com | Vol. 4 | Iss. 4 | April 2014 ...
    | IJMER | ISSN: 2249–6645 | www.ijmer.com | Vol. 4 | Iss. 4 | April 2014 ...    | IJMER | ISSN: 2249–6645 | www.ijmer.com | Vol. 4 | Iss. 4 | April 2014 ...
| IJMER | ISSN: 2249–6645 | www.ijmer.com | Vol. 4 | Iss. 4 | April 2014 ...
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goals
 
Network Built For Local Area Networks Essay
Network Built For Local Area Networks EssayNetwork Built For Local Area Networks Essay
Network Built For Local Area Networks Essay
 
Unit 3 Assignment 1 Osi Model
Unit 3 Assignment 1 Osi ModelUnit 3 Assignment 1 Osi Model
Unit 3 Assignment 1 Osi Model
 
Essay On NT1210- Unit 3 Assignment 1
Essay On NT1210- Unit 3 Assignment 1Essay On NT1210- Unit 3 Assignment 1
Essay On NT1210- Unit 3 Assignment 1
 
Spring Boot for WebRTC Signaling Servers: A Comprehensive Guide
Spring Boot for WebRTC Signaling Servers: A Comprehensive GuideSpring Boot for WebRTC Signaling Servers: A Comprehensive Guide
Spring Boot for WebRTC Signaling Servers: A Comprehensive Guide
 
Network architecture (protocols) by lanz lowen jay o. bognot
Network architecture (protocols) by lanz lowen jay o. bognotNetwork architecture (protocols) by lanz lowen jay o. bognot
Network architecture (protocols) by lanz lowen jay o. bognot
 

Más de Dony Riyanto

KNIME For Enterprise Data Analytics.pdf
KNIME For Enterprise Data Analytics.pdfKNIME For Enterprise Data Analytics.pdf
KNIME For Enterprise Data Analytics.pdfDony Riyanto
 
Implementasi Teknologi Industri 4.0 pada TNI AD
Implementasi Teknologi Industri 4.0 pada TNI ADImplementasi Teknologi Industri 4.0 pada TNI AD
Implementasi Teknologi Industri 4.0 pada TNI ADDony Riyanto
 
Blockchain untuk Big Data
Blockchain untuk Big DataBlockchain untuk Big Data
Blockchain untuk Big DataDony Riyanto
 
Mengenal ROS2 Galactic
Mengenal ROS2 GalacticMengenal ROS2 Galactic
Mengenal ROS2 GalacticDony Riyanto
 
Membuat Desain Roket Amatir dan Menjalankan Simulasi
Membuat Desain Roket Amatir dan Menjalankan SimulasiMembuat Desain Roket Amatir dan Menjalankan Simulasi
Membuat Desain Roket Amatir dan Menjalankan SimulasiDony Riyanto
 
Creating UDP Broadcast App Using Python Socket on WIndows & Linux
Creating UDP Broadcast App Using Python Socket on WIndows & LinuxCreating UDP Broadcast App Using Python Socket on WIndows & Linux
Creating UDP Broadcast App Using Python Socket on WIndows & LinuxDony Riyanto
 
Desain ground control & Sistem Pendukung untuk Male UAV/UCAV
Desain ground control & Sistem Pendukung untuk Male UAV/UCAVDesain ground control & Sistem Pendukung untuk Male UAV/UCAV
Desain ground control & Sistem Pendukung untuk Male UAV/UCAVDony Riyanto
 
Application Performance, Test and Monitoring
Application Performance, Test and MonitoringApplication Performance, Test and Monitoring
Application Performance, Test and MonitoringDony Riyanto
 
Cloud Service Design for Computer Vision, Image & Video Processing+Analytics
Cloud Service Design for Computer Vision, Image & Video Processing+AnalyticsCloud Service Design for Computer Vision, Image & Video Processing+Analytics
Cloud Service Design for Computer Vision, Image & Video Processing+AnalyticsDony Riyanto
 
RealNetworks - SAFR Platform Whitepaper
RealNetworks - SAFR Platform WhitepaperRealNetworks - SAFR Platform Whitepaper
RealNetworks - SAFR Platform WhitepaperDony Riyanto
 
Dl6960 Demo Software User's Guide v1.4
Dl6960 Demo Software User's Guide v1.4Dl6960 Demo Software User's Guide v1.4
Dl6960 Demo Software User's Guide v1.4Dony Riyanto
 
Review of Existing Response System & Technology.
Review of Existing Response System & Technology.Review of Existing Response System & Technology.
Review of Existing Response System & Technology.Dony Riyanto
 
Beberapa Studi Kasus Fintech Micro Payment
Beberapa Studi Kasus Fintech Micro PaymentBeberapa Studi Kasus Fintech Micro Payment
Beberapa Studi Kasus Fintech Micro PaymentDony Riyanto
 
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANG
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANGRencana Pengembangan REST API dan Microservice pada MONEVRISBANG
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANGDony Riyanto
 
Implementasi Full Textsearch pada Database
Implementasi Full Textsearch pada DatabaseImplementasi Full Textsearch pada Database
Implementasi Full Textsearch pada DatabaseDony Riyanto
 
Beberapa strategi implementasi open api untuk legacy system existing app
Beberapa strategi implementasi open api untuk legacy system existing appBeberapa strategi implementasi open api untuk legacy system existing app
Beberapa strategi implementasi open api untuk legacy system existing appDony Riyanto
 
Pengenalan Big Data untuk Pemula
Pengenalan Big Data untuk PemulaPengenalan Big Data untuk Pemula
Pengenalan Big Data untuk PemulaDony Riyanto
 
Enterprise Microservices
Enterprise MicroservicesEnterprise Microservices
Enterprise MicroservicesDony Riyanto
 
Edge Exploration of QR Code Technology Implementation
Edge Exploration of QR Code Technology ImplementationEdge Exploration of QR Code Technology Implementation
Edge Exploration of QR Code Technology ImplementationDony Riyanto
 
GUGUS-a mini program prototype
GUGUS-a mini program prototypeGUGUS-a mini program prototype
GUGUS-a mini program prototypeDony Riyanto
 

Más de Dony Riyanto (20)

KNIME For Enterprise Data Analytics.pdf
KNIME For Enterprise Data Analytics.pdfKNIME For Enterprise Data Analytics.pdf
KNIME For Enterprise Data Analytics.pdf
 
Implementasi Teknologi Industri 4.0 pada TNI AD
Implementasi Teknologi Industri 4.0 pada TNI ADImplementasi Teknologi Industri 4.0 pada TNI AD
Implementasi Teknologi Industri 4.0 pada TNI AD
 
Blockchain untuk Big Data
Blockchain untuk Big DataBlockchain untuk Big Data
Blockchain untuk Big Data
 
Mengenal ROS2 Galactic
Mengenal ROS2 GalacticMengenal ROS2 Galactic
Mengenal ROS2 Galactic
 
Membuat Desain Roket Amatir dan Menjalankan Simulasi
Membuat Desain Roket Amatir dan Menjalankan SimulasiMembuat Desain Roket Amatir dan Menjalankan Simulasi
Membuat Desain Roket Amatir dan Menjalankan Simulasi
 
Creating UDP Broadcast App Using Python Socket on WIndows & Linux
Creating UDP Broadcast App Using Python Socket on WIndows & LinuxCreating UDP Broadcast App Using Python Socket on WIndows & Linux
Creating UDP Broadcast App Using Python Socket on WIndows & Linux
 
Desain ground control & Sistem Pendukung untuk Male UAV/UCAV
Desain ground control & Sistem Pendukung untuk Male UAV/UCAVDesain ground control & Sistem Pendukung untuk Male UAV/UCAV
Desain ground control & Sistem Pendukung untuk Male UAV/UCAV
 
Application Performance, Test and Monitoring
Application Performance, Test and MonitoringApplication Performance, Test and Monitoring
Application Performance, Test and Monitoring
 
Cloud Service Design for Computer Vision, Image & Video Processing+Analytics
Cloud Service Design for Computer Vision, Image & Video Processing+AnalyticsCloud Service Design for Computer Vision, Image & Video Processing+Analytics
Cloud Service Design for Computer Vision, Image & Video Processing+Analytics
 
RealNetworks - SAFR Platform Whitepaper
RealNetworks - SAFR Platform WhitepaperRealNetworks - SAFR Platform Whitepaper
RealNetworks - SAFR Platform Whitepaper
 
Dl6960 Demo Software User's Guide v1.4
Dl6960 Demo Software User's Guide v1.4Dl6960 Demo Software User's Guide v1.4
Dl6960 Demo Software User's Guide v1.4
 
Review of Existing Response System & Technology.
Review of Existing Response System & Technology.Review of Existing Response System & Technology.
Review of Existing Response System & Technology.
 
Beberapa Studi Kasus Fintech Micro Payment
Beberapa Studi Kasus Fintech Micro PaymentBeberapa Studi Kasus Fintech Micro Payment
Beberapa Studi Kasus Fintech Micro Payment
 
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANG
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANGRencana Pengembangan REST API dan Microservice pada MONEVRISBANG
Rencana Pengembangan REST API dan Microservice pada MONEVRISBANG
 
Implementasi Full Textsearch pada Database
Implementasi Full Textsearch pada DatabaseImplementasi Full Textsearch pada Database
Implementasi Full Textsearch pada Database
 
Beberapa strategi implementasi open api untuk legacy system existing app
Beberapa strategi implementasi open api untuk legacy system existing appBeberapa strategi implementasi open api untuk legacy system existing app
Beberapa strategi implementasi open api untuk legacy system existing app
 
Pengenalan Big Data untuk Pemula
Pengenalan Big Data untuk PemulaPengenalan Big Data untuk Pemula
Pengenalan Big Data untuk Pemula
 
Enterprise Microservices
Enterprise MicroservicesEnterprise Microservices
Enterprise Microservices
 
Edge Exploration of QR Code Technology Implementation
Edge Exploration of QR Code Technology ImplementationEdge Exploration of QR Code Technology Implementation
Edge Exploration of QR Code Technology Implementation
 
GUGUS-a mini program prototype
GUGUS-a mini program prototypeGUGUS-a mini program prototype
GUGUS-a mini program prototype
 

Último

Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substationstephanwindworld
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerAnamika Sarkar
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptMadan Karki
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catcherssdickerson1
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile servicerehmti665
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction managementMariconPadriquez1
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.eptoze12
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...asadnawaz62
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024Mark Billinghurst
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptSAURABHKUMAR892774
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort servicejennyeacort
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringJuanCarlosMorales19600
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...121011101441
 

Último (20)

Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
Earthing details of Electrical Substation
Earthing details of Electrical SubstationEarthing details of Electrical Substation
Earthing details of Electrical Substation
 
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube ExchangerStudy on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
Study on Air-Water & Water-Water Heat Exchange in a Finned Tube Exchanger
 
Indian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.pptIndian Dairy Industry Present Status and.ppt
Indian Dairy Industry Present Status and.ppt
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor CatchersTechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
TechTAC® CFD Report Summary: A Comparison of Two Types of Tubing Anchor Catchers
 
Call Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile serviceCall Girls Delhi {Jodhpur} 9711199012 high profile service
Call Girls Delhi {Jodhpur} 9711199012 high profile service
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction management
 
Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.Oxy acetylene welding presentation note.
Oxy acetylene welding presentation note.
 
complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...complete construction, environmental and economics information of biomass com...
complete construction, environmental and economics information of biomass com...
 
IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024IVE Industry Focused Event - Defence Sector 2024
IVE Industry Focused Event - Defence Sector 2024
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
Arduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.pptArduino_CSE ece ppt for working and principal of arduino.ppt
Arduino_CSE ece ppt for working and principal of arduino.ppt
 
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort serviceGurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
Gurgaon ✡️9711147426✨Call In girls Gurgaon Sector 51 escort service
 
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
🔝9953056974🔝!!-YOUNG call girls in Rajendra Nagar Escort rvice Shot 2000 nigh...
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
Piping Basic stress analysis by engineering
Piping Basic stress analysis by engineeringPiping Basic stress analysis by engineering
Piping Basic stress analysis by engineering
 
Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...Instrumentation, measurement and control of bio process parameters ( Temperat...
Instrumentation, measurement and control of bio process parameters ( Temperat...
 

Introduction to BACnet: Building Automation & Control Network

  • 1. Mengenal BACnet Building Automation & Control Networks By Dony Riyanto Juni 2021
  • 2. Introduction • BACnet adalah sebuah protokol komunikasi untuk kendali peralatan otomasi pada bangunan. • BACnet sudah diadopsi oleh ISO menjadi standar ISO16484-5 • BACnet pertama kali dikembangkan oleh ASHRAE pada tahun 1987, lalu di adopsi ANSI/ISO pada tahun 2003. Dan pada tahun 2017 sudah memiliki 1000 vendor id
  • 3. Protocol Overview • The BACnet protocol defines a number of services that are used to communicate between building devices. The protocol services include Who-Is, I-Am, Who-Has, I-Have, which are used for Device and Object discovery. Services such as Read-Property and Write-Property are used for data sharing. As of ANSI/ASHRAE 135-2016, the BACnet protocol defines 60 object types that are acted upon by the services. • The BACnet protocol defines a number of data link / physical layers, including ARCNET, Ethernet, BACnet/IP, BACnet/IPv6, BACnet/MSTP, Point-To-Point over RS-232, Master-Slave/Token-Passing over RS-485, ZigBee, and LonTalk.
  • 4. FAQ (1) • What is BACnet? • BACnet is "a data communication protocol for building automation and control networks." A data communication protocol is a set of rules governing the exchange of data over a computer network. The rules take the form of a written specification (in BACnet's case they are also on compact disk) that spells out what is required to conform to the protocol. • What kinds of things are covered by BACnet's "rules"? • Everything from what kind of cable to use to how to form a particular request or command in a standard way. What makes BACnet special is that the rules relate specifically to the needs of building automation and control equipment, i.e., they cover things like how to ask for the value of a temperature, define a fan operating schedule, or send a pump status alarm.
  • 5. FAQ(2) • But every manufacturer's system in different! How can BACnet possibly do all these things in a standard way? • The trick is that BACnet provides a standard way of representing the functions of any device, as long as it has these functions. Examples are analog and binary inputs and outputs, schedules, control loops, and alarms. This standardized model of a device represents these common functions as collections of related information called "objects," each of which has a set of "properties" that further describe it. Each analog input, for instance, is represented by a BACnet "analog input object" which has a set of standard properties like present value, sensor type, location, alarm limits, and so on. Some of these properties are required while others are optional. One of the object's most important properties is its identifier, a sort of numerical name that allows BACnet to unambiguously access it. Once devices have common "appearances" on the network in terms of their objects and properties, it's easy to envision messages that can manipulate this information in a standard way. • OK, so what kinds of messages does BACnet define? • Because BACnet is based on a "client-server" model of the world, BACnet messages are called "service requests." A client machine sends a service request to a server machine that then performs the service and reports the result to the client. BACnet currently defines 35 message types that are divided into 5 groups or classes. For example, one class contains messages for accessing and manipulating the properties of the objects described above. A common one is the "ReadProperty" service request. This message causes the server machine to locate the requested property of the requested object and send its value back to the client. Other classes of services deal with alarms and events; file uploading and downloading; managing the operation of remote devices; and virtual terminal functions.
  • 6. FAQ(3) • Is BACnet limited only to HVAC equipment? Can it be used with fire/life safety, lighting control, and other building automation systems? • Absolutely. In fact, if you think about it, BACnet already contains most of the capabilities required for non-HVAC communications. These include the ability to read and write binary, analog, and text data; schedule control actions; send event and alarm notifications; and so on. Nonetheless, the committee realized that these capabilities might not cover all situations and developed the standard with an eye toward accommodating future, unknown building automation and control applications. As a result, one of the real strengths of the BACnet model that emerged from this consideration is that it can be easily extended. If a vendor comes up with some new functionality for which communication is required, the vendor can add new properties to existing object types or create new object types that are accessed in exactly the same way as the eighteen defined in the standard. This is not only expected, it is encouraged. Moreover, a vendor could even dream up new services that go beyond the standard ones. Of course, proprietary features may not be interoperable without vendor cooperation. • I keep hearing about "interoperability" but I like the vendor I deal with now. Does BACnet require multivendor installations? • Definitely not. BACnet is just a protocol. It makes possible the interconnection of different vendors' equipment that uses BACnet, but in no way requires it. Since many vendors will probably choose, sooner or later, to use BACnet as their "native" protocol, you could easily end up with a single-vendor BACnet system. Also, I agree with you. I would much prefer to deal with a single, or at most a couple of vendors. The issue is making sure their pencils stay sharp at bid time!
  • 7. FAQ(4) • What about connecting BACnet systems together? What networking options are there for BACnet? • Good point! Up until now I have just been talking about the BACnet object-oriented model and the various services or message types. You still need to pick an appropriate network technology to connect everything together. The BACnet committee spent a lot of time on this part of the standard. We ended up with 5 different options, each of which fills a particular niche in terms of the price/performance tradeoff. The first is Ethernet, the fastest at 10 Mbps with 100 Mbps also recently available. ("Mbps" stands for "millions of bits per second.") Ethernet is also likely to be the most expensive in terms of cost per device. Next comes ARCNET at 2.5 Mbps. Both Ethernet and ARCNET can use a variety of physical media – coaxial cable, twisted pairs, even fiber optic cable. For devices with lower requirements in terms of speed, BACnet defines the MS/TP (master-slave/token-passing) network designed to run at speeds of 1 Mbps or less over twisted pair wiring. Echelon's LonTalk network can also be used on various media. All of these networks are examples of "local area networks" or LANs. BACnet also defines a dial-up or "point-to-point" protocol called PTP for use over phone lines or hardwired EIA-232 connections. A key point is that BACnet messages can, in principle, be transported by any network technology, if and when it becomes cost-effective to do so. • You mentioned that BACnet can use LonTalk. Does that mean that any equipment that uses LonTalk can automatically talk to BACnet systems? • Unfortunately not. LonTalk is Echelon's specification for a recently developed LAN technology that many people thought would be a useful addition to the BACnet standard. BACnet uses LonTalk to convey BACnet messages in an identical manner to the way BACnet messages are transported by Ethernet, ARCNET, and MS/TP. Confusion stems from the fact that Echelon has its own generic control language that is also transported by LonTalk. In order for LonTalk devices to be interoperable, even using Echelon's language, there has to be agreement between implementers as to what the generic messages mean in a particular context. To obtain such agreements, Echelon has set up the LonMark Program which has working groups made up of people from each industry that are trying to reach implementers' agreements on how to use Echelon's proprietary control language in a common way for their applications. The point is that the BACnet language and the Echelon language are fundamentally different and devices using one of the languages can never interoperate directly with devices using the other, even though they might possibly share a common LonTalk LAN.
  • 8. FAQ(5) • I like the idea of BACnet but what about all my existing DDC systems? Can BACnet help tie them together too? • Maybe, maybe not. In order for a BACnet device, say an operator workstation, to talk to non-BACnet devices like your existing DDC system from XYZ Controls, you need an intervening gateway. A "gateway" is like a United Nations translator that can speak two languages. On one side it speaks BACnet, on the other side the XYZ protocol of your legacy system. Naturally the most likely source for such a gateway would be the XYZ company and they may, or may not, choose to develop one. • What if some of my DDC systems are on Ethernet and some are on, say, MS/TP. Is there any way to connect them together? • Yes. Besides allowing the use of different LANs, the BACnet standard also specifies how to build routers. "Routers" are simply devices that connect multiple networks together. The networks may be of the same or different types. DDC for HVAC System http://www.automatedbuildings.com/news/oct08/articles/lama/080927122101lama.htm
  • 9. *Example DDC to BACnet System https://controltrends.org/building-automation-and-integration/04/ddc-training-with-the-bascontrol22-for- colleges-and-training-centers-interested-in-providing-direct-digital-control-ddc-system-training/
  • 10. FAQ(6) • Now I'm confused. What's the difference between a router and a gateway? • I don't blame you. A lot of people use the terms almost interchangeably. In BACnet a router is a device that passes a message from one network to another without changing the form or content of the message. If the networks are of different types, the addresses, error checking, in short, the "packaging," of the message may get changed, much as you would repackage an ordinary U. S. Postal Service letter if you were going to send it further using FedEx or UPS. A gateway, on the other hand, opens the letter, translates it into a second language if possible, puts it back into some type of envelope or another, then sends it on. Obviously, it can take more time and energy to do a translation than to simply forward a message so gateways are more complicated machines than routers. • Do BACnet routers really exist? • Sure. In fact, at the BACnet demonstration booth in Atlanta in February 1995 (sponsored by the National Institute of Standards and Technology's (NIST) BACnet Interoperability Testing Consortium), we had controllers running on all the BACnet network types, except PTP, and all interoperating. To interconnect them, we had an Ethernet-ARCNET router, an Ethernet-MS/TP router, and an Ethernet-LonTalk router.
  • 12. BACnet network The concept of a BACnet network made up of one or more IP subnets is described. 1. Management of broadcasts of all types (local, remote, global), and thereby the use of BACnet unconfirmed services, is specified both within and between BACnet/IP and non-BACnet/IP, i.e., traditional, BACnet networks. 2. Broadcast management is accomplished by defining the capabilities of a new device called a BACnet Broadcast Management Device (BBMD). Alternatively, IP Multicast may be used. 3. BACnet/IP communication is implemented by defining a new protocol layer called the "BACnet Virtual Link Layer" or BVLL. The advantages are many: this approach is readily extensible to other, future transport mechanisms such as IPv6, ATM, Sonet, and so on. Second, the concept of defining an extensible mechanism for peer-to-peer management of BACnet messages - beyond merely solving the broadcast limitations of the Internet - means that other manipulations, such as encryption/decryption and compression/decompression can be performed outside of the process of generating BACnet APDU/NPDUs, i.e., without altering the existing standard. 4. Provision is made for "foreign" devices to join BACnet/IP networks and thus, potentially, a BACnet internetwork. This part of the specification addresses, among other things, the requirements for remote workstation access, including access via SLIP or PPP. 5. Routing between BACnet/IP and non-BACnet/IP networks is specified, including the case where IP and non-IP BACnet devices reside on the same LAN. 6. Routing between multiple BACnet/IP networks is specified.
  • 13. BACnet Topology Essentially, a Building Management System (BMS) connects to a data aggregator. That aggregator connects to different zones or applications via MS/TP connections, or to different IP devices via IP connections. Data is shared from the zones or devices, up to the aggregator and BMS. Simple! https://optigo.net/blog/what-does-bacnet-topology-look
  • 15. Scheider Electric BACnet Solution https://www.iot-now.com/wp-content/uploads/2019/08/Bacnet-topology_compliance.png
  • 16. BACnet Simulation (1) • A laptop • Download Yabe (Yet another BACnet explorer) https://sourceforge.net/projects/yetanotherbacnetexplorer/ • That's it
  • 17. BACnet Simulation (2) • Run Yabe • Click + green button • Choose BAC0 • Choose IP • Click Add Yabe will listen on UDP 47808 or 0xBAC0 in hex. BAC1 on 47809, BAC2 on 47810, and so on
  • 18. BACnet Simulation (3) • Run a device simulator • Yabe comes with at 2 simulator .exe • Bacnet.Room.Simulator.exe (GUI for room temperature) • Wheather2_to_Bacnet.exe (CLI weather sensor) Both device is automatically read on Yabe Explorer
  • 19. BACnet Simulation (3) 192.168.1.100 192.168.1.101 Run Yabe & Bacnet.Room.Simulator here Run Bacnet.Room.Simulator, or Weather2_to_Bacnet here Yabe will automatically detect all devices (from laptop & PC). Event on different port (of course, you need to add BAC1/BAC2 or else listener on Yabe.
  • 20. BACnet Programming(1) • Install Python 3 (at least 3.5) • pip install BAC0 • That's all library you need before coding minimal app on BACnet. But if you want a complete package, please install: • pip install netifaces • pip install bokeh • pip install pandas • pip install flask • pip install flask_bootstrap
  • 21. BACnet Programming(2) • Close all previous BACnet app (Yabe, Room, Weather) • Code: import BAC0 bacnet = BAC0.lite() • This code will start BAC0 system on background, and lister to UDP 0xBAC0.
  • 22. BACnet Programming(3) • Now run 1 or 2 device simulator • Type this command on REPL: bacnet.discover(networks='known') • Or add this line to your .py file & re-run the script: • print(bacnet.discover(networks='known') 1 device detected
  • 23. BACnet Programming(4) • To do BAC0 complete mode, do this: bacnet = BAC0.connect() • The connect function will automatically detect dependency. If you already have all the dependencies needed (flask, flask_bootstrap, bokeh, pandas), it will switches to complete mode (with web server started). Otherwise, it will launch lite mode, event if you use BAC0.connect command • Open browser with this address: http://localhost:8111
  • 24. BACnet Programming(5) 192.168.1.19 192.168.1.12 Run Yabe here Run python BAC0.connect() here Yabe will detect the BAC0.connect script as a new device but without any object (and random device ID)
  • 25. BACnet Programming(6) • Now we'll try to create new device using BAC0 • Copy and save this script as bac0device.py • Cont. on next page or copy it from here https://pastebin.com/awXmG4ip • This script is a modified version of BAC0 unit test. You can find it here https://github.com/ChristianTrembla y/BAC0/blob/master/tests/manual_t est_create_device.py from collections import namedtuple import time import BAC0 from BAC0.core.devices.local.models import ( analog_input, analog_output, analog_value, binary_input, binary_output, binary_value, multistate_input, multistate_output, multistate_value, date_value, datetime_value, temperature_input, temperature_value, humidity_input, humidity_value, character_string, ) from BAC0.core.devices.local.object import ObjectFactory from BAC0.core.devices.local.models import make_state_text def add_points(qty_per_type, device): ObjectFactory.clear_objects() basic_qty = qty_per_type - 1 # Analog Inputs # Default... percent for _ in range(basic_qty): _new_objects = analog_input(presentValue=99.9) _new_objects = multistate_value(presentValue=2) # Supplemental with more details, for demonstration _new_objects = analog_input( name="ZN-T", properties={"units": "degreesCelsius"}, description="Zone Temperature", presentValue=37, )
  • 26. BACnet Programming(6) • Run the script • It will create a new device with id 101, for 60 seconds. from collections import namedtuple import time import BAC0 from BAC0.core.devices.local.models import ( analog_input, analog_output, analog_value, binary_input, binary_output, binary_value, multistate_input, multistate_output, multistate_value, date_value, datetime_value, temperature_input, temperature_value, humidity_input, humidity_value, character_string, ) from BAC0.core.devices.local.object import ObjectFactory from BAC0.core.devices.local.models import make_state_text def add_points(qty_per_type, device): ObjectFactory.clear_objects() basic_qty = qty_per_type - 1 # Analog Inputs # Default... percent for _ in range(basic_qty): _new_objects = analog_input(presentValue=99.9) _new_objects = multistate_value(presentValue=2) # Supplemental with more details, for demonstration _new_objects = analog_input( name="ZN-T", properties={"units": "degreesCelsius"}, description="Zone Temperature", presentValue=37, ) states = make_state_text(["Normal", "Alarm", "Super Emergency"]) _new_objects = multistate_value( description="An Alarm Value", properties={"stateText": states}, name="BIG-ALARM", is_commandable=True, presentValue = 1, ) # All others using default implementation for _ in range(qty_per_type): _new_objects = analog_output(presentValue=89.9) _new_objects = analog_value(presentValue=79.9) _new_objects = binary_input() _new_objects = binary_output() _new_objects = binary_value() _new_objects = multistate_input() _new_objects = multistate_output() _new_objects = date_value() _new_objects = datetime_value() _new_objects = character_string(presentValue="Hello World", is_commandable=True) _new_objects.add_objects_to_application(device) def network_and_devices(): device_app = BAC0.lite(port=47808, deviceId=101) add_points(1, device_app) print("Will be closed in a minute...") time.sleep(60) network_and_devices()
  • 27. BACnet Programming(6) • This is the result of detected device on Yabe • Learn more of BAC0 here https://bac0.readthedocs.io/en/latest/ • Since BAC0 depends on bacpypes, it would be helpful if you also read bacpypes document https://bacpypes.readthedocs.io/en/la test/
  • 28. Wanna Play with More Device Variant? • Download Bacnet Simulator from scadaengine here http://www.scadaengine.com/d ownloads/BACnetSimulator_5.0. 31.exe • It's 30 days free • It has a lot of simulated devices, such ass: Access Door, Elevator, Escalator, etc
  • 29. Other Resources • Read more about bacnet here http://www.bacnet.org or http://www.bacnet.org/Developer/ • Download other free bacnet tools here http://bacnet.sourceforge.net/ • Perhaps you need more experiments, download bacnet-tools here https://sourceforge.net/projects/bacnet/files/bacnet-tools/