This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

BACnet troubles connecting
#1
Hi all!

I have an LM4 (Version: 20160927) with BACnet server enabled, and some group addresses exported, but can't get it to work.

In august I made a very similar configuration that worked on the first try (on the beta FW). The biggest difference is that here I have a Cisco SG200 switch between, configured on single VLAN, and different FW version on LM4.
Tried it with direct connection without the switch and got same results. IP adresses are static.

What works:
- Scan from other software (Yabe, Bacnet explorer, ...) when bacnet server is running on the LM4
- Scan from LM4 (when bacnet server is off) - sees all other equipment and can read the values

Doesn't work:
- can't read the datapoints
- LM4 sends I-Am, get no replies
- Other controller sends Who-Has (datapoint from LM4), get no replies

BACnet ID's are unique, port is 0xBAC0 (47808)


Thanks in advance, Z
Reply
#2
Are you BBMD settings empty, do you have firewall enabled on your PC? We're using this software for testing: https://sourceforge.net/projects/vts/
Reply
#3
(12.12.2016, 14:39)admin Wrote: Are you BBMD settings empty, do you have firewall enabled on your PC? We're using this software for testing: https://sourceforge.net/projects/vts/

I've forgot to mention BBMD settings.
By default I always set one of the BACnet controllers for BBMD. On LM4 tried with and without setting the BBMD device parameters.

I'm using Wireshark to look at the communication, will try it today with VTS and report back.

The logic says there is an issue with the client device, but as I say'd in the first post, I had done almost exactly same configuration a few months ago, without problems.
Reply
#4
Here is what I have found with the help of VTS:

Code:
[ Summary Information ]

Time:        13:42:31.207
Source:      192.168.1.3:47808
Destination: Local Broadcast
Summary:     Who-Has, 234-234, Error!

[ Detail Information ]

----- IP Frame Detail -----
Source/Destination          = 192.168.1.3:0xBAC0
----- BACnet Virtual Link Layer Detail -----
BVLC Type                   = BACnet/IP
BVLC Function               = 11  Original-Broadcast-NPDU
BVLC Length                 = 26
----- BACnet Network Layer Detail -----
Protocol Version Number = 1
Network Control Octet       = X'00'
                 0... .... = BACnet APDU
                 .0.. .... = Reserved
                 ..0. .... = DNET,DLEN,DADR & Hop Count Omitted
                 ...0 .... = Reserved
                 .... 0... = SNET,SLEN, & SADR Omitted
                 .... .0.. = No Reply Expected
                 .... ..00 = Normal Message
----- BACnet Application Layer Detail -----
Who-Has Request
First Header Octet          = X'10'
                 0001 .... = BACnet-Unconfirmed-Request-PDU
                 .... 0000 = Unused
Who-Has Request             = 7
[0] deviceInstanceRangeLowLimit:  234
SD Context Tag              = X'09'
                 0000 .... = [0]
                 .... 1... = Context Specific Tag
                 .... .001 = Length = 1
Value                       (1-octet unsigned) = 234
[1] deviceInstanceRangeHighLimit:  234
SD Context Tag              = X'19'
                 0001 .... = [1]
                 .... 1... = Context Specific Tag
                 .... .001 = Length = 1
Value                       (1-octet unsigned) = 234
[3] objectName:  "Temp_Masaza"
SD Context Tag              = X'3D'
                 0011 .... = [3]
                 .... 1... = Context Specific Tag
                 .... .101 = Extended Length
Length of data              = 12
ISO 8859-1                  = 5
Character string            = X'54656D705F4D6173617A61'

I am asking for the object named "Temp_Masaza", but the PLC is encoding it in some different format (54656D705F4D6173617A61), not sure what is going  on here.

When I send the request from VTS the LM4 responds with I-Have as expected.

Code:
[ Summary Information ]

Time:        14:06:31.030
Source:      TD
Destination: (65535, broadcast) via Local Broadcast
Summary:     Who-Has, 234-234, Temp_Masaza

[ Detail Information ]

----- IP Frame Detail -----
Source/Destination          = 192.168.1.155:0xBAC0
----- BACnet Virtual Link Layer Detail -----
BVLC Type                   = BACnet/IP
BVLC Function               = 11  Original-Broadcast-NPDU
BVLC Length                 = 30
----- BACnet Network Layer Detail -----
Protocol Version Number = 1
Network Control Octet       = X'20'
                 0... .... = BACnet APDU
                 .0.. .... = Reserved
                 ..1. .... = DNET,DLEN,DADR & Hop Count Present
                 ...0 .... = Reserved
                 .... 0... = SNET,SLEN, & SADR Omitted
                 .... .0.. = No Reply Expected
                 .... ..00 = Normal Message
