# BACnet - poll data from slave MS/TP devices

**URL:** <https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186>\
**Category:** Ignition\
**Created:** [February 15, 2022, 8:50pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186 "2022-02-15T20:50:02Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kaloyan\_Radomirov](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@Kaloyan\_Radomirov](https://forum.inductiveautomation.com/u/Kaloyan_Radomirov)\
**Post date:** [February 15, 2022, 8:50pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/1 "2022-02-15T20:50:02Z")

</div>

We have one Master controller with BACnet IP, (ID 20000) comm and polling data is ok.  
But how I can poll data from slave devices connected to the master in ms/tp?  
ID 20000 - Matser with IP

- ID 20001 - MS/TP
- ID 20002 - MS/TP
- ID 20003 - MS/TP

For example In a BAC0 python3 library is very easy with ID.  
‘’‘bac0.device(“50200:20003 analog input 1 presentValue”)’’’

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 15, 2022, 8:52pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/2 "2022-02-15T20:52:53Z")

</div>

You would add 3 more device connections for IDs 20001, 20002, and 20003, all pointing at the master controller’s IP, assuming this “master controller” is a BACnet/IP to MSTP gateway.

---

<div class="post-metadata">

**Author:** ![Kaloyan\_Radomirov](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@Kaloyan\_Radomirov](https://forum.inductiveautomation.com/u/Kaloyan_Radomirov)\
**Post date:** [February 15, 2022, 9:06pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/3 "2022-02-15T21:06:47Z")

</div>

I tried, but they remain uninitialized  
 ![bacNet](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/a/4a6625957dd85b7f5372fc6833c8fc428f78a2c7.png)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 15, 2022, 9:16pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/4 "2022-02-15T21:16:07Z")

</div>

Maybe in the Local Device configuration you need to enable “Foreign Device Registration” and configure the gateway as BBMD as well.

---

<div class="post-metadata">

