Volttron,BACnet 设备不支持分段
Volttron, noSegmentationSupported for BACnet devices
你好,
希望你一切顺利。
我正在从 AHU 读取数据,但在获取对象列表时出现错误:
分段不支持。
在发送 WhoIsIAm (bacnet_scan.py
) 时,我收到以下回复:
Device Address = <RemoteStation 4100:9>
Device Id = 409
maxAPDULengthAccepted = 206
segmentationSupported = noSegmentation
vendorID = 17
我的客户端应用程序 (grab_bacnet_config.py
) 的配置是:
[BACpypes]
objectName: Betelgeuse
address: myIP/24
objectIdentifier: 599
maxApduLengthAccepted: 206
segmentationSupported: segmentedBoth
vendorIdentifier: 15
我将 maxApduLengthAccepted 更改为远程设备的。还试图让它足够大以容纳其他设备。阅读其他问题尝试使用 bacpypes github 存储库提供的 ReadProperty 进行调试。
python read.py --debug bacpypes.appservice.ClientSSM
DEBUG:bacpypes.consolelogging.ConfigArgumentParser:__init__
DEBUG:bacpypes.consolelogging.ArgumentParser:__init__
DEBUG:bacpypes.consolelogging.ConfigArgumentParser:update_os_env
DEBUG:bacpypes.consolelogging.ArgumentParser:update_os_env
DEBUG:bacpypes.consolelogging.ArgumentParser: - settings: {'debug_file': '', 'debug': set([]), 'max_bytes': 1048576, 'color': False, 'backup_count': 5, 'route_aware': False}
DEBUG:bacpypes.consolelogging.ArgumentParser: - os environment
DEBUG:bacpypes.consolelogging.ArgumentParser:parse_args
DEBUG:bacpypes.consolelogging.ConfigArgumentParser:expand_args Namespace(buggers=False, color=None, debug=['bacpypes.appservice.ClientSSM'], ini='BACpypes.ini', route_aware=None)
DEBUG:bacpypes.consolelogging: - config: <ConfigParser.ConfigParser instance at 0x7fa5066dc0>
DEBUG:bacpypes.consolelogging: - ini_obj: {'objectidentifier': '599', 'segmentationsupported': 'segmentedReceive', 'objectname': 'Betelgeuse', 'address': 'myIP/24', 'vendoridentifier': '15', 'maxapdulengthaccepted': '206'}
DEBUG:bacpypes.consolelogging.ArgumentParser:expand_args Namespace(buggers=False, color=None, debug=['bacpypes.appservice.ClientSSM'], ini={'objectidentifier': '599', 'segmentationsupported': 'segmentedReceive', 'objectname': 'Betelgeuse', 'address': 'myIP/24', 'vendoridentifier': '15', 'maxapdulengthaccepted': '206'}, route_aware=None)
DEBUG:bacpypes.consolelogging.ArgumentParser: - debug: ['bacpypes.appservice.ClientSSM']
DEBUG:bacpypes.consolelogging.ArgumentParser: - color not specified
DEBUG:bacpypes.consolelogging.ArgumentParser: - route_aware not specified
DEBUG:bacpypes.consolelogging.ArgumentParser: - args expanded
DEBUG:bacpypes.consolelogging.ArgumentParser:interpret_debugging Namespace(buggers=False, color=None, debug=['bacpypes.appservice.ClientSSM'], ini={'objectidentifier': '599', 'segmentationsupported': 'segmentedReceive', 'objectname': 'Betelgeuse', 'address': 'myIP/24', 'vendoridentifier': '15', 'maxapdulengthaccepted': '206'}, route_aware=None)
DEBUG:bacpypes.consolelogging.ArgumentParser: - settings: {'debug_file': '', 'debug': set(['bacpypes.appservice.ClientSSM']), 'max_bytes': 1048576, 'ini': 'BACpypes.ini', 'color': False, 'backup_count': 5, 'route_aware': False}
DEBUG:bacpypes.consolelogging.ArgumentParser: - interpreted debugging
> read 4100:9 device:409 objectList
DEBUG:bacpypes.appservice.ClientSSM:__init__ <bacpypes.appservice.StateMachineAccessPoint object at 0x7fa50736d0> <Address 4100:9>
DEBUG:bacpypes.appservice.ClientSSM:indication <bacpypes.apdu.ConfirmedRequestPDU(12,1) instance at 0x7fa5073ed0>
<bacpypes.apdu.ConfirmedRequestPDU(12,1) instance at 0x7fa5073ed0>
pduDestination = <Address 4100:9>
pduExpectingReply = 1
pduNetworkPriority = 0
apduType = 0
apduService = 12
apduInvokeID = 1
pduData = x'0c.02.00.10.71.19.4c'
DEBUG:bacpypes.appservice.ClientSSM: - segment size: 206
DEBUG:bacpypes.appservice.ClientSSM: - invoke ID: 1
DEBUG:bacpypes.appservice.ClientSSM: - segment count: 1
DEBUG:bacpypes.appservice.ClientSSM:set_state 2 (AWAIT_CONFIRMATION) timer=3000
DEBUG:bacpypes.appservice.ClientSSM:request <bacpypes.apdu.ConfirmedRequestPDU(12,1) instance at 0x7fa50733d0>
<bacpypes.apdu.ConfirmedRequestPDU(12,1) instance at 0x7fa50733d0>
pduDestination = <Address 4100:9>
pduExpectingReply = 1
pduNetworkPriority = 0
apduType = 0
apduSeg = False
apduMor = False
apduSA = True
apduMaxSegs = 4
apduMaxResp = 2
apduService = 12
apduInvokeID = 1
pduData = x'0c.02.00.10.71.19.4c'
DEBUG:bacpypes.appservice.ClientSSM:confirmation <bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
<bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
pduSource = <RemoteStation 4100:9>
pduDestination = <Address myIP>
pduExpectingReply = False
pduNetworkPriority = 0
apduType = 7
apduSrv = True
apduInvokeID = 1
apduAbortRejectReason = 4
pduData = x''
DEBUG:bacpypes.appservice.ClientSSM:await_confirmation <bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
<bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
pduSource = <RemoteStation 4100:9>
pduDestination = <Address myIP>
pduExpectingReply = False
pduNetworkPriority = 0
apduType = 7
apduSrv = True
apduInvokeID = 1
apduAbortRejectReason = 4
pduData = x''
DEBUG:bacpypes.appservice.ClientSSM: - server aborted
DEBUG:bacpypes.appservice.ClientSSM:set_state 7 (ABORTED) timer=0
DEBUG:bacpypes.appservice.ClientSSM: - remove from active transactions
DEBUG:bacpypes.appservice.ClientSSM:response <bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
<bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
pduSource = <RemoteStation 4100:9>
pduDestination = <Address myIP>
pduExpectingReply = False
pduNetworkPriority = 0
apduType = 7
apduSrv = True
apduInvokeID = 1
apduAbortRejectReason = 4
pduData = x''
segmentationNotSupported
也尝试使 APDU 长度足够大并等于远程设备的长度,但仍然无法读取 objectList。我能够读取单个属性及其值,但不能读取整个对象列表。我可以读吗?
我需要将它们放在@volttron 中用于 grab_bacnet_config.py 脚本。有没有办法调整 apdu 长度或分段内容?
此致,
穆罕默德·阿纳斯·拉扎
仅仅因为您的客户端可以(假设)支持“双向”方向的分段 - 传输和接收,server/device/AHU 不支持。
因此,为了读取完整的对象列表,您必须回退到遍历对象列表数组 - 一次一个元素。
Element/array-index数组的0(-第一个元素),包含数据元素个数的count;对于您想要阅读的每个元素 - 包括第一个 one/element,您必须指定您想要阅读的 target/desired element/index。
你好,
希望你一切顺利。
我正在从 AHU 读取数据,但在获取对象列表时出现错误:
分段不支持。
在发送 WhoIsIAm (bacnet_scan.py
) 时,我收到以下回复:
Device Address = <RemoteStation 4100:9>
Device Id = 409
maxAPDULengthAccepted = 206
segmentationSupported = noSegmentation
vendorID = 17
我的客户端应用程序 (grab_bacnet_config.py
) 的配置是:
[BACpypes]
objectName: Betelgeuse
address: myIP/24
objectIdentifier: 599
maxApduLengthAccepted: 206
segmentationSupported: segmentedBoth
vendorIdentifier: 15
我将 maxApduLengthAccepted 更改为远程设备的。还试图让它足够大以容纳其他设备。阅读其他问题尝试使用 bacpypes github 存储库提供的 ReadProperty 进行调试。
python read.py --debug bacpypes.appservice.ClientSSM
DEBUG:bacpypes.consolelogging.ConfigArgumentParser:__init__
DEBUG:bacpypes.consolelogging.ArgumentParser:__init__
DEBUG:bacpypes.consolelogging.ConfigArgumentParser:update_os_env
DEBUG:bacpypes.consolelogging.ArgumentParser:update_os_env
DEBUG:bacpypes.consolelogging.ArgumentParser: - settings: {'debug_file': '', 'debug': set([]), 'max_bytes': 1048576, 'color': False, 'backup_count': 5, 'route_aware': False}
DEBUG:bacpypes.consolelogging.ArgumentParser: - os environment
DEBUG:bacpypes.consolelogging.ArgumentParser:parse_args
DEBUG:bacpypes.consolelogging.ConfigArgumentParser:expand_args Namespace(buggers=False, color=None, debug=['bacpypes.appservice.ClientSSM'], ini='BACpypes.ini', route_aware=None)
DEBUG:bacpypes.consolelogging: - config: <ConfigParser.ConfigParser instance at 0x7fa5066dc0>
DEBUG:bacpypes.consolelogging: - ini_obj: {'objectidentifier': '599', 'segmentationsupported': 'segmentedReceive', 'objectname': 'Betelgeuse', 'address': 'myIP/24', 'vendoridentifier': '15', 'maxapdulengthaccepted': '206'}
DEBUG:bacpypes.consolelogging.ArgumentParser:expand_args Namespace(buggers=False, color=None, debug=['bacpypes.appservice.ClientSSM'], ini={'objectidentifier': '599', 'segmentationsupported': 'segmentedReceive', 'objectname': 'Betelgeuse', 'address': 'myIP/24', 'vendoridentifier': '15', 'maxapdulengthaccepted': '206'}, route_aware=None)
DEBUG:bacpypes.consolelogging.ArgumentParser: - debug: ['bacpypes.appservice.ClientSSM']
DEBUG:bacpypes.consolelogging.ArgumentParser: - color not specified
DEBUG:bacpypes.consolelogging.ArgumentParser: - route_aware not specified
DEBUG:bacpypes.consolelogging.ArgumentParser: - args expanded
DEBUG:bacpypes.consolelogging.ArgumentParser:interpret_debugging Namespace(buggers=False, color=None, debug=['bacpypes.appservice.ClientSSM'], ini={'objectidentifier': '599', 'segmentationsupported': 'segmentedReceive', 'objectname': 'Betelgeuse', 'address': 'myIP/24', 'vendoridentifier': '15', 'maxapdulengthaccepted': '206'}, route_aware=None)
DEBUG:bacpypes.consolelogging.ArgumentParser: - settings: {'debug_file': '', 'debug': set(['bacpypes.appservice.ClientSSM']), 'max_bytes': 1048576, 'ini': 'BACpypes.ini', 'color': False, 'backup_count': 5, 'route_aware': False}
DEBUG:bacpypes.consolelogging.ArgumentParser: - interpreted debugging
> read 4100:9 device:409 objectList
DEBUG:bacpypes.appservice.ClientSSM:__init__ <bacpypes.appservice.StateMachineAccessPoint object at 0x7fa50736d0> <Address 4100:9>
DEBUG:bacpypes.appservice.ClientSSM:indication <bacpypes.apdu.ConfirmedRequestPDU(12,1) instance at 0x7fa5073ed0>
<bacpypes.apdu.ConfirmedRequestPDU(12,1) instance at 0x7fa5073ed0>
pduDestination = <Address 4100:9>
pduExpectingReply = 1
pduNetworkPriority = 0
apduType = 0
apduService = 12
apduInvokeID = 1
pduData = x'0c.02.00.10.71.19.4c'
DEBUG:bacpypes.appservice.ClientSSM: - segment size: 206
DEBUG:bacpypes.appservice.ClientSSM: - invoke ID: 1
DEBUG:bacpypes.appservice.ClientSSM: - segment count: 1
DEBUG:bacpypes.appservice.ClientSSM:set_state 2 (AWAIT_CONFIRMATION) timer=3000
DEBUG:bacpypes.appservice.ClientSSM:request <bacpypes.apdu.ConfirmedRequestPDU(12,1) instance at 0x7fa50733d0>
<bacpypes.apdu.ConfirmedRequestPDU(12,1) instance at 0x7fa50733d0>
pduDestination = <Address 4100:9>
pduExpectingReply = 1
pduNetworkPriority = 0
apduType = 0
apduSeg = False
apduMor = False
apduSA = True
apduMaxSegs = 4
apduMaxResp = 2
apduService = 12
apduInvokeID = 1
pduData = x'0c.02.00.10.71.19.4c'
DEBUG:bacpypes.appservice.ClientSSM:confirmation <bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
<bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
pduSource = <RemoteStation 4100:9>
pduDestination = <Address myIP>
pduExpectingReply = False
pduNetworkPriority = 0
apduType = 7
apduSrv = True
apduInvokeID = 1
apduAbortRejectReason = 4
pduData = x''
DEBUG:bacpypes.appservice.ClientSSM:await_confirmation <bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
<bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
pduSource = <RemoteStation 4100:9>
pduDestination = <Address myIP>
pduExpectingReply = False
pduNetworkPriority = 0
apduType = 7
apduSrv = True
apduInvokeID = 1
apduAbortRejectReason = 4
pduData = x''
DEBUG:bacpypes.appservice.ClientSSM: - server aborted
DEBUG:bacpypes.appservice.ClientSSM:set_state 7 (ABORTED) timer=0
DEBUG:bacpypes.appservice.ClientSSM: - remove from active transactions
DEBUG:bacpypes.appservice.ClientSSM:response <bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
<bacpypes.apdu.AbortPDU(None,1) instance at 0x7fa51ab650>
pduSource = <RemoteStation 4100:9>
pduDestination = <Address myIP>
pduExpectingReply = False
pduNetworkPriority = 0
apduType = 7
apduSrv = True
apduInvokeID = 1
apduAbortRejectReason = 4
pduData = x''
segmentationNotSupported
也尝试使 APDU 长度足够大并等于远程设备的长度,但仍然无法读取 objectList。我能够读取单个属性及其值,但不能读取整个对象列表。我可以读吗? 我需要将它们放在@volttron 中用于 grab_bacnet_config.py 脚本。有没有办法调整 apdu 长度或分段内容?
此致, 穆罕默德·阿纳斯·拉扎
仅仅因为您的客户端可以(假设)支持“双向”方向的分段 - 传输和接收,server/device/AHU 不支持。
因此,为了读取完整的对象列表,您必须回退到遍历对象列表数组 - 一次一个元素。
Element/array-index数组的0(-第一个元素),包含数据元素个数的count;对于您想要阅读的每个元素 - 包括第一个 one/element,您必须指定您想要阅读的 target/desired element/index。