1

我正在尝试从在 Bacnet 协议上运行的 PLC 访问警报。我正在使用 Windows 10 IoT 平台(在 RPI 上运行)。我可以读取所有 Bacnet 对象“属性”,例如事件状态、警报等,但我需要获取所有对象的所有警报。

我知道 GetAlarmSummary 和 GetEnrollmentSummary 已被弃用,我应该使用 GetEventInformation 服务,但是当我浏览对象时,我可以找到通知类对象,但我不知道它们如何与二进制或模拟对象连接。

我也知道像 (binary, analog, multistateValue) 这样的 Bacnet 对象具有通知类编号,该编号指示连接到该对象的通知类的编号,但我真的不知道它们如何相互反应以及如何生成错误消息。我注意到有错误的对象将事件状态设置为警报,但我不知道它们如何与通知类合作,因为当我尝试浏览通知类时,我只获得类型和优先级,但没有关于连接对象的信息。谁能提供一些我可以使用的代码示例或给我一些要点来完成这个问题?

谢谢

4

1 回答 1

0

是否有帮助;这是“获取警报摘要”输出的示例:

    Items - Count = '5' -

            Idx = '0' -

                    Obj Id = '12582946' ('0xC00022')
                            - T  = 'BINARY_INPUT' ('3' / '0x3')
                            - I# = '34' ('0x22')
                            - N  = 'diagVasUnableToDriveMax|VAHU-01 VAS-2'
                    Alarm State = 'OFFNORMAL' ('2')
                    Ack Transitions = '111' ( 'To Off-Normal'; 'To Fault'; 'To Normal' )

            Idx = '1' -

                    Obj Id = '12582947' ('0xC00023')
                            - T  = 'BINARY_INPUT' ('3' / '0x3')
                            - I# = '35' ('0x23')
                            - N  = 'diagVasSourceTempFailure|VAHU-01 VAS-2'
                    Alarm State = 'OFFNORMAL' ('2')
                    Ack Transitions = '111' ( 'To Off-Normal'; 'To Fault'; 'To Normal' )

            Idx = '2' -

                    Obj Id = '12582948' ('0xC00024')
                            - T  = 'BINARY_INPUT' ('3' / '0x3')
                            - I# = '36' ('0x24')
                            - N  = 'diagVasSystemFailure|VAHU-01 VAS-2'
                    Alarm State = 'OFFNORMAL' ('2')
                    Ack Transitions = '111' ( 'To Off-Normal'; 'To Fault'; 'To Normal' )

            Idx = '3' -

                    Obj Id = '54525954' ('0x3400002')
                            - T  = 'MULTI_STATE_INPUT' ('13' / '0xD')
                            - I# = '2' ('0x2')
                            - N  = 'Communication Status|generic-2'
                    Alarm State = 'OFFNORMAL' ('2')
                    Ack Transitions = '111' ( 'To Off-Normal'; 'To Fault'; 'To Normal' )

            Idx = '4' -

                    Obj Id = '54526017' ('0x3400041')
                            - T  = 'MULTI_STATE_INPUT' ('13' / '0xD')
                            - I# = '65' ('0x41')
                            - N  = 'Communication Status|vav-28'
                    Alarm State = 'OFFNORMAL' ('2')
                    Ack Transitions = '111' ( 'To Off-Normal'; 'To Fault'; 'To Normal' )
于 2019-05-31T23:58:11.390 回答