**Author:** ![Kaloyan\_Radomirov](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@Kaloyan\_Radomirov](https://forum.inductiveautomation.com/u/Kaloyan_Radomirov)\
**Post date:** [February 15, 2022, 11:03pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/5 "2022-02-15T23:03:41Z")

</div>

I tried everything and did not initialize.  
In the BAC0 Python3 library is this addres:  
I dont need even un IP master

import BAC0  
bacnet = BAC0.connect(ip=‘192.168.0.249’) - //local device  
bacnet.whois()  
bacnet.devices

**bacnet.read(“50200:3 binaryInput 101 presentValue”)**

address is Network: **50200** , MAC: **3**

 ![contr](https://us1.discourse-cdn.com/inductiveautomation/original/3X/2/8/2874a70fad4cd4a514c20c5e1f06edc674859c3a.png)

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 15, 2022, 11:09pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/6 "2022-02-15T23:09:22Z")

</div>

Sorry, I am not familiar with that library and have no idea what that means.

Maybe you can get a Wireshark capture and we can compare the traffic.

---

<div class="post-metadata">

**Author:** ![Kaloyan\_Radomirov](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@Kaloyan\_Radomirov](https://forum.inductiveautomation.com/u/Kaloyan_Radomirov)\
**Post date:** [February 22, 2022, 5:49pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/7 "2022-02-22T17:49:44Z")

</div>

Yeh, but I have no time to do that.  
Just asking you.  
is there anyone who knows how ‘Ignition BACnet driver’ works to told me is it possible or not?

‘BAC0’ the most popular python 3 lib can connect slave MS/TP decices with address like net:mac  
In may case its 54200:2, no IP requires.  
Is the ‘Ignition BACnet’ can do that?

MS/TP addressing

> **[BACnet MS-TP Addressing - Continental Control Systems, LLC](https://ctlsys.com/support/bacnet_ms-tp_addressing/)**
>
> Terminology BACnet® devices have multiple addresses: MAC address – On MS/TP networks, this is the eight bit address used to identify devices on a single RS-485 subnet. For WattNode® meters, this is configured with the DIP switches in the range 0 to...

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 22, 2022, 6:15pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/8 "2022-02-22T18:15:32Z")

</div>

Ignition’s driver is BACnet/IP only. Any communication with MS/TP has to happen through a BACnet gateway that does conversion.

---

<div class="post-metadata">

**Author:** ![Kaloyan\_Radomirov](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@Kaloyan\_Radomirov](https://forum.inductiveautomation.com/u/Kaloyan_Radomirov)\
**Post date:** [February 22, 2022, 6:16pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/9 "2022-02-22T18:16:36Z")

</div>

Ok, give me example how, pls.

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [February 22, 2022, 6:19pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/10 "2022-02-22T18:19:47Z")

</div>

You need a BACnet gateway configured with those slave devices, to start…

Usually you would configure it as the BBMD in the “Local Device” configuration of Ignition, and then add a “Remote Device” using that IP and the known device id/number. The BBMD/gateway should answer who-Is requests with i-Am responses for the MS/TP devices on the other side.

It originally sounded like you already had a configuration like this. If you don’t have a physical MS/TP connection from your computer to these devices then that’s probably the case, which is why seeing the contents of a Wireshark capture taken while you run that Python code would be useful.

---

<div class="post-metadata">

**Author:** ![Kaloyan\_Radomirov](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@Kaloyan\_Radomirov](https://forum.inductiveautomation.com/u/Kaloyan_Radomirov)\
**Post date:** [February 22, 2022, 6:38pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/11 "2022-02-22T18:38:36Z")

</div>

‘You need a BACnet gateway configured with those slave devices, to start…’

Is this a hardware?

If Yes, thats whay I give you example with BAC0, there no needs hardware.

---

<div class="post-metadata">

**Author:** ![Kaloyan\_Radomirov](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@Kaloyan\_Radomirov](https://forum.inductiveautomation.com/u/Kaloyan_Radomirov)\
**Post date:** [February 22, 2022, 6:43pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/12 "2022-02-22T18:43:40Z")

</div>

If I have to buy something else or I have to make scripting to make win services in python3 to make bridge and use pylogix lib to put data in PLC, and use django for web, I don’t need Ignition.  
I already did, but that’s not industria standard…its not SCADA.

---

<div class="post-metadata">

**Author:** ![Kaloyan\_Radomirov](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@Kaloyan\_Radomirov](https://forum.inductiveautomation.com/u/Kaloyan_Radomirov)\
**Post date:** [February 22, 2022, 6:56pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/13 "2022-02-22T18:56:28Z")

</div>

**BBMD relays BACnet/IP broadcast messages within a BACnet/IP network that spans multiple IP subnets.**

Thi is not my case. I need access to ms/tp through BacnetIP device master.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 22, 2022, 7:46pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/14 "2022-02-22T19:46:18Z")

</div>

> [@Kaloyan\_Radomirov](#):
>
> BBMD relays BACnet/IP broadcast messages within a BACnet/IP network

By the docs I've reviewed, BBMDs also manage traffic between all physical layer options in BACnet, not just BACnet/IP to BACnet/IP.

---

<div class="post-metadata">

**Author:** ![Kaloyan\_Radomirov](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@Kaloyan\_Radomirov](https://forum.inductiveautomation.com/u/Kaloyan_Radomirov)\
**Post date:** [February 22, 2022, 10:49pm UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/15 "2022-02-22T22:49:43Z")

</div>

Yes, ok I will agree and I will be happy if you tell me how exactly to configure Ignition driver

because I have no problem with BAC0 lib. its simple like that:

* * *

import BAC0  
bacnet = BAC0.connect(ip='192.168.0.249') # local device, no need more conf.

bacnet.read(' **50200:3** analogInput 1 presentValue') # address is **mstp\_network:mac** no IP

* * *

# Define a controller (this one is on MSTP #50200, MAC addr 3, device ID 20003)

mySlaveController = BAC0.device('50200:3', 20003, bacnet)

my master is 192.168.0.20, ID 20000, but I don't need it in BAC0 to connect slaves

after that I have: ms/tp  
ID 20001, but addressing is MSTP network (50200) and MAC (1) ---\> 50200:1  
ID 20002 address 50200:2  
ID 20003 address : 50200:3

I tried everything and it remains uninitialized!  
No problem with master.

The problem is in my head. I've always thought that a paid driver should be more powerful than a free one. BAC0 is free and works just fine.

Thanks

---

<div class="post-metadata">

**Author:** ![josborn](https://avatars.discourse-cdn.com/v4/letter/j/4bbf92/32.png) [@josborn](https://forum.inductiveautomation.com/u/josborn)\
**Post date:** [February 23, 2022, 3:21am UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/16 "2022-02-23T03:21:40Z")

</div>

I am glad you have a workable solution, but i think your conclusion is off base. The ignition BACnet driver is relatively new, and actually is free with the core module. I think it unjust to condemn ignition because the driver does not work the way you think it should.  
Best of luck with your project.

---

<div class="post-metadata">

**Author:** ![Kaloyan\_Radomirov](https://avatars.discourse-cdn.com/v4/letter/k/47e85d/32.png) [@Kaloyan\_Radomirov](https://forum.inductiveautomation.com/u/Kaloyan_Radomirov)\
**Post date:** [February 23, 2022, 6:22am UTC](https://forum.inductiveautomation.com/t/bacnet-poll-data-from-slave-ms-tp-devices/56186/17 "2022-02-23T06:22:29Z")

</div>

yes maybe you are right.  
thanks.  
I will have to write some bidirectional py3 script to do that job.
