我正在尝试从Bacnet协议上运行的PLC访问警报。我正在使用Windows 10 IoT平台(在RPI上运行)。我可以读取所有Bacnet对象的“属性”,例如事件状态,警报等,但我需要获取所有对象的所有警报。
我知道不推荐使用GetAlarmSummary和GetEnrollmentSummary,我应该使用GetEventInformation服务,但是当我浏览对象时,我可以找到通知类对象,但我不知道它们是如何与二进制或模拟对象连接的。
我也知道像(binary,analog,multistateValue)这样的Bacnet对象有通知类号,表示连接到对象的通知类的数量,但我真的不知道它们是如何相互作用的,以及如何是错误消息产生。我注意到有错误的对象将事件状态设置为警报但我不知道他们如何与通知类合作,因为当我尝试浏览通知类时,我只获得类型和优先级,但没有关于连接对象。任何人都可以提供一些我可以使用的代码示例,或者给我一些分数来完成这个问题吗?
由于
答案 0 :(得分: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' )