Global Broadcast DNET          = X'FFFF', Global Broadcast
Destination MAC address length = 0
Broadcast MAC address implied
Hop Count                   = 255
----- BACnet Application Layer Detail -----
Who-Has Request
First Header Octet          = X'10'
                 0001 .... = BACnet-Unconfirmed-Request-PDU
                 .... 0000 = Unused
Who-Has Request             = 7
[0] deviceInstanceRangeLowLimit:  234
SD Context Tag              = X'09'
                 0000 .... = [0]
                 .... 1... = Context Specific Tag
                 .... .001 = Length = 1
Value                       (1-octet unsigned) = 234
[1] deviceInstanceRangeHighLimit:  234
SD Context Tag              = X'19'
                 0001 .... = [1]
                 .... 1... = Context Specific Tag
                 .... .001 = Length = 1
Value                       (1-octet unsigned) = 234
[3] objectName:  "Temp_Masaza"
SD Context Tag              = X'3D'
                 0011 .... = [3]
                 .... 1... = Context Specific Tag
                 .... .101 = Extended Length
Length of data              = 12
ASCII/UTF-8 Character Encoding = 0
Character string            = Temp_Masaza
*************************** [ Packet 270 End ] ***************************

*************************** [ Packet 271 Start ] ***************************

[ Summary Information ]

Time:        14:06:31.033
Source:      192.168.1.2:47808
Destination: (65535, broadcast) via Local Broadcast
Summary:     I-Have, device_234, analog-value_10303

[ Detail Information ]

----- IP Frame Detail -----
Source/Destination          = 192.168.1.2:0xBAC0
----- BACnet Virtual Link Layer Detail -----
BVLC Type                   = BACnet/IP
BVLC Function               = 11  Original-Broadcast-NPDU
BVLC Length                 = 36
----- BACnet Network Layer Detail -----
Protocol Version Number = 1
Network Control Octet       = X'20'
                 0... .... = BACnet APDU
                 .0.. .... = Reserved
                 ..1. .... = DNET,DLEN,DADR & Hop Count Present
                 ...0 .... = Reserved
                 .... 0... = SNET,SLEN, & SADR Omitted
                 .... .0.. = No Reply Expected
                 .... ..00 = Normal Message
Global Broadcast DNET          = X'FFFF', Global Broadcast
Destination MAC address length = 0
Broadcast MAC address implied
Hop Count                   = 255
----- BACnet Application Layer Detail -----
I-Have Request
First Header Octet          = X'10'
                 0001 .... = BACnet-Unconfirmed-Request-PDU
                 .... 0000 = Unused
I-Have Request              = 1
deviceIdentifier:  device,234
Application Tag             = X'C4'
                 1100 .... = Object Identifier
                 .... 0... = Application Tag
                 .... .100 = Length = 4
BACnet Object Identifier
              Standard Object Type
              Object Type = device
              Instance Number = 234
objectIdentifier:  analog-value,10303
Application Tag             = X'C4'
                 1100 .... = Object Identifier
                 .... 0... = Application Tag
                 .... .100 = Length = 4
BACnet Object Identifier
              Standard Object Type
              Object Type = analog-value
              Instance Number = 10303
objectName:  "Temp_Masaza"
Application Tag             = X'75'
                 0111 .... = Character String
                 .... 0... = Application Tag
                 .... .101 = Extended Length
Length of data              = 12
ASCII/UTF-8 Character Encoding = 0
Character string            = Temp_Masaza


Can I do anything with the LM4 to accept this kind of request?
Attached is the discover log from VTS.

br, Z

Attached Files
.txt   discover.txt (Size: 180.35 KB / Downloads: 8)
Reply
#5
PLC specifies different character encoding (ISO 8859-1) instead of ASCII/UTF8 which is used by LM. Can you check if it's a configurable property in your PLC?
Reply
#6
(13.12.2016, 09:25)admin Wrote: PLC specifies different character encoding (ISO 8859-1) instead of ASCII/UTF8 which is used by LM. Can you check if it's a configurable property in your PLC?

That's it!

Even found a warning in the PLC's programming software - "the BACnet confirmed data communication of texts in not guaranteed!" Lost two days on this Sad 

Just checked the previous project and it is UTF-8.

Thank you for your generous help!
Reply


Forum Jump: